diff --git a/ImmediateGLBufferAttribute.js b/ImmediateGLBufferAttribute.js
new file mode 100644
index 0000000000..f861088cab
--- /dev/null
+++ b/ImmediateGLBufferAttribute.js
@@ -0,0 +1,114 @@
+import * as THREE from 'three';
+import {getRenderer} from './renderer.js';
+
+export class ImmediateGLBufferAttribute extends THREE.GLBufferAttribute {
+ constructor(array, itemSize, isIndex = false) {
+ const Type = array.constructor;
+ let glType;
+ switch (Type) {
+ case Float32Array: {
+ glType = WebGLRenderingContext.FLOAT;
+ break;
+ }
+ case Uint16Array: {
+ glType = WebGLRenderingContext.UNSIGNED_SHORT;
+ break;
+ }
+ case Int16Array: {
+ glType = WebGLRenderingContext.SHORT;
+ break;
+ }
+ case Uint32Array: {
+ glType = WebGLRenderingContext.UNSIGNED_INT;
+ break;
+ }
+ case Int32Array: {
+ glType = WebGLRenderingContext.INT;
+ break;
+ }
+ case Uint8Array: {
+ glType = WebGLRenderingContext.UNSIGNED_BYTE;
+ break;
+ }
+ case Int8Array: {
+ glType = WebGLRenderingContext.BYTE;
+ break;
+ }
+ default: {
+ throw new Error(`Unsupported array type: ${Type}`);
+ }
+ }
+ const renderer = getRenderer();
+ const gl = renderer.getContext();
+ const buffer = gl.createBuffer();
+ {
+ const target = ImmediateGLBufferAttribute.getTarget(isIndex);
+ const oldBinding = gl.getParameter(ImmediateGLBufferAttribute.getTargetBinding(isIndex));
+ gl.bindBuffer(target, buffer);
+ gl.bufferData(target, array.byteLength, gl.DYNAMIC_DRAW);
+ gl.bindBuffer(target, oldBinding);
+ }
+ super(buffer, glType, itemSize, Type.BYTES_PER_ELEMENT, array.length / itemSize);
+
+ this.array = array;
+ this.isIndex = isIndex;
+ /* this.updateRange = {
+ offset: 0,
+ count: -1,
+ }; */
+ }
+ static getTarget(isIndex) {
+ return isIndex ? WebGLRenderingContext.ELEMENT_ARRAY_BUFFER : WebGLRenderingContext.ARRAY_BUFFER;
+ }
+ getTarget() {
+ return ImmediateGLBufferAttribute.getTarget(this.isIndex);
+ }
+ static getTargetBinding(isIndex) {
+ return isIndex ? WebGLRenderingContext.ELEMENT_ARRAY_BUFFER_BINDING : WebGLRenderingContext.ARRAY_BUFFER_BINDING;
+ }
+ getTargetBinding() {
+ return ImmediateGLBufferAttribute.getTargetBinding(this.isIndex);
+ }
+ pushed = false;
+ static pushUpdate() {
+ const renderer = getRenderer();
+ const gl = renderer.getContext();
+
+ const arrayBufferBinding = gl.getParameter(WebGLRenderingContext.ARRAY_BUFFER_BINDING);
+ const elementArrayBufferBinding = gl.getParameter(WebGLRenderingContext.ELEMENT_ARRAY_BUFFER_BINDING);
+ this.pushed = true;
+
+ const popUpdate = () => {
+ gl.bindBuffer(WebGLRenderingContext.ARRAY_BUFFER, arrayBufferBinding);
+ gl.bindBuffer(WebGLRenderingContext.ELEMENT_ARRAY_BUFFER, elementArrayBufferBinding);
+ this.pushed = false;
+ };
+ return popUpdate;
+ }
+ wrap(fn) {
+ let popUpdate = null;
+ if (!ImmediateGLBufferAttribute.pushed) {
+ popUpdate = ImmediateGLBufferAttribute.pushUpdate();
+ }
+
+ fn();
+
+ popUpdate && popUpdate();
+ }
+ update(offset, count, array = this.array, srcOffset = offset) {
+ this.wrap(() => {
+ const renderer = getRenderer();
+ const gl = renderer.getContext();
+ const target = this.getTarget();
+
+ gl.bindBuffer(target, this.buffer);
+ gl.bufferSubData(
+ target,
+ offset * this.elementSize,
+ array,
+ srcOffset,
+ count
+ );
+ });
+ }
+}
\ No newline at end of file
diff --git a/ai/lore/lore-ai.js b/ai/lore/lore-ai.js
index f29430d4ef..25075c77f5 100644
--- a/ai/lore/lore-ai.js
+++ b/ai/lore/lore-ai.js
@@ -3,13 +3,35 @@ import {
defaultPlayerBio,
defaultObjectName,
defaultObjectDescription,
+
makeLorePrompt,
makeLoreStop,
+ postProcessResponse,
+ parseLoreResponses,
+
makeCommentPrompt,
makeCommentStop,
parseCommentResponse,
- postProcessResponse,
- parseLoreResponses,
+
+ makeSelectTargetPrompt,
+ makeSelectTargetStop,
+ parseSelectTargetResponse,
+
+ makeSelectCharacterPrompt,
+ makeSelectCharacterStop,
+ parseSelectCharacterResponse,
+
+ makeChatPrompt,
+ makeChatStop,
+ parseChatResponse,
+
+ makeOptionsPrompt,
+ makeOptionsStop,
+ parseOptionsResponse,
+
+ makeCharacterIntroPrompt,
+ makeCharacterIntroStop,
+ parseCharacterIntroResponse,
} from './lore-model.js'
const numGenerateTries = 5;
@@ -193,11 +215,11 @@ class AIScene {
});
const stop = makeLoreStop(this.localCharacter, 0);
let response = await this.generateFn(prompt, stop);
- console.log('got lore', {prompt, response});
+ // console.log('got lore', {prompt, response});
response = postProcessResponse(response, this.characters, dstCharacter);
return response;
}
- async generateComment(name, dstCharacter = null) {
+ async generateLocationComment(name, dstCharacter = null) {
const prompt = makeCommentPrompt({
settings: this.settings,
dstCharacter,
@@ -206,9 +228,76 @@ class AIScene {
const stop = makeCommentStop();
let response = await this.generateFn(prompt, stop);
response = parseCommentResponse(response);
- console.log('got comment', {prompt, response});
+ // console.log('got comment', {prompt, response});
+ return response;
+ }
+
+ // XXX needs better API
+ async generateSelectTargetComment(name, description) {
+ const prompt = makeSelectTargetPrompt({
+ name,
+ description,
+ });
+ console.log('select target prompt', {prompt});
+ const stop = makeSelectTargetStop();
+ let response = await this.generateFn(prompt, stop);
+ console.log('select target response', {prompt, response});
+ response = parseSelectTargetResponse(response);
+ // console.log('got comment', {prompt, response});
return response;
}
+ async generateSelectCharacterComment(name, description) {
+ const prompt = makeSelectCharacterPrompt({
+ name,
+ description,
+ });
+ console.log('select character prompt', {prompt});
+ const stop = makeSelectCharacterStop();
+ let response = await this.generateFn(prompt, stop);
+ console.log('select character response', {prompt, response});
+ const response2 = parseSelectCharacterResponse(response);
+ console.log('select character parsed', {response2});
+ return response2;
+ }
+ async generateChatMessage(messages, nextCharacter) {
+ const prompt = makeChatPrompt({
+ messages,
+ nextCharacter,
+ });
+ console.log('chat prompt', {prompt});
+ const stop = makeChatStop();
+ let response = await this.generateFn(prompt, stop);
+ console.log('chat response', {prompt, response});
+ const response2 = parseChatResponse(response);
+ console.log('chat parsed', {response2});
+ return response2;
+ }
+ async generateDialogueOptions(messages, nextCharacter) {
+ const prompt = makeOptionsPrompt({
+ messages,
+ nextCharacter,
+ });
+ console.log('dialogue options prompt', {prompt});
+ const stop = makeOptionsStop();
+ let response = await this.generateFn(prompt, stop);
+ console.log('dialogue options response', {prompt, response});
+ const response2 = parseOptionsResponse(response);
+ console.log('dialogue options parsed', {response2});
+ return response2;
+ }
+ async generateCharacterIntroPrompt(name, bio) {
+ const prompt = makeCharacterIntroPrompt({
+ name,
+ bio,
+ });
+ console.log('dialogue options prompt', {prompt});
+ const stop = makeCharacterIntroStop();
+ let response = await this.generateFn(prompt, stop);
+ console.log('dialogue options response', {prompt, response});
+ const response2 = parseCharacterIntroResponse(response);
+ console.log('dialogue options parsed', {response2});
+ return response2;
+ }
}
class LoreAI {
@@ -218,7 +307,9 @@ class LoreAI {
async generate(prompt, {
stop,
max_tokens = 100,
- // temperature,
+ temperature,
+ frequency_penalty,
+ presence_penalty,
// top_p,
} = {}) {
if (prompt) {
@@ -228,6 +319,15 @@ class LoreAI {
if (stop !== undefined) {
query.stop = stop;
}
+ if (temperature !== undefined) {
+ query.temperature = temperature;
+ }
+ if (frequency_penalty !== undefined) {
+ query.frequency_penalty = frequency_penalty;
+ }
+ if (presence_penalty !== undefined) {
+ query.presence_penalty = presence_penalty;
+ }
query.temperature = temperature;
query.top_p = top_p;
@@ -286,7 +386,9 @@ class LoreAI {
generateFn: (prompt, stop) => {
return this.generate(prompt, {
stop,
- // temperature,
+ temperature: 1,
+ presence_penalty: 2,
+ frequency_penalty: 2,
// top_p,
});
},
diff --git a/app-manager.js b/app-manager.js
index 309a8d911e..faa86a6ecd 100644
--- a/app-manager.js
+++ b/app-manager.js
@@ -26,6 +26,9 @@ const localData = {
const localFrameOpts = {
data: localData,
};
+const frameEvent = new MessageEvent('frame', localFrameOpts);
+
+const physicsScene = physicsManager.getScene();
const appManagers = [];
class AppManager extends EventTarget {
@@ -51,7 +54,7 @@ class AppManager extends EventTarget {
localData.timestamp = timestamp;
localData.frame = frame;
localData.timeDiff = timeDiff;
- this.dispatchEvent(new MessageEvent('frame', localFrameOpts));
+ this.dispatchEvent(frameEvent);
}
/* setPushingLocalUpdates(pushingLocalUpdates) {
this.pushingLocalUpdates = pushingLocalUpdates;
@@ -475,7 +478,7 @@ class AppManager extends EventTarget {
if (removeIndex !== -1) {
this.appsArray.delete(removeIndex, 1);
} else {
- console.warn('invalid remove instance id', {removeInstanceId, appsJson});
+ console.warn('invalid remove instance id', {instanceId, appsJson});
debugger;
}
}
@@ -532,34 +535,44 @@ class AppManager extends EventTarget {
// srcAppManager.setBlindStateMode(true);
// dstAppManager.setBlindStateMode(true);
- if (srcAppManager.appsArray.doc === dstAppManager.appsArray.doc) {
- this.unbindTrackedApp(instanceId);
-
- let dstTrackedApp = null;
- srcAppManager.appsArray.doc.transact(() => {
- const srcTrackedApp = srcAppManager.getTrackedApp(instanceId);
- const contentId = srcTrackedApp.get('contentId');
- const position = srcTrackedApp.get('position');
- const quaternion = srcTrackedApp.get('quaternion');
- const scale = srcTrackedApp.get('scale');
- const components = srcTrackedApp.get('components');
-
- srcAppManager.removeTrackedAppInternal(instanceId);
-
- dstTrackedApp = dstAppManager.addTrackedAppInternal(
- instanceId,
- contentId,
- position,
- quaternion,
- scale,
- components,
- );
+ this.unbindTrackedApp(instanceId);
+
+ let dstTrackedApp = null;
+
+ const wrapTxFn = (srcAppManager.appsArray.doc === dstAppManager.appsArray.doc) ?
+ innerFn => srcAppManager.appsArray.doc.transact(innerFn)
+ :
+ innerFn => dstAppManager.appsArray.doc.transact(() => {
+ srcAppManager.appsArray.doc.transact(innerFn);
});
+ wrapTxFn(() => {
+ const srcTrackedApp = srcAppManager.getTrackedApp(instanceId);
+ /* if (!srcTrackedApp) {
+ console.log('transplant app', {app, srcTrackedApp});
+ debugger;
+ } */
+ const contentId = srcTrackedApp.get('contentId');
+ const position = srcTrackedApp.get('position');
+ const quaternion = srcTrackedApp.get('quaternion');
+ const scale = srcTrackedApp.get('scale');
+ const components = srcTrackedApp.get('components');
- dstAppManager.bindTrackedApp(dstTrackedApp, app);
- } else {
+ srcAppManager.removeTrackedAppInternal(instanceId);
+
+ dstTrackedApp = dstAppManager.addTrackedAppInternal(
+ instanceId,
+ contentId,
+ position,
+ quaternion,
+ scale,
+ components,
+ );
+ });
+
+ dstAppManager.bindTrackedApp(dstTrackedApp, app);
+ /* } else {
throw new Error('cannot transplant apps between app manager with different state binding');
- }
+ } */
// srcAppManager.setBlindStateMode(false);
// dstAppManager.setBlindStateMode(false);
@@ -635,8 +648,8 @@ class AppManager extends EventTarget {
child.updateMatrixWorld();
}
- physicsManager.setTransform(physicsObject);
- physicsManager.getBoundingBoxForPhysicsId(physicsObject.physicsId, physicsObject.physicsMesh.geometry.boundingBox);
+ physicsScene.setTransform(physicsObject);
+ physicsScene.getBoundingBoxForPhysicsId(physicsObject.physicsId, physicsObject.physicsMesh.geometry.boundingBox);
}
}
}
@@ -692,6 +705,8 @@ class AppManager extends EventTarget {
} else {
throw new Error('double destroy of app manager');
}
+ } else {
+ throw new Error('destroy of bound app manager');
}
}
}
diff --git a/atlasing.js b/atlasing.js
new file mode 100644
index 0000000000..29f3dc3730
--- /dev/null
+++ b/atlasing.js
@@ -0,0 +1,276 @@
+import * as THREE from 'three';
+import {MaxRectsPacker} from 'maxrects-packer';
+import {modUv} from './util.js';
+import {startTextureAtlasSize, maxTextureAtlasSize} from './constants.js';
+
+// const localVector = new THREE.Vector3();
+// const localVector2 = new THREE.Vector3();
+const localVector2D = new THREE.Vector2();
+const localVector2D2 = new THREE.Vector2();
+// const localVector4D = new THREE.Vector4();
+// const localQuaternion = new THREE.Quaternion();
+// const localMatrix = new THREE.Matrix4();
+
+export const mapWarpedUvs = (src, srcOffset, dst, dstOffset, tx, ty, tw, th, canvasSize) => {
+ const count = src.count;
+ for (let i = 0; i < count; i++) {
+ const srcIndex = srcOffset + i * 2;
+ const localDstOffset = dstOffset + i * 2;
+
+ localVector2D.fromArray(src.array, srcIndex);
+ modUv(localVector2D);
+ localVector2D
+ .multiply(
+ localVector2D2.set(tw/canvasSize, th/canvasSize)
+ )
+ .add(
+ localVector2D2.set(tx/canvasSize, ty/canvasSize)
+ );
+ localVector2D.toArray(dst.array, localDstOffset);
+ }
+};
+
+const generateTextureAtlas = textureSpecs => {
+ const textureNames = Object.keys(textureSpecs);
+ const firstTextureArray = textureSpecs[textureNames[0]];
+
+ // compute texture sizes
+ const textureSizes = firstTextureArray.map((firstTexture, i) => {
+ /* const emissiveMap = emissiveMaps[i];
+ const normalMap = normalMaps[i];
+ const roughnessMap = roughnessMaps[i];
+ const metalnessMap = metalnessMaps[i]; */
+
+ const maxSize = new THREE.Vector2(0, 0);
+ for (const textureName of textureNames) {
+ const map = textureSpecs[textureName][i];
+ if (map) {
+ maxSize.x = Math.max(maxSize.x, map.image.width);
+ maxSize.y = Math.max(maxSize.y, map.image.height);
+ }
+ }
+ return maxSize;
+ });
+ const textureUuids = firstTextureArray.map((firstTexture, i) => {
+ /* const emissiveMap = emissiveMaps[i];
+ const normalMap = normalMaps[i];
+ const roughnessMap = roughnessMaps[i];
+ const metalnessMap = metalnessMaps[i]; */
+
+ const uuids = [];
+ for (const textureName of textureNames) {
+ const map = textureSpecs[textureName][i];
+ uuids.push(map ? map.uuid : null);
+ }
+ return uuids.join(':');
+ });
+
+ // generate atlas layouts
+ const _packAtlases = () => {
+ const _attemptPack = (textureSizes, atlasSize) => {
+ const maxRectsPacker = new MaxRectsPacker(atlasSize, atlasSize, 0);
+ const rectUuidCache = new Map();
+ const rectIndexCache = new Map();
+ textureSizes.forEach((textureSize, index) => {
+ const {x: width, y: height} = textureSize;
+ const hash = textureUuids[index];
+
+ let rect = rectUuidCache.get(hash);
+ if (!rect) {
+ rect = {
+ width,
+ height,
+ data: {
+ index,
+ },
+ };
+ rectUuidCache.set(hash, rect);
+ }
+ rectIndexCache.set(index, rect);
+ });
+ const rects = Array.from(rectUuidCache.values());
+
+ maxRectsPacker.addArray(rects);
+ let oversized = maxRectsPacker.bins.length > 1;
+ maxRectsPacker.bins.forEach(bin => {
+ bin.rects.forEach(rect => {
+ if (rect.oversized) {
+ oversized = true;
+ }
+ });
+ });
+ if (!oversized) {
+ maxRectsPacker.rectIndexCache = rectIndexCache;
+ return maxRectsPacker;
+ } else {
+ return null;
+ }
+ };
+
+ const hasTextures = textureSizes.some(textureSize => textureSize.x > 0 || textureSize.y > 0);
+ if (hasTextures) {
+ let atlas;
+ let atlasSize = startTextureAtlasSize;
+ while (!(atlas = _attemptPack(textureSizes, atlasSize))) {
+ atlasSize *= 2;
+ }
+ return atlas;
+ } else {
+ return null;
+ }
+ };
+ const atlas = _packAtlases();
+
+ // draw atlas images
+ const _drawAtlasImages = atlas => {
+ const _getTexturesKey = textures => textures.map(t => t ? t.uuid : '').join(',');
+ const _drawAtlasImage = (textureName, textures) => {
+ if (atlas && textures.some(t => t !== null)) {
+ const canvasSize = Math.min(atlas.width, maxTextureAtlasSize);
+ const canvasScale = canvasSize / atlas.width;
+
+ const canvas = document.createElement('canvas');
+ canvas.width = canvasSize;
+ canvas.height = canvasSize;
+
+ const initializer = textureInitializers[textureName];
+ if (initializer) {
+ initializer(canvas);
+ }
+
+ const ctx = canvas.getContext('2d');
+ atlas.bins.forEach(bin => {
+ bin.rects.forEach(rect => {
+ const {x, y, width: w, height: h, data: {index}} = rect;
+ const texture = textures[index];
+ if (texture) {
+ const image = texture.image;
+
+ // draw the image in the correct box on the canvas
+ const tx = x * canvasScale;
+ const ty = y * canvasScale;
+ const tw = w * canvasScale;
+ const th = h * canvasScale;
+ ctx.drawImage(image, 0, 0, image.width, image.height, tx, ty, tw, th);
+ }
+ });
+ });
+
+ return canvas;
+ } else {
+ return null;
+ }
+ };
+
+ const atlasImages = {};
+ const atlasImagesMap = new Map(); // cache to alias identical textures
+ for (const textureName of textureNames) {
+ const textures = textureSpecs[textureName];
+ const key = _getTexturesKey(textures);
+
+ // const textureName2 = textureName.replace(/s$/, '');
+
+ let atlasImage = atlasImagesMap.get(key);
+ if (atlasImage === undefined) { // cache miss
+ atlasImage = _drawAtlasImage(textureName, textures);
+ if (atlasImage !== null) {
+ atlasImage.key = key;
+ }
+ atlasImagesMap.set(key, atlasImage);
+ }
+ atlasImages[textureName] = atlasImage;
+ }
+ return atlasImages;
+ };
+ const atlasImages = _drawAtlasImages(atlas);
+
+ const atlasTextures = {};
+ for (const textureName of textureNames) {
+ const atlasImage = atlasImages[textureName];
+ if (atlasImage) {
+ const texture = new THREE.Texture(atlasImage);
+ texture.flipY = false;
+ texture.encoding = THREE.sRGBEncoding;
+ texture.needsUpdate = true;
+ atlasTextures[textureName] = texture;
+ }
+ }
+
+ return {
+ atlas,
+ atlasImages,
+ atlasTextures,
+ };
+};
+
+/* const textureTypes = [
+ 'map',
+ 'normalMap',
+ 'roughnessMap',
+ 'metalnessMap',
+ 'emissiveMap',
+]; */
+const _colorCanvas = (canvas, fillStyle) => {
+ const ctx = canvas.getContext('2d');
+ ctx.fillStyle = fillStyle;
+ ctx.fillRect(0, 0, canvas.width, canvas.height);
+};
+const textureInitializers = {
+ normalMap(canvas) {
+ _colorCanvas(canvas, 'rgb(128, 128, 255)');
+ },
+ roughnessMap(canvas) {
+ _colorCanvas(canvas, 'rgb(255, 255, 255)');
+ },
+ /* metalness(canvas) {
+ _colorCanvas(canvas, 'rgb(0, 0, 0)');
+ }, */
+};
+export const createTextureAtlas = (meshes, {
+ textures = 'map',
+ attributes = ['position', 'normal', 'uv'],
+} = {}) => {
+ const textureSpecs = {};
+ for (const textureName of textures) {
+ textureSpecs[textureName] = meshes.map(mesh => mesh.material[textureName]);
+ }
+ const {
+ atlas,
+ atlasImages,
+ atlasTextures,
+ } = generateTextureAtlas(textureSpecs);
+
+ const canvasSize = Math.min(atlas.width, maxTextureAtlasSize);
+ const canvasScale = canvasSize / atlas.width;
+
+ // geometry
+
+ const geometries = meshes.map((m, i) => {
+ const srcGeometry = m.geometry;
+
+ const geometry = new THREE.BufferGeometry();
+ for (const k of attributes) {
+ const attr = srcGeometry.attributes[k];
+ geometry.setAttribute(k, attr);
+ }
+ geometry.setIndex(srcGeometry.index);
+
+ const rect = atlas.rectIndexCache.get(i);
+ const {x, y, width: w, height: h} = rect;
+ const tx = x * canvasScale;
+ const ty = y * canvasScale;
+ const tw = w * canvasScale;
+ const th = h * canvasScale;
+
+ mapWarpedUvs(geometry.attributes.uv, 0, geometry.attributes.uv, 0, tx, ty, tw, th, canvasSize);
+
+ return geometry;
+ });
+
+ return {
+ atlas,
+ atlasImages,
+ atlasTextures,
+ geometries,
+ };
+};
\ No newline at end of file
diff --git a/avatar-iconer.js b/avatar-iconer.js
index d30b0ded73..165da46e9f 100644
--- a/avatar-iconer.js
+++ b/avatar-iconer.js
@@ -53,13 +53,9 @@ class AvatarIconer extends EventTarget {
const cameraOffset = new THREE.Vector3(0, 0.05, -0.35);
`,
async function(start_url, width, height) {
- const dstAvatarApp = await metaversefile.createAppAsync({
- start_url,
- });
-
- const player = npcManager.createNpc({
+ const player = await npcManager.createNpcAsync({
name: 'avatar-iconer-npc',
- avatarApp: dstAvatarApp,
+ avatarUrl: start_url,
detached: true,
});
@@ -80,7 +76,6 @@ class AvatarIconer extends EventTarget {
}));
player.destroy();
- dstAvatarApp.destroy();
return emotionCanvases;
}
@@ -95,7 +90,7 @@ class AvatarIconer extends EventTarget {
if (srcAvatarApp) {
const start_url = srcAvatarApp.contentId;
- this.emotionCanvases = await this.getEmotionCanvases(start_url, this.width, this.height);
+ this.emotionCanvases = await this.getEmotionCanvases([start_url, this.width, this.height]);
this.enabled = true;
} else {
diff --git a/avatar-screenshotter.js b/avatar-screenshotter.js
index af340307bd..832ce73ff7 100644
--- a/avatar-screenshotter.js
+++ b/avatar-screenshotter.js
@@ -24,35 +24,13 @@ export const screenshotAvatarUrl = async ({
cameraOffset,
emotion,
}) => {
- const app = await metaversefile.createAppAsync({
- start_url,
- });
- return await screenshotAvatarApp({
- app,
- width,
- height,
- canvas,
- cameraOffset,
- emotion,
- });
-};
-export const screenshotAvatarApp = async ({
- app,
- width = 300,
- height = 300,
- canvas,
- cameraOffset,
- emotion,
-}) => {
- // await Avatar.waitForLoad();
-
- const player = npcManager.createNpc({
+ const player = await npcManager.createNpcAsync({
name: 'sceenshot-npc',
- avatarApp: app,
+ avatarUrl: start_url,
detached: true,
});
- return await screenshotPlayer({
+ const result = await screenshotPlayer({
player,
width,
height,
@@ -60,6 +38,8 @@ export const screenshotAvatarApp = async ({
cameraOffset,
emotion,
});
+ player.destroy();
+ return result;
};
export const screenshotPlayer = async ({
player,
@@ -154,7 +134,7 @@ export const screenshotPlayer = async ({
_render();
diorama.destroy();
- player.destroy();
+ // player.destroy();
return writeCanvas;
};
\ No newline at end of file
diff --git a/avatars/AnimationMapping.js b/avatars/AnimationMapping.js
index 5810ac8c69..6d8cc2b8b0 100644
--- a/avatars/AnimationMapping.js
+++ b/avatars/AnimationMapping.js
@@ -1,72 +1,73 @@
class AnimationMapping {
- constructor(animationTrackName, boneName, isTop, isPosition) {
+ constructor(animationTrackName, boneName, isTop, isPosition, isArm) {
this.animationTrackName = animationTrackName;
this.boneName = boneName;
this.isTop = isTop;
this.isPosition = isPosition;
+ this.isArm = isArm;
}
clone() {
- return new AnimationMapping(this.animationTrackName, this.boneName, this.isTop, this.isPosition);
+ return new AnimationMapping(this.animationTrackName, this.boneName, this.isTop, this.isPosition, this.isArm);
}
}
export const animationMappingConfig = [
- new AnimationMapping('mixamorigHips.position', 'Hips', false, true),
- new AnimationMapping('mixamorigHips.quaternion', 'Hips', false, false),
- new AnimationMapping('mixamorigSpine.quaternion', 'Spine', true, false),
- new AnimationMapping('mixamorigSpine1.quaternion', 'Chest', true, false),
- new AnimationMapping('mixamorigSpine2.quaternion', 'UpperChest', true, false),
- new AnimationMapping('mixamorigNeck.quaternion', 'Neck', true, false),
- new AnimationMapping('mixamorigHead.quaternion', 'Head', true, false),
+ new AnimationMapping('mixamorigHips.position', 'Hips', false, true, false),
+ new AnimationMapping('mixamorigHips.quaternion', 'Hips', false, false, false),
+ new AnimationMapping('mixamorigSpine.quaternion', 'Spine', true, false, false),
+ new AnimationMapping('mixamorigSpine1.quaternion', 'Chest', true, false, false),
+ new AnimationMapping('mixamorigSpine2.quaternion', 'UpperChest', true, false, false),
+ new AnimationMapping('mixamorigNeck.quaternion', 'Neck', true, false, false),
+ new AnimationMapping('mixamorigHead.quaternion', 'Head', true, false, false),
- new AnimationMapping('mixamorigLeftShoulder.quaternion', 'Left_shoulder', true, false),
- new AnimationMapping('mixamorigLeftArm.quaternion', 'Left_arm', true, false),
- new AnimationMapping('mixamorigLeftForeArm.quaternion', 'Left_elbow', true, false),
- new AnimationMapping('mixamorigLeftHand.quaternion', 'Left_wrist', true, false),
- new AnimationMapping('mixamorigLeftHandMiddle1.quaternion', 'Left_middleFinger1', true, false),
- new AnimationMapping('mixamorigLeftHandMiddle2.quaternion', 'Left_middleFinger2', true, false),
- new AnimationMapping('mixamorigLeftHandMiddle3.quaternion', 'Left_middleFinger3', true, false),
- new AnimationMapping('mixamorigLeftHandThumb1.quaternion', 'Left_thumb0', true, false),
- new AnimationMapping('mixamorigLeftHandThumb2.quaternion', 'Left_thumb1', true, false),
- new AnimationMapping('mixamorigLeftHandThumb3.quaternion', 'Left_thumb2', true, false),
- new AnimationMapping('mixamorigLeftHandIndex1.quaternion', 'Left_indexFinger1', true, false),
- new AnimationMapping('mixamorigLeftHandIndex2.quaternion', 'Left_indexFinger2', true, false),
- new AnimationMapping('mixamorigLeftHandIndex3.quaternion', 'Left_indexFinger3', true, false),
- new AnimationMapping('mixamorigLeftHandRing1.quaternion', 'Left_ringFinger1', true, false),
- new AnimationMapping('mixamorigLeftHandRing2.quaternion', 'Left_ringFinger2', true, false),
- new AnimationMapping('mixamorigLeftHandRing3.quaternion', 'Left_ringFinger3', true, false),
- new AnimationMapping('mixamorigLeftHandPinky1.quaternion', 'Left_littleFinger1', true, false),
- new AnimationMapping('mixamorigLeftHandPinky2.quaternion', 'Left_littleFinger2', true, false),
- new AnimationMapping('mixamorigLeftHandPinky3.quaternion', 'Left_littleFinger3', true, false),
+ new AnimationMapping('mixamorigLeftShoulder.quaternion', 'Left_shoulder', true, false, true),
+ new AnimationMapping('mixamorigLeftArm.quaternion', 'Left_arm', true, false, true),
+ new AnimationMapping('mixamorigLeftForeArm.quaternion', 'Left_elbow', true, false, true),
+ new AnimationMapping('mixamorigLeftHand.quaternion', 'Left_wrist', true, false, true),
+ new AnimationMapping('mixamorigLeftHandMiddle1.quaternion', 'Left_middleFinger1', true, false, true),
+ new AnimationMapping('mixamorigLeftHandMiddle2.quaternion', 'Left_middleFinger2', true, false, true),
+ new AnimationMapping('mixamorigLeftHandMiddle3.quaternion', 'Left_middleFinger3', true, false, true),
+ new AnimationMapping('mixamorigLeftHandThumb1.quaternion', 'Left_thumb0', true, false, true),
+ new AnimationMapping('mixamorigLeftHandThumb2.quaternion', 'Left_thumb1', true, false, true),
+ new AnimationMapping('mixamorigLeftHandThumb3.quaternion', 'Left_thumb2', true, false, true),
+ new AnimationMapping('mixamorigLeftHandIndex1.quaternion', 'Left_indexFinger1', true, false, true),
+ new AnimationMapping('mixamorigLeftHandIndex2.quaternion', 'Left_indexFinger2', true, false, true),
+ new AnimationMapping('mixamorigLeftHandIndex3.quaternion', 'Left_indexFinger3', true, false, true),
+ new AnimationMapping('mixamorigLeftHandRing1.quaternion', 'Left_ringFinger1', true, false, true),
+ new AnimationMapping('mixamorigLeftHandRing2.quaternion', 'Left_ringFinger2', true, false, true),
+ new AnimationMapping('mixamorigLeftHandRing3.quaternion', 'Left_ringFinger3', true, false, true),
+ new AnimationMapping('mixamorigLeftHandPinky1.quaternion', 'Left_littleFinger1', true, false, true),
+ new AnimationMapping('mixamorigLeftHandPinky2.quaternion', 'Left_littleFinger2', true, false, true),
+ new AnimationMapping('mixamorigLeftHandPinky3.quaternion', 'Left_littleFinger3', true, false, true),
- new AnimationMapping('mixamorigRightShoulder.quaternion', 'Right_shoulder', true, false),
- new AnimationMapping('mixamorigRightArm.quaternion', 'Right_arm', true, false),
- new AnimationMapping('mixamorigRightForeArm.quaternion', 'Right_elbow', true, false),
- new AnimationMapping('mixamorigRightHand.quaternion', 'Right_wrist', true, false),
- new AnimationMapping('mixamorigRightHandMiddle1.quaternion', 'Right_middleFinger1', true, false),
- new AnimationMapping('mixamorigRightHandMiddle2.quaternion', 'Right_middleFinger2', true, false),
- new AnimationMapping('mixamorigRightHandMiddle3.quaternion', 'Right_middleFinger3', true, false),
- new AnimationMapping('mixamorigRightHandThumb1.quaternion', 'Right_thumb0', true, false),
- new AnimationMapping('mixamorigRightHandThumb2.quaternion', 'Right_thumb1', true, false),
- new AnimationMapping('mixamorigRightHandThumb3.quaternion', 'Right_thumb2', true, false),
- new AnimationMapping('mixamorigRightHandIndex1.quaternion', 'Right_indexFinger1', true, false),
- new AnimationMapping('mixamorigRightHandIndex2.quaternion', 'Right_indexFinger2', true, false),
- new AnimationMapping('mixamorigRightHandIndex3.quaternion', 'Right_indexFinger3', true, false),
- new AnimationMapping('mixamorigRightHandRing1.quaternion', 'Right_ringFinger1', true, false),
- new AnimationMapping('mixamorigRightHandRing2.quaternion', 'Right_ringFinger2', true, false),
- new AnimationMapping('mixamorigRightHandRing3.quaternion', 'Right_ringFinger3', true, false),
- new AnimationMapping('mixamorigRightHandPinky1.quaternion', 'Right_littleFinger1', true, false),
- new AnimationMapping('mixamorigRightHandPinky2.quaternion', 'Right_littleFinger2', true, false),
- new AnimationMapping('mixamorigRightHandPinky3.quaternion', 'Right_littleFinger3', true, false),
+ new AnimationMapping('mixamorigRightShoulder.quaternion', 'Right_shoulder', true, false, true),
+ new AnimationMapping('mixamorigRightArm.quaternion', 'Right_arm', true, false, true),
+ new AnimationMapping('mixamorigRightForeArm.quaternion', 'Right_elbow', true, false, true),
+ new AnimationMapping('mixamorigRightHand.quaternion', 'Right_wrist', true, false, true),
+ new AnimationMapping('mixamorigRightHandMiddle1.quaternion', 'Right_middleFinger1', true, false, true),
+ new AnimationMapping('mixamorigRightHandMiddle2.quaternion', 'Right_middleFinger2', true, false, true),
+ new AnimationMapping('mixamorigRightHandMiddle3.quaternion', 'Right_middleFinger3', true, false, true),
+ new AnimationMapping('mixamorigRightHandThumb1.quaternion', 'Right_thumb0', true, false, true),
+ new AnimationMapping('mixamorigRightHandThumb2.quaternion', 'Right_thumb1', true, false, true),
+ new AnimationMapping('mixamorigRightHandThumb3.quaternion', 'Right_thumb2', true, false, true),
+ new AnimationMapping('mixamorigRightHandIndex1.quaternion', 'Right_indexFinger1', true, false, true),
+ new AnimationMapping('mixamorigRightHandIndex2.quaternion', 'Right_indexFinger2', true, false, true),
+ new AnimationMapping('mixamorigRightHandIndex3.quaternion', 'Right_indexFinger3', true, false, true),
+ new AnimationMapping('mixamorigRightHandRing1.quaternion', 'Right_ringFinger1', true, false, true),
+ new AnimationMapping('mixamorigRightHandRing2.quaternion', 'Right_ringFinger2', true, false, true),
+ new AnimationMapping('mixamorigRightHandRing3.quaternion', 'Right_ringFinger3', true, false, true),
+ new AnimationMapping('mixamorigRightHandPinky1.quaternion', 'Right_littleFinger1', true, false, true),
+ new AnimationMapping('mixamorigRightHandPinky2.quaternion', 'Right_littleFinger2', true, false, true),
+ new AnimationMapping('mixamorigRightHandPinky3.quaternion', 'Right_littleFinger3', true, false, true),
- new AnimationMapping('mixamorigRightUpLeg.quaternion', 'Right_leg', false, false),
- new AnimationMapping('mixamorigRightLeg.quaternion', 'Right_knee', false, false),
- new AnimationMapping('mixamorigRightFoot.quaternion', 'Right_ankle', false, false),
- new AnimationMapping('mixamorigRightToeBase.quaternion', 'Right_toe', false, false),
+ new AnimationMapping('mixamorigRightUpLeg.quaternion', 'Right_leg', false, false, false),
+ new AnimationMapping('mixamorigRightLeg.quaternion', 'Right_knee', false, false, false),
+ new AnimationMapping('mixamorigRightFoot.quaternion', 'Right_ankle', false, false, false),
+ new AnimationMapping('mixamorigRightToeBase.quaternion', 'Right_toe', false, false, false),
- new AnimationMapping('mixamorigLeftUpLeg.quaternion', 'Left_leg', false, false),
- new AnimationMapping('mixamorigLeftLeg.quaternion', 'Left_knee', false, false),
- new AnimationMapping('mixamorigLeftFoot.quaternion', 'Left_ankle', false, false),
- new AnimationMapping('mixamorigLeftToeBase.quaternion', 'Left_toe', false, false),
+ new AnimationMapping('mixamorigLeftUpLeg.quaternion', 'Left_leg', false, false, false),
+ new AnimationMapping('mixamorigLeftLeg.quaternion', 'Left_knee', false, false, false),
+ new AnimationMapping('mixamorigLeftFoot.quaternion', 'Left_ankle', false, false, false),
+ new AnimationMapping('mixamorigLeftToeBase.quaternion', 'Left_toe', false, false, false),
];
diff --git a/avatars/animationHelpers.js b/avatars/animationHelpers.js
index 3a1aa5195e..85cf1a55d8 100644
--- a/avatars/animationHelpers.js
+++ b/avatars/animationHelpers.js
@@ -53,6 +53,8 @@ const localQuaternion4 = new Quaternion();
const localQuaternion5 = new Quaternion();
const localQuaternion6 = new Quaternion();
+const identityQuaternion = new Quaternion();
+
let animations;
let animationStepIndices;
// let animationsBaseModel;
@@ -63,6 +65,7 @@ let aimAnimations;
let sitAnimations;
let danceAnimations;
let emoteAnimations;
+let pickUpAnimations;
// let throwAnimations;
// let crouchAnimations;
let activateAnimations;
@@ -74,6 +77,7 @@ let narutoRunAnimations;
// let swordSideSlash;
// let swordTopDownSlash;
let hurtAnimations;
+let holdAnimations;
const defaultSitAnimation = 'chair';
// const defaultUseAnimation = 'combo';
@@ -322,6 +326,7 @@ export const loadPromise = (async () => {
eat: animations.find(a => a.isEating),
drink: animations.find(a => a.isDrinking),
throw: animations.find(a => a.isThrow),
+ pickUpThrow: animations.find(a => a.isPickUpThrow),
bowDraw: animations.find(a => a.isBowDraw),
bowIdle: animations.find(a => a.isBowIdle),
bowLoose: animations.find(a => a.isBowLoose),
@@ -353,9 +358,19 @@ export const loadPromise = (async () => {
victory: animations.find(a => a.isVictory),
victorySoft: animations.find(a => a.isVictorySoft),
};
- // throwAnimations = {
- // throw: animations.find(a => a.isThrow),
- // };
+ pickUpAnimations = {
+ pickUp: animations.find(a => a.isPickUp),
+ pickUpIdle: animations.find(a => a.isPickUpIdle),
+ pickUpThrow: animations.find(a => a.isPickUpThrow),
+ putDown: animations.find(a => a.isPutDown),
+ pickUpZelda: animations.find(a => a.isPickUpZelda),
+ pickUpIdleZelda: animations.find(a => a.isPickUpIdleZelda),
+ putDownZelda: animations.find(a => a.isPutDownZelda),
+ };
+ /* throwAnimations = {
+ throw: animations.find(a => a.isThrow),
+ pickUpThrow: animations.find(a => a.isPickUpThrow),
+ }; */
/* crouchAnimations = {
crouch: animations.find(a => a.isCrouch),
}; */
@@ -365,6 +380,7 @@ export const loadPromise = (async () => {
grab_up: {animation: animations.index['grab_up.fbx'], speedFactor: 1.2},
grab_left: {animation: animations.index['grab_left.fbx'], speedFactor: 1.2},
grab_right: {animation: animations.index['grab_right.fbx'], speedFactor: 1.2},
+ pick_up: {animation: animations.index['pick_up.fbx'], speedFactor: 1},
};
narutoRunAnimations = {
narutoRun: animations.find(a => a.isNarutoRun),
@@ -373,6 +389,9 @@ export const loadPromise = (async () => {
pain_back: animations.index['pain_back.fbx'],
pain_arch: animations.index['pain_arch.fbx'],
};
+ holdAnimations = {
+ pick_up_idle: animations.index['pick_up_idle.fbx'],
+ };
{
const down10QuaternionArray = new Quaternion()
.setFromAxisAngle(new Vector3(1, 0, 0), Math.PI * 0.1)
@@ -743,6 +762,7 @@ export const _applyAnimation = (avatar, now, moveFactors) => {
animationTrackName: k,
dst,
// isTop,
+ isArm,
} = spec;
const t2 = avatar.jumpTime / 1000 * 0.6 + 0.7;
@@ -750,6 +770,14 @@ export const _applyAnimation = (avatar, now, moveFactors) => {
const v2 = src2.evaluate(t2);
dst.fromArray(v2);
+
+ if (avatar.holdState && isArm) {
+ const holdAnimation = holdAnimations['pick_up_idle'];
+ const src2 = holdAnimation.interpolants[k];
+ const t2 = (now / 1000) % holdAnimation.duration;
+ const v2 = src2.evaluate(t2);
+ dst.fromArray(v2);
+ }
};
}
if (avatar.sitState) {
@@ -1094,6 +1122,67 @@ export const _applyAnimation = (avatar, now, moveFactors) => {
avatar.useAnimation = '';
}
};
+ } else if (avatar.holdState) {
+ return spec => {
+ const {
+ animationTrackName: k,
+ dst,
+ lerpFn,
+ boneName,
+ isTop,
+ isPosition,
+ isArm,
+ } = spec;
+
+ _handleDefault(spec);
+
+ const holdAnimation = holdAnimations['pick_up_idle'];
+ const src2 = holdAnimation.interpolants[k];
+ const t2 = (now / 1000) % holdAnimation.duration;
+ const v2 = src2.evaluate(t2);
+
+ if (isTop) {
+ if (boneName === 'Left_arm' || boneName === 'Right_arm') {
+ dst.fromArray(v2);
+ } else {
+ if (isArm) {
+ dst
+ .slerp(identityQuaternion, walkRunFactor * 0.7 + crouchFactor * (1 - idleWalkFactor) * 0.5)
+ .premultiply(localQuaternion2.fromArray(v2));
+ } else {
+ dst
+ .premultiply(localQuaternion2.fromArray(v2));
+ }
+ }
+ }
+ };
+ } else if (avatar.pickUpState) {
+ return spec => {
+ const {
+ animationTrackName: k,
+ dst,
+ /* lerpFn,
+ isTop,
+ isPosition, */
+ } = spec;
+
+ const pickUpAnimation = pickUpAnimations['pickUpZelda'];
+ const pickUpIdleAnimation = pickUpAnimations['pickUpIdleZelda'];
+
+ const t2 = avatar.pickUpTime / 1000;
+ if (t2 < pickUpAnimation.duration) {
+ const src2 = pickUpAnimation.interpolants[k];
+ const v2 = src2.evaluate(t2);
+
+ dst.fromArray(v2);
+ } else {
+ const t3 = (t2 - pickUpAnimation.duration) % pickUpIdleAnimation.duration;
+ const src2 = pickUpIdleAnimation.interpolants[k];
+ const v2 = src2.evaluate(t3);
+
+ dst.fromArray(v2);
+ }
+ };
}
return _handleDefault;
};
@@ -1103,6 +1192,7 @@ export const _applyAnimation = (avatar, now, moveFactors) => {
animationTrackName: k,
dst,
// isTop,
+ isArm,
lerpFn,
} = spec;
@@ -1118,6 +1208,14 @@ export const _applyAnimation = (avatar, now, moveFactors) => {
localQuaternion.fromArray(v2),
f,
);
+
+ if (avatar.holdState && isArm) {
+ const holdAnimation = holdAnimations['pick_up_idle'];
+ const src2 = holdAnimation.interpolants[k];
+ const t2 = (now / 1000) % holdAnimation.duration;
+ const v2 = src2.evaluate(t2);
+ dst.fromArray(v2);
+ }
}
};
@@ -1134,8 +1232,9 @@ export const _applyAnimation = (avatar, now, moveFactors) => {
let defaultAnimation = 'grab_forward';
- if (localPlayer.getAction('activate').animationName) {
- defaultAnimation = localPlayer.getAction('activate').animationName;
+ const activateAction = localPlayer.getAction('activate');
+ if (activateAction.animationName) {
+ defaultAnimation = activateAction.animationName;
}
const activateAnimation = activateAnimations[defaultAnimation].animation;
diff --git a/avatars/avatars.js b/avatars/avatars.js
index 21e9926653..2f0198ad38 100644
--- a/avatars/avatars.js
+++ b/avatars/avatars.js
@@ -913,6 +913,9 @@ class Avatar {
this.sitAnimation = null;
// this.activateState = false;
this.activateTime = 0;
+ this.holdState = false;
+ this.pickUpState = false;
+ this.pickUpTime = 0;
// this.danceState = false;
this.danceFactor = 0;
this.danceAnimation = null;
diff --git a/avatars/microphone-worker.js b/avatars/microphone-worker.js
index 70c0075e2d..78bf7a9612 100644
--- a/avatars/microphone-worker.js
+++ b/avatars/microphone-worker.js
@@ -2,7 +2,8 @@ class MicrophoneWorker extends EventTarget {
constructor(options = {}) {
super();
- this.audioWorkletNode = null;
+ const gainNode = new GainNode(options.audioContext);
+ this.gainNode = gainNode;
const audioWorkletNode = new AudioWorkletNode(options.audioContext, 'volume-processor');
audioWorkletNode.port.postMessage(JSON.stringify({
@@ -30,13 +31,14 @@ class MicrophoneWorker extends EventTarget {
};
this.audioWorkletNode = audioWorkletNode;
- this.audioWorkletNode.connect(options.audioContext.gain);
+
+ gainNode.connect(audioWorkletNode);
+ audioWorkletNode.connect(options.audioContext.gain);
}
getInput() {
- return this.audioWorkletNode;
+ return this.gainNode;
}
close() {
- // this.mediaStreamSource && this.mediaStreamSource.disconnect();
if (this.audioWorkletNode) {
this.audioWorkletNode.disconnect();
this.audioWorkletNode.port.onmessage = null;
diff --git a/avatars/util.mjs b/avatars/util.mjs
index a3bffd3904..2ef2439db4 100644
--- a/avatars/util.mjs
+++ b/avatars/util.mjs
@@ -551,6 +551,13 @@ export const decorateAnimation = animation => {
animation.isRunning = /fast run|running|left strafe(?: reverse)?\.|right strafe(?: reverse)?\./i.test(animation.name);
animation.isActivate = /object/i.test(animation.name);
animation.isNarutoRun = /naruto run/i.test(animation.name);
+ animation.isPickUp = /pick_up/i.test(animation.name);
+ animation.isPickUpIdle = /pick_up_idle/i.test(animation.name);
+ animation.isPickUpThrow = /pick_up_throw/i.test(animation.name);
+ animation.isPutDown = /put_down/i.test(animation.name);
+ animation.isPickUpZelda = /pick_up_zelda/i.test(animation.name);
+ animation.isPickUpIdleZelda = /pick_up_idle_zelda/i.test(animation.name);
+ animation.isPutDownZelda = /put_down_zelda/i.test(animation.name);
animation.isReverse = /reverse/i.test(animation.name);
// animation.isLanding = /landing/i.test(animation.name);
// animation.isChargeJumpFall = /charge_jump_fall/i.test(animation.name);
diff --git a/bin/basisu b/bin/basisu
new file mode 100644
index 0000000000..c1aabb96f1
Binary files /dev/null and b/bin/basisu differ
diff --git a/bin/basisu_opencl b/bin/basisu_opencl
new file mode 100644
index 0000000000..50490a08d2
Binary files /dev/null and b/bin/basisu_opencl differ
diff --git a/camera-manager.js b/camera-manager.js
index 644cee373b..19de6f2373 100644
--- a/camera-manager.js
+++ b/camera-manager.js
@@ -1,33 +1,104 @@
import * as THREE from 'three';
-import {getRenderer, camera} from './renderer.js';
+import {getRenderer, camera, scene} from './renderer.js';
// import * as notifications from './notifications.js';
-import metaversefile from 'metaversefile';
import physicsManager from './physics-manager.js';
import {shakeAnimationSpeed} from './constants.js';
import Simplex from './simplex-noise.js';
+import {getLocalPlayer} from './players.js';
// import alea from './alea.js';
-import * as sounds from './sounds.js';
+// import * as sounds from './sounds.js';
import {minFov, maxFov, midFov} from './constants.js';
+// import { updateRaycasterFromMouseEvent } from './util.js';
+import easing from './easing.js';
+
+const cubicBezier = easing(0, 1, 0, 1);
+const cubicBezier2 = easing(0.5, 0, 0.5, 1);
const localVector = new THREE.Vector3();
const localVector2 = new THREE.Vector3();
const localVector3 = new THREE.Vector3();
+const localVector4 = new THREE.Vector3();
+const localVector5 = new THREE.Vector3();
+const localVector6 = new THREE.Vector3();
+const localVector7 = new THREE.Vector3();
+const localVector8 = new THREE.Vector3();
+const localVector9 = new THREE.Vector3();
+const localVector10 = new THREE.Vector3();
const localQuaternion = new THREE.Quaternion();
+const localQuaternion2 = new THREE.Quaternion();
+const localQuaternion3 = new THREE.Quaternion();
+const localQuaternion4 = new THREE.Quaternion();
const localEuler = new THREE.Euler();
+const localMatrix = new THREE.Matrix4();
+
+/*
+Anon: "Hey man, can I get your autograph?"
+Drake: "Depends. What's it worth to you?"
+Anon: "Your first born child"
+Drake: "No thanks. I don't think your child would be worth very much."
+*/
+
+const zeroVector = new THREE.Vector3(0, 0, 0);
+const upVector = new THREE.Vector3(0, 1, 0);
+const cameraOffsetDefault = 0.65;
+const maxFocusTime = 300;
const cameraOffset = new THREE.Vector3();
let cameraOffsetTargetZ = cameraOffset.z;
+let cameraOffsetLimitZ = Infinity;
+
+const physicsScene = physicsManager.getScene();
-let cameraOffsetZ = cameraOffset.z;
+// let cameraOffsetZ = cameraOffset.z;
const rayVectorZero = new THREE.Vector3(0,0,0);
-const rayVectorUp = new THREE.Vector3(0,1,0);
-const rayStartPos = new THREE.Vector3(0,0,0);
-const rayDirection = new THREE.Vector3(0,0,0);
-const rayOffsetPoint = new THREE.Vector3(0,0,0);
-const rayMatrix = new THREE.Matrix4();
-const rayQuaternion = new THREE.Quaternion();
-const rayOriginArray = [new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0)]; // 6 elements
-const rayDirectionArray = [new THREE.Quaternion(),new THREE.Quaternion(),new THREE.Quaternion(),new THREE.Quaternion(),new THREE.Quaternion(),new THREE.Quaternion()]; // 6 elements
+// const rayVectorUp = new THREE.Vector3(0,1,0);
+// const rayStartPos = new THREE.Vector3(0,0,0);
+// const rayDirection = new THREE.Vector3(0,0,0);
+// const rayOffsetPoint = new THREE.Vector3(0,0,0);
+// const rayMatrix = new THREE.Matrix4();
+// const rayQuaternion = new THREE.Quaternion();
+// const rayOriginArray = [new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0),new THREE.Vector3(0,0,0)]; // 6 elements
+// const rayDirectionArray = [new THREE.Quaternion(),new THREE.Quaternion(),new THREE.Quaternion(),new THREE.Quaternion(),new THREE.Quaternion(),new THREE.Quaternion()]; // 6 elements
+
+/* function getNormal(u, v) {
+ return localPlane.setFromCoplanarPoints(zeroVector, u, v).normal;
+} */
+/* function signedAngleTo(u, v) {
+ // Get the signed angle between u and v, in the range [-pi, pi]
+ const angle = u.angleTo(v);
+ console.log('signed angle to', angle, u.dot(v));
+ return (u.dot(v) >= 0 ? 1 : -1) * angle;
+} */
+/* function signedAngleTo(a, b, v) {
+ const s = v.crossVectors(a, b).length();
+ // s = length(cross_product(a, b))
+ const c = a.dot(b);
+ const angle = Math.atan2(s, c);
+ console.log('get signed angle', s, c, angle);
+ return angle;
+} */
+
+const getSideOfY = (() => {
+ const localVector = new THREE.Vector3();
+ const localVector2 = new THREE.Vector3();
+ const localQuaternion = new THREE.Quaternion();
+ const localPlane = new THREE.Plane();
+
+ function getSideOfY(a, b) {
+ localQuaternion.setFromRotationMatrix(
+ localMatrix.lookAt(
+ zeroVector,
+ a,
+ upVector
+ )
+ );
+ const rightVector = localVector.set(1, 0, 0).applyQuaternion(localQuaternion);
+ localPlane.setFromNormalAndCoplanarPoint(rightVector, a);
+ const distance = localPlane.distanceToPoint(b, localVector2);
+ return distance >= 0 ? 1 : -1;
+ }
+ return getSideOfY;
+})();
// const lastCameraQuaternion = new THREE.Quaternion();
// let lastCameraZ = 0;
@@ -47,15 +118,13 @@ class Shake extends THREE.Object3D {
}
}
-function lerpNum(value1, value2, amount) {
+/* function lerpNum(value1, value2, amount) {
amount = amount < 0 ? 0 : amount;
amount = amount > 1 ? 1 : amount;
return value1 + (value2 - value1) * amount;
}
// Raycast from player to camera corner
function initCameraRayParams(arrayIndex,originPoint) {
- const localPlayer = metaversefile.useLocalPlayer();
-
rayDirection.subVectors(localPlayer.position, originPoint).normalize();
rayMatrix.lookAt(rayDirection,rayVectorZero,rayVectorUp);
@@ -71,8 +140,6 @@ function initCameraRayParams(arrayIndex,originPoint) {
}
// Raycast from player postition with small offset
function initOffsetRayParams(arrayIndex,originPoint) {
- const localPlayer = metaversefile.useLocalPlayer();
-
rayDirection.subVectors(localPlayer.position, camera.position).normalize();
rayMatrix.lookAt(rayDirection,rayVectorZero,rayVectorUp);
@@ -80,7 +147,25 @@ function initOffsetRayParams(arrayIndex,originPoint) {
rayOriginArray[arrayIndex].copy(originPoint);
rayDirectionArray[arrayIndex].copy(rayQuaternion);
-}
+} */
+
+/* const redMesh = (() => {
+ const geometry = new THREE.BoxGeometry(0.1, 0.1, 0.1);
+ const material = new THREE.MeshBasicMaterial({color: 0xff0000});
+ const mesh = new THREE.Mesh(geometry, material);
+ // mesh.visible = false;
+ return mesh;
+})();
+scene.add(redMesh);
+
+const blueMesh = (() => {
+ const geometry = new THREE.BoxGeometry(0.1, 0.1, 0.1);
+ const material = new THREE.MeshBasicMaterial({color: 0x0000ff});
+ const mesh = new THREE.Mesh(geometry, material);
+ // mesh.visible = false;
+ return mesh;
+})();
+scene.add(blueMesh); */
class CameraManager extends EventTarget {
constructor() {
@@ -90,12 +175,24 @@ class CameraManager extends EventTarget {
// this.pointerLockEpoch = 0;
this.shakes = [];
this.focus = false;
- this.lastFocusChangeTime = 0;
+ this.lastFocusChangeTime = 0; // XXX this needs to be removed
this.fovFactor = 0;
this.lastNonzeroDirectionVector = new THREE.Vector3(0, 0, -1);
- this.lastNonzeroDirectionVector = new THREE.Vector3(0, 0, -1);
- this.fovFactor = 0;
+ this.targetType = 'dynamic';
+ this.target = null;
+ this.target2 = null;
+ this.lastTarget = null;
+ this.targetPosition = new THREE.Vector3(0, 0, 0);
+ this.targetQuaternion = new THREE.Quaternion();
+ this.targetFov = camera.fov;
+ this.sourcePosition = new THREE.Vector3();
+ this.sourceQuaternion = new THREE.Quaternion();
+ this.sourceFov = camera.fov;
+ this.lerpStartTime = 0;
+ this.lastTimestamp = 0;
+ this.cinematicScript = null;
+ this.cinematicScriptStartTime = -1;
document.addEventListener('pointerlockchange', e => {
let pointerLockElement = document.pointerLockElement;
@@ -174,20 +271,37 @@ class CameraManager extends EventTarget {
document.exitPointerLock();
}
getMode() {
- const f = -cameraOffset.z;
- if (f < 0.5) {
- return 'firstperson';
- } else {
+ if (this.target || this.cinematicScript) {
return 'isometric';
+ } else {
+ return cameraOffset.z > -0.5 ? 'firstperson' : 'isometric';
}
}
getCameraOffset() {
return cameraOffset;
}
- handleWheelEvent(e) {
- // e.preventDefault();
+ handleMouseMove(e) {
+ const {movementX, movementY} = e;
- cameraOffsetTargetZ = Math.min(cameraOffsetTargetZ - e.deltaY * 0.01, 0);
+ camera.position.add(localVector.copy(this.getCameraOffset()).applyQuaternion(camera.quaternion));
+
+ camera.rotation.y -= movementX * Math.PI * 2 * 0.0005;
+ camera.rotation.x -= movementY * Math.PI * 2 * 0.0005;
+ camera.rotation.x = Math.min(Math.max(camera.rotation.x, -Math.PI * 0.35), Math.PI / 2);
+ camera.quaternion.setFromEuler(camera.rotation);
+
+ camera.position.sub(localVector.copy(this.getCameraOffset()).applyQuaternion(camera.quaternion));
+
+ camera.updateMatrixWorld();
+
+ if (!this.target) {
+ this.targetQuaternion.copy(camera.quaternion);
+ }
+ }
+ handleWheelEvent(e) {
+ if (!this.target) {
+ cameraOffsetTargetZ = Math.min(cameraOffset.z - e.deltaY * 0.01, 0);
+ }
}
addShake(position, intensity, radius, decay) {
const startTime = performance.now();
@@ -218,11 +332,7 @@ class CameraManager extends EventTarget {
setFocus(focus) {
if (focus !== this.focus) {
this.focus = focus;
- this.lastFocusChangeTime = performance.now();
-
- if (this.focus) {
- sounds.playSoundName('zTargetCenter');
- }
+ // this.lastFocusChangeTime = performance.now();
this.dispatchEvent(new MessageEvent('focuschange', {
data: {
@@ -231,122 +341,277 @@ class CameraManager extends EventTarget {
}));
}
}
- updatePost(timestamp, timeDiff) {
- // console.log('camera manager update post');
+ setDynamicTarget(target = null, target2 = null) {
+ this.targetType = 'dynamic';
+ this.target = target;
+ this.target2 = target2;
- const localPlayer = metaversefile.useLocalPlayer();
- const renderer = getRenderer();
- const session = renderer.xr.getSession();
- const startMode = this.getMode();
+ // console.log('set dynamic target', this.target, this.target2, new Error().stack);
+
+ if (this.target) {
+ const _setCameraToDynamicTarget = () => {
+ this.target.matrixWorld.decompose(localVector, localQuaternion, localVector2);
+
+ if (this.target2) {
+ this.target2.matrixWorld.decompose(localVector3, localQuaternion2, localVector4);
+
+ const faceDirection = localVector5.set(0, 0, 1).applyQuaternion(localQuaternion);
+ const lookQuaternion = localQuaternion3.setFromRotationMatrix(
+ localMatrix.lookAt(
+ localVector,
+ localVector3,
+ upVector,
+ )
+ );
+ const lookDirection = localVector6.set(0, 0, -1).applyQuaternion(lookQuaternion);
+
+ const sideOfY = getSideOfY(faceDirection, lookDirection);
+ const face = faceDirection.dot(lookDirection) >= 0 ? 1 : -1;
+
+ const dollyPosition = localVector7.copy(localVector)
+ .add(localVector3)
+ .multiplyScalar(0.5);
+
+ dollyPosition.add(
+ localVector8.set(sideOfY * -0.3, 0, 0).applyQuaternion(lookQuaternion)
+ );
+
+ const lookToDollyVector = localVector9.copy(dollyPosition).sub(localVector).normalize();
+
+ this.targetPosition.copy(localVector)
+ .add(lookToDollyVector);
+ this.targetQuaternion.setFromRotationMatrix(
+ localMatrix.lookAt(
+ lookToDollyVector,
+ zeroVector,
+ upVector
+ )
+ );
+
+ if (face < 0) {
+ this.targetPosition.add(localVector10.set(0, 0, -0.8).applyQuaternion(this.targetQuaternion));
+ this.targetQuaternion.multiply(localQuaternion4.setFromAxisAngle(upVector, Math.PI));
+ this.targetPosition.add(localVector10.set(0, 0, 0.8).applyQuaternion(this.targetQuaternion));
+ } else if (!this.lastTarget) {
+ this.targetPosition.add(localVector10.set(0, 0, -cameraOffsetDefault).applyQuaternion(this.targetQuaternion));
+ this.targetQuaternion.multiply(localQuaternion4.setFromAxisAngle(upVector, sideOfY * -Math.PI * 0.87));
+ this.targetPosition.add(localVector10.set(0, 0, cameraOffsetDefault).applyQuaternion(this.targetQuaternion));
+ }
+ } else {
+ this.targetPosition.copy(localVector)
+ .add(localVector2.set(0, 0, 1).applyQuaternion(localQuaternion));
+ this.targetQuaternion.copy(localQuaternion);
+ }
- const _setCameraOffset = () => {
- let newVal = cameraOffsetTargetZ;
- let hasIntersection = false;
+ this.sourceFov = camera.fov;
+ this.targetFov = minFov;
- // Camera - Top left
- initCameraRayParams(0,rayStartPos.set(-1, 1, ( camera.near + camera.far ) / ( camera.near - camera.far )).unproject( camera ));
+ this.sourcePosition.copy(camera.position);
+ this.sourceQuaternion.copy(camera.quaternion);
+ const timestamp = performance.now();
+ this.lerpStartTime = timestamp;
+ this.lastTimestamp = timestamp;
- // Camera - Bottom left
- initCameraRayParams(1,rayStartPos.set(-1, -1, ( camera.near + camera.far ) / ( camera.near - camera.far )).unproject( camera ));
+ // cameraOffsetZ = -cameraOffsetDefault;
+ cameraOffset.z = -cameraOffsetDefault;
+ };
+ _setCameraToDynamicTarget();
+ } else {
+ this.setCameraToNullTarget();
+ }
+ }
+ setStaticTarget(target = null, target2 = null) {
+ this.targetType = 'static';
+ this.target = target;
+ this.target2 = target2;
- // Camera - Top right
- initCameraRayParams(2,rayStartPos.set(1, 1, ( camera.near + camera.far ) / ( camera.near - camera.far )).unproject( camera ));
+ // console.log('set static target', this.target, this.target2, new Error().stack);
- // Camera - Bottom right
- initCameraRayParams(3,rayStartPos.set(1, -1, ( camera.near + camera.far ) / ( camera.near - camera.far )).unproject( camera ));
+ if (this.target) {
+ const _setCameraToStaticTarget = () => {
+ // this.target.matrixWorld.decompose(localVector, localQuaternion, localVector2);
- // Player postition - offset to left
- rayStartPos.copy(localPlayer.position);
- rayOffsetPoint.set(-1, 0, 0);
- rayOffsetPoint.applyQuaternion(camera.quaternion);
- rayOffsetPoint.normalize();
- rayStartPos.add(rayOffsetPoint);
- initOffsetRayParams(4,rayStartPos);
-
- // Player postition - offset to right
- rayStartPos.copy(localPlayer.position);
- rayOffsetPoint.set(1, 0, 0);
- rayOffsetPoint.applyQuaternion(camera.quaternion);
- rayOffsetPoint.normalize();
- rayStartPos.add(rayOffsetPoint);
- initOffsetRayParams(5,rayStartPos);
-
- let collisionArray = physicsManager.raycastArray(rayOriginArray, rayDirectionArray, 6);
-
- // Check collision from player to camera corners
- for(let i=0;i<4;i++) {
- if ((collisionArray.hit[i] === 1) && (collisionArray.distance[i] <= -1 * newVal)) {
- if (newVal < (-1 * (collisionArray.distance[i]-0.15))) {
- newVal = (-1 * (collisionArray.distance[i]-0.15));
- hasIntersection = true;
- //console.log(i + " " + collisionArray.distance[i]+ " " + collisionArray.hit[i]);
+ cameraOffsetTargetZ = -1;
+ cameraOffset.z = cameraOffsetTargetZ;
+
+ const localPlayer = getLocalPlayer();
+ const targetPosition = localVector.copy(localPlayer.position)
+ .add(localVector2.set(0, 0, -cameraOffsetTargetZ).applyQuaternion(localPlayer.quaternion));
+ const targetQuaternion = localPlayer.quaternion;
+ // camera.position.lerp(targetPosition, 0.2);
+ // camera.quaternion.slerp(targetQuaternion, 0.2);
+
+ this.sourcePosition.copy(camera.position);
+ this.sourceQuaternion.copy(camera.quaternion);
+ this.sourceFov = camera.fov;
+ this.targetPosition.copy(targetPosition);
+ this.targetQuaternion.copy(targetQuaternion);
+ this.targetFov = midFov;
+ const timestamp = performance.now();
+ this.lerpStartTime = timestamp;
+ this.lastTimestamp = timestamp;
+
+ // cameraOffsetZ = -cameraOffsetDefault;
+ // cameraOffset.z = -cameraOffsetDefault;
+ };
+ _setCameraToStaticTarget();
+ } else {
+ this.setCameraToNullTarget();
+ }
+ }
+ setCameraToNullTarget() {
+ this.sourcePosition.copy(camera.position);
+ this.sourceQuaternion.copy(camera.quaternion);
+ this.sourceFov = camera.fov;
+ // this.targetPosition.copy(camera.position);
+ // this.targetQuaternion.copy(camera.quaternion);
+ this.targetFov = minFov;
+ const timestamp = performance.now();
+ this.lerpStartTime = timestamp;
+ this.lastTimestamp = timestamp;
+ }
+ startCinematicScript(cinematicScript) {
+ this.cinematicScript = cinematicScript;
+ this.cinematicScriptStartTime = performance.now();
+ }
+ updatePost(timestamp, timeDiff) {
+ const renderer = getRenderer();
+ const session = renderer.xr.getSession();
+ const localPlayer = getLocalPlayer();
+
+ if (this.target) {
+ const _setLerpDelta = (position, quaternion) => {
+ const lerpTime = 2000;
+ const lastTimeFactor = Math.min(Math.max(cubicBezier((this.lastTimestamp - this.lerpStartTime) / lerpTime), 0), 1);
+ const currentTimeFactor = Math.min(Math.max(cubicBezier((timestamp - this.lerpStartTime) / lerpTime), 0), 1);
+ if (lastTimeFactor !== currentTimeFactor) {
+ {
+ const lastLerp = localVector.copy(this.sourcePosition).lerp(this.targetPosition, lastTimeFactor);
+ const currentLerp = localVector2.copy(this.sourcePosition).lerp(this.targetPosition, currentTimeFactor);
+ position.add(currentLerp).sub(lastLerp);
+ }
+ {
+ const lastLerp = localQuaternion.copy(this.sourceQuaternion).slerp(this.targetQuaternion, lastTimeFactor);
+ const currentLerp = localQuaternion2.copy(this.sourceQuaternion).slerp(this.targetQuaternion, currentTimeFactor);
+ quaternion.premultiply(lastLerp.invert()).premultiply(currentLerp);
}
}
- }
- // Check collision from player pos and small offset to left and right - to camera center
- let offsetCollisionCount = 0;
- for(let i=4;i<6;i++) {
- if ((collisionArray.hit[i] === 1) && (collisionArray.distance[i] <= (-1 * cameraOffsetTargetZ))) {
- offsetCollisionCount++;
- }
- }
+ this.lastTimestamp = timestamp;
+ };
+ _setLerpDelta(camera.position, camera.quaternion);
+ camera.updateMatrixWorld();
+ } else if (this.cinematicScript) {
+ const timeDiff = timestamp - this.cinematicScriptStartTime;
+ // find the line in the script that we are currently on
+ let currentDuration = 0;
+ const currentLineIndex = (() => {
+ let i;
+ for (i = 0; i < this.cinematicScript.length; i++) {
+ const currentLine = this.cinematicScript[i];
+ // const nextLine = this.cinematicScript[i + 1];
+
+ if (currentDuration + currentLine.duration > timeDiff) {
+ // return currentLine;
+ break;
+ } else {
+ currentDuration += currentLine.duration;
+ }
- // Discard collision with small objects
- if (hasIntersection && (offsetCollisionCount === 0)) {
- hasIntersection = false;
- newVal = cameraOffsetTargetZ;
- }
-
- /* // Remove jitter when there is no movement
- if (lastCameraQuaternion.equals(camera.quaternion) && lastCameraZ === cameraOffsetTargetZ) {
- if (lastCameraValidZ < newVal) {
- lastCameraValidZ = newVal;
+ // const lineDuration = this.cinematicScript[i].duration;
+ // currentDuration += lineDuration;
+ }
+ return i < this.cinematicScript.length ? i : -1;
+ })();
+
+ if (currentLineIndex !== -1) {
+ // calculate how far into the line we are, in 0..1
+ const currentLine = this.cinematicScript[currentLineIndex];
+ const {type} = currentLine;
+ switch (type) {
+ case 'set': {
+ camera.position.copy(currentLine.position);
+ camera.quaternion.copy(currentLine.quaternion);
+ camera.updateMatrixWorld();
+ break;
+ }
+ case 'move': {
+ let factor = Math.min(Math.max((timeDiff - currentDuration) / currentLine.duration, 0), 1);
+ if (factor < 1) {
+ factor = cubicBezier2(factor);
+ const previousLine = this.cinematicScript[currentLineIndex - 1];
+
+ camera.position.copy(previousLine.position).lerp(currentLine.position, factor);
+ camera.quaternion.copy(previousLine.quaternion).slerp(currentLine.quaternion, factor);
+ camera.updateMatrixWorld();
+
+ // console.log('previous line', previousLine, camera.position.toArray().join(','), camera.quaternion.toArray().join(','), factor);
+ /* if (isNaN(camera.position.x)) {
+ debugger;
+ } */
+ } else {
+ this.cinematicScript = null;
+ }
+ break;
+ }
+ default: {
+ throw new Error('unknown cinematic script line type: ' + type);
+ }
}
- if (newVal < lastCameraValidZ)
- newVal = lastCameraValidZ;
- } else { */
- // lastCameraQuaternion.copy(camera.quaternion);
- // lastCameraZ = cameraOffsetTargetZ;
- // lastCameraValidZ = cameraOffsetTargetZ;
- // }
-
- // Slow zoom out if there is no intersection
- cameraOffsetZ = lerpNum(cameraOffsetZ,newVal, 0.2);
-
- // Fast zoom in to the point of intersection
- if (hasIntersection) {
- cameraOffsetZ = newVal;
- }
-
- const zDiff = Math.abs(cameraOffset.z - cameraOffsetZ);
- if (zDiff === 0) {
- // nothing
} else {
- // camera.position.add(localVector.copy(cameraOffset).applyQuaternion(camera.quaternion));
- cameraOffset.z = cameraOffsetZ;
- // camera.position.sub(localVector.copy(cameraOffset).applyQuaternion(camera.quaternion));
- // camera.updateMatrixWorld();
+ // console.log('no line', timeDiff, this.cinematicScript.slice());
+ this.cinematicScript = null;
}
- };
- _setCameraOffset();
-
- const endMode = this.getMode();
- if (endMode !== startMode) {
- this.dispatchEvent(new MessageEvent('modechange', {
- data: {
- mode: endMode,
- },
- }));
- }
+ } else {
+ const _bumpCamera = () => {
+ const direction = localVector.set(0, 0, 1)
+ .applyQuaternion(camera.quaternion);
+ const backOffset = 1;
+ // const cameraBackThickness = 0.5;
+
+ const sweepDistance = Math.max(-cameraOffsetTargetZ, 0);
+
+ // console.log('offset', cameraOffsetTargetZ);
+
+ cameraOffsetLimitZ = -Infinity;
+
+ if (sweepDistance > 0) {
+ const halfExtents = localVector2.set(0.5, 0.5, 0.1);
+ const maxHits = 1;
+
+ const result = physicsScene.sweepBox(
+ localVector3.copy(localPlayer.position)
+ .add(localVector4.copy(direction).multiplyScalar(backOffset)),
+ camera.quaternion,
+ halfExtents,
+ direction,
+ sweepDistance,
+ maxHits,
+ );
+ if (result.length > 0) {
+ const distance = result[0].distance;
+ cameraOffsetLimitZ = distance < 0.5 ? 0 : -distance;
+ }
+ }
+ };
+ _bumpCamera();
+
+ const _lerpCameraOffset = () => {
+ const lerpFactor = 0.15;
+ let cameraOffsetZ = Math.max(cameraOffsetTargetZ, cameraOffsetLimitZ);
+ if (cameraOffsetZ > -0.5) {
+ cameraOffsetZ = 0;
+ }
+ cameraOffset.z = cameraOffset.z * (1-lerpFactor) + cameraOffsetZ*lerpFactor;
+ };
+ _lerpCameraOffset();
- const _setCameraToAvatar = () => {
- if (!this.focus) {
+ const _setFreeCamera = () => {
const avatarCameraOffset = session ? rayVectorZero : this.getCameraOffset();
const avatarHeight = localPlayer.avatar ? localPlayer.avatar.height : 0;
const crouchOffset = avatarHeight * (1 - localPlayer.getCrouchFactor()) * 0.5;
-
- switch (endMode) {
+
+ switch (this.getMode()) {
case 'firstperson': {
if (localPlayer.avatar) {
const boneNeck = localPlayer.avatar.foundModelBones['Neck'];
@@ -358,28 +623,28 @@ class CameraManager extends EventTarget {
boneNeck.updateMatrixWorld();
if (boneEyeL && boneEyeR) {
- boneEyeL.matrixWorld.decompose(localVector, localQuaternion, localVector3);
- boneEyeR.matrixWorld.decompose(localVector2, localQuaternion, localVector3);
- localVector3.copy(localVector.add(localVector2).multiplyScalar(0.5));
+ boneEyeL.matrixWorld.decompose(localVector2, localQuaternion, localVector4);
+ boneEyeR.matrixWorld.decompose(localVector3, localQuaternion, localVector4);
+ localVector4.copy(localVector2.add(localVector3).multiplyScalar(0.5));
} else {
- boneHead.matrixWorld.decompose(localVector, localQuaternion, localVector3);
- localVector.add(localVector2.set(0, 0, 0.1).applyQuaternion(localQuaternion));
- localVector3.copy(localVector);
+ boneHead.matrixWorld.decompose(localVector2, localQuaternion, localVector4);
+ localVector2.add(localVector3.set(0, 0, 0.1).applyQuaternion(localQuaternion));
+ localVector4.copy(localVector2);
}
} else {
- localVector3.copy(localPlayer.position);
+ localVector4.copy(localPlayer.position);
}
- camera.position.copy(localVector3)
- .sub(localVector.copy(avatarCameraOffset).applyQuaternion(camera.quaternion));
+ this.targetPosition.copy(localVector4)
+ .sub(localVector2.copy(avatarCameraOffset).applyQuaternion(this.targetQuaternion));
break;
}
case 'isometric': {
- camera.position.copy(localPlayer.position)
+ this.targetPosition.copy(localPlayer.position)
.sub(
- localVector.copy(avatarCameraOffset)
- .applyQuaternion(camera.quaternion)
+ localVector2.copy(avatarCameraOffset)
+ .applyQuaternion(this.targetQuaternion)
);
break;
@@ -389,38 +654,35 @@ class CameraManager extends EventTarget {
}
}
- camera.position.y -= crouchOffset;
- } else {
- cameraOffsetTargetZ = -1;
+ const factor = Math.min((timestamp - this.lerpStartTime) / maxFocusTime, 1);
- const targetPosition = localVector.copy(localPlayer.position)
- .add(localVector2.set(0, 0, -cameraOffsetTargetZ).applyQuaternion(localPlayer.quaternion));
- const targetQuaternion = localPlayer.quaternion;
- camera.position.lerp(targetPosition, 0.2);
- camera.quaternion.slerp(targetQuaternion, 0.2);
- // camera.updateMatrixWorld();
- }
+ this.targetPosition.y -= crouchOffset;
+ camera.position.copy(this.sourcePosition)
+ .lerp(this.targetPosition, factor);
+
+ localEuler.setFromQuaternion(this.targetQuaternion, 'YXZ');
+ localEuler.z = 0;
+ camera.quaternion.copy(this.sourceQuaternion)
+ .slerp(localQuaternion.setFromEuler(localEuler), factor);
+ };
+ _setFreeCamera();
};
- _setCameraToAvatar();
-
+
const _setCameraFov = () => {
if (!renderer.xr.getSession()) {
- const focusTime = (timestamp - this.lastFocusChangeTime) / 300;
- if (focusTime < 1) {
- // const fovInTime = 3;
- // const fovOutTime = 0.3;
+ let newFov;
+ const focusTime = Math.min((timestamp - this.lerpStartTime) / maxFocusTime, 1);
+ if (focusTime < 1) {
this.fovFactor = 0;
- const a = this.focus ? minFov : midFov;
- const b = this.focus ? midFov : minFov;
- camera.fov = a * (1 - focusTime) + focusTime * b;
- camera.updateProjectionMatrix();
+ const a = this.sourceFov;
+ const b = this.targetFov;
+ newFov = a * (1 - focusTime) + focusTime * b;
} else if (this.focus) {
this.fovFactor = 0;
- camera.fov = midFov;
- camera.updateProjectionMatrix();
+ newFov = midFov;
} else {
const fovInTime = 3;
const fovOutTime = 0.3;
@@ -437,8 +699,18 @@ class CameraManager extends EventTarget {
}
this.fovFactor = Math.min(Math.max(this.fovFactor, 0), 1);
- camera.fov = minFov + Math.pow(this.fovFactor, 0.75) * (maxFov - minFov);
+ newFov = minFov + Math.pow(this.fovFactor, 0.75) * (maxFov - minFov);
+ }
+
+ if (newFov !== camera.fov) {
+ camera.fov = newFov;
camera.updateProjectionMatrix();
+
+ this.dispatchEvent(new MessageEvent('fovchange', {
+ data: {
+ fov: newFov,
+ },
+ }));
}
}
};
@@ -461,12 +733,13 @@ class CameraManager extends EventTarget {
.normalize()
.multiplyScalar(shakeFactor * randomValue());
camera.position.add(localVector);
- // camera.updateMatrixWorld();
}
};
_shakeCamera();
camera.updateMatrixWorld();
+
+ this.lastTarget = this.target;
}
};
const cameraManager = new CameraManager();
diff --git a/card-generator.js b/card-renderer.js
similarity index 86%
rename from card-generator.js
rename to card-renderer.js
index c0143c7a1e..48e9a6b55b 100644
--- a/card-generator.js
+++ b/card-renderer.js
@@ -61,7 +61,7 @@ const _getCanvasDataUrl = async canvas => {
return url;
};
-const _previewImage = (image, width, height) => {
+/* const _previewImage = (image, width, height) => {
image.style.cssText = `\
position: fixed;
top: 0;
@@ -71,26 +71,33 @@ const _previewImage = (image, width, height) => {
`;
// console.log('got image', image);
document.body.appendChild(image);
-};
+}; */
export const generateObjectUrlCard = async ({
start_url,
width = 300,
- height = 300,
+ // height = width,
+ flipY = false,
+ signal = null,
}) => {
const app = await metaversefile.createAppAsync({
start_url,
});
- return await generateObjectCard({
+ if (signal?.aborted) throw new Error();
+ const result = await generateObjectCard({
app,
width,
- height,
+ // height,
+ flipY,
});
+ if (signal?.aborted) throw new Error();
+ return result;
};
export const generateObjectCard = async ({
app,
width = 300,
- height = 300,
+ // height = width,
+ flipY = false,
}) => {
const stats = generateStats(app.contentId);
const {
@@ -127,8 +134,9 @@ export const generateObjectCard = async ({
minterUsername,
minterAvatarPreview,
glyphImage,
+ flipY,
});
- _previewImage(cardImg, width, height);
+ // _previewImage(cardImg, width, height);
return cardImg;
};
@@ -143,6 +151,7 @@ export const generateCard = async ({
minterUsername,
minterAvatarPreview,
glyphImage,
+ flipY,
} = {}) => {
description = description || 'A great mystery.';
@@ -254,6 +263,12 @@ export const generateCard = async ({
}
}
+ /* const blob = new Blob([svg.outerHTML], {
+ type: 'image/svg+xml',
+ });
+ const objectUrl = URL.createObjectURL(blob);
+ return objectUrl; */
+
const image = await new Promise((accept, reject) => {
const image = document.createElement('img');
image.onload = () => {
@@ -266,8 +281,7 @@ export const generateCard = async ({
};
image.crossOrigin = 'Anonymous';
- const outerHTML = svg.outerHTML;
- const blob = new Blob([outerHTML], {
+ const blob = new Blob([svg.outerHTML], {
type: 'image/svg+xml',
});
const url = URL.createObjectURL(blob);
@@ -277,6 +291,8 @@ export const generateCard = async ({
URL.revokeObjectURL(url);
}
});
-
- return image;
+ const imageBitmap = await createImageBitmap(image, {
+ imageOrientation: flipY ? 'flipY' : 'none',
+ });
+ return imageBitmap;
};
\ No newline at end of file
diff --git a/cards-manager.js b/cards-manager.js
new file mode 100644
index 0000000000..b6c44e4549
--- /dev/null
+++ b/cards-manager.js
@@ -0,0 +1,37 @@
+import offscreenEngineManager from './offscreen-engine-manager.js';
+
+const _generateObjectUrlCardRemote = (() => {
+ let generateObjectUrlCardRemoteFn = null;
+ return async function() {
+ if (!generateObjectUrlCardRemoteFn) {
+ generateObjectUrlCardRemoteFn = offscreenEngineManager.createFunction([
+ `\
+ import {generateObjectUrlCard} from './card-renderer.js';
+ `,
+ async function(o) {
+ const imageBitmap = await generateObjectUrlCard(o);
+ return imageBitmap;
+ }
+ ]);
+ }
+ const result = await generateObjectUrlCardRemoteFn.apply(this, arguments);
+ return result;
+ };
+})();
+
+class CardsManager {
+ async getCardsImage(start_url, {width, flipY, signal} = {}) {
+ const imageBitmap = await _generateObjectUrlCardRemote([
+ {
+ start_url,
+ width,
+ flipY,
+ }
+ ], {
+ signal,
+ });
+ return imageBitmap;
+ }
+}
+const cardsManager = new CardsManager();
+export default cardsManager;
\ No newline at end of file
diff --git a/ceramic-admin.js b/ceramic-admin.js
index 2abe059ebd..d3c63d1cbb 100644
--- a/ceramic-admin.js
+++ b/ceramic-admin.js
@@ -1,13 +1,13 @@
-import {DID} from 'dids';
-import CeramicClient from '@ceramicnetwork/http-client';
-import {IDX} from '@ceramicstudio/idx';
-import {ThreeIdConnect, EthereumAuthProvider} from '@3id/connect';
-import KeyDidResolver from 'key-did-resolver';
-import {Ed25519Provider} from 'key-did-provider-ed25519';
-import ThreeIdResolver from '@ceramicnetwork/3id-did-resolver';
-import {ModelManager} from '@glazed/devtools';
-import {getMainnetAddress} from './blockchain.js';
-import {ceramicNodeUrl} from './constants.js';
+// import {DID} from 'dids';
+// import CeramicClient from '@ceramicnetwork/http-client';
+// import {IDX} from '@ceramicstudio/idx';
+// import {ThreeIdConnect, EthereumAuthProvider} from '@3id/connect';
+// import KeyDidResolver from 'key-did-resolver';
+// import {Ed25519Provider} from 'key-did-provider-ed25519';
+// import ThreeIdResolver from '@ceramicnetwork/3id-did-resolver';
+// import {ModelManager} from '@glazed/devtools';
+// import {getMainnetAddress} from './blockchain.js';
+// import {ceramicNodeUrl} from './constants.js';
const keyString = ``;
diff --git a/ceramic.js b/ceramic.js
index c3ccf8a702..a865bf01e3 100644
--- a/ceramic.js
+++ b/ceramic.js
@@ -1,12 +1,12 @@
-import {DID} from 'dids';
-import CeramicClient from '@ceramicnetwork/http-client';
-import {IDX} from '@ceramicstudio/idx';
-import {ThreeIdConnect, EthereumAuthProvider} from '@3id/connect';
-import KeyDidResolver from 'key-did-resolver';
-import ThreeIdResolver from '@ceramicnetwork/3id-did-resolver';
-import {ModelManager} from '@glazed/devtools';
+// import {DID} from 'dids';
+// import CeramicClient from '@ceramicnetwork/http-client';
+// import {IDX} from '@ceramicstudio/idx';
+// import {ThreeIdConnect, EthereumAuthProvider} from '@3id/connect';
+// import KeyDidResolver from 'key-did-resolver';
+// import ThreeIdResolver from '@ceramicnetwork/3id-did-resolver';
+// import {ModelManager} from '@glazed/devtools';
import {getMainnetAddress} from './blockchain.js';
-import {ceramicNodeUrl, metaverseProfileDefinition} from './constants.js';
+// import {ceramicNodeUrl, metaverseProfileDefinition} from './constants.js';
const login = async () => {
const address = await getMainnetAddress();
diff --git a/character-controller.js b/character-controller.js
index e4385faeb0..2bebcdb3bf 100644
--- a/character-controller.js
+++ b/character-controller.js
@@ -7,7 +7,7 @@ import * as Z from 'zjs';
import {getRenderer, scene, camera, dolly} from './renderer.js';
import physicsManager from './physics-manager.js';
import {world} from './world.js';
-import cameraManager from './camera-manager.js';
+// import cameraManager from './camera-manager.js';
import physx from './physx.js';
import Avatar from './avatars/avatars.js';
import metaversefile from 'metaversefile';
@@ -24,28 +24,32 @@ import {
avatarInterpolationTimeDelay,
avatarInterpolationNumFrames,
// groundFriction,
- voiceEndpoint,
+ // defaultVoicePackName,
numLoadoutSlots,
} from './constants.js';
import {AppManager} from './app-manager.js';
import {CharacterPhysics} from './character-physics.js';
import {CharacterHups} from './character-hups.js';
import {CharacterSfx} from './character-sfx.js';
+import {CharacterHitter} from './character-hitter.js';
import {CharacterBehavior} from './character-behavior.js';
import {CharacterFx} from './character-fx.js';
import {VoicePack, VoicePackVoicer} from './voice-output/voice-pack-voicer.js';
-import {VoiceEndpoint, VoiceEndpointVoicer} from './voice-output/voice-endpoint-voicer.js';
+import {VoiceEndpoint, VoiceEndpointVoicer, getVoiceEndpointUrl} from './voice-output/voice-endpoint-voicer.js';
import {BinaryInterpolant, BiActionInterpolant, UniActionInterpolant, InfiniteActionInterpolant, PositionInterpolant, QuaternionInterpolant, FixedTimeStep} from './interpolants.js';
import {applyPlayerToAvatar, switchAvatar} from './player-avatar-binding.js';
import {
defaultPlayerName,
defaultPlayerBio,
} from './ai/lore/lore-model.js';
-import * as sounds from './sounds.js';
+// import * as sounds from './sounds.js';
+import musicManager from './music-manager.js';
import {makeId, clone, unFrustumCull, enableShadows} from './util.js';
+import overrides from './overrides.js';
+// import * as voices from './voices.js';
const localVector = new THREE.Vector3();
-// const localVector2 = new THREE.Vector3();
+const localVector2 = new THREE.Vector3();
// const localQuaternion = new THREE.Quaternion();
// const localQuaternion2 = new THREE.Quaternion();
const localMatrix = new THREE.Matrix4();
@@ -53,6 +57,17 @@ const localMatrix2 = new THREE.Matrix4();
const localArray3 = [0, 0, 0];
const localArray4 = [0, 0, 0, 0];
+const zeroVector = new THREE.Vector3(0, 0, 0);
+const upVector = new THREE.Vector3(0, 1, 0);
+
+const _getSession = () => {
+ const renderer = getRenderer();
+ const session = renderer.xr.getSession();
+ return session;
+};
+
+const physicsScene = physicsManager.getScene();
+
function makeCancelFn() {
let live = true;
return {
@@ -78,11 +93,11 @@ function loadPhysxCharacterController() {
.add(new THREE.Vector3(0, -avatarHeight/2, 0));
if (this.characterController) {
- physicsManager.destroyCharacterController(this.characterController);
+ physicsScene.destroyCharacterController(this.characterController);
this.characterController = null;
// this.characterControllerObject = null;
}
- this.characterController = physicsManager.createCharacterController(
+ this.characterController = physicsScene.createCharacterController(
radius - contactOffset,
height,
contactOffset,
@@ -101,7 +116,7 @@ function loadPhysxCharacterController() {
.add(new THREE.Vector3(0, -avatarHeight/2, 0));
const physicsMaterial = new THREE.Vector3(0, 0, 0);
- const physicsObject = physicsManager.addCapsuleGeometry(
+ const physicsObject = physicsScene.addCapsuleGeometry(
position,
localQuaternion.copy(this.quaternion)
.premultiply(
@@ -116,9 +131,9 @@ function loadPhysxCharacterController() {
true
);
physicsObject.name = 'characterCapsuleAux';
- physicsManager.setGravityEnabled(physicsObject, false);
- physicsManager.setLinearLockFlags(physicsObject.physicsId, false, false, false);
- physicsManager.setAngularLockFlags(physicsObject.physicsId, false, false, false);
+ physicsScene.setGravityEnabled(physicsObject, false);
+ physicsScene.setLinearLockFlags(physicsObject.physicsId, false, false, false);
+ physicsScene.setAngularLockFlags(physicsObject.physicsId, false, false, false);
this.physicsObject = physicsObject;
} */
@@ -141,19 +156,25 @@ class PlayerBase extends THREE.Object3D {
this.leftHand,
this.rightHand,
];
-
+
+ this.detached = false;
+
this.avatar = null;
this.appManager = new AppManager({
appsMap: null,
});
this.appManager.addEventListener('appadd', e => {
- const app = e.data;
- scene.add(app);
+ if (!this.detached) {
+ const app = e.data;
+ scene.add(app);
+ }
});
this.appManager.addEventListener('appremove', e => {
- const app = e.data;
- app.parent && app.parent.remove(app);
+ if (!this.detached) {
+ const app = e.data;
+ app.parent && app.parent.remove(app);
+ }
});
this.eyeballTarget = new THREE.Vector3();
@@ -239,7 +260,7 @@ class PlayerBase extends THREE.Object3D {
}
setVoiceEndpoint(voiceId) {
if (voiceId) {
- const url = `${voiceEndpoint}?voice=${encodeURIComponent(voiceId)}`;
+ const url = getVoiceEndpointUrl(voiceId);
this.voiceEndpoint = new VoiceEndpoint(url);
} else {
this.voiceEndpoint = null;
@@ -262,6 +283,19 @@ class PlayerBase extends THREE.Object3D {
throw new Error('invalid voice');
}
}
+ async fetchThemeSong() {
+ const avatarApp = this.getAvatarApp();
+ const npcComponent = avatarApp.getComponent('npc');
+ const npcThemeSongUrl = npcComponent?.themeSongUrl;
+ return await PlayerBase.fetchThemeSong(npcThemeSongUrl);
+ }
+ static async fetchThemeSong(npcThemeSongUrl) {
+ if (npcThemeSongUrl) {
+ return await musicManager.fetchMusic(npcThemeSongUrl);
+ } else {
+ return null;
+ }
+ }
getCrouchFactor() {
return 1 - 0.4 * this.actionInterpolants.crouch.getNormalized();
/* let factor = 1;
@@ -324,29 +358,38 @@ class PlayerBase extends THREE.Object3D {
const _initPhysics = () => {
const physicsObjects = app.getPhysicsObjects();
for (const physicsObject of physicsObjects) {
- physx.physxWorker.disableGeometryQueriesPhysics(physx.physics, physicsObject.physicsId);
- physx.physxWorker.disableGeometryPhysics(physx.physics, physicsObject.physicsId);
+ physicsScene.disableGeometryQueries(physicsObject.physicsId);
+ physicsScene.disableGeometry(physicsObject.physicsId);
}
};
_initPhysics();
- const _emitEvents = () => {
+ const wearComponent = app.getComponent('wear');
+ const holdAnimation = wearComponent? wearComponent.holdAnimation : null;
+ const _addAction = () => {
this.addAction({
type: 'wear',
instanceId: app.instanceId,
loadoutIndex,
+ holdAnimation,
});
+ };
+ _addAction();
+
+ const _emitEvents = () => {
app.dispatchEvent({
type: 'wearupdate',
player: this,
wear: true,
loadoutIndex,
+ holdAnimation,
});
this.dispatchEvent({
type: 'wearupdate',
app,
wear: true,
loadoutIndex,
+ holdAnimation,
});
};
_emitEvents();
@@ -354,6 +397,8 @@ class PlayerBase extends THREE.Object3D {
}
unwear(app, {
destroy = false,
+ dropStartPosition = null,
+ dropDirection = null,
} = {}) {
const wearActionIndex = this.findActionIndex(({type, instanceId}) => {
return type === 'wear' && instanceId === app.instanceId;
@@ -363,8 +408,38 @@ class PlayerBase extends THREE.Object3D {
const loadoutIndex = wearAction.loadoutIndex;
const _setAppTransform = () => {
- const wearComponent = app.getComponent('wear');
- if (wearComponent) {
+ if (dropStartPosition && dropDirection) {
+ const physicsObjects = app.getPhysicsObjects();
+ if (physicsObjects.length > 0) {
+ const physicsObject = physicsObjects[0];
+
+ physicsObject.position.copy(dropStartPosition);
+ physicsObject.quaternion.copy(this.quaternion);
+ physicsObject.updateMatrixWorld();
+
+ physicsScene.setTransform(physicsObject, true);
+ physicsScene.setVelocity(physicsObject, localVector.copy(dropDirection).multiplyScalar(5).add(this.characterPhysics.velocity), true);
+ physicsScene.setAngularVelocity(physicsObject, zeroVector, true);
+
+ app.position.copy(physicsObject.position);
+ app.quaternion.copy(physicsObject.quaternion);
+ app.scale.copy(physicsObject.scale);
+ app.matrix.copy(physicsObject.matrix);
+ app.matrixWorld.copy(physicsObject.matrixWorld);
+ } else {
+ app.position.copy(dropStartPosition);
+ app.quaternion.setFromRotationMatrix(
+ localMatrix.lookAt(
+ localVector.set(0, 0, 0),
+ localVector2.set(dropDirection.x, 0, dropDirection.z).normalize(),
+ upVector
+ )
+ );
+ app.scale.set(1, 1, 1);
+ app.updateMatrixWorld();
+ }
+ app.lastMatrix.copy(app.matrixWorld);
+ } else {
const avatarHeight = this.avatar ? this.avatar.height : 0;
app.position.copy(this.position)
.add(localVector.set(0, -avatarHeight + 0.5, -0.5).applyQuaternion(this.quaternion));
@@ -378,8 +453,8 @@ class PlayerBase extends THREE.Object3D {
const _deinitPhysics = () => {
const physicsObjects = app.getPhysicsObjects();
for (const physicsObject of physicsObjects) {
- physx.physxWorker.enableGeometryQueriesPhysics(physx.physics, physicsObject.physicsId);
- physx.physxWorker.enableGeometryPhysics(physx.physics, physicsObject.physicsId);
+ physicsScene.enableGeometryQueries(physicsObject.physicsId);
+ physicsScene.enableGeometry(physicsObject.physicsId);
}
};
_deinitPhysics();
@@ -453,11 +528,6 @@ class StatePlayer extends PlayerBase {
if (this.isBound()) {
this.playersArray = null;
this.playerMap = null;
-
- for (const unbindFn of this.unbindFns) {
- unbindFn();
- }
- this.unbindFns.length = 0;
}
}
detachState() {
@@ -500,7 +570,7 @@ class StatePlayer extends PlayerBase {
const observeAvatarFn = async () => {
// we are in an observer and we want to perform a state transaction as a result
// therefore we need to yeild out of the observer first or else the other transaction handlers will get confused about timing
- await Promise.resolve();
+ // await Promise.resolve();
const instanceId = this.getAvatarInstanceId();
if (lastAvatarInstanceId !== instanceId) {
@@ -520,6 +590,12 @@ class StatePlayer extends PlayerBase {
};
this.unbindFns.push(_cancelSyncAvatar);
}
+ unbindCommonObservers() {
+ for (const unbindFn of this.unbindFns) {
+ unbindFn();
+ }
+ this.unbindFns.length = 0;
+ }
bindState(nextPlayersArray) {
// latch old state
const oldState = this.detachState();
@@ -527,6 +603,7 @@ class StatePlayer extends PlayerBase {
// unbind
this.unbindState();
this.appManager.unbindState();
+ this.unbindCommonObservers();
// note: leave the old state as is. it is the host's responsibility to garbage collect us when we disconnect.
@@ -582,8 +659,10 @@ class StatePlayer extends PlayerBase {
});
loadPhysxCharacterController.call(this);
- // console.log('disable actor', this.characterController);
- physicsManager.disableGeometryQueries(this.characterController);
+
+ if (this.isLocalPlayer) {
+ physicsScene.disableGeometryQueries(this.characterController);
+ }
})();
this.dispatchEvent({
@@ -797,6 +876,7 @@ class InterpolatedPlayer extends StatePlayer {
crouch: new BinaryInterpolant(() => this.hasAction('crouch'), avatarInterpolationTimeDelay, avatarInterpolationNumFrames),
activate: new BinaryInterpolant(() => this.hasAction('activate'), avatarInterpolationTimeDelay, avatarInterpolationNumFrames),
use: new BinaryInterpolant(() => this.hasAction('use'), avatarInterpolationTimeDelay, avatarInterpolationNumFrames),
+ pickUp: new BinaryInterpolant(() => this.hasAction('pickUp'), avatarInterpolationTimeDelay, avatarInterpolationNumFrames),
aim: new BinaryInterpolant(() => this.hasAction('aim'), avatarInterpolationTimeDelay, avatarInterpolationNumFrames),
narutoRun: new BinaryInterpolant(() => this.hasAction('narutoRun'), avatarInterpolationTimeDelay, avatarInterpolationNumFrames),
fly: new BinaryInterpolant(() => this.hasAction('fly'), avatarInterpolationTimeDelay, avatarInterpolationNumFrames),
@@ -816,6 +896,7 @@ class InterpolatedPlayer extends StatePlayer {
crouch: new FixedTimeStep(timeDiff => {this.actionBinaryInterpolants.crouch.snapshot(timeDiff);}, avatarInterpolationFrameRate),
activate: new FixedTimeStep(timeDiff => {this.actionBinaryInterpolants.activate.snapshot(timeDiff);}, avatarInterpolationFrameRate),
use: new FixedTimeStep(timeDiff => {this.actionBinaryInterpolants.use.snapshot(timeDiff);}, avatarInterpolationFrameRate),
+ pickUp: new FixedTimeStep(timeDiff => {this.actionBinaryInterpolants.pickUp.snapshot(timeDiff);}, avatarInterpolationFrameRate),
aim: new FixedTimeStep(timeDiff => {this.actionBinaryInterpolants.aim.snapshot(timeDiff);}, avatarInterpolationFrameRate),
narutoRun: new FixedTimeStep(timeDiff => {this.actionBinaryInterpolants.narutoRun.snapshot(timeDiff);}, avatarInterpolationFrameRate),
fly: new FixedTimeStep(timeDiff => {this.actionBinaryInterpolants.fly.snapshot(timeDiff);}, avatarInterpolationFrameRate),
@@ -835,6 +916,7 @@ class InterpolatedPlayer extends StatePlayer {
crouch: new BiActionInterpolant(() => this.actionBinaryInterpolants.crouch.get(), 0, crouchMaxTime),
activate: new UniActionInterpolant(() => this.actionBinaryInterpolants.activate.get(), 0, activateMaxTime),
use: new InfiniteActionInterpolant(() => this.actionBinaryInterpolants.use.get(), 0),
+ pickUp: new InfiniteActionInterpolant(() => this.actionBinaryInterpolants.pickUp.get(), 0),
unuse: new InfiniteActionInterpolant(() => !this.actionBinaryInterpolants.use.get(), 0),
aim: new InfiniteActionInterpolant(() => this.actionBinaryInterpolants.aim.get(), 0),
narutoRun: new InfiniteActionInterpolant(() => this.actionBinaryInterpolants.narutoRun.get(), 0),
@@ -886,6 +968,7 @@ class UninterpolatedPlayer extends StatePlayer {
crouch: new BiActionInterpolant(() => this.hasAction('crouch'), 0, crouchMaxTime),
activate: new UniActionInterpolant(() => this.hasAction('activate'), 0, activateMaxTime),
use: new InfiniteActionInterpolant(() => this.hasAction('use'), 0),
+ pickUp: new InfiniteActionInterpolant(() => this.hasAction('pickUp'), 0),
unuse: new InfiniteActionInterpolant(() => !this.hasAction('use'), 0),
aim: new InfiniteActionInterpolant(() => this.hasAction('aim'), 0),
aimRightTransition: new BiActionInterpolant(() => this.hasAction('aim') && this.hands[0].enabled, 0, aimTransitionMaxTime),
@@ -920,7 +1003,9 @@ class LocalPlayer extends UninterpolatedPlayer {
constructor(opts) {
super(opts);
- this.isLocalPlayer = true;
+ this.isLocalPlayer = !opts.npc;
+ this.isNpcPlayer = !!opts.npc;
+ this.detached = !!opts.detached;
this.name = defaultPlayerName;
this.bio = defaultPlayerBio;
@@ -928,8 +1013,16 @@ class LocalPlayer extends UninterpolatedPlayer {
this.characterHups = new CharacterHups(this);
this.characterSfx = new CharacterSfx(this);
this.characterFx = new CharacterFx(this);
+ this.characterHitter = new CharacterHitter(this);
this.characterBehavior = new CharacterBehavior(this);
+ }
+ async setPlayerSpec(playerSpec) {
+ const p = this.setAvatarUrl(playerSpec.avatarUrl);
+ overrides.userVoiceEndpoint.set(playerSpec.voice ?? null);
+ overrides.userVoicePack.set(playerSpec.voicePack ?? null);
+
+ await p;
}
async setAvatarUrl(u) {
const localAvatarEpoch = ++this.avatarEpoch;
@@ -938,15 +1031,18 @@ class LocalPlayer extends UninterpolatedPlayer {
this.appManager.removeTrackedApp(avatarApp.instanceId);
return;
}
-
- this.setAvatarApp(avatarApp);
+ this.#setAvatarAppFromOwnAppManager(avatarApp);
}
getAvatarApp() {
const avatar = this.getAvatarState();
const instanceId = avatar.get('instanceId');
return this.appManager.getAppByInstanceId(instanceId);
}
- setAvatarApp(app) {
+ /* importAvatarApp(app, srcAppManager) {
+ srcAppManager.transplantApp(app, this.appManager);
+ this.#setAvatarAppFromOwnAppManager(app);
+ } */
+ #setAvatarAppFromOwnAppManager(app) {
const self = this;
this.playersArray.doc.transact(function tx() {
const avatar = self.getAvatarState();
@@ -1009,9 +1105,8 @@ class LocalPlayer extends UninterpolatedPlayer {
this.appManager.bindState(this.getAppsState());
}
grab(app, hand = 'left') {
- const renderer = getRenderer();
const localPlayer = metaversefile.useLocalPlayer();
- const {position, quaternion} = renderer.xr.getSession() ?
+ const {position, quaternion} = _getSession() ?
localPlayer[hand === 'left' ? 'leftHand' : 'rightHand']
:
camera;
@@ -1032,8 +1127,8 @@ class LocalPlayer extends UninterpolatedPlayer {
const physicsObjects = app.getPhysicsObjects();
for (const physicsObject of physicsObjects) {
- //physx.physxWorker.disableGeometryPhysics(physx.physics, physicsObject.physicsId);
- physx.physxWorker.disableGeometryQueriesPhysics(physx.physics, physicsObject.physicsId);
+ //physicsScene.disableGeometry(physicsObject.physicsId);
+ physicsScene.disableGeometryQueries(physicsObject.physicsId);
}
app.dispatchEvent({
@@ -1050,8 +1145,7 @@ class LocalPlayer extends UninterpolatedPlayer {
const app = metaversefile.getAppByInstanceId(action.instanceId);
const physicsObjects = app.getPhysicsObjects();
for (const physicsObject of physicsObjects) {
- //physx.physxWorker.enableGeometryPhysics(physx.physics, physicsObject.physicsId);
- physx.physxWorker.enableGeometryQueriesPhysics(physx.physics, physicsObject.physicsId);
+ physicsScene.enableGeometryQueries(physicsObject.physicsId);
}
this.removeActionIndex(i + removeOffset);
removeOffset -= 1;
@@ -1088,11 +1182,6 @@ class LocalPlayer extends UninterpolatedPlayer {
this.appManager.updatePhysics();
}
- getSession() {
- const renderer = getRenderer();
- const session = renderer.xr.getSession();
- return session;
- }
updatePhysics(timestamp, timeDiff) {
if (this.avatar) {
const timeDiffS = timeDiff / 1000;
@@ -1104,11 +1193,12 @@ class LocalPlayer extends UninterpolatedPlayer {
const timeDiffS = timeDiff / 1000;
this.characterSfx.update(timestamp, timeDiffS);
this.characterFx.update(timestamp, timeDiffS);
+ this.characterHitter.update(timestamp, timeDiffS);
this.characterBehavior.update(timestamp, timeDiffS);
this.updateInterpolation(timeDiff);
- const session = this.getSession();
+ const session = _getSession();
const mirrors = metaversefile.getMirrors();
applyPlayerToAvatar(this, session, this.avatar, mirrors);
@@ -1117,10 +1207,7 @@ class LocalPlayer extends UninterpolatedPlayer {
this.characterHups.update(timestamp);
}
}
- resetPhysics() {
- this.characterPhysics.reset();
- }
- teleportTo = (() => {
+ /* teleportTo = (() => {
const localVector = new THREE.Vector3();
const localVector2 = new THREE.Vector3();
const localQuaternion = new THREE.Quaternion();
@@ -1152,7 +1239,7 @@ class LocalPlayer extends UninterpolatedPlayer {
this.resetPhysics();
};
- })()
+ })() */
destroy() {
this.characterPhysics.destroy();
this.characterHups.destroy();
@@ -1200,12 +1287,10 @@ class RemotePlayer extends InterpolatedPlayer {
this.syncAvatar();
}
}
-class StaticUninterpolatedPlayer extends PlayerBase {
+/* class StaticUninterpolatedPlayer extends UninterpolatedPlayer {
constructor(opts) {
super(opts);
- UninterpolatedPlayer.init.apply(this, arguments);
-
this.actions = [];
}
getActionsState() {
@@ -1257,101 +1342,18 @@ class StaticUninterpolatedPlayer extends PlayerBase {
}
}
updateInterpolation = UninterpolatedPlayer.prototype.updateInterpolation;
-}
-class NpcPlayer extends StaticUninterpolatedPlayer {
+} */
+/* class NpcPlayer extends LocalPlayer {
constructor(opts) {
super(opts);
+ this.isLocalPlayer = false;
this.isNpcPlayer = true;
- this.avatarApp = null;
-
- this.characterPhysics = new CharacterPhysics(this);
- this.characterHups = new CharacterHups(this);
- this.characterSfx = new CharacterSfx(this);
- this.characterFx = new CharacterFx(this);
- this.characterBehavior = new CharacterBehavior(this);
}
- getAvatarApp() {
- return this.avatarApp;
- }
- setAvatarApp(app) {
- app.toggleBoneUpdates(true);
- const {skinnedVrm} = app;
- const avatar = new Avatar(skinnedVrm, {
- fingers: true,
- hair: true,
- visemes: true,
- debug: false,
- });
-
- unFrustumCull(app);
- enableShadows(app);
-
- this.avatar = avatar;
- this.avatarApp = app;
-
- loadPhysxCharacterController.call(this);
- // loadPhysxAuxCharacterCapsule.call(this);
- }
- getSession() {
- return null;
- }
- updatePhysics = LocalPlayer.prototype.updatePhysics;
- updateAvatar = LocalPlayer.prototype.updateAvatar;
- /* detachState() {
- return null;
- }
- attachState(oldState) {
- let index = -1;
- for (let i = 0; i < this.playersArray.length; i++) {
- const player = this.playersArray.get(i, Z.Map);
- if (player.get('playerId') === this.playerId) {
- index = i;
- break;
- }
- }
- if (index !== -1) {
- this.playerMap = this.playersArray.get(index, Z.Map);
- } else {
- console.warn('binding to nonexistent player object', this.playersArray.toJSON());
- }
-
- const observePlayerFn = e => {
- this.position.fromArray(this.playerMap.get('position'));
- this.quaternion.fromArray(this.playerMap.get('quaternion'));
- };
- this.playerMap.observe(observePlayerFn);
- this.unbindFns.push(this.playerMap.unobserve.bind(this.playerMap, observePlayerFn));
-
- this.appManager.bindState(this.getAppsState());
- this.appManager.syncApps();
-
- this.syncAvatar();
- } */
- destroy() {
- /* const npcs = metaversefile.useNpcs();
- const index = npcs.indexOf(this);
- if (index !== -1) {
- npcs.splice(index, 1);
- } */
-
- this.characterPhysics.destroy();
- this.characterHups.destroy();
- this.characterSfx.destroy();
- this.characterFx.destroy();
- this.characterBehavior.destroy();
-
- if (this.avatarApp) {
- this.avatarApp.toggleBoneUpdates(false);
- }
-
- super.destroy();
- }
- updateInterpolation = UninterpolatedPlayer.prototype.updateInterpolation;
-}
+} */
export {
LocalPlayer,
RemotePlayer,
- NpcPlayer,
+ // NpcPlayer,
};
\ No newline at end of file
diff --git a/character-hitter.js b/character-hitter.js
new file mode 100644
index 0000000000..ef6268503d
--- /dev/null
+++ b/character-hitter.js
@@ -0,0 +1,214 @@
+import * as THREE from 'three';
+import {scene, camera} from './renderer.js';
+import physics from './physics-manager.js';
+// import physx from './physx.js';
+import Avatar from './avatars/avatars.js';
+import metaversefile from 'metaversefile';
+import * as metaverseModules from './metaverse-modules.js';
+
+const localVector = new THREE.Vector3();
+const localVector2 = new THREE.Vector3();
+const localQuaternion = new THREE.Quaternion();
+const localEuler = new THREE.Euler();
+const localMatrix = new THREE.Matrix4();
+
+//
+
+const physicsScene = physics.getScene();
+// const y180Quaternion = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 1, 0), Math.PI);
+
+//
+
+const hitAttemptEventData = {
+ type: '',
+ args: null,
+};
+const hitAttemptEvent = new MessageEvent('hitattempt', {
+ data: hitAttemptEventData,
+});
+
+export class CharacterHitter {
+ constructor(player) {
+ this.player = player;
+
+ this.lastHitTime = -Infinity;
+ }
+ attemptHit({
+ type,
+ args,
+ timestamp = performance.now(),
+ }) {
+ hitAttemptEventData.type = type;
+ hitAttemptEventData.args = args;
+ hitManager.dispatchEvent(hitAttemptEvent);
+
+ switch (type) {
+ case 'sword': {
+ const {
+ hitRadius,
+ hitHalfHeight,
+ position,
+ quaternion,
+ } = args;
+ const collision = physicsScene.getCollisionObject(
+ hitRadius,
+ hitHalfHeight,
+ position,
+ quaternion,
+ );
+ if (collision) {
+ const collisionId = collision.objectId;
+ const result = metaversefile.getPairByPhysicsId(collisionId);
+ if (result) {
+ const [app, physicsObject] = result;
+ const timeDiff = timestamp - this.lastHitTime;
+ if (timeDiff > 1000) {
+ const useAction = this.player.getAction('use');
+ const damage = typeof useAction.damage === 'number' ? useAction.damage : 10;
+ const hitDirection = app.position.clone()
+ .sub(this.player.position);
+ hitDirection.y = 0;
+ hitDirection.normalize();
+
+ const damageMeshOffsetDistance = 1.5;
+ const hitPosition = localVector.copy(this.player.position)
+ .add(localVector2.set(0, 0, -damageMeshOffsetDistance).applyQuaternion(this.player.quaternion))
+ .clone();
+ localEuler.setFromQuaternion(camera.quaternion, 'YXZ');
+ localEuler.x = 0;
+ localEuler.z = 0;
+ const hitQuaternion = localQuaternion.setFromEuler(localEuler);
+
+ // const willDie = app.willDieFrom(damage);
+ app.hit(damage, {
+ type: 'sword',
+ collisionId,
+ physicsObject,
+ hitPosition,
+ hitQuaternion,
+ hitDirection,
+ // willDie,
+ });
+
+ this.lastHitTime = timestamp;
+
+ return collision;
+ }
+ }
+ }
+ return null;
+ }
+ case 'bullet': {
+ const result = physics.raycast(args.position, args.quaternion);
+ if (result) {
+ const _performHit = () => {
+ const targetApp = metaversefile.getAppByPhysicsId(result.objectId);
+ if (targetApp) {
+ const damage = 2;
+
+ const hitPosition = new THREE.Vector3().fromArray(result.point);
+ const hitQuaternion = new THREE.Quaternion().setFromRotationMatrix(
+ localMatrix.lookAt(
+ this.player.position,
+ hitPosition,
+ localVector.set(0, 1, 0)
+ )
+ );
+
+ const hitDirection = targetApp.position.clone()
+ .sub(this.player.position);
+ // hitDirection.y = 0;
+ hitDirection.normalize();
+
+ // const willDie = targetApp.willDieFrom(damage);
+ targetApp.hit(damage, {
+ type: 'bullet',
+ collisionId: result.objectId,
+ hitPosition,
+ hitDirection,
+ hitQuaternion,
+ // willDie,
+ });
+ } else {
+ console.warn('no app with physics id', result.objectId);
+ }
+ };
+ _performHit();
+
+ return result
+ }
+ return null;
+ }
+ default: {
+ throw new Error('unknown hit type :' + type);
+ }
+ }
+ }
+ getHit(damage) {
+ const newAction = {
+ type: 'hurt',
+ animation: Math.random() < 0.5 ? 'pain_arch' : 'pain_back',
+ };
+ const hurtAction = this.player.addAction(newAction);
+
+ const emotions = [
+ // 'joy',
+ // 'fun',
+ 'sorrow',
+ 'angry',
+ // 'neutral',
+ 'surprise',
+ ];
+ const emotion = emotions[Math.floor(Math.random() * emotions.length)];
+ const faceposeAction = this.player.addAction({
+ type: 'facepose',
+ emotion,
+ value: 1,
+ });
+
+ const gruntTypes = [
+ 'hurt',
+ 'scream',
+ 'attack',
+ 'angry',
+ 'gasp',
+ ];
+ const gruntType = gruntTypes[Math.floor(Math.random() * gruntTypes.length)];
+ // console.log('play grunt', emotion, gruntType);
+ this.player.characterSfx.playGrunt(gruntType);
+
+ {
+ const damageMeshApp = metaversefile.createApp();
+ (async () => {
+ await metaverseModules.waitForLoad();
+ const {modules} = metaversefile.useDefaultModules();
+ const m = modules['damageMesh'];
+ await damageMeshApp.addModule(m);
+ })();
+ damageMeshApp.position.copy(this.player.position);
+ localEuler.setFromQuaternion(camera.quaternion, 'YXZ');
+ localEuler.x = 0;
+ localEuler.z = 0;
+ damageMeshApp.quaternion.setFromEuler(localEuler);
+ damageMeshApp.updateMatrixWorld();
+ scene.add(damageMeshApp);
+ }
+
+ const animations = Avatar.getAnimations();
+ const hurtAnimation = animations.find(a => a.isHurt);
+ const hurtAnimationDuration = hurtAnimation.duration;
+ setTimeout(() => {
+ const hurtActionIndex = this.player.indexOfAction(hurtAction);
+ this.player.removeActionIndex(hurtActionIndex);
+ }, hurtAnimationDuration * 1000);
+ setTimeout(() => {
+ const faceposeActionIndex = this.player.indexOfAction(faceposeAction);
+ this.player.removeActionIndex(faceposeActionIndex);
+ }, 1000);
+ }
+ update() {
+ // nothing
+ }
+}
+const hitManager = new EventTarget();
+export default hitManager;
\ No newline at end of file
diff --git a/character-physics.js b/character-physics.js
index a71e02783a..342da76694 100644
--- a/character-physics.js
+++ b/character-physics.js
@@ -36,6 +36,8 @@ const rightHandOffset = new THREE.Vector3(-0.2, -0.2, -0.4);
const z22Quaternion = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0, 0, 1), -Math.PI/8);
const groundStickOffset = 0.03;
+const physicsScene = physicsManager.getScene();
+
class CharacterPhysics {
constructor(player) {
this.player = player;
@@ -50,7 +52,7 @@ class CharacterPhysics {
setPosition(p) {
localVector.copy(p);
localVector.y -= this.player.avatar.height * 0.5;
- physicsManager.setCharacterControllerPosition(this.player.characterController, localVector);
+ physicsScene.setCharacterControllerPosition(this.player.characterController, localVector);
}
/* apply the currently held keys to the character */
applyWasd(keysDirection) {
@@ -61,7 +63,7 @@ class CharacterPhysics {
applyGravity(timeDiffS) {
// if (this.player) {
if (this.player.hasAction('jump') && !this.player.hasAction('fly')) {
- localVector.copy(physicsManager.getGravity())
+ localVector.copy(physicsScene.getGravity())
.multiplyScalar(timeDiffS);
this.velocity.add(localVector);
}
@@ -84,7 +86,7 @@ class CharacterPhysics {
localVector3.copy(this.velocity)
.multiplyScalar(timeDiffS);
// console.log('got local vector', this.velocity.toArray().join(','), localVector3.toArray().join(','), timeDiffS);
- const flags = physicsManager.moveCharacterController(
+ const flags = physicsScene.moveCharacterController(
this.player.characterController,
localVector3,
minDist,
@@ -96,7 +98,7 @@ class CharacterPhysics {
if (!grounded && !this.player.getAction('jump') && !this.player.getAction('fly')) { // prevent jump when go down slope
const oldY = this.player.characterController.position.y;
- const flags = physicsManager.moveCharacterController(
+ const flags = physicsScene.moveCharacterController(
this.player.characterController,
localVector3.set(0, -groundStickOffset, 0),
minDist,
@@ -183,9 +185,19 @@ class CharacterPhysics {
const objInstanceId = sitAction.controllingId;
const controlledApp = metaversefileApi.getAppByInstanceId(objInstanceId);
- const sitPos = sitAction.controllingBone ? sitAction.controllingBone : controlledApp;
const sitComponent = controlledApp.getComponent('sit');
+
+ // Patch fix to fix vehicles and mounts for now
+ let rideMesh = null;
+ controlledApp.glb.scene.traverse(o => {
+ if (rideMesh === null && o.isSkinnedMesh) {
+ rideMesh = o;
+ }
+ });
+
+ // NOTE: We had a problem with sending the entire bone in the message buffer, so we're just sending the bone name
+ const sitPos = sitComponent.sitBone ? rideMesh.skeleton.bones.find(bone => bone.name === sitComponent.sitBone) : controlledApp;
const {
sitOffset = [0, 0, 0],
// damping,
@@ -209,7 +221,7 @@ class CharacterPhysics {
localVector.add(this.sitOffset);
localVector.y += this.player.avatar.height * 0.5;
- physicsManager.setCharacterControllerPosition(this.player.characterController, localVector);
+ physicsScene.setCharacterControllerPosition(this.player.characterController, localVector);
localVector.y += this.player.avatar.height * 0.5;
localQuaternion.premultiply(localQuaternion2.setFromAxisAngle(localVector3.set(0, 1, 0), Math.PI));
diff --git a/character-sfx.js b/character-sfx.js
index bf0cad064b..e83390407f 100644
--- a/character-sfx.js
+++ b/character-sfx.js
@@ -78,16 +78,17 @@ class CharacterSfx {
this.willGasp = false;
this.oldNarutoRunSound = null;
-
this.lastEmote = null;
- const wearupdate = e => {
- sounds.playSoundName(e.wear ? 'itemEquip' : 'itemUnequip');
- };
- player.addEventListener('wearupdate', wearupdate);
- this.cleanup = () => {
- player.removeEventListener('wearupdate', wearupdate);
- };
+ if (this.player.isLocalPlayer) {
+ const wearupdate = e => {
+ sounds.playSoundName(e.wear ? 'itemEquip' : 'itemUnequip');
+ };
+ player.addEventListener('wearupdate', wearupdate);
+ this.cleanup = () => {
+ player.removeEventListener('wearupdate', wearupdate);
+ };
+ }
}
update(timestamp, timeDiffS) {
if (!this.player.avatar) {
@@ -366,8 +367,8 @@ class CharacterSfx {
if (this.player.voicePack) { // ensure voice pack loaded
let voiceFiles, offset, duration;
switch (type) {
- case 'pain': {
- voiceFiles = this.player.voicePack.actionVoices.filter(f => /pain/i.test(f.name));
+ case 'hurt': {
+ voiceFiles = this.player.voicePack.actionVoices.filter(f => /hurt/i.test(f.name));
break;
}
case 'scream': {
@@ -521,7 +522,7 @@ class CharacterSfx {
}
}
destroy() {
- this.cleanup();
+ this.cleanup && this.cleanup();
}
}
diff --git a/constants.js b/constants.js
index ea7018b6c9..6af9a79af0 100644
--- a/constants.js
+++ b/constants.js
@@ -14,9 +14,9 @@ export const rarityColors = {
};
const chainName = (() => {
- if (typeof window !== 'undefined' && /^test\./.test(location.hostname)) {
+ if (typeof globalThis !== 'undefined' && /^test\./.test(location.hostname)) {
return 'testnet';
- } else if (typeof window !== 'undefined' && /^polygon\./.test(location.hostname)) {
+ } else if (typeof globalThis !== 'undefined' && /^polygon\./.test(location.hostname)) {
return 'polygon';
} else {
return 'mainnet';
@@ -34,13 +34,13 @@ export const polygonVigilKey = `0937c004ab133135c86586b55ca212a6c9ecd224`;
//
-const origin = window.location.protocol + '//' + window.location.hostname;
+const origin = globalThis.location.protocol + '//' + globalThis.location.hostname;
let _inappPreviewHost = '';
switch ( origin ) {
case 'https://local.webaverse.com': {
- _inappPreviewHost = `https://local.webaverse.online:${window.location.port}`;
+ _inappPreviewHost = `https://local.webaverse.online:${globalThis.location.port}`;
break;
}
case 'https://dev.webaverse.com': {
@@ -91,7 +91,8 @@ export const crouchMaxTime = 200;
export const activateMaxTime = 750;
export const useMaxTime = 750;
export const aimMaxTime = 1000;
-export const throwReleaseTime = 750;
+export const throwReleaseTime = 220;
+export const throwAnimationDuration = 1.4166666269302368;
export const minFov = 60;
export const maxFov = 120;
export const midFov = 90;
@@ -108,11 +109,13 @@ export const avatarInterpolationNumFrames = 4;
export const eatFrameIndices = [500, 800, 1100];
export const drinkFrameIndices = [400, 700, 1000];
+export const defaultMaxId = 8192;
+
export const defaultMusicVolume = 0.35;
export const voicePacksUrl = `https://webaverse.github.io/voicepacks/all_packs.json`;
-export const voiceEndpoint = `https://voice.webaverse.com/tts`;
+export const voiceEndpointBaseUrl = `https://voice.webaverse.com/tts`;
export const voiceEndpointsUrl = `https://raw.githubusercontent.com/webaverse/tiktalknet/main/model_lists/all_models.json`;
export const chatTextSpeed = 15;
@@ -121,10 +124,30 @@ export const shakeAnimationSpeed = 30;
export const hotbarSize = 60;
export const infoboxSize = 100;
+export const startTextureAtlasSize = 512;
+export const maxTextureAtlasSize = 4096;
+
export const numLoadoutSlots = 8;
export const defaultDioramaSize = 512;
+export const defaultChunkSize = 16;
+export const defaultWorldSeed = 100;
+
+export const defaultVoiceEndpoint = `Sweetie Belle`;
+export const defaultVoicePackName = `ShiShi voice pack`;
-export const defaultAvatarUrl = './avatars/scillia_drophunter_v15_vian.vrm';
+// export const defaultAvatarUrl = './avatars/scilly_drophunter_v30.5_Guilty.vrm';
+// export const defaultAvatarUrl = './avatars/scilly_drophunter_v31_Guilty.vrm';
+// export const defaultAvatarUrl = './avatars/ann_liskwitch_v3.1_guiltyallShapeKeys.vrm';
// export const defaultAvatarUrl = './avatars/scillia_drophunter_v25_gloria_vian.vrm';
// export const defaultAvatarUrl = './avatars/ann.vrm';
+export const defaultPlayerSpec = {
+ name: 'Scillia',
+ previewUrl: './images/characters/upstreet/small/scillia.png',
+ avatarUrl: './avatars/scilly_drophunter_v31.6_Guilty.vrm',
+ voice: defaultVoiceEndpoint,
+ voicePack: defaultVoicePackName,
+ class: 'Drop Hunter',
+ bio: `Her nickname is Scilly or SLY. 13/F drop hunter. She is an adventurer, swordfighter and fan of potions. She is exceptionally skilled and can go Super Saiyan.`,
+ themeSongUrl: `https://webaverse.github.io/music/themes/149274046-smooth-adventure-quest.mp3`,
+};
\ No newline at end of file
diff --git a/dc-worker-manager.js b/dc-worker-manager.js
new file mode 100644
index 0000000000..b23fda59f9
--- /dev/null
+++ b/dc-worker-manager.js
@@ -0,0 +1,370 @@
+// import * as THREE from 'three';
+import {chunkMinForPosition, getLockChunkId} from './util.js';
+import {LockManager, abortError} from './lock-manager.js';
+
+//
+
+const defaultNumDcWorkers = 1;
+
+//
+
+let taskIds = 0;
+
+//
+
+export class DcWorkerManager {
+ constructor({
+ chunkSize,
+ seed,
+ instance,
+ numWorkers = defaultNumDcWorkers,
+ } = {}) {
+ this.chunkSize = chunkSize;
+ this.seed = seed;
+ this.instance = instance;
+ this.numWorkers = numWorkers;
+
+ this.workers = [];
+ this.nextWorker = 0;
+ this.locks = new LockManager();
+ this.loadPromise = null;
+
+ // trigger load
+ this.waitForLoad();
+ }
+ waitForLoad() {
+ if (!this.loadPromise) {
+ this.loadPromise = (async () => {
+ // create workers
+ const workers = Array(this.numWorkers);
+ for (let i = 0; i < this.numWorkers; i++) {
+ const worker = new Worker('./dc-worker.js?import', {
+ type: 'module',
+ });
+ const cbs = new Map();
+ worker.onmessage = (e) => {
+ const {taskId} = e.data;
+ const cb = cbs.get(taskId);
+ if (cb) {
+ cbs.delete(taskId);
+ cb(e.data);
+ } else {
+ // console.warn('dropped canceled message', e.data);
+ // debugger;
+ }
+ };
+ worker.onerror = (err) => {
+ console.log('dc worker load error', err);
+ };
+ worker.request = (method, args, {signal} = {}) => {
+ return new Promise((resolve, reject) => {
+ const {instance} = this;
+ const taskId = ++taskIds;
+
+ const onabort = e => {
+ worker.request('cancelTask', {
+ taskId,
+ });
+
+ reject(abortError);
+ cbs.delete(taskId);
+ };
+ signal && signal.addEventListener('abort', onabort);
+
+ cbs.set(taskId, (data) => {
+ signal && signal.removeEventListener('abort', onabort);
+
+ const {error, result} = data;
+ if (error) {
+ reject(error);
+ } else {
+ resolve(result);
+ }
+ });
+ worker.postMessage({
+ method,
+ args,
+ instance,
+ taskId,
+ });
+ });
+ };
+ workers[i] = worker;
+ }
+
+ /* // connect ports
+ const _makePorts = () => {
+ const result = Array(this.numWorkers);
+ for (let i = 0; i < this.numWorkers; i++) {
+ const messageChannel = new MessageChannel();
+ result[i] = [messageChannel.port1, messageChannel.port2];
+ }
+ return result;
+ };
+ for (let i = 0; i < this.numWorkers; i++) {
+ const worker1 = workers[i];
+ const ports = _makePorts();
+ for (let j = 0; j < this.numWorkers; j++) {
+ if (i !== j) {
+ const worker2 = workers[j];
+ const [port1, port2] = ports[j];
+
+ worker1.postMessage(
+ {
+ method: 'port',
+ args: {
+ port: port1,
+ },
+ },
+ [port1]
+ );
+ worker2.postMessage(
+ {
+ method: 'port',
+ args: {
+ port: port2,
+ },
+ },
+ [port2]
+ );
+ }
+ }
+ } */
+
+ // initialize
+ // note: deliberately don't wait for this; let it start in the background
+ Promise.all(
+ workers.map(async (worker) => {
+ await Promise.all([
+ worker.request('initialize', {
+ chunkSize: this.chunkSize,
+ seed: this.seed,
+ }),
+ worker.request('ensureInstance', {
+ instance: this.instance,
+ }),
+ ]);
+ })
+ );
+
+ this.workers = workers;
+ })();
+ }
+ return this.loadPromise;
+ }
+ getNextWorker() {
+ const { workers } = this;
+ const worker = workers[this.nextWorker];
+ this.nextWorker = (this.nextWorker + 1) % workers.length;
+ return worker;
+ }
+ async setClipRange(range, {signal} = {}) {
+ await Promise.all(
+ this.workers.map((worker) => {
+ return worker.request('setClipRange', {
+ instance: this.instance,
+ range: [range.min.toArray(), range.max.toArray()],
+ }, {signal});
+ })
+ );
+ }
+
+ async createTracker(lod, minLodRange, trackY, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('createTracker', {
+ instance: this.instance,
+ lod,
+ minLodRange,
+ trackY,
+ }, {signal});
+ return result;
+ }
+ async destroyTracker(tracker, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('destroyTracker', {
+ instance: this.instance,
+ tracker,
+ }, {signal});
+ return result;
+ }
+ async trackerUpdate(tracker, position, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('trackerUpdate', {
+ instance: this.instance,
+ tracker,
+ position: position.toArray(),
+ }, {signal});
+ return result;
+ }
+
+ async generateTerrainChunk(chunkPosition, lodArray, {signal} = {}) {
+ // const chunkId = getLockChunkId(chunkPosition);
+ // return await this.locks.request(chunkId, async lock => {
+ const worker = this.getNextWorker();
+ const result = await worker.request('generateTerrainChunk', {
+ instance: this.instance,
+ chunkPosition: chunkPosition.toArray(),
+ lodArray,
+ }, {signal});
+ // signal.throwIfAborted();
+ return result;
+ // });
+ }
+ async generateTerrainChunkRenderable(chunkPosition, lodArray, {signal} = {}) {
+ // const chunkId = getLockChunkId(chunkPosition);
+ // return await this.locks.request(chunkId, {signal}, async lock => {
+ const worker = this.getNextWorker();
+ const result = await worker.request('generateTerrainChunkRenderable', {
+ instance: this.instance,
+ chunkPosition: chunkPosition.toArray(),
+ lodArray,
+ }, {signal});
+ // signal.throwIfAborted();
+ return result;
+ // });
+ }
+ async generateLiquidChunk(chunkPosition, lodArray, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('generateLiquidChunk', {
+ instance: this.instance,
+ chunkPosition: chunkPosition.toArray(),
+ lodArray,
+ }, {signal});
+ // signal.throwIfAborted();
+ return result;
+ }
+ async getChunkHeightfield(x, z, lod, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('getChunkHeightfield', {
+ x, z,
+ lod,
+ }, {signal});
+ return result;
+ }
+ /* async getHeightfieldRange(x, z, w, h, lod) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('getHeightfieldRange', {
+ instance: this.instance,
+ x,
+ z,
+ w,
+ h,
+ lod,
+ });
+ return result;
+ }
+ async getSkylightFieldRange(x, y, z, w, h, d, lod) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('getSkylightFieldRange', {
+ instance: this.instance,
+ x,
+ y,
+ z,
+ w,
+ h,
+ d,
+ lod,
+ });
+ return result;
+ }
+ async getAoFieldRange(x, y, z, w, h, d, lod) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('getAoFieldRange', {
+ instance: this.instance,
+ x,
+ y,
+ z,
+ w,
+ h,
+ d,
+ lod,
+ });
+ return result;
+ } */
+ async createGrassSplat(x, z, lod, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('createGrassSplat', {
+ instance: this.instance,
+ x,
+ z,
+ lod,
+ }, {signal});
+ return result;
+ }
+ async createVegetationSplat(x, z, lod, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('createVegetationSplat', {
+ instance: this.instance,
+ x,
+ z,
+ lod,
+ }, {signal});
+ return result;
+ }
+ async createMobSplat(x, z, lod, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('createMobSplat', {
+ instance: this.instance,
+ x,
+ z,
+ lod,
+ }, {signal});
+ return result;
+ }
+ async drawCubeDamage(position, quaternion, scale, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('drawCubeDamage', {
+ instance: this.instance,
+ position: position.toArray(),
+ quaternion: quaternion.toArray(),
+ scale: scale.toArray(),
+ }, {signal});
+ return result;
+ }
+ async eraseCubeDamage(position, quaterion, scale, {signal} = {}) {
+ const worker = this.getNextWorker();
+ const result = await worker.request('eraseCubeDamage', {
+ instance: this.instance,
+ position: position.toArray(),
+ quaternion: quaternion.toArray(),
+ scale: scale.toArray(),
+ }, {signal});
+ return result;
+ }
+ async drawSphereDamage(position, radius, {signal} = {}) {
+ // const chunkPosition = chunkMinForPosition(
+ // position.x,
+ // position.y,
+ // position.z,
+ // this.chunkSize
+ // );
+ // const chunkId = getLockChunkId(chunkPosition);
+ // return await this.locks.request(chunkId, async lock => {
+ const worker = this.getNextWorker();
+ const result = await worker.request('drawSphereDamage', {
+ instance: this.instance,
+ position: position.toArray(),
+ radius,
+ }, {signal});
+ return result;
+ // });
+ }
+ async eraseSphereDamage(position, radius, {signal} = {}) {
+ const chunkPosition = chunkMinForPosition(
+ position.x,
+ position.y,
+ position.z,
+ this.chunkSize
+ );
+ const chunkId = getLockChunkId(chunkPosition);
+ // return await this.locks.request(chunkId, async lock => {
+ const worker = this.getNextWorker();
+ const result = await worker.request('eraseSphereDamage', {
+ instance: this.instance,
+ position: position.toArray(),
+ radius,
+ }, {signal});
+ return result;
+ // });
+ }
+}
diff --git a/dc-worker.js b/dc-worker.js
new file mode 100644
index 0000000000..7093e1ac23
--- /dev/null
+++ b/dc-worker.js
@@ -0,0 +1,621 @@
+import * as THREE from 'three';
+import dc from './dual-contouring.js';
+import { makePromise } from './util.js';
+import { defaultChunkSize } from './constants.js';
+
+//
+
+const chunkWorldSize = defaultChunkSize;
+
+//
+
+const localVector = new THREE.Vector3();
+
+//
+
+// const ports = [];
+
+//
+
+const _cloneTerrainMeshData = (meshData) => {
+ if (meshData) {
+ const sizeRequired = meshData.positions.length * meshData.positions.constructor.BYTES_PER_ELEMENT +
+ meshData.normals.length * meshData.normals.constructor.BYTES_PER_ELEMENT +
+ // meshData.biomes.length * meshData.biomes.constructor.BYTES_PER_ELEMENT +
+ meshData.biomesWeights.length * meshData.biomesWeights.constructor.BYTES_PER_ELEMENT +
+ meshData.biomesUvs1.length * meshData.biomesUvs1.constructor.BYTES_PER_ELEMENT +
+ meshData.biomesUvs2.length * meshData.biomesUvs2.constructor.BYTES_PER_ELEMENT +
+ meshData.indices.length * meshData.indices.constructor.BYTES_PER_ELEMENT +
+ meshData.skylights.length * meshData.skylights.constructor.BYTES_PER_ELEMENT +
+ meshData.aos.length * meshData.aos.constructor.BYTES_PER_ELEMENT;
+ const arrayBuffer = new ArrayBuffer(sizeRequired);
+ let index = 0;
+
+ const positions = new meshData.positions.constructor(arrayBuffer, index, meshData.positions.length);
+ positions.set(meshData.positions);
+ index += meshData.positions.length * meshData.positions.constructor.BYTES_PER_ELEMENT;
+
+ const normals = new meshData.normals.constructor(arrayBuffer, index, meshData.normals.length);
+ normals.set(meshData.normals);
+ index += meshData.normals.length * meshData.normals.constructor.BYTES_PER_ELEMENT;
+
+ // const biomes = new meshData.biomes.constructor(arrayBuffer, index, meshData.biomes.length);
+ // biomes.set(meshData.biomes);
+ // index += meshData.biomes.length * meshData.biomes.constructor.BYTES_PER_ELEMENT;
+
+ const biomesWeights = new meshData.biomesWeights.constructor(arrayBuffer, index, meshData.biomesWeights.length);
+ biomesWeights.set(meshData.biomesWeights);
+ index += meshData.biomesWeights.length * meshData.biomesWeights.constructor.BYTES_PER_ELEMENT;
+
+ const biomesUvs1 = new meshData.biomesUvs1.constructor(arrayBuffer, index, meshData.biomesUvs1.length);
+ biomesUvs1.set(meshData.biomesUvs1);
+ index += meshData.biomesUvs1.length * meshData.biomesUvs1.constructor.BYTES_PER_ELEMENT;
+
+ const biomesUvs2 = new meshData.biomesUvs2.constructor(arrayBuffer, index, meshData.biomesUvs2.length);
+ biomesUvs2.set(meshData.biomesUvs2);
+ index += meshData.biomesUvs2.length * meshData.biomesUvs2.constructor.BYTES_PER_ELEMENT;
+
+ const indices = new meshData.indices.constructor(arrayBuffer, index, meshData.indices.length);
+ indices.set(meshData.indices);
+ index += meshData.indices.length * meshData.indices.constructor.BYTES_PER_ELEMENT;
+
+ const skylights = new meshData.skylights.constructor(arrayBuffer, index, meshData.skylights.length);
+ skylights.set(meshData.skylights);
+ index += meshData.skylights.length * meshData.skylights.constructor.BYTES_PER_ELEMENT;
+
+ const aos = new meshData.aos.constructor(arrayBuffer, index, meshData.aos.length);
+ aos.set(meshData.aos);
+ index += meshData.aos.length * meshData.aos.constructor.BYTES_PER_ELEMENT;
+
+ return {
+ // bufferAddress: arrayBuffer.byteOffset,
+ arrayBuffer,
+ positions,
+ normals,
+ // biomes,
+ biomesWeights,
+ biomesUvs1,
+ biomesUvs2,
+ indices,
+ skylights,
+ aos,
+ };
+ } else {
+ return null;
+ }
+};
+const _cloneLiquidMeshData = (meshData) => {
+ if (meshData) {
+ /* return {
+ arrayBuffer: new ArrayBuffer(1),
+ positions: meshData.positions.slice(),
+ normals: meshData.normals.slice(),
+ biomes: meshData.biomes.slice(),
+ biomesWeights: meshData.biomesWeights.slice(),
+ indices: meshData.indices.slice(),
+ }; */
+
+ const sizeRequired = meshData.positions.length * meshData.positions.constructor.BYTES_PER_ELEMENT +
+ meshData.normals.length * meshData.normals.constructor.BYTES_PER_ELEMENT +
+ meshData.biomes.length * meshData.biomes.constructor.BYTES_PER_ELEMENT +
+ meshData.indices.length * meshData.indices.constructor.BYTES_PER_ELEMENT;
+ const arrayBuffer = new ArrayBuffer(sizeRequired);
+ let index = 0;
+
+ const positions = new meshData.positions.constructor(arrayBuffer, index, meshData.positions.length);
+ positions.set(meshData.positions);
+ index += meshData.positions.length * meshData.positions.constructor.BYTES_PER_ELEMENT;
+
+ const normals = new meshData.normals.constructor(arrayBuffer, index, meshData.normals.length);
+ normals.set(meshData.normals);
+ index += meshData.normals.length * meshData.normals.constructor.BYTES_PER_ELEMENT;
+
+ const biomes = new meshData.biomes.constructor(arrayBuffer, index, meshData.biomes.length);
+ biomes.set(meshData.biomes);
+ index += meshData.biomes.length * meshData.biomes.constructor.BYTES_PER_ELEMENT;
+
+ const indices = new meshData.indices.constructor(arrayBuffer, index, meshData.indices.length);
+ indices.set(meshData.indices);
+ index += meshData.indices.length * meshData.indices.constructor.BYTES_PER_ELEMENT;
+
+ return {
+ // bufferAddress: arrayBuffer.byteOffset,
+ arrayBuffer,
+ positions,
+ normals,
+ biomes,
+ indices,
+ };
+ } else {
+ return null;
+ }
+};
+
+const instances = new Map();
+
+let loaded = false;
+// let running = false;
+let queue = [];
+const _handleMethod = async ({method, args, instance: instanceKey, taskId}) => {
+ // console.log('worker handle method', method, args);
+
+ /* const _injectDamages = (chunks, instance) => {
+ // console.log("Instance : " + instance);
+ // inject the damage to peer workers
+ const method = 'injectDamages';
+ const args = {
+ chunks,
+ instance,
+ };
+ for (const port of ports) {
+ // console.log('got port', port);
+ port.postMessage({
+ method,
+ args,
+ });
+ }
+ }; */
+ const _chunksToResult = chunks => chunks.map(({ position }) => ({ position }));
+
+ switch (method) {
+ case 'initialize': {
+ const {chunkSize, seed, numThreads} = args;
+ return dc.initialize(chunkSize, seed, numThreads);
+ }
+ /* case 'port': {
+ const { port } = args;
+ port.onmessage = (e) => {
+ _handleMessage({
+ data: e.data,
+ port,
+ });
+ };
+ ports.push(port);
+ return;
+ } */
+ case 'ensureInstance': {
+ const { instance: instanceKey } = args;
+ // console.log(instanceKey);
+ let instance = instances.get(instanceKey);
+ if (!instance) {
+ instance = dc.createInstance();
+ instances.set(instanceKey, instance);
+ }
+ return true;
+ }
+ case 'deleteInstance': {
+ const { instance: instanceKey } = args;
+ const instance = instances.get(instanceKey);
+ if (instance) {
+ dc.deleteInstance(instance);
+ instances.delete(instanceKey);
+ return true;
+ } else {
+ return false;
+ }
+ }
+ case 'setClipRange': {
+ const {instance: instanceKey, range} = args;
+ const instance = instances.get(instanceKey);
+ dc.setClipRange(instance, range);
+ return true;
+ }
+ case 'createTracker': {
+ const {instance: instanceKey, lod, minLodRange, trackY} = args;
+ const instance = instances.get(instanceKey);
+ const tracker = dc.createTracker(instance, lod, minLodRange, trackY);
+ const spec = {
+ result: tracker,
+ transfers: [],
+ };
+ return spec;
+ }
+ case 'destroyTracker': {
+ const {instance: instanceKey, tracker} = args;
+ const instance = instances.get(instanceKey);
+ dc.destroyTracker(instance, tracker);
+ return true;
+ }
+ case 'trackerUpdate': {
+ const {instance: instanceKey, tracker, position} = args;
+ const instance = instances.get(instanceKey);
+ const trackerUpdate = await dc.trackerUpdateAsync(instance, taskId, tracker, position);
+ const trackerUpdate2 = _cloneTrackerUpdate(trackerUpdate);
+ const spec = {
+ result: trackerUpdate2,
+ transfers: [],
+ };
+ return spec;
+ }
+ case 'generateTerrainChunk': {
+ const {chunkPosition, lodArray} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('generateTerrainChunk : instance not found');
+
+ localVector.fromArray(chunkPosition)
+ .multiplyScalar(chunkWorldSize);
+
+ const meshData = await dc.createTerrainChunkMeshAsync(instance, taskId, localVector.x, localVector.y, localVector.z, lodArray);
+ const meshData2 = _cloneTerrainMeshData(meshData);
+ meshData && dc.free(meshData.bufferAddress);
+
+ if (meshData2) {
+ const spec = {
+ result: meshData2,
+ transfers: [meshData2.arrayBuffer],
+ };
+ return spec;
+ } else {
+ return null;
+ }
+ }
+ case 'generateTerrainChunkRenderable': {
+ const {chunkPosition, lodArray} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('generateTerrainChunkRenderable : instance not found');
+
+ const position = new THREE.Vector3().fromArray(chunkPosition)
+ .multiplyScalar(chunkWorldSize);
+ // console.log('got position', position.toArray().join(','));
+ const meshData = await dc.createTerrainChunkMeshAsync(instance, taskId, position.x, position.y, position.z, lodArray);
+ // console.log('got mesh data result 1', meshData);
+ const meshData2 = _cloneTerrainMeshData(meshData);
+ // console.log('got mesh data result 2', meshData2);
+ meshData && dc.free(meshData.bufferAddress);
+
+ if (meshData2) {
+ const lod = lodArray[0];
+ {
+ const taskId = Math.floor(Math.random() * 0xFFFFFF);
+ // console.log('skylight task id', taskId);
+ meshData2.skylights = await dc.getChunkSkylightAsync(
+ instance,
+ taskId,
+ position.x,
+ position.y,
+ position.z,
+ lod
+ );
+ }
+ {
+ const taskId = Math.floor(Math.random() * 0xFFFFFF);
+ // console.log('ao task id', taskId);
+ meshData2.aos = await dc.getChunkAoAsync(
+ instance,
+ taskId,
+ position.x,
+ position.y,
+ position.z,
+ lod
+ );
+ }
+
+ const spec = {
+ result: meshData2,
+ transfers: [
+ meshData2.arrayBuffer,
+ meshData2.skylights.buffer,
+ meshData2.aos.buffer,
+ ],
+ };
+ return spec;
+ } else {
+ return null;
+ }
+ }
+ case 'generateLiquidChunk': {
+ const {chunkPosition, lodArray} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('generateLiquidChunk : instance not found');
+
+ localVector.fromArray(chunkPosition)
+ .multiplyScalar(chunkWorldSize);
+ const meshData = await dc.createLiquidChunkMeshAsync(instance, taskId, localVector.x, localVector.y, localVector.z, lodArray);
+ const meshData2 = _cloneLiquidMeshData(meshData);
+ meshData && dc.free(meshData.bufferAddress);
+
+ if (meshData2) {
+ const spec = {
+ result: meshData2,
+ transfers: [meshData2.arrayBuffer],
+ };
+ return spec;
+ } else {
+ return null;
+ }
+ }
+ case 'getChunkHeightfield': {
+ const {x, z, lod} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('getChunkHeightfield : instance not found');
+
+ const heightfield = await dc.getChunkHeightfieldAsync(instance, taskId, x, z, lod);
+ const spec = {
+ result: heightfield,
+ transfers: [heightfield.buffer],
+ };
+ return spec;
+ }
+ /* case 'getHeightfieldRange': {
+ const { instance: instanceKey, x, z, w, h, lod } = args;
+ const instance = instances.get(instanceKey);
+ if (!instance)
+ throw new Error('getHeightfieldRange : instance not found');
+ const heights = dc.getHeightfieldRange(instance, x, z, w, h, lod);
+
+ const spec = {
+ result: heights,
+ transfers: [heights.buffer],
+ };
+ return spec;
+ }
+ case 'getSkylightFieldRange': {
+ const { instance: instanceKey, x, y, z, w, h, d, lod } = args;
+ const instance = instances.get(instanceKey);
+ if (!instance)
+ throw new Error('getSkylightFieldRange : instance not found');
+ const skylights = dc.getSkylightFieldRange(
+ instance,
+ x,
+ y,
+ z,
+ w,
+ h,
+ d,
+ lod
+ );
+
+ const spec = {
+ result: skylights,
+ transfers: [skylights.buffer],
+ };
+ return spec;
+ }
+ case 'getAoFieldRange': {
+ const { instance: instanceKey, x, y, z, w, h, d, lod } = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('getAoFieldRange : instance not found');
+ const aos = dc.getAoFieldRange(instance, x, y, z, w, h, d, lod);
+
+ const spec = {
+ result: aos,
+ transfers: [aos.buffer],
+ };
+ return spec;
+ } */
+ case 'createGrassSplat': {
+ const {x, z, lod} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('createGrassSplat : instance not found');
+
+ const {
+ ps,
+ qs,
+ instances: instancesResult,
+ } = await dc.createGrassSplatAsync(instance, taskId, x, z, lod);
+
+ const spec = {
+ result: {
+ ps,
+ qs,
+ instances: instancesResult,
+ },
+ transfers: [ps.buffer, qs.buffer, instancesResult.buffer],
+ };
+ return spec;
+ }
+ case 'createVegetationSplat': {
+ const {x, z, lod} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('createVegetationSplat : instance not found');
+
+ const {
+ ps,
+ qs,
+ instances: instancesResult,
+ } = await dc.createVegetationSplatAsync(instance, taskId, x, z, lod);
+
+ const spec = {
+ result: {
+ ps,
+ qs,
+ instances: instancesResult,
+ },
+ transfers: [ps.buffer, qs.buffer, instancesResult.buffer],
+ };
+ return spec;
+ }
+ case 'createMobSplat': {
+ const {x, z, lod} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('createMobSplat : instance not found');
+
+ const {
+ ps,
+ qs,
+ instances: instancesResult,
+ } = await dc.createMobSplatAsync(instance, taskId, x, z, lod);
+
+ const spec = {
+ result: {
+ ps,
+ qs,
+ instances: instancesResult,
+ },
+ transfers: [ps.buffer, qs.buffer, instancesResult.buffer],
+ };
+ return spec;
+ }
+ case 'drawCubeDamage': {
+ const {position, quaternion, scale} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('drawCubeDamage : instance not found');
+
+ // console.log('dc worker draw cube damage', {position, quaternion, scale});
+ const chunks = dc.drawCubeDamage(
+ instance,
+ position[0],
+ position[1],
+ position[2],
+ quaternion[0],
+ quaternion[1],
+ quaternion[2],
+ quaternion[3],
+ scale[0],
+ scale[1],
+ scale[2]
+ );
+ // console.log('draw cube damage chunks', chunks);
+
+ if (chunks) {
+ return {
+ result: _chunksToResult(chunks),
+ transfers: [],
+ };
+ } else {
+ return null;
+ }
+ }
+ case 'eraseCubeDamage': {
+ const {position, quaternion, scale} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('eraseCubeDamage : instance not found');
+
+ const chunks = dc.drawCubeDamage(
+ instance,
+ position[0],
+ position[1],
+ position[2],
+ quaternion[0],
+ quaternion[1],
+ quaternion[2],
+ quaternion[3],
+ scale[0],
+ scale[1],
+ scale[2]
+ );
+
+ if (chunks) {
+ return {
+ result: _chunksToResult(chunks),
+ transfers: [],
+ };
+ } else {
+ return null;
+ }
+ }
+ case 'drawSphereDamage': {
+ const {position, radius} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('drawSphereDamage : instance not found');
+
+ const chunks = dc.drawSphereDamage(
+ instance,
+ position[0],
+ position[1],
+ position[2],
+ radius
+ );
+
+ if (chunks) {
+ return {
+ result: _chunksToResult(chunks),
+ transfers: [],
+ };
+ } else {
+ return null;
+ }
+ }
+ case 'eraseSphereDamage': {
+ const {position, radius} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('eraseSphereDamage : instance not found');
+ const chunks = dc.eraseSphereDamage(
+ instance,
+ position[0],
+ position[1],
+ position[2],
+ radius
+ );
+
+ if (chunks) {
+ return {
+ result: _chunksToResult(chunks),
+ transfers: [],
+ };
+ } else {
+ return null;
+ }
+ }
+ case 'cancelTask': {
+ const {taskId} = args;
+ const instance = instances.get(instanceKey);
+ if (!instance) throw new Error('cancelTask : instance not found');
+
+ await dc.cancelTask(instance, taskId);
+ const spec = {
+ result: null,
+ transfers: [],
+ };
+ return spec;
+ }
+ default: {
+ throw new Error(`unknown method: ${method}`);
+ }
+ }
+};
+const _handleMessage = async m => {
+ const {data, port} = m;
+ const {taskId} = data;
+ const p = makePromise();
+ // try {
+ const spec = await _handleMethod(data);
+ p.accept(spec);
+ // } catch (err) {
+ // p.reject(err);
+ // }
+
+ if (taskId) {
+ p.then(
+ (spec) => {
+ const { result = null, transfers = [] } = spec ?? {};
+ port.postMessage(
+ {
+ method: 'response',
+ taskId,
+ result,
+ },
+ transfers
+ );
+ },
+ (err) => {
+ port.postMessage({
+ method: 'response',
+ taskId,
+ error: err.message,
+ });
+ }
+ );
+ }
+};
+self.onmessage = (e) => {
+ const m = {
+ data: e.data,
+ port: self,
+ };
+ if (loaded) {
+ _handleMessage(m);
+ } else {
+ queue.push(m);
+ }
+};
+
+(async () => {
+ await dc.waitForLoad();
+
+ loaded = true;
+ for (let i = 0; i < queue.length; i++) {
+ _handleMessage(queue[i]);
+ }
+ queue.length = 0;
+})();
diff --git a/dom-renderer.jsx b/dom-renderer.jsx
new file mode 100644
index 0000000000..854f3609f1
--- /dev/null
+++ b/dom-renderer.jsx
@@ -0,0 +1,221 @@
+import * as THREE from 'three';
+
+// import {sceneLowerPriority} from './renderer.js';
+import easing from './easing.js';
+import physicsManager from './physics-manager.js';
+
+const cubicBezier = easing(0, 1, 0, 1);
+
+const physicsScene = physicsManager.getScene();
+
+class DomItem extends THREE.Object3D {
+ constructor(position, quaternion, scale, width, height, worldWidth, render) {
+ super();
+
+ this.name = 'domNode';
+
+ this.position.copy(position);
+ this.quaternion.copy(quaternion);
+ this.scale.copy(scale);
+
+ this.width = width;
+ this.height = height;
+ this.worldWidth = worldWidth;
+ this.render = render;
+
+ this.enabled = false;
+ this.value = 0;
+ this.animation = null;
+
+ const floatNode = new THREE.Object3D();
+ floatNode.name = 'floatNode';
+ this.floatNode = floatNode;
+ this.add(floatNode);
+
+ const iframeMesh = new IFrameMesh({
+ width,
+ height,
+ });
+ iframeMesh.name = 'domPunchThroughNode';
+ this.iframeMesh = iframeMesh;
+ floatNode.add(iframeMesh);
+
+ const p = position;
+ const q = quaternion;
+ const hs = new THREE.Vector3(iframeMesh.worldWidth, iframeMesh.worldHeight, 0.01)
+ .multiplyScalar(0.5);
+ const dynamic = false;
+ const physicsObject = physicsScene.addBoxGeometry(
+ p,
+ q,
+ hs,
+ dynamic
+ );
+ physicsScene.disableActor(physicsObject);
+ physicsScene.disableGeometryQueries(physicsObject);
+ this.physicsObject = physicsObject;
+ }
+ startAnimation(enabled, startTime, endTime) {
+ this.enabled = enabled;
+
+ const startValue = this.value;
+ const endValue = enabled ? 1 : 0;
+ this.animation = {
+ startTime,
+ endTime,
+ startValue,
+ endValue,
+ };
+ }
+ update(timestamp) {
+ if (this.animation) {
+ const {startTime, endTime, startValue, endValue} = this.animation;
+ let factor = Math.min(Math.max((timestamp - startTime) / (endTime - startTime), 0), 1);
+ factor = cubicBezier(factor);
+ if (factor < 1) {
+ this.value = startValue + (endValue - startValue) * factor;
+ } else {
+ this.value = endValue;
+ this.animation = null;
+ }
+ } else {
+ this.value = this.enabled ? 1 : 0;
+ }
+
+ if (this.value > 0) {
+ const w = this.value;
+ const shiftOffset = (1 - w) * this.worldWidth/2;
+ this.iframeMesh.position.x = -shiftOffset;
+ this.iframeMesh.scale.set(w, 1, 1);
+ this.iframeMesh.updateMatrixWorld();
+
+ this.iframeMesh.material.opacity = 1 - this.value;
+
+ this.physicsObject.position.setFromMatrixPosition(this.iframeMesh.matrixWorld);
+ this.physicsObject.quaternion.setFromRotationMatrix(this.iframeMesh.matrixWorld);
+ this.physicsObject.updateMatrixWorld();
+ physicsScene.setTransform(this.physicsObject);
+
+ this.visible = true;
+ } else {
+ this.visible = false;
+ }
+ }
+ onBeforeRaycast() {
+ if (this.enabled) {
+ physicsScene.enableActor(this.physicsObject);
+ physicsScene.enableGeometryQueries(this.physicsObject);
+ }
+ }
+ onAfterRaycast() {
+ if (this.enabled) {
+ physicsScene.disableActor(this.physicsObject);
+ physicsScene.disableGeometryQueries(this.physicsObject);
+ }
+ }
+ destroy() {
+ physicsScene.enableActor(this.physicsObject);
+ physicsScene.removeGeometry(this.physicsObject);
+ }
+}
+
+class IFrameMesh extends THREE.Mesh {
+ constructor({
+ width,
+ height,
+ }) {
+ const scaleFactor = DomRenderEngine.getScaleFactor(width, height);
+ const worldWidth = width * scaleFactor;
+ const worldHeight = height * scaleFactor;
+ const geometry = new THREE.PlaneBufferGeometry(worldWidth, worldHeight);
+ const material = new THREE.MeshBasicMaterial({
+ color: 0xFFFFFF,
+ side: THREE.DoubleSide,
+ opacity: 0,
+ transparent: true,
+ blending: THREE.MultiplyBlending
+ });
+ super(geometry, material);
+
+ this.frustumCulled = false;
+ this.onBeforeRender = renderer => {
+ const context = renderer.getContext();
+ context.disable(context.SAMPLE_ALPHA_TO_COVERAGE);
+ };
+ this.onAfterRender = renderer => {
+ const context = renderer.getContext();
+ context.enable(context.SAMPLE_ALPHA_TO_COVERAGE);
+ };
+ this.worldWidth = worldWidth;
+ this.worldHeight = worldHeight;
+ }
+}
+
+export class DomRenderEngine extends EventTarget {
+ constructor() {
+ super();
+
+ this.doms = [];
+ this.physicsObjects = [];
+ this.lastHover = false;
+ }
+ static getScaleFactor(width, height) {
+ return Math.min(1/width, 1/height);
+ }
+ addDom({
+ position = new THREE.Vector3(),
+ quaternion = new THREE.Quaternion(),
+ scale = new THREE.Vector3(1, 1, 1),
+ width = 600,
+ height = 400,
+ worldWidth = 1,
+ render = () => (
),
+ }) {
+ const dom = new DomItem(position, quaternion, scale, width, height, worldWidth, render);
+ this.doms.push(dom);
+ this.physicsObjects.push(dom.physicsObject);
+
+ this.dispatchEvent(new MessageEvent('update'));
+
+ return dom;
+ }
+ removeDom(dom) {
+ const index = this.doms.indexOf(dom);
+ if (index !== -1) {
+ this.doms.splice(index, 1);
+ this.physicsObjects.splice(index, 1);
+ }
+ }
+ /* update() {
+ const hover = this.doms.some(dom => {
+ return false;
+ });
+ if (hover !== this.lastHover) {
+ this.lastHover = hover;
+
+ this.dispatchEvent(new MessageEvent('hover', {
+ data: {
+ hover,
+ },
+ }));
+ }
+ } */
+ getPhysicsObjects() {
+ return this.physicsObjects;
+ }
+ onBeforeRaycast() {
+ for (const dom of this.doms) {
+ dom.onBeforeRaycast();
+ }
+ }
+ onAfterRaycast() {
+ for (const dom of this.doms) {
+ dom.onAfterRaycast();
+ }
+ }
+ destroy() {
+ // XXX finish this
+ }
+}
+const domRenderer = new DomRenderEngine();
+export default domRenderer;
\ No newline at end of file
diff --git a/drop-manager.js b/drop-manager.js
index 1b84b99890..2c2080bc14 100644
--- a/drop-manager.js
+++ b/drop-manager.js
@@ -1,9 +1,70 @@
-import * as THREE from "three";
-import metaversefile from "metaversefile";
+import * as THREE from 'three';
+import metaversefile from 'metaversefile';
+import generateStats from './procgen/stats.js';
+
+const r = () => -1 + Math.random() * 2;
class DropManager extends EventTarget {
constructor() {
super();
+
+ this.claims = [];
+ }
+ createDropApp({
+ start_url,
+ components = [],
+ type = 'minor', // 'minor', 'major', 'key'
+ position,
+ quaternion,
+ scale,
+ velocity = new THREE.Vector3(r(), 1 + Math.random(), r())
+ .normalize()
+ .multiplyScalar(5),
+ angularVelocity = new THREE.Vector3(0, 0.001, 0),
+ voucher = 'fakeVoucher', // XXX should really throw if no voucher
+ }) {
+ // const r = () => (-0.5+Math.random())*2;
+ const dropComponent = {
+ key: 'drop',
+ value: {
+ type,
+ voucher,
+ velocity: velocity.toArray(),
+ angularVelocity: angularVelocity.toArray(),
+ },
+ };
+ components.push(dropComponent);
+
+ const trackedApp = metaversefile.addTrackedApp(
+ start_url,
+ position,
+ quaternion,
+ scale,
+ components
+ );
+ return trackedApp;
+ }
+ addClaim(name, contentId, voucher) {
+ const result = generateStats(contentId);
+ const {/*art, */stats} = result;
+ const {level} = stats;
+ const start_url = contentId;
+ const claim = {
+ name,
+ start_url,
+ level,
+ voucher,
+ };
+ this.claims.push(claim);
+
+ this.dispatchEvent(new MessageEvent('claimschange', {
+ data: {
+ claims: this.claims,
+ },
+ }));
+ }
+ pickupApp(app) {
+ this.addClaim(app.name, app.contentId, app.getComponent('voucher'));
}
dropToken(contractAddress, tokenId, voucher) {
// XXX engine implements this
diff --git a/dual-contouring.js b/dual-contouring.js
new file mode 100644
index 0000000000..2f1b1b7f0b
--- /dev/null
+++ b/dual-contouring.js
@@ -0,0 +1,740 @@
+import Module from './public/dc.module.js'
+import {Allocator} from './geometry-util.js';
+import {makePromise} from './util.js';
+import {defaultChunkSize} from './constants.js';
+
+//
+
+const cbs = new Map();
+
+//
+
+const align = (v, N) => {
+ const r = v % N;
+ return r === 0 ? v : v - r + N;
+};
+const align4 = v => align(v, 4);
+
+//
+
+const w = {};
+
+w.waitForLoad = Module.waitForLoad;
+
+w.free = address => {
+ Module._doFree(address);
+};
+
+let chunkSize = defaultChunkSize;
+w.initialize = (newChunkSize, seed) => {
+ Module._initialize(newChunkSize, seed);
+ chunkSize = newChunkSize;
+};
+
+w.createInstance = () => Module._createInstance();
+w.destroyInstance = instance => Module._destroyInstance(instance);
+
+//
+
+/* std::vector TrackerTask::getBuffer() const {
+ size_t size = 0;
+ size += sizeof(vm::ivec3); // min
+ size += sizeof(int); // lod
+ size += sizeof(int); // isLeaf
+ size += sizeof(int[8]); // lodArray
+
+ std::vector result(size);
+ int index = 0;
+ std::memcpy(result.data() + index, &maxLodNode->min, sizeof(vm::ivec3));
+ index += sizeof(vm::ivec3);
+ *((int *)(result.data() + index)) = maxLodNode->size;
+ index += sizeof(int);
+ *((int *)(result.data() + index)) = (maxLodNode->type == Node_Leaf) ? 1 : 0;
+ index += sizeof(int);
+ std::memcpy(result.data() + index, &maxLodNode->lodArray, sizeof(int[8]));
+ index += sizeof(int[8]);
+ return result;
+}
+uint8_t *TrackerUpdate::getBuffer() const {
+ std::vector> oldTaskBuffers;
+ for (const auto &task : oldTasks) {
+ oldTaskBuffers.push_back(task->getBuffer());
+ }
+
+ std::vector> newTaskBuffers;
+ for (const auto &task : newTasks) {
+ newTaskBuffers.push_back(task->getBuffer());
+ }
+
+ size_t size = 0;
+ size += sizeof(uint32_t); // numOldTasks
+ size += sizeof(uint32_t); // numNewTasks
+ for (auto &buffer : oldTaskBuffers) {
+ size += buffer.size();
+ }
+ for (auto &buffer : newTaskBuffers) {
+ size += buffer.size();
+ }
+
+ uint8_t *ptr = (uint8_t *)malloc(size);
+ int index = 0;
+ *((uint32_t *)(ptr + index)) = oldTasks.size();
+ index += sizeof(uint32_t);
+ *((uint32_t *)(ptr + index)) = newTasks.size();
+ index += sizeof(uint32_t);
+ memcpy(ptr + index, oldTaskBuffers.data(), oldTaskBuffers.size() * sizeof(oldTaskBuffers[0]));
+ index += oldTaskBuffers.size() * sizeof(oldTaskBuffers[0]);
+ memcpy(ptr + index, newTaskBuffers.data(), newTaskBuffers.size() * sizeof(newTaskBuffers[0]));
+ index += newTaskBuffers.size() * sizeof(newTaskBuffers[0]);
+ return ptr;
+} */
+
+const _parseTrackerUpdate = bufferAddress => {
+ const dataView = new DataView(Module.HEAPU8.buffer, bufferAddress);
+ let index = 0;
+ const numOldTasks = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const numNewTasks = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+
+ const _parseTrackerTask = () => {
+ const min = new Int32Array(Module.HEAPU8.buffer, bufferAddress + index, 3).slice();
+ index += Int32Array.BYTES_PER_ELEMENT * 3;
+ const size = dataView.getInt32(index, true);
+ index += Int32Array.BYTES_PER_ELEMENT;
+ const isLeaf = !!dataView.getInt32(index, true);
+ index += Int32Array.BYTES_PER_ELEMENT;
+ const lodArray = new Int32Array(Module.HEAPU8.buffer, bufferAddress + index, 8).slice();
+ index += Int32Array.BYTES_PER_ELEMENT * 8;
+ return {
+ min,
+ size,
+ isLeaf,
+ lodArray,
+ };
+ };
+ const oldTasks = [];
+ for (let i = 0; i < numOldTasks; i++) {
+ const oldTask = _parseTrackerTask();
+ oldTasks.push(oldTask);
+ }
+ const newTasks = [];
+ for (let i = 0; i < numNewTasks; i++) {
+ const newTask = _parseTrackerTask();
+ newTasks.push(newTask);
+ }
+ return {
+ oldTasks,
+ newTasks
+ };
+};
+w.createTracker = (inst, lod, minLodRange, trackY) => {
+ const result = Module._createTracker(inst, lod, minLodRange, trackY);
+ return result;
+};
+w.destroyTracker = (inst, tracker) => Module._destroyTracker(inst, tracker);
+w.trackerUpdateAsync = async (inst, taskId, tracker, position) => {
+ const allocator = new Allocator(Module);
+
+ const positionArray = allocator.alloc(Float32Array, 3);
+ positionArray.set(position);
+
+ Module._trackerUpdateAsync(
+ inst,
+ taskId,
+ tracker,
+ positionArray.byteOffset,
+ );
+ const p = makePromise();
+ cbs.set(taskId, p);
+
+ allocator.freeAll();
+
+ const outputBufferOffset = await p;
+ const result = _parseTrackerUpdate(outputBufferOffset);
+ return result;
+};
+
+//
+
+const cubeDamage = damageFn => (
+ inst,
+ x, y, z,
+ qx, qy, qz, qw,
+ sx, sy, sz,
+) => {
+ const allocator = new Allocator(Module);
+
+ try {
+ let numPositions = 8;
+ const positionsTypedArray = allocator.alloc(Float32Array, numPositions * 3);
+ const numPositionsTypedArray = allocator.alloc(Uint32Array, 1);
+ numPositionsTypedArray[0] = numPositions;
+ const lod = 1;
+ const gridPoints = chunkSize + 3 + lod;
+ const damageBufferSize = gridPoints * gridPoints * gridPoints;
+ const damageBuffersTypedArray = allocator.alloc(Float32Array, numPositions * gridPoints * gridPoints * gridPoints);
+
+ const drew = damageFn(
+ inst,
+ x, y, z,
+ qx, qy, qz, qw,
+ sx, sy, sz,
+ positionsTypedArray.byteOffset,
+ numPositionsTypedArray.byteOffset,
+ damageBuffersTypedArray.byteOffset,
+ );
+
+ if (drew) {
+ numPositions = numPositionsTypedArray[0];
+ const chunks = Array(numPositions);
+ for (let i = 0; i < numPositions; i++) {
+ const position = positionsTypedArray.slice(i * 3, i * 3 + 3);
+ const damageBuffer = damageBuffersTypedArray.slice(i * damageBufferSize, i * damageBufferSize + damageBufferSize);
+ chunks[i] = {
+ position,
+ damageBuffer,
+ };
+ }
+ return chunks;
+ } else {
+ return null;
+ }
+ } finally {
+ allocator.freeAll();
+ }
+};
+w.drawCubeDamage = function() {
+ return cubeDamage(Module._drawCubeDamage.bind(Module)).apply(this, arguments);
+};
+w.eraseCubeDamage = function() {
+ return cubeDamage(Module._eraseCubeDamage.bind(Module)).apply(this, arguments);
+};
+
+w.setClipRange = function(inst, range) {
+ Module._setClipRange(
+ inst,
+ range[0][0], range[0][1], range[0][2],
+ range[1][0], range[1][1], range[1][2]
+ );
+};
+
+const sphereDamage = damageFn => (
+ inst,
+ x, y, z,
+ radius,
+) => {
+ const allocator = new Allocator(Module);
+
+ try {
+ let numPositions = 8;
+ const positionsTypedArray = allocator.alloc(Float32Array, numPositions * 3);
+ const numPositionsTypedArray = allocator.alloc(Uint32Array, 1);
+ numPositionsTypedArray[0] = numPositions;
+ const drew = damageFn(
+ inst,
+ x, y, z,
+ radius,
+ positionsTypedArray.byteOffset,
+ numPositionsTypedArray.byteOffset
+ );
+
+ if (drew) {
+ numPositions = numPositionsTypedArray[0];
+ const chunks = Array(numPositions);
+ for (let i = 0; i < numPositions; i++) {
+ const position = positionsTypedArray.slice(i * 3, (i + 1) * 3);
+ chunks[i] = {
+ position,
+ };
+ }
+ return chunks;
+ } else {
+ return null;
+ }
+ } finally {
+ allocator.freeAll();
+ }
+};
+w.drawSphereDamage = function() {
+ return sphereDamage(Module._drawSphereDamage.bind(Module)).apply(this, arguments);
+};
+w.eraseSphereDamage = function() {
+ return sphereDamage(Module._eraseSphereDamage.bind(Module)).apply(this, arguments);
+};
+
+/* w.injectDamage = function(inst, x, y, z, damageBuffer) {
+ const allocator = new Allocator(Module);
+
+ const damageBufferTypedArray = allocator.alloc(Float32Array, damageBuffer.length);
+ damageBufferTypedArray.set(damageBuffer);
+
+ try {
+ Module._injectDamage(
+ inst,
+ x, y, z,
+ damageBufferTypedArray.byteOffset,
+ );
+ } finally {
+ allocator.freeAll();
+ }
+}; */
+
+//
+
+const _parseTerrainVertexBuffer = (arrayBuffer, bufferAddress) => {
+ const dataView = new DataView(arrayBuffer, bufferAddress);
+
+ let index = 0;
+
+ // positions
+ const numPositions = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const positions = new Float32Array(arrayBuffer, bufferAddress + index, numPositions * 3);
+ index += Float32Array.BYTES_PER_ELEMENT * numPositions * 3;
+
+ // normals
+ const numNormals = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const normals = new Float32Array(arrayBuffer, bufferAddress + index, numNormals * 3);
+ index += Float32Array.BYTES_PER_ELEMENT * numNormals * 3;
+
+ // biomes
+ const numBiomes = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const biomes = new Int32Array(arrayBuffer, bufferAddress + index, numBiomes * 4);
+ index += Int32Array.BYTES_PER_ELEMENT * numBiomes * 4;
+
+ // biomes weights
+ const numBiomesWeights = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const biomesWeights = new Float32Array(arrayBuffer, bufferAddress + index, numBiomesWeights * 4);
+ index += Float32Array.BYTES_PER_ELEMENT * numBiomesWeights * 4;
+
+ // biomes uvs 1
+ const numBiomesUvs1 = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const biomesUvs1 = new Float32Array(arrayBuffer, bufferAddress + index, numBiomesUvs1 * 4);
+ index += Float32Array.BYTES_PER_ELEMENT * numBiomesUvs1 * 4;
+
+ // biomes uvs 2
+ const numBiomesUvs2 = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const biomesUvs2 = new Float32Array(arrayBuffer, bufferAddress + index, numBiomesUvs2 * 4);
+ index += Float32Array.BYTES_PER_ELEMENT * numBiomesUvs2 * 4;
+
+ // indices
+ const numIndices = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const indices = new Uint32Array(arrayBuffer, bufferAddress + index, numIndices);
+ index += Uint32Array.BYTES_PER_ELEMENT * numIndices;
+
+ // skylights
+ const numSkylights = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const skylights = new Uint8Array(arrayBuffer, bufferAddress + index, numSkylights);
+ index += Uint8Array.BYTES_PER_ELEMENT * numSkylights;
+ index = align4(index);
+
+ // aos
+ const numAos = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const aos = new Uint8Array(arrayBuffer, bufferAddress + index, numAos);
+ index += Uint8Array.BYTES_PER_ELEMENT * numAos;
+ index = align4(index);
+
+ return {
+ bufferAddress,
+ positions,
+ normals,
+ biomes,
+ biomesWeights,
+ biomesUvs1,
+ biomesUvs2,
+ indices,
+ skylights,
+ aos,
+ };
+};
+w.createTerrainChunkMeshAsync = async (inst, taskId, x, y, z, lods) => {
+ const allocator = new Allocator(Module);
+
+ const lodArray = allocator.alloc(Int32Array, 8);
+ lodArray.set(lods);
+
+ Module._createTerrainChunkMeshAsync(
+ inst,
+ taskId,
+ x, y, z,
+ lodArray.byteOffset,
+ );
+ const p = makePromise();
+ cbs.set(taskId, p);
+
+ allocator.freeAll();
+
+ const outputBufferOffset = await p;
+
+ if (outputBufferOffset) {
+ const result = _parseTerrainVertexBuffer(
+ Module.HEAP8.buffer,
+ Module.HEAP8.byteOffset + outputBufferOffset
+ );
+ return result;
+ } else {
+ return null;
+ }
+};
+
+//
+
+const _parseLiquidVertexBuffer = (arrayBuffer, bufferAddress) => {
+ const dataView = new DataView(arrayBuffer, bufferAddress);
+
+ let index = 0;
+
+ // positions
+ const numPositions = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const positions = new Float32Array(arrayBuffer, bufferAddress + index, numPositions * 3);
+ index += Float32Array.BYTES_PER_ELEMENT * numPositions * 3;
+
+ // normals
+ const numNormals = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const normals = new Float32Array(arrayBuffer, bufferAddress + index, numNormals * 3);
+ index += Float32Array.BYTES_PER_ELEMENT * numNormals * 3;
+
+ // biomes
+ const numBiomes = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const biomes = new Int32Array(arrayBuffer, bufferAddress + index, numBiomes);
+ index += Int32Array.BYTES_PER_ELEMENT * numBiomes;
+
+ // indices
+ const numIndices = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const indices = new Uint32Array(arrayBuffer, bufferAddress + index, numIndices);
+ index += Uint32Array.BYTES_PER_ELEMENT * numIndices;
+
+ return {
+ bufferAddress,
+ positions,
+ normals,
+ biomes,
+ indices,
+ };
+};
+w.createLiquidChunkMeshAsync = async (inst, taskId, x, y, z, lods) => {
+ const allocator = new Allocator(Module);
+
+ const lodArray = allocator.alloc(Int32Array, 8);
+ lodArray.set(lods);
+
+ Module._createLiquidChunkMeshAsync(
+ inst,
+ taskId,
+ x, y, z,
+ lodArray.byteOffset,
+ );
+
+ const p = makePromise();
+ cbs.set(taskId, p);
+ const outputBufferOffset = await p;
+
+ allocator.freeAll();
+
+ if (outputBufferOffset) {
+ const result = _parseLiquidVertexBuffer(
+ Module.HEAP8.buffer,
+ Module.HEAP8.byteOffset + outputBufferOffset
+ );
+ return result;
+ } else {
+ return null;
+ }
+};
+
+//
+
+w.getChunkHeightfieldAsync = async (inst, taskId, x, z, lod) => {
+ // const allocator = new Allocator(Module);
+
+ // const heights = allocator.alloc(Float32Array, chunkSize * chunkSize);
+
+ // try {
+ Module._getChunkHeightfieldAsync(
+ inst,
+ taskId,
+ x, z,
+ lod
+ );
+
+ const p = makePromise();
+ cbs.set(taskId, p);
+ const heights = await p;
+
+ const heights2 = new Float32Array(Module.HEAPU8.buffer, heights, chunkSize * chunkSize).slice();
+ Module._doFree(heights);
+ return heights2;
+ /* } finally {
+ // allocator.freeAll();
+ } */
+};
+/* w.getHeightfieldRange = (inst, x, z, w, h, lod) => {
+ const allocator = new Allocator(Module);
+
+ const heights = allocator.alloc(Float32Array, w * h);
+
+ try {
+ Module._getHeightfieldRange(
+ inst,
+ x, z,
+ w, h,
+ lod,
+ heights.byteOffset
+ );
+ return heights.slice();
+ } finally {
+ allocator.freeAll();
+ }
+}; */
+w.getChunkSkylightAsync = async (inst, taskId, x, y, z, lod) => {
+ // const allocator = new Allocator(Module);
+
+ // const gridPoints = chunkSize + 3 + lod;
+ // const skylights = allocator.alloc(Uint8Array, chunkSize * chunkSize * chunkSize);
+
+ // try {
+ Module._getChunkSkylightAsync(
+ inst,
+ taskId,
+ x, y, z,
+ lod
+ );
+
+ const p = makePromise();
+ cbs.set(taskId, p);
+ const skylights = await p;
+
+ const skylights2 = new Uint8Array(Module.HEAPU8.buffer, skylights, chunkSize * chunkSize * chunkSize).slice();
+ Module._doFree(skylights);
+ return skylights2;
+ /* } finally {
+ // allocator.freeAll();
+ } */
+};
+w.getChunkAoAsync = async (inst, taskId, x, y, z, lod) => {
+ // const allocator = new Allocator(Module);
+
+ // const aos = allocator.alloc(Uint8Array, chunkSize * chunkSize * chunkSize);
+
+ // try {
+ Module._getChunkAoAsync(
+ inst,
+ taskId,
+ x, y, z,
+ lod
+ );
+
+ const p = makePromise();
+ cbs.set(taskId, p);
+ const aos = await p;
+
+ const aos2 = new Uint8Array(Module.HEAPU8.buffer, aos, chunkSize * chunkSize * chunkSize).slice();
+ Module._doFree(aos);
+ return aos2;
+ /* } finally {
+ // allocator.freeAll();
+ } */
+};
+/* w.getSkylightFieldRange = (inst, x, y, z, w, h, d, lod) => {
+ const allocator = new Allocator(Module);
+
+ const skylights = allocator.alloc(Uint8Array, w * h * d);
+
+ try {
+ Module._getSkylightFieldRange(
+ inst,
+ x, y, z,
+ w, h, d,
+ lod,
+ skylights.byteOffset
+ );
+ return skylights.slice();
+ } finally {
+ allocator.freeAll();
+ }
+};
+w.getAoFieldRange = (inst, x, y, z, w, h, d, lod) => {
+ const allocator = new Allocator(Module);
+
+ const aos = allocator.alloc(Uint8Array, w * h * d);
+
+ try {
+ Module._getAoFieldRange(
+ inst,
+ x, y, z,
+ w, h, d,
+ lod,
+ aos.byteOffset
+ );
+ return aos.slice();
+ } finally {
+ allocator.freeAll();
+ }
+}; */
+
+function _parsePQI(addr) {
+ const dataView = new DataView(Module.HEAPU8.buffer, addr);
+
+ let index = 0;
+ const psSize = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const ps = new Float32Array(dataView.buffer, dataView.byteOffset + index, psSize).slice();
+ index += psSize * Float32Array.BYTES_PER_ELEMENT;
+ const qsSize = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const qs = new Float32Array(dataView.buffer, dataView.byteOffset + index, qsSize).slice();
+ index += qsSize * Float32Array.BYTES_PER_ELEMENT;
+ const instancesSize = dataView.getUint32(index, true);
+ index += Uint32Array.BYTES_PER_ELEMENT;
+ const instances = new Float32Array(dataView.buffer, dataView.byteOffset + index, instancesSize).slice();
+ index += instancesSize * Float32Array.BYTES_PER_ELEMENT;
+
+ return {
+ ps,
+ qs,
+ instances,
+ };
+}
+w.createGrassSplatAsync = async (inst, taskId, x, z, lod) => {
+ // const allocator = new Allocator(Module);
+
+ // const allocSize = 64 * 1024;
+ // const ps = allocator.alloc(Float32Array, allocSize * 3);
+ // const qs = allocator.alloc(Float32Array, allocSize * 4);
+ // const instances = allocator.alloc(Float32Array, allocSize);
+ // const count = allocator.alloc(Uint32Array, 1);
+
+ // try {
+ Module._createGrassSplatAsync(
+ inst,
+ taskId,
+ x, z,
+ lod
+ );
+
+ const p = makePromise();
+ cbs.set(taskId, p);
+ const result = await p;
+ const pqi = _parsePQI(result);
+ // console.log('got result 1', _parsePQI(result));
+ Module._doFree(result);
+ return pqi;
+
+ /* const numElements = count[0];
+ return {
+ ps: ps.slice(0, numElements * 3),
+ qs: qs.slice(0, numElements * 4),
+ instances: instances.slice(0, numElements),
+ }; */
+ /* } finally {
+ // allocator.freeAll();
+ } */
+};
+w.createVegetationSplatAsync = async (inst, taskId, x, z, lod) => {
+ // const allocator = new Allocator(Module);
+
+ // const allocSize = 64 * 1024;
+ // const ps = allocator.alloc(Float32Array, allocSize * 3);
+ // const qs = allocator.alloc(Float32Array, allocSize * 4);
+ // const instances = allocator.alloc(Float32Array, allocSize);
+ // const count = allocator.alloc(Uint32Array, 1);
+
+ // try {
+ Module._createVegetationSplatAsync(
+ inst,
+ taskId,
+ x, z,
+ lod
+ );
+
+ const p = makePromise();
+ cbs.set(taskId, p);
+ const result = await p;
+
+ const pqi = _parsePQI(result);
+ // console.log('got result 2', _parsePQI(result));
+ Module._doFree(result);
+ return pqi;
+ /* const numElements = count[0];
+ return {
+ ps: ps.slice(0, numElements * 3),
+ qs: qs.slice(0, numElements * 4),
+ instances: instances.slice(0, numElements),
+ }; */
+ /* } finally {
+ // allocator.freeAll();
+ } */
+};
+w.createMobSplatAsync = async (inst, taskId, x, z, lod) => {
+ // const allocator = new Allocator(Module);
+
+ /* const allocSize = 64 * 1024;
+ const ps = allocator.alloc(Float32Array, allocSize * 3);
+ const qs = allocator.alloc(Float32Array, allocSize * 4);
+ const instances = allocator.alloc(Float32Array, allocSize);
+ const count = allocator.alloc(Uint32Array, 1); */
+
+ // try {
+ Module._createMobSplatAsync(
+ inst,
+ taskId,
+ x, z,
+ lod
+ );
+
+ const p = makePromise();
+ cbs.set(taskId, p);
+ const result = await p;
+ const pqi = _parsePQI(result);
+ // console.log('got result 3', _parsePQI(result));
+ Module._doFree(result);
+ return pqi;
+
+ /* const numElements = count[0];
+ return {
+ ps: ps.slice(0, numElements * 3),
+ qs: qs.slice(0, numElements * 4),
+ instances: instances.slice(0, numElements),
+ }; */
+ /* } finally {
+ // allocator.freeAll();
+ } */
+};
+// _parsePQI parses ps, qs, instances from a buffer
+// the buffer contains 6 entries:
+// ps size (uint32_t)
+// ps data (float32_t) * size
+// qs size (uint32_t)
+// qs data (float32_t) * size
+// instances size (uint32_t)
+// instances data (float32_t) * size
+
+w.cancelTask = async (inst, taskId) => {
+ // console.log('cancel task', inst, taskId);
+ Module._cancelTask(inst, taskId);
+};
+
+globalThis.handleResult = (id, result) => {
+ const p = cbs.get(id);
+ if (p) {
+ cbs.delete(id);
+ p.accept(result);
+ } else {
+ console.warn('failed to find promise for id', id, result);
+ }
+};
+
+export default w;
\ No newline at end of file
diff --git a/engine-worker.js b/engine-worker.js
index 5deefe78d1..b970d814cd 100644
--- a/engine-worker.js
+++ b/engine-worker.js
@@ -2,6 +2,14 @@ import {
bindCanvas,
} from './renderer.js';
+window.addEventListener('message', e => {
+ const method = e.data?.method;
+ if (method === 'initializeEngine') {
+ const {port} = e.data;
+ _bindPort(port);
+ }
+});
+
const isTransferable = o => {
const ctor = o?.constructor;
return ctor === MessagePort ||
@@ -46,9 +54,8 @@ async function import2(s) {
if (s.startsWith(prefix)) {
s = s.slice(prefix.length);
}
- s = `/@proxy/${s}`;
+ s = `/@proxy/${encodeURI(s)}`;
}
- // console.log('do import', s);
try {
const m = await import(s);
return m;
@@ -58,20 +65,9 @@ async function import2(s) {
}
}
-const canvas = document.getElementById('canvas');
-window.innerWidth = canvas.width;
-window.innerHeight = canvas.height;
-window.devicePixelRatio = 1;
-bindCanvas(canvas);
-
-const match = location.hash.match(/^#id=(.+)$/);
-const id = match ? match[1] : null;
-if (id) {
- const messageChannel = new MessageChannel();
- const port = messageChannel.port1;
+const _bindPort = port => {
const handlers = new Map();
port.addEventListener('message', async e => {
- // console.log('engine worker got port message', e);
const {method, id} = e.data;
const respond = (error = null, result = null, transfers = []) => {
port.postMessage({
@@ -96,7 +92,7 @@ if (id) {
handlers.set(handlerId, fn);
result = 'ok';
} else {
- console.warn('bad module', module)
+ console.warn('engine worker bad module', module);
throw new Error('engine worker module default export is not a function');
}
} catch(err) {
@@ -110,9 +106,9 @@ if (id) {
const {handlerId, args} = e.data;
const handler = handlers.get(handlerId);
if (handler) {
- let error = null;
- let result = null;
- let transfers = [];
+ let error;
+ let result;
+ let transfers;
try {
result = await handler.apply(null, args);
transfers = getTransferables(result);
@@ -131,16 +127,21 @@ if (id) {
break;
}
}
- // console.log('got message', e.data);
}
});
port.start();
+};
+
+const canvas = document.getElementById('canvas');
+window.innerWidth = canvas.width;
+window.innerHeight = canvas.height;
+window.devicePixelRatio = 1;
+bindCanvas(canvas);
- window.parent.postMessage({
- method: 'engineReady',
- id,
- port: messageChannel.port2,
- }, '*', [messageChannel.port2]);
+const match = location.hash.match(/^#id=(.+)$/);
+const id = match ? match[1] : null;
+if (id) {
+ // nothing
} else {
throw new Error('no id in engine worker');
}
\ No newline at end of file
diff --git a/game.js b/game.js
index fbc5170653..282cf76e88 100644
--- a/game.js
+++ b/game.js
@@ -1,37 +1,30 @@
/*
this file contains the main game logic tying together the managers.
general game logic goes here.
+usually, code starts here and is migrated to an appropriate manager.
*/
import * as THREE from 'three';
-// import {GLTFLoader} from 'three/examples/jsm/loaders/GLTFLoader.js';
import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
import physx from './physx.js';
import cameraManager from './camera-manager.js';
-// import uiManager from './ui-manager.js';
import ioManager from './io-manager.js';
-// import {loginManager} from './login.js';
-// import physicsManager from './physics-manager.js';
import dioramaManager from './diorama.js';
import {world} from './world.js';
-// import * as universe from './universe.js';
import {buildMaterial, highlightMaterial, selectMaterial, hoverMaterial, hoverEquipmentMaterial} from './shaders.js';
-import {teleportMeshes} from './teleport.js';
import {getRenderer, sceneLowPriority, camera} from './renderer.js';
import {downloadFile, snapPosition, getDropUrl, handleDropJsonItem} from './util.js';
-import {maxGrabDistance, throwReleaseTime, storageHost, minFov, maxFov} from './constants.js';
-// import easing from './easing.js';
-// import {VoicePack} from './voice-pack-voicer.js';
-// import {VoiceEndpoint} from './voice-endpoint-voicer.js';
+import {maxGrabDistance, throwReleaseTime, storageHost, minFov, maxFov, throwAnimationDuration} from './constants.js';
import metaversefileApi from './metaversefile-api.js';
-// import metaversefileConstants from 'metaversefile/constants.module.js';
import * as metaverseModules from './metaverse-modules.js';
import loadoutManager from './loadout-manager.js';
-// import soundManager from './sound-manager.js';
-import {generateObjectUrlCard} from './card-generator.js';
import * as sounds from './sounds.js';
-
-// const {contractNames} = metaversefileConstants;
+import {getLocalPlayer, setLocalPlayer} from './players.js';
+import physicsManager from './physics-manager.js';
+import npcManager from './npc-manager.js';
+import raycastManager from './raycast-manager.js';
+import zTargeting from './z-targeting.js';
+import Avatar from './avatars/avatars.js';
const localVector = new THREE.Vector3();
const localVector2 = new THREE.Vector3();
@@ -49,15 +42,20 @@ const localMatrix2 = new THREE.Matrix4();
const localMatrix3 = new THREE.Matrix4();
// const localBox = new THREE.Box3();
const localRay = new THREE.Ray();
-// const localRaycaster = new THREE.Raycaster();
-// const oneVector = new THREE.Vector3(1, 1, 1);
+//
+const physicsScene = physicsManager.getScene();
+let isMouseUp = false;
+
+// const zeroVector = new THREE.Vector3(0, 0, 0);
+// const oneVector = new THREE.Vector3(1, 1, 1);
// const cubicBezier = easing(0, 1, 0, 1);
+// let redMesh = null;
const _getGrabAction = i => {
const targetHand = i === 0 ? 'left' : 'right';
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const grabAction = localPlayer.findAction(action => action.type === 'grab' && action.hand === targetHand);
return grabAction;
};
@@ -76,13 +74,7 @@ function updateGrabbedObject(o, grabMatrix, offsetMatrix, {collisionEnabled, han
localMatrix.multiplyMatrices(grabMatrix, offsetMatrix)
.decompose(localVector5, localQuaternion3, localVector6);
- /* const grabbedObject = _getGrabbedObject(0);
- const grabbedPhysicsObjects = grabbedObject ? grabbedObject.getPhysicsObjects() : [];
- for (const physicsObject of grabbedPhysicsObjects) {
- physx.physxWorker.disableGeometryQueriesPhysics(physx.physics, physicsObject.physicsId);
- } */
-
- let collision = collisionEnabled && physx.physxWorker.raycastPhysics(physx.physics, localVector, localQuaternion);
+ let collision = collisionEnabled && physicsScene.raycast(localVector, localQuaternion);
if (collision) {
// console.log('got collision', collision);
const {point} = collision;
@@ -97,10 +89,6 @@ function updateGrabbedObject(o, grabMatrix, offsetMatrix, {collisionEnabled, han
o.position.copy(localVector5);
}
- /* for (const physicsObject of grabbedPhysicsObjects) {
- physx.physxWorker.enableGeometryQueriesPhysics(physx.physics, physicsObject.physicsId);
- } */
-
const handSnap = !handSnapEnabled || offset >= maxGrabDistance || !!collision;
if (handSnap) {
snapPosition(o, gridSnap);
@@ -114,6 +102,74 @@ function updateGrabbedObject(o, grabMatrix, offsetMatrix, {collisionEnabled, han
};
}
+const _getCurrentGrabAnimation = () => {
+ let currentAnimation = '';
+ const localPlayer = getLocalPlayer();
+
+ const wearComponent = grabUseMesh.targetApp.getComponent('wear');
+ if (wearComponent && wearComponent.grabAnimation === 'pick_up') {
+ currentAnimation = wearComponent.grabAnimation;
+ } else {
+ const grabUseMeshPosition = grabUseMesh.position;
+ let currentDistance = 100;
+
+ // Forward
+ {
+ localVector.set(0, -0.5, -0.5).applyQuaternion(localPlayer.quaternion)
+ .add(localPlayer.position);
+ const distance = grabUseMeshPosition.distanceTo(localVector);
+ currentDistance = distance;
+ currentAnimation = 'grab_forward';
+ }
+
+ // Down
+ {
+ localVector.set(0, -1.2, -0.5).applyQuaternion(localPlayer.quaternion)
+ .add(localPlayer.position);
+ const distance = grabUseMeshPosition.distanceTo(localVector);
+ if (distance < currentDistance) {
+ currentDistance = distance;
+ currentAnimation = 'grab_down';
+ }
+ }
+
+ // Up
+ {
+ localVector.set(0, 0.0, -0.5).applyQuaternion(localPlayer.quaternion)
+ .add(localPlayer.position);
+ const distance = grabUseMeshPosition.distanceTo(localVector);
+ if (distance < currentDistance) {
+ currentDistance = distance;
+ currentAnimation = 'grab_up';
+ }
+ }
+
+ // Left
+ {
+ localVector.set(-0.8, -0.5, -0.5).applyQuaternion(localPlayer.quaternion)
+ .add(localPlayer.position);
+ const distance = grabUseMeshPosition.distanceTo(localVector);
+ if (distance < currentDistance) {
+ currentDistance = distance;
+ currentAnimation = 'grab_left';
+ }
+ }
+
+ // Right
+ {
+ localVector.set(0.8, -0.5, -0.5).applyQuaternion(localPlayer.quaternion)
+ .add(localPlayer.position);
+ const distance = grabUseMeshPosition.distanceTo(localVector);
+ if (distance < currentDistance) {
+ currentDistance = distance;
+ currentAnimation = 'grab_right';
+ }
+ }
+ }
+
+ return currentAnimation;
+};
+
const _makeTargetMesh = (() => {
const targetMeshGeometry = (() => {
const targetGeometry = BufferGeometryUtils.mergeBufferGeometries([
@@ -182,12 +238,10 @@ const _makeTargetMesh = (() => {
const material = new THREE.ShaderMaterial({
uniforms: {
uHighlight: {
- type: 'f',
value: 0,
needsUpdate: true,
},
uTime: {
- type: 'f',
value: 0,
needsUpdate: true,
},
@@ -290,7 +344,7 @@ const _use = () => {
const _delete = () => {
const grabbedObject = _getGrabbedObject(0);
if (grabbedObject) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.ungrab();
world.appManager.removeTrackedApp(grabbedObject.instanceId);
@@ -308,9 +362,9 @@ const _delete = () => {
gameManager.setMouseSelectedObject(null);
}
};
-const _click = () => {
+const _click = e => {
if (_getGrabbedObject(0)) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.ungrab();
} else {
if (highlightedPhysicsObject) {
@@ -327,11 +381,11 @@ const _getNextUseIndex = animationCombo => {
}
}
const _startUse = () => {
- const localPlayer = metaversefileApi.useLocalPlayer();
const wearApp = loadoutManager.getSelectedApp();
if (wearApp) {
const useComponent = wearApp.getComponent('use');
if (useComponent) {
+ const localPlayer = getLocalPlayer();
const useAction = localPlayer.getAction('use');
if (!useAction) {
const {instanceId} = wearApp;
@@ -360,7 +414,7 @@ const _startUse = () => {
}
};
const _endUse = () => {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const useAction = localPlayer.getAction('use');
if (useAction) {
const app = metaversefileApi.getAppByInstanceId(useAction.instanceId);
@@ -375,11 +429,11 @@ const _mousedown = () => {
_startUse();
};
const _mouseup = () => {
- _endUse();
+ isMouseUp = true;
};
const _grab = object => {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.grab(object);
gameManager.gridSnap = 0;
@@ -390,7 +444,6 @@ const hitRadius = 1;
const hitHeight = 0.2;
const hitHalfHeight = hitHeight * 0.5;
const hitboxOffsetDistance = 0.3;
-const damageMeshOffsetDistance = 1.5;
/* const cylinderMesh = (() => {
const radius = 1;
const height = 0.2;
@@ -416,21 +469,18 @@ const _gameInit = () => {
await grabUseMesh.addModule(m);
})();
grabUseMesh.targetApp = null;
+ grabUseMesh.targetPhysicsId = -1;
sceneLowPriority.add(grabUseMesh);
};
Promise.resolve()
.then(_gameInit);
-// let lastDraggingRight = false;
-// let dragRightSpec = null;
let lastActivated = false;
let lastThrowing = false;
-let lastHitTimes = new WeakMap();
const _gameUpdate = (timestamp, timeDiff) => {
const now = timestamp;
const renderer = getRenderer();
-
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const _handlePush = () => {
if (gameManager.canPush()) {
@@ -443,106 +493,10 @@ const _gameUpdate = (timestamp, timeDiff) => {
};
_handlePush();
- const _updateActivateAnimation = grabUseMeshPosition => {
- let currentDistance = 100;
- let currentAnimation = "grab_forward";
-
- // Forward
- {
- localVector.set(0, -0.5, -0.5).applyQuaternion(localPlayer.quaternion)
- .add(localPlayer.position);
- const distance = grabUseMeshPosition.distanceTo(localVector);
- currentDistance = distance;
- }
-
- // Down
- {
- localVector.set(0, -1.2, -0.5).applyQuaternion(localPlayer.quaternion)
- .add(localPlayer.position);
- const distance = grabUseMeshPosition.distanceTo(localVector);
- if (distance < currentDistance) {
- currentDistance = distance;
- currentAnimation = "grab_down";
- }
- }
-
- // Up
- {
- localVector.set(0, 0.0, -0.5).applyQuaternion(localPlayer.quaternion)
- .add(localPlayer.position);
- const distance = grabUseMeshPosition.distanceTo(localVector);
- if (distance < currentDistance) {
- currentDistance = distance;
- currentAnimation = "grab_up";
- }
- }
-
- // Left
- {
- localVector.set(-0.8, -0.5, -0.5).applyQuaternion(localPlayer.quaternion)
- .add(localPlayer.position);
- const distance = grabUseMeshPosition.distanceTo(localVector);
- if (distance < currentDistance) {
- currentDistance = distance;
- currentAnimation = "grab_left";
- }
- }
-
- // Right
- {
- localVector.set(0.8, -0.5, -0.5).applyQuaternion(localPlayer.quaternion)
- .add(localPlayer.position);
- const distance = grabUseMeshPosition.distanceTo(localVector);
- if (distance < currentDistance) {
- currentDistance = distance;
- currentAnimation = "grab_right";
- }
- }
-
- if (localPlayer.getAction('activate')) {
- localPlayer.getAction('activate').animationName = currentAnimation;
- }
-
- // return (currentDistance < 0.8);
- };
-
const _updateGrab = () => {
- // moveMesh.visible = false;
-
const renderer = getRenderer();
const _isWear = o => localPlayer.findAction(action => action.type === 'wear' && action.instanceId === o.instanceId);
- for (let i = 0; i < 2; i++) {
- const grabAction = _getGrabAction(i);
- const grabbedObject = _getGrabbedObject(i);
- if (grabbedObject && !_isWear(grabbedObject)) {
- const {position, quaternion} = renderer.xr.getSession() ? localPlayer[hand === 'left' ? 'leftHand' : 'rightHand'] : camera;
- localMatrix.compose(position, quaternion, localVector.set(1, 1, 1));
- grabbedObject.updateMatrixWorld();
-
- /* const {handSnap} = */updateGrabbedObject(grabbedObject, localMatrix, localMatrix3.fromArray(grabAction.matrix), {
- collisionEnabled: true,
- handSnapEnabled: true,
- physx,
- gridSnap: gameManager.getGridSnap(),
- });
-
- grabbedObject.updateMatrixWorld();
-
- grabUseMesh.position.copy(camera.position)
- .add(
- localVector.copy(grabbedObject.position)
- .sub(camera.position)
- .normalize()
- .multiplyScalar(3)
- );
- grabUseMesh.quaternion.copy(camera.quaternion);
- grabUseMesh.updateMatrixWorld();
- // grabUseMesh.visible = true;
- grabUseMesh.targetApp = grabbedObject;
- grabUseMesh.setComponent('value', localPlayer.actionInterpolants.activate.getNormalized());
- }
- }
grabUseMesh.visible = false;
if (!gameManager.editMode) {
const avatarHeight = localPlayer.avatar ? localPlayer.avatar.height : 0;
@@ -551,52 +505,111 @@ const _gameUpdate = (timestamp, timeDiff) => {
const radius = 1;
const halfHeight = 0.1;
- const collision = physx.physxWorker.getCollisionObjectPhysics(physx.physics, radius, halfHeight, localVector, localPlayer.quaternion);
+ const collision = physicsScene.getCollisionObject(radius, halfHeight, localVector, localPlayer.quaternion);
if (collision) {
const physicsId = collision.objectId;
const object = metaversefileApi.getAppByPhysicsId(physicsId);
+ // console.log('got collision', physicsId, object);
const physicsObject = metaversefileApi.getPhysicsObjectByPhysicsId(physicsId);
- // console.log('got object', physicsId, object);
if (object && !_isWear(object) && physicsObject) {
grabUseMesh.position.setFromMatrixPosition(physicsObject.physicsMesh.matrixWorld);
grabUseMesh.quaternion.copy(camera.quaternion);
- // grabUseMesh.scale.copy(grabbedObject.scale);
grabUseMesh.updateMatrixWorld();
- //grabUseMesh.visible = true;
grabUseMesh.targetApp = object;
+ grabUseMesh.targetPhysicsId = physicsId;
grabUseMesh.setComponent('value', localPlayer.actionInterpolants.activate.getNormalized());
- _updateActivateAnimation(grabUseMesh.position);
grabUseMesh.visible = true;
}
}
}
+
+ for (let i = 0; i < 2; i++) {
+ const grabAction = _getGrabAction(i);
+ const grabbedObject = _getGrabbedObject(i);
+ if (grabbedObject && !_isWear(grabbedObject)) {
+ const {position, quaternion} = renderer.xr.getSession() ? localPlayer[hand === 'left' ? 'leftHand' : 'rightHand'] : camera;
+ localMatrix.compose(position, quaternion, localVector.set(1, 1, 1));
+ grabbedObject.updateMatrixWorld();
+
+ updateGrabbedObject(grabbedObject, localMatrix, localMatrix3.fromArray(grabAction.matrix), {
+ collisionEnabled: true,
+ handSnapEnabled: true,
+ physx,
+ gridSnap: gameManager.getGridSnap(),
+ });
+
+ grabUseMesh.setComponent('value', localPlayer.actionInterpolants.activate.getNormalized());
+ }
+ }
};
_updateGrab();
+ zTargeting.update(timestamp, timeDiff);
+
+ const _handlePickUp = () => {
+ const pickUpAction = localPlayer.getAction('pickUp');
+ if (pickUpAction) {
+ const {instanceId} = pickUpAction;
+ const app = metaversefileApi.getAppByInstanceId(instanceId);
+
+ const _removeApp = () => {
+ if (app.parent) {
+ app.oldParent = app.parent;
+ app.parent.remove(app);
+ }
+ };
+ const _addApp = () => {
+ app.oldParent.add(app);
+ app.oldParent = null;
+ };
+
+ _removeApp();
+
+ const animations = Avatar.getAnimations();
+ const pickUpZeldaAnimation = animations.find(a => a.name === 'pick_up_zelda.fbx');
+ const pickUpTime = localPlayer.actionInterpolants.pickUp.get();
+ const pickUpTimeS = pickUpTime / 1000;
+ if (pickUpTimeS < pickUpZeldaAnimation.duration) {
+ // still playing the pick up animation
+ } else {
+ // idling
+
+ _addApp();
+
+ const handsAveragePosition = localVector.setFromMatrixPosition(localPlayer.avatar.modelBones.Left_wrist.matrixWorld)
+ .add(localVector2.setFromMatrixPosition(localPlayer.avatar.modelBones.Right_wrist.matrixWorld))
+ .divideScalar(2)
+ .add(localVector2.set(0, 0.2, 0));
+ app.position.copy(handsAveragePosition);
+ localEuler.setFromQuaternion(localPlayer.quaternion, 'YXZ');
+ localEuler.x = 0;
+ localEuler.y += Math.PI;
+ localEuler.z = 0;
+ app.quaternion.setFromEuler(localEuler);
+ app.updateMatrixWorld();
+
+ // console.log('got pickUpTime', pickUpTime, animations);
+ // debugger;
+ }
+ } /* else {
+
+ } */
+ ioManager.setMovementEnabled(!pickUpAction);
+ }
+ _handlePickUp();
+
const _handlePhysicsHighlight = () => {
highlightedPhysicsObject = null;
if (gameManager.editMode) {
- /* const grabbedObject = _getGrabbedObject(0);
- const grabbedPhysicsIds = (grabbedObject && grabbedObject.getPhysicsIds) ? grabbedObject.getPhysicsIds() : [];
- for (const physicsId of grabbedPhysicsIds) {
- // physx.physxWorker.disableGeometryPhysics(physx.physics, physicsId);
- physx.physxWorker.disableGeometryQueriesPhysics(physx.physics, physicsId);
- } */
-
- const {position, quaternion} = renderer.xr.getSession() ? metaversefileApi.useLocalPlayer().leftHand : camera;
- const collision = physx.physxWorker.raycastPhysics(physx.physics, position, quaternion);
+ const {position, quaternion} = renderer.xr.getSession() ? localPlayer.leftHand : camera;
+ const collision = physicsScene.raycast(position, quaternion);
if (collision) {
const physicsId = collision.objectId;
highlightedPhysicsObject = metaversefileApi.getAppByPhysicsId(physicsId);
highlightedPhysicsId = physicsId;
}
-
- /* for (const physicsId of grabbedPhysicsIds) {
- // physx.physxWorker.enableGeometryPhysics(physx.physics, physicsId);
- physx.physxWorker.enableGeometryQueriesPhysics(physx.physics, physicsId);
- } */
}
};
_handlePhysicsHighlight();
@@ -609,15 +622,13 @@ const _gameUpdate = (timestamp, timeDiff) => {
highlightedPhysicsObject.updateMatrixWorld();
- const physicsObject = /*window.lolPhysicsObject ||*/ metaversefileApi.getPhysicsObjectByPhysicsId(physicsId);
+ const physicsObject = metaversefileApi.getPhysicsObjectByPhysicsId(physicsId);
if (physicsObject) {
const {physicsMesh} = physicsObject;
highlightPhysicsMesh.geometry = physicsMesh.geometry;
- // highlightPhysicsMesh.matrix.copy(physicsObject.matrix);
highlightPhysicsMesh.matrixWorld.copy(physicsMesh.matrixWorld)
.decompose(highlightPhysicsMesh.position, highlightPhysicsMesh.quaternion, highlightPhysicsMesh.scale);
- // highlightPhysicsMesh.updateMatrixWorld();
- // window.highlightPhysicsMesh = highlightPhysicsMesh;
+
highlightPhysicsMesh.material.uniforms.uTime.value = (now%1500)/1500;
highlightPhysicsMesh.material.uniforms.uTime.needsUpdate = true;
highlightPhysicsMesh.material.uniforms.uColor.value.setHex(buildMaterial.uniforms.uColor.value.getHex());
@@ -632,12 +643,10 @@ const _gameUpdate = (timestamp, timeDiff) => {
const _updateMouseHighlight = () => {
mouseHighlightPhysicsMesh.visible = false;
- const h = mouseHoverObject;
- if (h /*&& !gameManager.dragging*/) {
- const physicsId = mouseHoverPhysicsId;
-
- const physicsObject = metaversefileApi.getPhysicsObjectByPhysicsId(physicsId);
- if (physicsObject) {
+ if (gameManager.hoverEnabled) {
+ const collision = raycastManager.getCollision();
+ if (collision) {
+ const {physicsObject/*, physicsId*/} = collision;
const {physicsMesh} = physicsObject;
mouseHighlightPhysicsMesh.geometry = physicsMesh.geometry;
localMatrix2.copy(physicsMesh.matrixWorld)
@@ -645,8 +654,9 @@ const _gameUpdate = (timestamp, timeDiff) => {
.decompose(mouseHighlightPhysicsMesh.position, mouseHighlightPhysicsMesh.quaternion, mouseHighlightPhysicsMesh.scale);
mouseHighlightPhysicsMesh.material.uniforms.uTime.value = (now%1500)/1500;
mouseHighlightPhysicsMesh.material.uniforms.uTime.needsUpdate = true;
- mouseHighlightPhysicsMesh.visible = true;
mouseHighlightPhysicsMesh.updateMatrixWorld();
+
+ mouseHighlightPhysicsMesh.visible = true;
}
}
};
@@ -663,7 +673,6 @@ const _gameUpdate = (timestamp, timeDiff) => {
if (physicsObject) {
const {physicsMesh} = physicsObject;
mouseSelectPhysicsMesh.geometry = physicsMesh.geometry;
- // window.geometry = mouseSelectPhysicsMesh.geometry;
// update matrix
{
@@ -736,16 +745,6 @@ const _gameUpdate = (timestamp, timeDiff) => {
};
_updateMouseDomEquipmentHover();
- const _handleTeleport = () => {
- if (localPlayer.avatar) {
- teleportMeshes[1].update(localPlayer.avatar.inputs.leftGamepad.position, localPlayer.avatar.inputs.leftGamepad.quaternion, ioManager.currentTeleport, (p, q) => physx.physxWorker.raycastPhysics(physx.physics, p, q), (position, quaternion) => {
- const localPlayer = metaversefileApi.useLocalPlayer();
- localPlayer.teleportTo(position, quaternion);
- });
- }
- };
- _handleTeleport();
-
const _handleClosestObject = () => {
const apps = world.appManager.apps;
if (apps.length > 0) {
@@ -876,13 +875,14 @@ const _gameUpdate = (timestamp, timeDiff) => {
_updateDrags(); */
const _updateActivate = () => {
- const localPlayer = metaversefileApi.useLocalPlayer();
const v = localPlayer.actionInterpolants.activate.getNormalized();
const currentActivated = v >= 1;
if (currentActivated && !lastActivated) {
if (grabUseMesh.targetApp) {
- grabUseMesh.targetApp.activate();
+ grabUseMesh.targetApp.activate({
+ physicsId: grabUseMesh.targetPhysicsId,
+ });
}
localPlayer.removeAction('activate');
}
@@ -890,8 +890,16 @@ const _gameUpdate = (timestamp, timeDiff) => {
};
_updateActivate();
+ const _updateThirdPerson = () => {
+ const firstPerson = cameraManager.getMode() === 'firstperson';
+ if (firstPerson !== lastFirstPerson) {
+ _setFirstPersonAction(firstPerson);
+ lastFirstPerson = firstPerson;
+ }
+ };
+ _updateThirdPerson();
+
const _updateThrow = () => {
- const localPlayer = metaversefileApi.useLocalPlayer();
const useAction = localPlayer.getAction('use');
if (useAction && useAction.behavior === 'throw') {
const v = localPlayer.actionInterpolants.use.get() / throwReleaseTime;
@@ -901,7 +909,11 @@ const _gameUpdate = (timestamp, timeDiff) => {
// console.log('got throw action', useAction, localPlayer);
const app = metaversefileApi.getAppByInstanceId(useAction.instanceId);
- localPlayer.unwear(app);
+ localPlayer.unwear(app, {
+ dropStartPosition: localVector.copy(localPlayer.position)
+ .add(localVector2.set(0, 0.5, -1).applyQuaternion(localPlayer.quaternion)),
+ dropDirection: localVector2.set(0, 0.2, -1).normalize().applyQuaternion(localPlayer.quaternion),
+ });
}
lastThrowing = currentThrowing;
}
@@ -915,49 +927,16 @@ const _gameUpdate = (timestamp, timeDiff) => {
localVector.copy(localPlayer.position)
.add(localVector2.set(0, 0, -hitboxOffsetDistance).applyQuaternion(localPlayer.quaternion));
- const collision = physx.physxWorker.getCollisionObjectPhysics(
- physx.physics,
- hitRadius,
- hitHalfHeight,
- localVector,
- localPlayer.quaternion,
- );
- if (collision) {
- const collisionId = collision.objectId;
- const result = metaversefileApi.getPairByPhysicsId(collisionId);
- if (result) {
- const [app, physicsObject] = result;
- const lastHitTime = lastHitTimes.get(app) ?? 0;
- const timeDiff = now - lastHitTime;
- if (timeDiff > 1000) {
- const damage = typeof useAction.damage === 'number' ? useAction.damage : 10;
- const hitDirection = app.position.clone()
- .sub(localPlayer.position);
- hitDirection.y = 0;
- hitDirection.normalize();
-
- const hitPosition = localVector.copy(localPlayer.position)
- .add(localVector2.set(0, 0, -damageMeshOffsetDistance).applyQuaternion(localPlayer.quaternion))
- .clone();
- localEuler.setFromQuaternion(camera.quaternion, 'YXZ');
- localEuler.x = 0;
- localEuler.z = 0;
- const hitQuaternion = new THREE.Quaternion().setFromEuler(localEuler);
-
- // const willDie = app.willDieFrom(damage);
- app.hit(damage, {
- collisionId,
- physicsObject,
- hitPosition,
- hitQuaternion,
- hitDirection,
- // willDie,
- });
-
- lastHitTimes.set(app, now);
- }
- }
- }
+ localPlayer.characterHitter.attemptHit({
+ type: 'sword',
+ args: {
+ hitRadius,
+ hitHalfHeight,
+ position: localVector,
+ quaternion: localPlayer.quaternion,
+ },
+ timestamp,
+ });
};
switch (useAction.behavior) {
@@ -973,14 +952,14 @@ const _gameUpdate = (timestamp, timeDiff) => {
};
_updateBehavior();
- const _updateEyes = () => {
+ const _updateMouseLook = () => {
if (localPlayer.avatar) {
if (mouseSelectedObject && mouseSelectedPosition) {
// console.log('got', mouseSelectedObject.position.toArray().join(','));
localPlayer.avatar.eyeTarget.copy(mouseSelectedPosition);
localPlayer.avatar.eyeTargetInverted = true;
localPlayer.avatar.eyeTargetEnabled = true;
- } else if (!cameraManager.pointerLockElement && lastMouseEvent) {
+ } else if (!cameraManager.pointerLockElement && !cameraManager.target && lastMouseEvent) {
const renderer = getRenderer();
const size = renderer.getSize(localVector);
@@ -988,34 +967,52 @@ const _gameUpdate = (timestamp, timeDiff) => {
.unproject(camera);
localPlayer.avatar.eyeTargetInverted = false;
localPlayer.avatar.eyeTargetEnabled = true;
+ } else if (zTargeting?.focusTargetReticle?.position) {
+ localPlayer.avatar.eyeTarget.copy(zTargeting.focusTargetReticle.position);
+ localPlayer.avatar.eyeTargetInverted = true;
+ localPlayer.avatar.eyeTargetEnabled = true;
} else {
localPlayer.avatar.eyeTargetEnabled = false;
}
}
};
- _updateEyes();
+ _updateMouseLook();
const crosshairEl = document.getElementById('crosshair');
if (crosshairEl) {
const visible = !!cameraManager.pointerLockElement &&
- (['camera', 'firstperson', 'thirdperson'].includes(cameraManager.getMode()) || metaversefileApi.useLocalPlayer().hasAction('aim')) &&
+ (['camera', 'firstperson', 'thirdperson'].includes(cameraManager.getMode()) || localPlayer.hasAction('aim')) &&
!_getGrabbedObject(0);
crosshairEl.style.visibility = visible ? null : 'hidden';
}
+
+ const _updateUse = () => {
+ const useAction = localPlayer.getAction('use');
+ if (useAction) {
+ if (useAction.animation === 'pickUpThrow') {
+ const useTime = localPlayer.actionInterpolants.use.get();
+ if (useTime / 1000 >= throwAnimationDuration) {
+ _endUse();
+ }
+ } else if (isMouseUp) {
+ _endUse();
+ }
+
+ }
+ isMouseUp = false;
+ };
+ _updateUse();
};
const _pushAppUpdates = () => {
world.appManager.pushAppUpdates();
- /*const localPlayer = metaversefileApi.useLocalPlayer();
- localPlayer.appManager.pushAppUpdates();*/
-
const remotePlayers = metaversefileApi.useRemotePlayers(); // Might have to be removed too
for (const remotePlayer of remotePlayers) {
remotePlayer.appManager.pushAppUpdates();
}
};
const _pushPlayerUpdates = () => {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.pushPlayerUpdates();
};
@@ -1047,7 +1044,7 @@ const _bindPointerLock = () => {
_bindPointerLock();
const _setFirstPersonAction = firstPerson => {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
if (firstPerson) {
if (!localPlayer.hasAction('firstperson')) {
const aimAction = {
@@ -1059,14 +1056,14 @@ const _setFirstPersonAction = firstPerson => {
localPlayer.removeAction('firstperson');
}
};
-if (cameraManager.getMode() === 'firstperson') {
- _setFirstPersonAction(true);
-}
-cameraManager.addEventListener('modechange', e => {
+let lastFirstPerson = cameraManager.getMode() === 'firstperson';
+_setFirstPersonAction(lastFirstPerson);
+/* cameraManager.addEventListener('modechange', e => {
+ // XXX need to do this in the frame loop instead
const {mode} = e.data;
const firstPerson = mode === 'firstperson';
_setFirstPersonAction(firstPerson);
-});
+}); */
let lastMouseEvent = null;
class GameManager extends EventTarget {
@@ -1119,8 +1116,8 @@ class GameManager extends EventTarget {
menuDelete() {
_delete();
}
- menuClick() {
- _click();
+ menuClick(e) {
+ _click(e);
}
menuMouseDown() {
_mousedown();
@@ -1129,9 +1126,8 @@ class GameManager extends EventTarget {
_mouseup();
}
menuAim() {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
if (!localPlayer.hasAction('aim')) {
- const localPlayer = metaversefileApi.useLocalPlayer();
const wearApp = loadoutManager.getSelectedApp();
const wearAimApp = (() => {
if (wearApp) {
@@ -1160,24 +1156,21 @@ class GameManager extends EventTarget {
}
}
menuUnaim() {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const aimAction = localPlayer.getAction('aim');
if (aimAction) {
localPlayer.removeAction('aim');
}
}
- menuDragdown(e) {
- cameraManager.setFocus(true);
+ menuMiddleDown() {
+ zTargeting.handleDown();
- // this.dragging = true;
-
- /* world.appManager.dispatchEvent(new MessageEvent('dragchange', {
- data: {
- dragging: this.dragging,
- },
- })); */
+ // zTargetCenter
+ // zTargetObject
+ // zTargetEnemy
+ // zTargetCancel
}
- menuDrag(e) {
+ menuMiddle() {
/* const {movementX, movementY} = e;
if (Math.abs(movementX) < 100 && Math.abs(movementY) < 100) { // hack around a Chrome bug
camera.position.add(localVector.copy(cameraManager.getCameraOffset()).applyQuaternion(camera.quaternion));
@@ -1192,8 +1185,8 @@ class GameManager extends EventTarget {
camera.updateMatrixWorld();
} */
}
- menuDragup() {
- cameraManager.setFocus(false);
+ menuMiddleUp() {
+ zTargeting.handleUp();
// this.dragging = false;
@@ -1203,6 +1196,9 @@ class GameManager extends EventTarget {
},
})); */
}
+ menuMiddleToggle() {
+ zTargeting.toggle();
+ }
menuDragdownRight(e) {
// this.draggingRight = true;
}
@@ -1236,17 +1232,21 @@ class GameManager extends EventTarget {
object.savedRotation.y -= direction * rotationSnap;
}
dropSelectedApp() {
- const localPlayer = metaversefileApi.useLocalPlayer();
const app = loadoutManager.getSelectedApp();
if (app) {
- localPlayer.unwear(app);
+ const localPlayer = getLocalPlayer();
+ localPlayer.unwear(app, {
+ /* dropStartPosition: localVector.copy(localPlayer.position)
+ .add(localVector2.set(0, 0.5, -1).applyQuaternion(localPlayer.quaternion)),
+ dropDirection: zeroVector, */
+ });
}
}
deleteSelectedApp() {
if (this.selectedIndex !== -1) {
- const localPlayer = metaversefileApi.useLocalPlayer();
const app = loadoutManager.getSelectedApp();
if (app) {
+ const localPlayer = getLocalPlayer();
localPlayer.unwear(app, {
destroy: true,
});
@@ -1258,7 +1258,7 @@ class GameManager extends EventTarget {
// return !!world.appManager.grabbedObjects[0] /*|| (editedObject && editedObject.isBuild)*/;
}
menuPush(direction) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const grabAction = localPlayer.findAction(action => action.type === 'grab' && action.hand === 'left');
if (grabAction) {
const matrix = localMatrix.fromArray(grabAction.matrix);
@@ -1290,26 +1290,11 @@ class GameManager extends EventTarget {
}
}
- /* menuGDown() {
- const localPlayer = metaversefileApi.useLocalPlayer();
- localPlayer.removeAction('emote');
-
- const newAction = {
- type: 'emote',
- animation: 'angry',
- };
- localPlayer.addAction(newAction);
- }
- menuGUp() {
- const localPlayer = metaversefileApi.useLocalPlayer();
- localPlayer.removeAction('emote');
- } */
-
menuVDown() {
+ const localPlayer = getLocalPlayer();
if (_getGrabbedObject(0)) {
this.menuGridSnap();
} else {
- const localPlayer = metaversefileApi.useLocalPlayer();
localPlayer.removeAction('dance');
const newAction = {
@@ -1320,13 +1305,12 @@ class GameManager extends EventTarget {
}
}
menuVUp() {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.removeAction('dance');
}
menuBDown() {
- const localPlayer = metaversefileApi.useLocalPlayer();
-
+ const localPlayer = getLocalPlayer();
const sssAction = localPlayer.getAction('sss');
if (!sssAction) {
const newSssAction = {
@@ -1353,7 +1337,7 @@ class GameManager extends EventTarget {
} */
}
menuBUp() {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.removeAction('dance');
// physicsManager.setThrowState(null);
@@ -1361,7 +1345,7 @@ class GameManager extends EventTarget {
menuDoubleTap() {
if (!this.isCrouched()) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const narutoRunAction = localPlayer.getAction('narutoRun');
if (!narutoRunAction) {
const newNarutoRunAction = {
@@ -1373,17 +1357,38 @@ class GameManager extends EventTarget {
}
}
menuUnDoubleTap() {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const narutoRunAction = localPlayer.getAction('narutoRun');
if (narutoRunAction) {
localPlayer.removeAction('narutoRun');
}
}
+ menuSwitchCharacter() {
+ sounds.playSoundName('menuReady');
+
+ const npc = npcManager.npcs[0];
+ if (npc) {
+ // console.log('check npc', npc);
+
+ const localPlayer = getLocalPlayer();
+ localPlayer.isLocalPlayer = false;
+ localPlayer.isNpcPlayer = true;
+
+ npc.isLocalPlayer = true;
+ npc.isNpcPlayer = false;
+
+ const npcIndex = npcManager.npcs.indexOf(npc);
+ npcManager.npcs[npcIndex] = localPlayer;
+
+ setLocalPlayer(npc);
+ }
+ }
isFlying() {
- return metaversefileApi.useLocalPlayer().hasAction('fly');
+ const localPlayer = getLocalPlayer();
+ return localPlayer.hasAction('fly');
}
toggleFly() {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const flyAction = localPlayer.getAction('fly');
if (flyAction) {
localPlayer.removeAction('fly');
@@ -1396,10 +1401,11 @@ class GameManager extends EventTarget {
}
}
isCrouched() {
- return metaversefileApi.useLocalPlayer().hasAction('crouch');
+ const localPlayer = getLocalPlayer();
+ return localPlayer.hasAction('crouch');
}
toggleCrouch() {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
let crouchAction = localPlayer.getAction('crouch');
if (crouchAction) {
localPlayer.removeAction('crouch');
@@ -1437,7 +1443,6 @@ class GameManager extends EventTarget {
}
async toggleEditMode() {
this.editMode = !this.editMode;
- // console.log('got edit mode', this.editMode);
if (this.editMode) {
if (!cameraManager.pointerLockElement) {
await cameraManager.requestPointerLock();
@@ -1446,17 +1451,17 @@ class GameManager extends EventTarget {
this.setMouseSelectedObject(null);
}
if (_getGrabbedObject(0)) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.ungrab();
}
}
}
isJumping() {
- return metaversefileApi.useLocalPlayer().hasAction('jump');
+ const localPlayer = getLocalPlayer();
+ return localPlayer.hasAction('jump');
}
ensureJump(trigger) {
- const localPlayer = metaversefileApi.useLocalPlayer();
- const jumpAction = localPlayer.getAction('jump');
+ const localPlayer = getLocalPlayer();
const wearActions = Array.from(localPlayer.getActionsState()).filter(action => action.type === 'wear');
for (const wearAction of wearActions) {
@@ -1468,6 +1473,7 @@ class GameManager extends EventTarget {
}
}
+ const jumpAction = localPlayer.getAction('jump');
if (!jumpAction) {
const newJumpAction = {
type: 'jump',
@@ -1482,7 +1488,7 @@ class GameManager extends EventTarget {
this.ensureJump(trigger);
// update velocity
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.characterPhysics.velocity.y += 6;
// play sound
@@ -1490,15 +1496,17 @@ class GameManager extends EventTarget {
}
isMovingBackward() {
+ const localPlayer = getLocalPlayer();
// return ioManager.keysDirection.z > 0 && this.isAiming();
- const localPlayer = metaversefileApi.useLocalPlayer();
return localPlayer.avatar.direction.z > 0.1; // If check > 0 will cause glitch when move left/right;
}
isAiming() {
- return metaversefileApi.useLocalPlayer().hasAction('aim');
+ const localPlayer = getLocalPlayer();
+ return localPlayer.hasAction('aim');
}
isSitting() {
- return metaversefileApi.useLocalPlayer().hasAction('sit');
+ const localPlayer = getLocalPlayer();
+ return localPlayer.hasAction('sit');
}
getMouseHoverObject() {
return mouseHoverObject;
@@ -1512,7 +1520,7 @@ class GameManager extends EventTarget {
setHoverEnabled(hoverEnabled) {
this.hoverEnabled = hoverEnabled;
}
- setMouseHoverObject(o, physicsId, position) {
+ setMouseHoverObject(o, physicsId, position) { // XXX must be triggered
mouseHoverObject = o;
mouseHoverPhysicsId = physicsId;
if (mouseHoverObject && position) {
@@ -1603,54 +1611,36 @@ class GameManager extends EventTarget {
getUsableObject() {
return gameManager.usableObject;
}
- getLastMouseEvent() {
- return lastMouseEvent;
- }
- setLastMouseEvent(e) {
- if (!lastMouseEvent) {
- lastMouseEvent = {
- clientX: 0,
- clientY: 0,
- inside: false,
- };
- }
- if (e) {
- lastMouseEvent.clientX = e.clientX;
- lastMouseEvent.clientY = e.clientY;
- lastMouseEvent.inside = true;
- } else {
- lastMouseEvent.inside = false;
- }
- }
getDragRightSpec() {
return dragRightSpec;
}
menuActivateDown() {
if (grabUseMesh.visible) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
const activateAction = localPlayer.getAction('activate');
if (!activateAction) {
+ const animationName = _getCurrentGrabAnimation();
const newActivateAction = {
type: 'activate',
- // time: 0,
+ animationName,
};
localPlayer.addAction(newActivateAction);
}
}
}
menuActivateUp() {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.removeAction('activate');
}
setAvatarQuality(quality) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
localPlayer.avatar.setQuality(quality);
}
playerDiorama = null;
bindDioramaCanvas() {
// await rendererWaitForLoad();
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
this.playerDiorama = dioramaManager.createPlayerDiorama({
target: localPlayer,
// label: true,
@@ -1658,18 +1648,18 @@ class GameManager extends EventTarget {
grassBackground: true,
// glyphBackground: true,
});
+
localPlayer.addEventListener('avatarchange', e => {
this.playerDiorama.setObjects([
e.avatar.model,
]);
});
}
- loadVoicePack(voicePack) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ /* loadVoicePack(voicePack) {
return localPlayer.loadVoicePack(voicePack);
- }
+ } */
setVoiceEndpoint(voiceId) {
- const localPlayer = metaversefileApi.useLocalPlayer();
+ const localPlayer = getLocalPlayer();
return localPlayer.setVoiceEndpoint(voiceId);
}
saveScene() {
@@ -1684,21 +1674,6 @@ class GameManager extends EventTarget {
update = _gameUpdate;
pushAppUpdates = _pushAppUpdates;
pushPlayerUpdates = _pushPlayerUpdates;
- async renderCard(object) { // HACK: this should be moved to a UI component
- const start_url = object?.start_url;
- if (start_url) {
- // console.log('render card 1', start_url);
- const cardImg = await generateObjectUrlCard({
- start_url,
- });
- // console.log('render card 2', start_url, cardImg);
- // const stats = procgen.generateStats();
- /* console.log('render start url', {
- start_url,
- stats,
- }); */
- }
- }
}
const gameManager = new GameManager();
export default gameManager;
\ No newline at end of file
diff --git a/geometry-util.js b/geometry-util.js
new file mode 100644
index 0000000000..e26ad1b608
--- /dev/null
+++ b/geometry-util.js
@@ -0,0 +1,57 @@
+export class Allocator {
+ constructor(moduleInstance) {
+ this.moduleInstance = moduleInstance;
+ this.offsets = []
+ }
+
+ alloc(constructor, size) {
+ if (size > 0) {
+ const offset = this.moduleInstance._malloc(
+ size * constructor.BYTES_PER_ELEMENT
+ )
+ const b = new constructor(
+ this.moduleInstance.HEAP8.buffer,
+ this.moduleInstance.HEAP8.byteOffset + offset,
+ size
+ )
+ b.offset = offset
+ this.offsets.push(offset)
+ return b
+ } else {
+ return new constructor(this.moduleInstance.HEAP8.buffer, 0, 0)
+ }
+ }
+
+ freeAll() {
+ for (let i = 0; i < this.offsets.length; i++) {
+ this.moduleInstance._doFree(this.offsets[i])
+ }
+ this.offsets.length = 0
+ }
+}
+export class ScratchStack {
+ constructor(moduleInstance, size) {
+ this.ptr = moduleInstance._malloc(size)
+
+ this.u8 = new Uint8Array(
+ moduleInstance.HEAP8.buffer,
+ this.ptr,
+ size
+ )
+ this.u32 = new Uint32Array(
+ moduleInstance.HEAP8.buffer,
+ this.ptr,
+ size / 4
+ )
+ this.i32 = new Int32Array(
+ moduleInstance.HEAP8.buffer,
+ this.ptr,
+ size / 4
+ )
+ this.f32 = new Float32Array(
+ moduleInstance.HEAP8.buffer,
+ this.ptr,
+ size / 4
+ )
+ }
+}
\ No newline at end of file
diff --git a/heightfield-mapper.js b/heightfield-mapper.js
new file mode 100644
index 0000000000..264192ba8c
--- /dev/null
+++ b/heightfield-mapper.js
@@ -0,0 +1,282 @@
+import * as THREE from 'three';
+import {getRenderer, camera} from './renderer.js';
+import {WebaverseShaderMaterial} from './materials.js';
+
+//
+
+const maxAnisotropy = 16;
+const fullScreenQuadGeometry = new THREE.PlaneBufferGeometry(2, 2);
+const fullscreenVertexShader = `\
+ varying vec2 vUv;
+
+ void main() {
+ vUv = uv;
+ gl_Position = vec4(position.xy, 0., 1.0);
+ }
+`;
+
+//
+
+const localVector2D = new THREE.Vector2();
+
+//
+
+const _makeHeightfieldRenderTarget = (w, h) => new THREE.WebGLRenderTarget(w, h, {
+ minFilter: THREE.LinearFilter,
+ magFilter: THREE.LinearFilter,
+ // minFilter: THREE.NearestFilter,
+ // magFilter: THREE.NearestFilter,
+ format: THREE.RedFormat,
+ type: THREE.FloatType,
+ // wrapS: THREE.RepeatWrapping,
+ // wrapT: THREE.RepeatWrapping,
+ wrapS: THREE.ClampToEdgeWrapping,
+ wrapT: THREE.ClampToEdgeWrapping,
+ stencilBuffer: false,
+ anisotropy: maxAnisotropy,
+ // flipY: false,
+});
+
+export class HeightfieldMapper {
+ constructor({
+ chunkSize,
+ terrainSize,
+ range,
+ }) {
+ this.chunkSize = chunkSize;
+ this.terrainSize = terrainSize;
+ this.range = range;
+
+ this.heightfieldRenderTarget = _makeHeightfieldRenderTarget(terrainSize, terrainSize);
+ this.heightfieldFourTapRenderTarget = _makeHeightfieldRenderTarget(terrainSize, terrainSize);
+ this.heightfieldMinPosition = new THREE.Vector2();
+
+ this.blankChunkData = new Float32Array(chunkSize * chunkSize);
+
+ this.heightfieldScene = (() => {
+ const chunkPlaneGeometry = new THREE.PlaneBufferGeometry(1, 1)
+ .rotateX(-Math.PI / 2)
+ .translate(0.5, 0, 0.5)
+ .scale(this.chunkSize, 1, this.chunkSize);
+ const fullscreenMatrixVertexShader = `\
+ uniform float uHeightfieldSize;
+ varying vec2 vUv;
+
+ void main() {
+ vUv = uv;
+ vUv.y = 1. - vUv.y;
+ // vUv += 0.5 / uHeightfieldSize;
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
+ }
+ `;
+ const fullscreenFragmentShader3 = `\
+ uniform sampler2D uHeightfieldDrawTexture;
+ uniform float uHeightfieldSize;
+ varying vec2 vUv;
+
+ void main() {
+ vec2 uv = vUv;
+ // uv.x += 0.5 / uHeightfieldSize;
+ // uv.y -= 0.5 / uHeightfieldSize;
+ // uv += 0.5 / uHeightfieldSize;
+ float heightValue = texture2D(uHeightfieldDrawTexture, uv).r;
+
+ gl_FragColor.rgb = vec3(heightValue);
+ gl_FragColor.a = 1.;
+ }
+ `;
+ const heightfieldDrawTexture = new THREE.DataTexture(
+ new Float32Array(chunkSize * chunkSize),
+ chunkSize,
+ chunkSize,
+ THREE.RedFormat,
+ THREE.FloatType
+ );
+ heightfieldDrawTexture.minFilter = THREE.LinearFilter;
+ heightfieldDrawTexture.magFilter = THREE.LinearFilter;
+ const fullscreenMaterial3 = new WebaverseShaderMaterial({
+ uniforms: {
+ uHeightfieldDrawTexture: {
+ value: heightfieldDrawTexture,
+ needsUpdate: true,
+ },
+ uHeightfieldSize: {
+ value: terrainSize,
+ needsUpdate: true,
+ },
+ },
+ vertexShader: fullscreenMatrixVertexShader,
+ fragmentShader: fullscreenFragmentShader3,
+ // side: THREE.DoubleSide,
+ });
+ const fullscreenQuadMesh3 = new THREE.Mesh(chunkPlaneGeometry, fullscreenMaterial3);
+ fullscreenQuadMesh3.frustumCulled = false;
+ const scene3 = new THREE.Scene();
+ scene3.add(fullscreenQuadMesh3);
+ scene3.update = (heightfieldLocalWritePosition, heightfield) => {
+ fullscreenQuadMesh3.position.copy(heightfieldLocalWritePosition);
+ fullscreenQuadMesh3.updateMatrixWorld();
+
+ /* const heightfieldDrawTexture = new THREE.DataTexture(
+ new Uint8ClampedArray(this.chunkSize * this.chunkSize),
+ this.chunkSize,
+ this.chunkSize,
+ THREE.RedFormat,
+ THREE.UnsignedByteType
+ ); */
+
+ heightfieldDrawTexture.image.data.set(heightfield);
+ heightfieldDrawTexture.needsUpdate = true;
+
+ fullscreenMaterial3.uniforms.uHeightfieldDrawTexture.value = heightfieldDrawTexture;
+ fullscreenMaterial3.uniforms.uHeightfieldDrawTexture.needsUpdate = true;
+
+ // console.log('got data', fullscreenQuadMesh3.position.x, fullscreenQuadMesh3.position.z, heightfieldDrawTexture.image.data);
+
+ // console.log('render heightfield', heightfieldLocalWritePosition.x, heightfieldLocalWritePosition.y, heightfield);
+ };
+ scene3.camera = new THREE.OrthographicCamera(0, terrainSize, 0, -terrainSize, -1000, 1000);
+ scene3.camera.quaternion.setFromAxisAngle(new THREE.Vector3(1, 0, 0), -Math.PI / 2);
+ scene3.camera.updateMatrixWorld();
+ return scene3;
+ })();
+ this.heightfieldFourTapScene = (() => {
+ const fullscreenFragmentShader = `\
+ uniform sampler2D uHeightfield;
+ uniform vec2 uHeightfieldBase;
+ uniform vec2 uHeightfieldMinPosition;
+ uniform float uHeightfieldSize;
+ varying vec2 vUv;
+
+ void main() {
+ vec2 pos2D = vUv;
+ vec2 posDiff = pos2D - 0.5 - (uHeightfieldMinPosition) / uHeightfieldSize;
+ vec2 uvHeightfield = posDiff;
+ uvHeightfield = mod(uvHeightfield, 1.);
+ gl_FragColor = texture2D(uHeightfield, uvHeightfield);
+ }
+ `;
+ const fourTapFullscreenMaterial = new WebaverseShaderMaterial({
+ uniforms: {
+ uHeightfield: {
+ value: this.heightfieldRenderTarget.texture,
+ needsUpdate: true,
+ },
+ uHeightfieldSize: {
+ value: terrainSize,
+ needsUpdate: true,
+ },
+ uHeightfieldMinPosition: {
+ value: new THREE.Vector2(),
+ needsUpdate: true,
+ }
+ },
+ vertexShader: fullscreenVertexShader,
+ fragmentShader: fullscreenFragmentShader,
+ });
+ const fourTapQuadMesh = new THREE.Mesh(fullScreenQuadGeometry, fourTapFullscreenMaterial);
+ fourTapQuadMesh.frustumCulled = false;
+ const scene = new THREE.Scene();
+ scene.add(fourTapQuadMesh);
+ scene.mesh = fourTapQuadMesh;
+ return scene;
+ })();
+
+ if (range) {
+ this.#setRange(range);
+ }
+ }
+ #setRange = (() => {
+ const localVector = new THREE.Vector3();
+ return function(range) {
+ localVector.copy(range.min)
+ .divideScalar(this.chunkSize);
+ this.updateCoord(localVector);
+ };
+ })();
+ updateCoord(min1xCoord, target = null) {
+ // console.log('heightfield update coord', min1xCoord.x, min1xCoord.y, min1xCoord.z, new Error().stack);
+ // const oldHeightfieldPosition = localVector2D.copy(this.heightfieldMinPosition);
+ const newHeightfieldPosition = localVector2D.set(min1xCoord.x, min1xCoord.z)
+ .multiplyScalar(this.chunkSize);
+
+ // const delta = target && target.copy(newHeightfieldPosition)
+ // .sub(oldHeightfieldPosition);
+
+ // update scenes
+ this.heightfieldFourTapScene.mesh.material.uniforms.uHeightfieldMinPosition.value.copy(newHeightfieldPosition);
+ this.heightfieldFourTapScene.mesh.material.uniforms.uHeightfieldMinPosition.needsUpdate = true;
+
+ this.heightfieldMinPosition.copy(newHeightfieldPosition);
+
+ // return delta;
+ }
+ renderHeightfieldUpdate(worldModPosition, heightfield) {
+ const renderer = getRenderer();
+ const context = renderer.getContext();
+ // const camera = useCamera();
+
+ {
+ // update
+ this.heightfieldScene.update(worldModPosition, heightfield);
+
+ // push state
+ const oldRenderTarget = renderer.getRenderTarget();
+ context.disable(context.SAMPLE_ALPHA_TO_COVERAGE);
+
+ // render
+ renderer.setRenderTarget(this.heightfieldRenderTarget);
+ // renderer.clear();
+ renderer.render(this.heightfieldScene, this.heightfieldScene.camera);
+
+ // pop state
+ renderer.setRenderTarget(oldRenderTarget);
+ context.enable(context.SAMPLE_ALPHA_TO_COVERAGE);
+ }
+ }
+ clearHeightfieldChunk(worldModPosition) {
+ const renderer = getRenderer();
+ const context = renderer.getContext();
+ // const camera = useCamera();
+
+ {
+ // update
+ this.heightfieldScene.update(worldModPosition, this.blankChunkData);
+
+ // push state
+ const oldRenderTarget = renderer.getRenderTarget();
+ context.disable(context.SAMPLE_ALPHA_TO_COVERAGE);
+
+ // render
+ renderer.setRenderTarget(this.heightfieldRenderTarget);
+ // renderer.clear();
+ renderer.render(this.heightfieldScene, this.heightfieldScene.camera);
+
+ // pop state
+ renderer.setRenderTarget(oldRenderTarget);
+ context.enable(context.SAMPLE_ALPHA_TO_COVERAGE);
+ }
+ }
+ updateFourTapHeightfield() {
+ const renderer = getRenderer();
+ const context = renderer.getContext();
+
+ {
+ // update
+ // heightfieldFourTapScene.update();
+
+ // push state
+ const oldRenderTarget = renderer.getRenderTarget();
+ context.disable(context.SAMPLE_ALPHA_TO_COVERAGE);
+
+ // render
+ renderer.setRenderTarget(this.heightfieldFourTapRenderTarget);
+ // renderer.clear();
+ renderer.render(this.heightfieldFourTapScene, camera);
+
+ // pop state
+ renderer.setRenderTarget(oldRenderTarget);
+ context.enable(context.SAMPLE_ALPHA_TO_COVERAGE);
+ }
+ }
+}
\ No newline at end of file
diff --git a/hp-manager.js b/hp-manager.js
index 024f1f84ad..2fe8b95be8 100644
--- a/hp-manager.js
+++ b/hp-manager.js
@@ -135,7 +135,7 @@ const makeHitTracker = ({
sounds.playSoundName('enemyCut');
- hitTracker.dispatchEvent({
+ const hitEvent = {
type: 'hit',
collisionId,
hitPosition,
@@ -144,13 +144,17 @@ const makeHitTracker = ({
// willDie,
hp: hitTracker.hp,
totalHp: hitTracker.totalHp,
- });
+ };
+ // hitTracker.dispatchEvent(hitEvent);
+ currentApp.dispatchEvent(hitEvent);
if (died) {
- hitTracker.dispatchEvent({
+ const dieEvent = {
type: 'die',
// position: cylinderMesh.position,
// quaternion: cylinderMesh.quaternion,
- });
+ };
+ // hitTracker.dispatchEvent();
+ currentApp.dispatchEvent(dieEvent);
}
}
return result;
diff --git a/id-allocator.js b/id-allocator.js
new file mode 100644
index 0000000000..63285196d5
--- /dev/null
+++ b/id-allocator.js
@@ -0,0 +1,24 @@
+import {defaultMaxId} from './constants.js';
+
+export class IdAllocator {
+ constructor(maxSize = defaultMaxId) {
+ this.stack = new Uint32Array(maxSize);
+ for (let i = 0; i < maxSize; i++) {
+ this.stack[i] = i + 1;
+ }
+ this.stackIndex = 0;
+ }
+ alloc() {
+ if (this.stackIndex < this.stack.length) {
+ const index = this.stack[this.stackIndex];
+ this.stackIndex++;
+ return index;
+ } else {
+ return -1;
+ }
+ }
+ free(index) {
+ this.stackIndex--;
+ this.stack[this.stackIndex] = index;
+ }
+}
\ No newline at end of file
diff --git a/index.mjs b/index.mjs
index 2c15dc6776..c32e55f0fb 100644
--- a/index.mjs
+++ b/index.mjs
@@ -39,7 +39,7 @@ function makeId(length) {
return result;
}
-const _proxyUrl = (req, res, u) => {
+/* const _proxyUrl = (req, res, u) => {
const proxyReq = /https/.test(u) ? https.request(u) : http.request(u);
proxyReq.on('response', proxyRes => {
for (const header in proxyRes.headers) {
@@ -54,7 +54,7 @@ const _proxyUrl = (req, res, u) => {
res.end();
});
proxyReq.end();
-};
+}; */
(async () => {
const app = express();
diff --git a/instancing.js b/instancing.js
new file mode 100644
index 0000000000..f4b2f9c158
--- /dev/null
+++ b/instancing.js
@@ -0,0 +1,654 @@
+import * as THREE from 'three';
+import {ImmediateGLBufferAttribute} from './ImmediateGLBufferAttribute.js';
+import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
+import {getRenderer} from './renderer.js';
+
+const localVector2D = new THREE.Vector2();
+const localVector2D2 = new THREE.Vector2();
+const localMatrix = new THREE.Matrix4();
+const localSphere = new THREE.Sphere();
+const localBox = new THREE.Box3();
+const localFrustum = new THREE.Frustum();
+const localDataTexture = new THREE.DataTexture();
+
+const maxNumDraws = 1024;
+
+const _getBoundingSize = boundingType => {
+ switch (boundingType) {
+ case 'sphere': return 4;
+ case 'box': return 6;
+ default: return 0;
+ }
+};
+
+export class FreeListSlot {
+ constructor(start, count, used) {
+ // array-relative indexing, not item-relative
+ // start++ implies attribute.array[start++]
+ this.start = start;
+ this.count = count;
+ this.used = used;
+ }
+ alloc(size) {
+ if (size < this.count) {
+ this.used = true;
+ const newSlot = new FreeListSlot(this.start + size, this.count - size, false);
+ this.count = size;
+ return [
+ this,
+ newSlot,
+ ];
+ } else if (size === this.count) {
+ this.used = true;
+ return [this];
+ } else {
+ throw new Error('could not allocate from self: ' + size + ' : ' + this.count);
+ }
+ }
+ free() {
+ this.used = false;
+ return [this];
+ }
+}
+
+export class FreeList {
+ constructor(size) {
+ this.slots = [
+ new FreeListSlot(0, size, false),
+ ];
+ }
+ findFirstFreeSlotIndexWithSize(size) {
+ for (let i = 0; i < this.slots.length; i++) {
+ const slot = this.slots[i];
+ if (!slot.used && slot.count >= size) {
+ return i;
+ }
+ }
+ return -1;
+ }
+ alloc(size) {
+ if (size > 0) {
+ const index = this.findFirstFreeSlotIndexWithSize(size);
+ if (index !== -1) {
+ const slot = this.slots[index];
+ const replacementArray = slot.alloc(size);
+ this.slots.splice.apply(this.slots, [index, 1].concat(replacementArray));
+ return replacementArray[0];
+ } else {
+ throw new Error('out of memory');
+ }
+ } else {
+ throw new Error('alloc size must be > 0');
+ }
+ }
+ free(slot) {
+ const index = this.slots.indexOf(slot);
+ if (index !== -1) {
+ const replacementArray = slot.free();
+ this.slots.splice.apply(this.slots, [index, 1].concat(replacementArray));
+ this.#mergeAdjacentSlots();
+ } else {
+ throw new Error('invalid free');
+ }
+ }
+ #mergeAdjacentSlots() {
+ for (let i = this.slots.length - 2; i >= 0; i--) {
+ const slot = this.slots[i];
+ const nextSlot = this.slots[i + 1];
+ if (!slot.used && !nextSlot.used) {
+ slot.count += nextSlot.count;
+ this.slots.splice(i + 1, 1);
+ }
+ }
+ }
+}
+
+export class GeometryPositionIndexBinding {
+ constructor(positionFreeListEntry, indexFreeListEntry, geometry) {
+ this.positionFreeListEntry = positionFreeListEntry;
+ this.indexFreeListEntry = indexFreeListEntry;
+ this.geometry = geometry;
+ }
+ getAttributeOffset(name = 'position') {
+ return this.positionFreeListEntry.start / 3 * this.geometry.attributes[name].itemSize;
+ }
+ getIndexOffset() {
+ return this.indexFreeListEntry.start;
+ }
+}
+
+export class GeometryAllocator {
+ constructor(attributeSpecs, {
+ bufferSize,
+ boundingType = null,
+ }) {
+ {
+ this.geometry = new THREE.BufferGeometry();
+ for (const attributeSpec of attributeSpecs) {
+ const {
+ name,
+ Type,
+ itemSize,
+ } = attributeSpec;
+
+ const array = new Type(bufferSize * itemSize);
+ this.geometry.setAttribute(name, new ImmediateGLBufferAttribute(array, itemSize, false));
+ }
+ const indices = new Uint32Array(bufferSize);
+ this.geometry.setIndex(new ImmediateGLBufferAttribute(indices, 1, true));
+ }
+
+ this.boundingType = boundingType;
+
+ this.positionFreeList = new FreeList(bufferSize * 3);
+ this.indexFreeList = new FreeList(bufferSize);
+
+ this.drawStarts = new Int32Array(maxNumDraws);
+ this.drawCounts = new Int32Array(maxNumDraws);
+ const boundingSize = _getBoundingSize(boundingType);
+ this.boundingData = new Float32Array(maxNumDraws * boundingSize);
+ this.numDraws = 0;
+ }
+ alloc(numPositions, numIndices, boundingObject) {
+ const positionFreeListEntry = this.positionFreeList.alloc(numPositions);
+ const indexFreeListEntry = this.indexFreeList.alloc(numIndices);
+ const geometryBinding = new GeometryPositionIndexBinding(positionFreeListEntry, indexFreeListEntry, this.geometry);
+
+ const slot = indexFreeListEntry;
+ this.drawStarts[this.numDraws] = slot.start * this.geometry.index.array.BYTES_PER_ELEMENT;
+ this.drawCounts[this.numDraws] = slot.count;
+ if (this.boundingType === 'sphere') {
+ boundingObject.center.toArray(this.boundingData, this.numDraws * 4);
+ this.boundingData[this.numDraws * 4 + 3] = boundingObject.radius;
+ } else if (this.boundingType === 'box') {
+ boundingObject.min.toArray(this.boundingData, this.numDraws * 6);
+ boundingObject.max.toArray(this.boundingData, this.numDraws * 6 + 3);
+ }
+
+ this.numDraws++;
+
+ return geometryBinding;
+ }
+ free(geometryBinding) {
+ const slot = geometryBinding.indexFreeListEntry;
+ const expectedStartValue = slot.start * this.geometry.index.array.BYTES_PER_ELEMENT;
+ const freeIndex = this.drawStarts.indexOf(expectedStartValue);
+
+ if (this.numDraws >= 2) {
+ const lastIndex = this.numDraws - 1;
+
+ // copy the last index to the freed slot
+ if (this.boundingType === 'sphere') {
+ this.drawStarts[freeIndex] = this.drawStarts[lastIndex];
+ this.drawCounts[freeIndex] = this.drawCounts[lastIndex];
+ this.boundingData[freeIndex * 4] = this.boundingData[lastIndex * 4];
+ this.boundingData[freeIndex * 4 + 1] = this.boundingData[lastIndex * 4 + 1];
+ this.boundingData[freeIndex * 4 + 2] = this.boundingData[lastIndex * 4 + 2];
+ this.boundingData[freeIndex * 4 + 3] = this.boundingData[lastIndex * 4 + 3];
+ } else if (this.boundingType === 'box') {
+ this.drawStarts[freeIndex] = this.drawStarts[lastIndex];
+ this.drawCounts[freeIndex] = this.drawCounts[lastIndex];
+ this.boundingData[freeIndex * 6] = this.boundingData[lastIndex * 6];
+ this.boundingData[freeIndex * 6 + 1] = this.boundingData[lastIndex * 6 + 1];
+ this.boundingData[freeIndex * 6 + 2] = this.boundingData[lastIndex * 6 + 2];
+ this.boundingData[freeIndex * 6 + 3] = this.boundingData[lastIndex * 6 + 3];
+ this.boundingData[freeIndex * 6 + 4] = this.boundingData[lastIndex * 6 + 4];
+ this.boundingData[freeIndex * 6 + 5] = this.boundingData[lastIndex * 6 + 5];
+ }
+ }
+
+ this.numDraws--;
+
+ this.positionFreeList.free(geometryBinding.positionFreeListEntry);
+ this.indexFreeList.free(geometryBinding.indexFreeListEntry);
+ }
+ getDrawSpec(camera, drawStarts, drawCounts) {
+ drawStarts.length = 0;
+ drawCounts.length = 0;
+
+ if (this.boundingType) {
+ const projScreenMatrix = localMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);
+ localFrustum.setFromProjectionMatrix(projScreenMatrix);
+ }
+
+ const testBoundingFn = (() => {
+ if (this.boundingType === 'sphere') {
+ return (i) => {
+ localSphere.center.fromArray(this.boundingData, i * 4);
+ localSphere.radius = this.boundingData[i * 4 + 3];
+ return localFrustum.intersectsSphere(localSphere);
+ };
+ } else if (this.boundingType === 'box') {
+ return (i) => {
+ localBox.min.fromArray(this.boundingData, i * 6);
+ localBox.max.fromArray(this.boundingData, i * 6 + 3);
+ return localFrustum.intersectsBox(localBox);
+ };
+ } else {
+ return (i) => true;
+ }
+ })();
+ for (let i = 0; i < this.numDraws; i++) {
+ if (testBoundingFn(i)) {
+ drawStarts.push(this.drawStarts[i]);
+ drawCounts.push(this.drawCounts[i]);
+ }
+ }
+ }
+}
+
+export class DrawCallBinding {
+ constructor(geometryIndex, freeListEntry, allocator) {
+ this.geometryIndex = geometryIndex;
+ this.freeListEntry = freeListEntry;
+ this.allocator = allocator;
+ }
+ getTexture(name) {
+ return this.allocator.getTexture(name);
+ }
+ getTextureOffset(name) {
+ const texture = this.getTexture(name);
+ const {itemSize} = texture;
+ return this.freeListEntry.start * this.allocator.maxInstancesPerDrawCall * itemSize;
+ }
+ getInstanceCount() {
+ return this.allocator.getInstanceCount(this);
+ }
+ setInstanceCount(instanceCount) {
+ this.allocator.setInstanceCount(this, instanceCount);
+ }
+ incrementInstanceCount() {
+ return this.allocator.incrementInstanceCount(this);
+ }
+ decrementInstanceCount() {
+ return this.allocator.decrementInstanceCount(this);
+ }
+ updateTexture(name, pixelIndex, itemCount) { // XXX optimize this
+ const texture = this.getTexture(name);
+ // const textureIndex = this.getTextureIndex(name);
+ texture.needsUpdate = true;
+ return;
+
+ const renderer = getRenderer();
+
+ const _getIndexUv = (index, target) => {
+ const x = index % texture.width;
+ const y = Math.floor(index / texture.width);
+ return target.set(x, y);
+ };
+
+ // render start slice
+ const startUv = _getIndexUv(pixelIndex, localVector2D);
+ if (startUv.x > 0) {
+ localDataTexture.image.width = texture.image.width - startUv.x;
+ localDataTexture.image.height = 1;
+ localDataTexture.image.data = texture.image.data.subarray(
+ pixelIndex,
+ pixelIndex + startUv.x
+ );
+ renderer.copyTextureToTexture(startUv, localDataTexture, texture, 0);
+
+ startUv.x = 0;
+ startUv.y++;
+ }
+
+ const endUv = _getIndexUv(pixelIndex + pixelCount, localVector2D2);
+ if (endUv.y > startUv.y) {
+ // render end slice
+ if (endUv.x > 0) {
+ localDataTexture.image.width = endUv.x;
+ localDataTexture.image.height = 1;
+ localDataTexture.image.data = texture.image.data.subarray(
+ endUv.y * texture.image.width,
+ endUv.y * texture.image.width + endUv.x
+ );
+ renderer.copyTextureToTexture(endUv, localDataTexture, texture, 0);
+
+ endUv.x = 0;
+ endUv.y--;
+ }
+
+ // render middle slice
+ if (endUv.y > startUv.y) {
+ localDataTexture.image.width = texture.image.width;
+ localDataTexture.image.height = endUv.y - startUv.y;
+ localDataTexture.image.data = texture.image.data.subarray(
+ startUv.y * texture.image.width,
+ endUv.y * texture.image.width
+ );
+ renderer.copyTextureToTexture(startUv, localDataTexture, texture, 0);
+ }
+ }
+ }
+}
+
+const _swapTextureAttributes = (texture, i, j, maxInstancesPerDrawCall) => {
+ const {itemSize} = texture;
+ const startOffset = i * maxInstancesPerDrawCall;
+ const dstStart = (startOffset + j) * itemSize;
+ const srcStart = (startOffset + maxInstancesPerDrawCall - 1) * itemSize;
+ const count = itemSize;
+ texture.image.data.copyWithin(
+ dstStart,
+ srcStart,
+ srcStart + count
+ );
+};
+const _swapBoundingDataSphere = (instanceBoundingData, i, j, maxInstancesPerDrawCall) => {
+ const dstStart = (startOffset + j) * 4;
+ const srcStart = (startOffset + maxInstancesPerDrawCall - 1) * 4;
+ instanceBoundingData.copyWithin(
+ dstStart,
+ srcStart,
+ srcStart + 4
+ );
+};
+const _swapBoundingDataBox = (instanceBoundingData, i, j, maxInstancesPerDrawCall) => {
+ const dstStart = (startOffset + j) * 6;
+ const srcStart = (startOffset + maxInstancesPerDrawCall - 1) * 6;
+ instanceBoundingData.copyWithin(
+ dstStart,
+ srcStart,
+ srcStart + 6
+ );
+};
+export class InstancedGeometryAllocator {
+ constructor(geometries, instanceTextureSpecs, {
+ maxInstancesPerDrawCall,
+ maxDrawCallsPerGeometry,
+ boundingType = null,
+ instanceBoundingType = null,
+ }) {
+ this.maxInstancesPerDrawCall = maxInstancesPerDrawCall;
+ this.maxDrawCallsPerGeometry = maxDrawCallsPerGeometry;
+ this.boundingType = boundingType;
+ this.instanceBoundingType = instanceBoundingType;
+
+ this.drawStarts = new Int32Array(geometries.length * maxDrawCallsPerGeometry);
+ this.drawCounts = new Int32Array(geometries.length * maxDrawCallsPerGeometry);
+ this.drawInstanceCounts = new Int32Array(geometries.length * maxDrawCallsPerGeometry);
+ const boundingSize = _getBoundingSize(boundingType);
+ this.boundingData = new Float32Array(geometries.length * maxDrawCallsPerGeometry * boundingSize);
+ const instanceBoundingSize = _getBoundingSize(instanceBoundingType);
+ this.instanceBoundingData = new Float32Array(geometries.length * maxDrawCallsPerGeometry * maxInstancesPerDrawCall * instanceBoundingSize);
+
+ {
+ const numGeometries = geometries.length;
+ const geometryRegistry = Array(numGeometries);
+ let positionIndex = 0;
+ let indexIndex = 0;
+ for (let i = 0; i < numGeometries; i++) {
+ const geometry = geometries[i];
+
+ const positionCount = geometry.attributes.position.count;
+ const indexCount = geometry.index.count;
+ const spec = {
+ position: {
+ start: positionIndex,
+ count: positionCount,
+ },
+ index: {
+ start: indexIndex,
+ count: indexCount,
+ },
+ };
+ geometryRegistry[i] = spec;
+
+ positionIndex += positionCount;
+ indexIndex += indexCount;
+ }
+ this.geometryRegistry = geometryRegistry;
+
+ this.geometry = BufferGeometryUtils.mergeBufferGeometries(geometries);
+
+ this.texturesArray = instanceTextureSpecs.map(spec => {
+ const {
+ name,
+ Type,
+ itemSize,
+ } = spec;
+
+ // compute the minimum size of a texture that can hold the data
+ let neededItems4 = numGeometries * maxDrawCallsPerGeometry * maxInstancesPerDrawCall;
+ if (itemSize > 4) {
+ neededItems4 *= itemSize / 4;
+ }
+ const textureSizePx = Math.max(Math.pow(2, Math.ceil(Math.log2(Math.sqrt(neededItems4)))), 16);
+ const itemSizeSnap = itemSize > 4 ? 4 : itemSize;
+
+ const format = (() => {
+ if (itemSize === 1) {
+ return THREE.RedFormat;
+ } else if (itemSize === 2) {
+ return THREE.RGFormat;
+ } else if (itemSize === 3) {
+ return THREE.RGBFormat;
+ } else /*if (itemSize >= 4)*/ {
+ return THREE.RGBAFormat;
+ }
+ })();
+ const type = (() => {
+ if (Type === Float32Array) {
+ return THREE.FloatType;
+ } else if (Type === Uint32Array) {
+ return THREE.UnsignedIntType;
+ } else if (Type === Int32Array) {
+ return THREE.IntType;
+ } else if (Type === Uint16Array) {
+ return THREE.UnsignedShortType;
+ } else if (Type === Int16Array) {
+ return THREE.ShortType;
+ } else if (Type === Uint8Array) {
+ return THREE.UnsignedByteType;
+ } else if (Type === Int8Array) {
+ return THREE.ByteType;
+ } else {
+ throw new Error('unsupported type: ' + type);
+ }
+ })();
+
+ const data = new Type(textureSizePx * textureSizePx * itemSizeSnap);
+ const texture = new THREE.DataTexture(data, textureSizePx, textureSizePx, format, type);
+ texture.name = name;
+ texture.minFilter = THREE.NearestFilter;
+ texture.magFilter = THREE.NearestFilter;
+ // texture.needsUpdate = true;
+ texture.itemSize = itemSize;
+ return texture;
+ });
+ this.textures = {};
+ for (let i = 0; i < this.texturesArray.length; i++) {
+ const textureSpec = instanceTextureSpecs[i];
+ const {name} = textureSpec;
+ this.textures[name] = this.texturesArray[i];
+ }
+ this.textureIndexes = {};
+ for (let i = 0; i < this.texturesArray.length; i++) {
+ const textureSpec = instanceTextureSpecs[i];
+ const {name} = textureSpec;
+ this.textureIndexes[name] = i;
+ }
+
+ this.freeList = new FreeList(numGeometries * maxDrawCallsPerGeometry);
+ }
+ }
+ allocDrawCall(geometryIndex, boundingObject) {
+ const freeListEntry = this.freeList.alloc(1);
+ const drawCall = new DrawCallBinding(geometryIndex, freeListEntry, this);
+
+ const geometrySpec = this.geometryRegistry[geometryIndex];
+ const {
+ index: {
+ start,
+ count,
+ },
+ } = geometrySpec;
+
+ this.drawStarts[freeListEntry.start] = start * this.geometry.index.array.BYTES_PER_ELEMENT;
+ this.drawCounts[freeListEntry.start] = count;
+ this.drawInstanceCounts[freeListEntry.start] = 0;
+ if (this.boundingType === 'sphere') {
+ boundingObject.center.toArray(this.boundingData, freeListEntry.start * 4);
+ this.boundingData[freeListEntry.start * 4 + 3] = boundingObject.radius;
+ } else if (this.boundingType === 'box') {
+ boundingObject.min.toArray(this.boundingData, freeListEntry.start * 6);
+ boundingObject.max.toArray(this.boundingData, freeListEntry.start * 6 + 3);
+ }
+
+ return drawCall;
+ }
+ freeDrawCall(drawCall) {
+ const {freeListEntry} = drawCall;
+
+ this.drawStarts[freeListEntry.start] = 0;
+ this.drawCounts[freeListEntry.start] = 0;
+ this.drawInstanceCounts[freeListEntry.start] = 0;
+ if (this.boundingType === 'sphere') {
+ this.boundingData[freeListEntry.start * 4] = 0;
+ this.boundingData[freeListEntry.start * 4 + 1] = 0;
+ this.boundingData[freeListEntry.start * 4 + 2] = 0;
+ this.boundingData[freeListEntry.start * 4 + 3] = 0;
+ } else if (this.boundingType === 'box') {
+ this.boundingData[freeListEntry.start * 6] = 0;
+ this.boundingData[freeListEntry.start * 6 + 1] = 0;
+ this.boundingData[freeListEntry.start * 6 + 2] = 0;
+ this.boundingData[freeListEntry.start * 6 + 3] = 0;
+ this.boundingData[freeListEntry.start * 6 + 4] = 0;
+ this.boundingData[freeListEntry.start * 6 + 5] = 0;
+ }
+
+ this.freeList.free(freeListEntry);
+ }
+ getInstanceCount(drawCall) {
+ return this.drawInstanceCounts[drawCall.freeListEntry.start];
+ }
+ setInstanceCount(drawCall, instanceCount) {
+ this.drawInstanceCounts[drawCall.freeListEntry.start] = instanceCount;
+ }
+ incrementInstanceCount(drawCall) {
+ this.drawInstanceCounts[drawCall.freeListEntry.start]++;
+ }
+ decrementInstanceCount(drawCall) {
+ this.drawInstanceCounts[drawCall.freeListEntry.start]--;
+ }
+ getTexture(name) {
+ return this.textures[name];
+ }
+ getDrawSpec(camera, multiDrawStarts, multiDrawCounts, multiDrawInstanceCounts) {
+ multiDrawStarts.length = this.drawStarts.length;
+ multiDrawCounts.length = this.drawCounts.length;
+ multiDrawInstanceCounts.length = this.drawInstanceCounts.length;
+
+ if (this.boundingType) {
+ const projScreenMatrix = localMatrix.multiplyMatrices(camera.projectionMatrix, camera.matrixWorldInverse);
+ localFrustum.setFromProjectionMatrix(projScreenMatrix);
+ }
+ const testBoundingFn = (() => {
+ if (this.boundingType === 'sphere') {
+ return (i) => {
+ localSphere.center.fromArray(this.boundingData, i * 4);
+ localSphere.radius = this.boundingData[i * 4 + 3];
+ return localFrustum.intersectsSphere(localSphere);
+ };
+ } else if (this.boundingType === 'box') {
+ return (i) => {
+ localBox.min.fromArray(this.boundingData, i * 6);
+ localBox.max.fromArray(this.boundingData, i * 6 + 3);
+ return localFrustum.intersectsBox(localBox);
+ };
+ } else {
+ return (i) => true;
+ }
+ })();
+ const swapBoundingDataFn = () => {
+ if (this.boundingType === 'sphere') {
+ return _swapBoundingDataSphere;
+ } else if (this.boundingType === 'box') {
+ return _swapBoundingDataBox;
+ } else {
+ throw new Error('Invalid bounding type: ' + this.boundingType);
+ }
+ };
+
+ for (let i = 0; i < this.drawStarts.length; i++) {
+ if (testBoundingFn(i)) {
+ multiDrawStarts[i] = this.drawStarts[i];
+ multiDrawCounts[i] = this.drawCounts[i];
+
+ if (this.instanceBoundingType) {
+ const startOffset = i * this.maxInstancesPerDrawCall;
+
+ const testInstanceBoundingFn = (() => {
+ if (this.boundingType === 'sphere') {
+ return (j) => {
+ const sphereIndex = startOffset + j;
+ localSphere.center.fromArray(this.instanceBoundingData, sphereIndex * 4);
+ localSphere.radius = this.instanceBoundingData[sphereIndex * 4 + 3];
+ return localFrustum.intersectsSphere(localSphere);
+ };
+ } else if (this.boundingType === 'box') {
+ return (j) => {
+ const boxIndex = startOffset + j;
+ localBox.min.fromArray(this.boundingData, boxIndex * 6);
+ localBox.max.fromArray(this.boundingData, boxIndex * 6 + 3);
+ return localFrustum.intersectsBox(localBox);
+ };
+ } else {
+ throw new Error('Invalid bounding type: ' + this.boundingType);
+ }
+ })();
+
+ // arrange the instanced draw list :
+ // - apply per-instanse frustum culling
+ // - swapping the bounding data into place
+ // - accumulate the real instance draw count
+ const maxDrawableInstances = this.drawInstanceCounts[i];
+ let instancesToDraw = 0;
+ for (let j = 0; j < maxDrawableInstances; j++) {
+ if (testInstanceBoundingFn(j)) {
+ instancesToDraw++;
+ } else {
+ // swap this instance with the last instance to remove it
+ for (const texture of this.texturesArray) {
+ _swapTextureAttributes(texture, i, j, this.maxInstancesPerDrawCall);
+ }
+ swapBoundingDataFn(this.instanceBoundingData, i, j, this.maxInstancesPerDrawCall);
+ }
+ }
+
+ multiDrawInstanceCounts[i] = instancesToDraw;
+ } else {
+ multiDrawInstanceCounts[i] = this.drawInstanceCounts[i];
+ }
+ } else {
+ multiDrawStarts[i] = 0;
+ multiDrawCounts[i] = 0;
+ multiDrawInstanceCounts[i] = 0;
+ }
+ }
+ }
+}
+
+export class BatchedMesh extends THREE.Mesh {
+ constructor(geometry, material, allocator) {
+ super(geometry, material);
+
+ this.isBatchedMesh = true;
+ this.allocator = allocator;
+ }
+ getDrawSpec(camera, drawStarts, drawCounts) {
+ this.allocator.getDrawSpec(camera, drawStarts, drawCounts);
+ }
+}
+
+export class InstancedBatchedMesh extends THREE.InstancedMesh {
+ constructor(geometry, material, allocator) {
+ super(geometry, material);
+
+ this.isBatchedMesh = true;
+ this.allocator = allocator;
+ }
+ getDrawSpec(camera, multiDrawStarts, multiDrawCounts, multiDrawInstanceCounts) {
+ this.allocator.getDrawSpec(camera, multiDrawStarts, multiDrawCounts, multiDrawInstanceCounts);
+ }
+}
\ No newline at end of file
diff --git a/io-manager.js b/io-manager.js
index 2e43a468d4..d565dc3b00 100644
--- a/io-manager.js
+++ b/io-manager.js
@@ -5,10 +5,10 @@ the functionality is implemented in other managers.
*/
import * as THREE from 'three';
+import metaversefile from 'metaversefile';
import cameraManager from './camera-manager.js';
// import controlsManager from './controls-manager.js';
import game from './game.js';
-// import physicsManager from './physics-manager.js';
import {world} from './world.js';
import voiceInput from './voice-input/voice-input.js';
// import * as universe from './universe.js';
@@ -18,17 +18,19 @@ import {getRenderer, /*renderer2,*/ scene, camera, dolly, getContainerElement} f
import physicsManager from './physics-manager.js';
/* import {menuActions} from './mithril-ui/store/actions.js';
import {menuState} from './mithril-ui/store/state.js'; */
-import physx from './physx.js';
+// import physx from './physx.js';
// import {airFriction, flyFriction} from './constants.js';
import transformControls from './transform-controls.js';
-import metaversefile from 'metaversefile';
+import storyManager from './story.js';
+// import domRenderer from './dom-renderer.jsx';
+import raycastManager from './raycast-manager.js';
-const localVector = new THREE.Vector3();
+// const localVector = new THREE.Vector3();
// const localVector2 = new THREE.Vector3();
const localVector3 = new THREE.Vector3();
-const localVector2D = new THREE.Vector2();
-const localVector2D2 = new THREE.Vector2();
-const localQuaternion = new THREE.Quaternion();
+// const localVector2D = new THREE.Vector2();
+// const localVector2D2 = new THREE.Vector2();
+// const localQuaternion = new THREE.Quaternion();
const localQuaternion2 = new THREE.Quaternion();
const localEuler = new THREE.Euler();
const localMatrix2 = new THREE.Matrix4();
@@ -36,6 +38,12 @@ const localMatrix3 = new THREE.Matrix4();
const localRaycaster = new THREE.Raycaster();
const zeroVector = new THREE.Vector3();
+//
+
+const physicsScene = physicsManager.getScene();
+
+//
+
const ioManager = new EventTarget();
ioManager.lastAxes = [[0, 0, 0, 0], [0, 0, 0, 0]];
@@ -65,11 +73,12 @@ ioManager.keys = {
space: false,
ctrl: false,
};
-const lastWASDDownTime = {
+const lastKeysDownTime = {
keyW: 0,
keyA: 0,
keyS: 0,
- keyD: 0
+ keyD: 0,
+ keyE: 0,
};
const resetKeys = () => {
@@ -232,11 +241,10 @@ const _updateIo = timeDiff => {
if (ioManager.keys.ctrl && !ioManager.lastCtrlKey) {
game.toggleCrouch();
- // physicsManager.setCrouchState(!physicsManager.getCrouchState());
}
ioManager.lastCtrlKey = ioManager.keys.ctrl;
}
- if (keysDirection.length() > 0 && physicsManager.getPhysicsEnabled()) {
+ if (keysDirection.length() > 0 && physicsScene.getPhysicsEnabled() && movementEnabled) {
localPlayer.characterPhysics.applyWasd(
keysDirection.normalize()
.multiplyScalar(game.getSpeed() * timeDiff)
@@ -246,6 +254,12 @@ const _updateIo = timeDiff => {
};
ioManager.update = _updateIo;
+let movementEnabled = true;
+// ioManager.getMovmentEnabled = () => movementEnabled;
+ioManager.setMovementEnabled = newMovementEnabled => {
+ movementEnabled = newMovementEnabled;
+};
+
const _updateIoPost = () => {
ioManager.lastTeleport = ioManager.currentTeleport;
ioManager.lastMenuDown = ioManager.currentMenuDown;
@@ -277,6 +291,12 @@ ioManager.keydown = e => {
return;
}
+ if (e.keyCode === 18) { // alt
+ e.preventDefault();
+ e.stopPropagation();
+ return;
+ }
+
// HACK: these keybindings control developer avatar animation offset settings in avatars.js
/* if (e.which === 74) {
window.lol -= 0.01;
@@ -315,13 +335,13 @@ ioManager.keydown = e => {
}
const now = performance.now();
- const timeDiff = now - lastWASDDownTime.keyW;
+ const timeDiff = now - lastKeysDownTime.keyW;
if (timeDiff < doubleTapTime && ioManager.keys.shift) {
ioManager.keys.doubleTap = true;
game.menuDoubleTap();
}
- lastWASDDownTime.keyW = now;
- lastWASDDownTime.keyS = 0;
+ lastKeysDownTime.keyW = now;
+ lastKeysDownTime.keyS = 0;
break;
}
case 65: { // A
@@ -331,13 +351,13 @@ ioManager.keydown = e => {
}
const now = performance.now();
- const timeDiff = now - lastWASDDownTime.keyA;
+ const timeDiff = now - lastKeysDownTime.keyA;
if (timeDiff < doubleTapTime && ioManager.keys.shift) {
ioManager.keys.doubleTap = true;
game.menuDoubleTap();
}
- lastWASDDownTime.keyA = now;
- lastWASDDownTime.keyD = 0;
+ lastKeysDownTime.keyA = now;
+ lastKeysDownTime.keyD = 0;
break;
}
case 83: { // S
@@ -359,13 +379,13 @@ ioManager.keydown = e => {
}
const now = performance.now();
- const timeDiff = now - lastWASDDownTime.keyS;
+ const timeDiff = now - lastKeysDownTime.keyS;
if (timeDiff < doubleTapTime && ioManager.keys.shift) {
ioManager.keys.doubleTap = true;
game.menuDoubleTap();
}
- lastWASDDownTime.keyS = now;
- lastWASDDownTime.keyW = 0;
+ lastKeysDownTime.keyS = now;
+ lastKeysDownTime.keyW = 0;
}
break;
}
@@ -376,13 +396,13 @@ ioManager.keydown = e => {
}
const now = performance.now();
- const timeDiff = now - lastWASDDownTime.keyD;
+ const timeDiff = now - lastKeysDownTime.keyD;
if (timeDiff < doubleTapTime && ioManager.keys.shift) {
ioManager.keys.doubleTap = true;
game.menuDoubleTap();
}
- lastWASDDownTime.keyD = now;
- lastWASDDownTime.keyA = 0;
+ lastKeysDownTime.keyD = now;
+ lastKeysDownTime.keyA = 0;
break;
}
case 70: { // F
@@ -444,11 +464,12 @@ ioManager.keydown = e => {
document.getElementById('key-r').click(); // equip
break;
} */
- /* case 71: { // G
+ case 71: { // G
// game.menuDrop();
- game.menuGDown();
+ // game.menuGDown();
+ game.menuSwitchCharacter();
break;
- } */
+ }
case 86: { // V
// if (!_inputFocused()) {
e.preventDefault();
@@ -467,11 +488,22 @@ ioManager.keydown = e => {
}
case 69: { // E
// if (cameraManager.pointerLockElement) {
+
+ const now = performance.now();
+ const timeDiff = now - lastKeysDownTime.keyE;
+ if (timeDiff < doubleTapTime) {
+ game.menuMiddleToggle();
+ } else {
+ game.menuMiddleUp();
+
if (game.canRotate()) {
game.menuRotate(-1);
} else {
game.menuActivateDown();
}
+ }
+ lastKeysDownTime.keyE = now;
+
// }
break;
}
@@ -515,9 +547,7 @@ ioManager.keydown = e => {
// if (controlsManager.isPossessed()) {
if (!game.isJumping()) {
game.jump('jump');
- } /* else {
- physicsManager.setGlide(!physicsManager.getGlideState() && !game.isFlying());
- } */
+ }
// }
break;
}
@@ -526,12 +556,20 @@ ioManager.keydown = e => {
break;
} */
case 81: { // Q
- // game.setWeaponWheel(true);
- if (game.canToggleAxis()) {
- game.toggleAxis();
+ if (e.ctrlKey) {
+ if (cameraManager.pointerLockElement) {
+ cameraManager.exitPointerLock();
+ } else {
+ cameraManager.requestPointerLock();
+ }
} else {
- // clear conflicting aim with quick menu
- game.menuUnaim();
+ // game.setWeaponWheel(true);
+ if (game.canToggleAxis()) {
+ game.toggleAxis();
+ } else {
+ // clear conflicting aim with quick menu
+ game.menuUnaim();
+ }
}
break;
}
@@ -566,22 +604,28 @@ ioManager.keypress = e => {
// nothing
};
ioManager.wheel = e => {
- // window.addEventListener('wheel', e => {
- // console.log('target', e.target);
- if (physicsManager.getPhysicsEnabled()) {
+ if (storyManager.handleWheel(e)) {
+ // nothing
+ } else {
+ if (physicsScene.getPhysicsEnabled()) {
const renderer = getRenderer();
if (renderer && (e.target === renderer.domElement || e.target.id === 'app')) {
cameraManager.handleWheelEvent(e);
}
}
- /* }, {
- passive: false,
- }); */
+ }
};
ioManager.keyup = e => {
if (_inputFocused() || e.repeat) {
return;
}
+
+ if (e.keyCode === 18) { // alt
+ e.preventDefault();
+ e.stopPropagation();
+ return;
+ }
+
switch (e.which) {
/* case 81: { // Q
game.setWeaponWheel(false);
@@ -677,105 +721,19 @@ ioManager.keyup = e => {
}
}
};
-// let lastMouseDistance = 0;
-const _updateMouseMovement = e => {
- const {movementX, movementY} = e;
-
- // const mouseDistance = Math.sqrt(movementX*movementX, movementY*movementY);
- // if ((mouseDistance - lastMouseDistance) < 100) { // hack around a Chrome bug
- camera.position.add(localVector.copy(cameraManager.getCameraOffset()).applyQuaternion(camera.quaternion));
-
- camera.rotation.y -= movementX * Math.PI * 2 * 0.0005;
- camera.rotation.x -= movementY * Math.PI * 2 * 0.0005;
- camera.rotation.x = Math.min(Math.max(camera.rotation.x, -Math.PI * 0.35), Math.PI / 2);
- camera.quaternion.setFromEuler(camera.rotation);
-
- camera.position.sub(localVector.copy(cameraManager.getCameraOffset()).applyQuaternion(camera.quaternion));
-
- camera.updateMatrixWorld();
- // }
- // lastMouseDistance = mouseDistance;
-};
-const _getMouseRaycaster = (e, raycaster) => {
- const {clientX, clientY} = e;
- const renderer = getRenderer();
- if (renderer) {
- renderer.getSize(localVector2D2);
- localVector2D.set(
- (clientX / localVector2D2.x) * 2 - 1,
- -(clientY / localVector2D2.y) * 2 + 1
- );
- if (
- localVector2D.x >= -1 && localVector2D.x <= 1 &&
- localVector2D.y >= -1 && localVector2D.y <= 1
- ) {
- raycaster.setFromCamera(localVector2D, camera);
- return raycaster;
- } else {
- return null;
- }
- } else {
- return null;
- }
-};
-const _updateMouseHover = e => {
- let mouseHoverObject = null;
- let mouseSelectedObject = null;
- let mouseHoverPhysicsId = 0;
- let htmlHover = false;
-
- const raycaster = _getMouseRaycaster(e, localRaycaster);
- let point = null;
- if (raycaster) {
- transformControls.handleMouseMove(raycaster);
-
- const position = raycaster.ray.origin;
- const quaternion = localQuaternion.setFromUnitVectors(
- localVector.set(0, 0, -1),
- raycaster.ray.direction
- );
-
- const result = physx.physxWorker.raycastPhysics(physx.physics, position, quaternion);
-
- if (result) {
- const object = world.appManager.getAppByPhysicsId(result.objectId);
- if (object) {
- point = localVector.fromArray(result.point);
-
- if (object.isHtml) {
- htmlHover = true;
- } else {
- if (game.hoverEnabled) {
- mouseHoverObject = object;
- mouseHoverPhysicsId = result.objectId;
- }
- }
- }
- }
- }
- game.setMouseHoverObject(mouseHoverObject, mouseHoverPhysicsId, point);
- const renderer = getRenderer();
- if (htmlHover) {
- renderer.domElement.classList.add('hover');
- } else {
- renderer.domElement.classList.remove('hover');
- }
-};
ioManager.mousemove = e => {
/* if (game.weaponWheel) {
game.updateWeaponWheel(e);
} else { */
if (cameraManager.pointerLockElement) {
- _updateMouseMovement(e);
+ cameraManager.handleMouseMove(e);
} else {
if (game.dragging) {
game.menuDrag(e);
game.menuDragRight(e);
- } else {
- _updateMouseHover(e);
}
}
- game.setLastMouseEvent(e);
+ raycastManager.setLastMouseEvent(e);
// }
};
ioManager.mouseleave = e => {
@@ -784,7 +742,7 @@ ioManager.mouseleave = e => {
};
ioManager.click = e => {
if (cameraManager.pointerLockElement) {
- game.menuClick();
+ game.menuClick(e);
} else {
// game.setContextMenu(false);
@@ -807,7 +765,7 @@ ioManager.click = e => {
}
} */
}
- game.setLastMouseEvent(e);
+ raycastManager.setLastMouseEvent(e);
};
// let mouseDown = false;
let lastMouseButtons = 0;
@@ -822,7 +780,7 @@ ioManager.mousedown = e => {
}
} else {
if ((changedButtons & 1) && (e.buttons & 1)) { // left
- const raycaster = _getMouseRaycaster(e, localRaycaster);
+ const raycaster = raycastManager.getMouseRaycaster(e);
if (raycaster) {
transformControls.handleMouseDown(raycaster);
}
@@ -837,11 +795,11 @@ ioManager.mousedown = e => {
if (!cameraManager.pointerLockElement) {
cameraManager.requestPointerLock();
}
- game.menuDragdown();
+ game.menuMiddleDown();
}
lastMouseButtons = e.buttons;
// mouseDown = true;
- game.setLastMouseEvent(e);
+ raycastManager.setLastMouseEvent(e);
};
ioManager.mouseup = e => {
const changedButtons = lastMouseButtons ^ e.buttons;
@@ -859,12 +817,12 @@ ioManager.mouseup = e => {
}
}
if ((changedButtons & 4) && !(e.buttons & 4)) { // middle
- game.menuDragup();
+ game.menuMiddleUp();
}
// mouseDown = false;
// }
lastMouseButtons = e.buttons;
- game.setLastMouseEvent(e);
+ raycastManager.setLastMouseEvent(e);
};
ioManager.paste = e => {
if (!window.document.activeElement) {
@@ -896,7 +854,7 @@ ioManager.bindInput = () => {
}); */
/* window.addEventListener('wheel', e => {
// console.log('target', e.target);
- if (physicsManager.getPhysicsEnabled()) {
+ if (physicsScene.getPhysicsEnabled()) {
const renderer = getRenderer();
if (renderer && (e.target === renderer.domElement || e.target.id === 'app')) {
cameraManager.handleWheelEvent(e);
diff --git a/land-iconer.js b/land-iconer.js
new file mode 100644
index 0000000000..484e2a251d
--- /dev/null
+++ b/land-iconer.js
@@ -0,0 +1,86 @@
+import offscreenEngineManager from './offscreen-engine-manager.js';
+
+const useLandScreenshotter = (() => {
+ let getLandImage = null;
+ return () => {
+ if (!getLandImage) {
+ getLandImage = offscreenEngineManager.createFunction([
+ `\
+ import * as THREE from 'three';
+ import metaversefile from './metaversefile-api.js';
+ import {screenshotLandApp} from './land-screenshotter.js';
+ import physx from './physx.js';
+ `,
+ async function(seed, renderPosition, lods, minLodRange, clipRange, width, height) {
+ await physx.waitForLoad();
+
+ const start_url = '/metaverse_modules/land/';
+ const components = [
+ {
+ key: 'seed',
+ value: seed,
+ },
+ {
+ key: 'renderPosition',
+ value: renderPosition,
+ },
+ {
+ key: 'lods',
+ value: lods,
+ },
+ {
+ key: 'minLodRange',
+ value: minLodRange,
+ },
+ {
+ key: 'clipRange',
+ value: clipRange,
+ },
+ {
+ key: 'physicsInstance',
+ value: false,
+ },
+ {
+ key: 'wait',
+ value: true,
+ },
+ ];
+ const app = await metaversefile.createAppAsync({
+ start_url,
+ components,
+ });
+ const range = new THREE.Box3(
+ new THREE.Vector3().fromArray(clipRange[0]),
+ new THREE.Vector3().fromArray(clipRange[1]),
+ );
+ const landCanvas = await screenshotLandApp({
+ app,
+ range,
+ width,
+ height,
+ });
+ const imageBitmap = await createImageBitmap(landCanvas);
+
+ app.destroy();
+
+ return imageBitmap;
+ }
+ ]);
+ }
+ return getLandImage;
+ };
+})();
+
+export const createLandIcon = async ({
+ seed,
+ renderPosition,
+ lods,
+ minLodRange,
+ clipRange,
+ width,
+ height,
+} = {}) => {
+ const getLandImage = useLandScreenshotter();
+ const imageBitmap = await getLandImage([seed, renderPosition, lods, minLodRange, clipRange, width, height]);
+ return imageBitmap;
+};
\ No newline at end of file
diff --git a/land-screenshotter.js b/land-screenshotter.js
new file mode 100644
index 0000000000..c99fe42c2b
--- /dev/null
+++ b/land-screenshotter.js
@@ -0,0 +1,122 @@
+import * as THREE from 'three';
+import {getRenderer} from './renderer.js';
+
+//
+
+const fov = 30;
+const zoomFactor = 2.5;
+
+//
+
+const localVector = new THREE.Vector3();
+const localVector2 = new THREE.Vector3();
+const localVector3 = new THREE.Vector3();
+const localVector2D = new THREE.Vector2();
+const localVector4D = new THREE.Vector4();
+const localColor = new THREE.Color();
+
+//
+
+const _addPreviewLights = scene => {
+ const ambientLight = new THREE.AmbientLight(0xffffff, 3);
+ scene.add(ambientLight);
+
+ const directionalLight = new THREE.DirectionalLight(0xffffff, 3);
+ directionalLight.position.set(1, 2, 3);
+ directionalLight.updateMatrixWorld();
+ scene.add(directionalLight);
+};
+
+const sideScene = new THREE.Scene();
+sideScene.autoUpdate = false;
+_addPreviewLights(sideScene);
+const sideCamera = new THREE.PerspectiveCamera(fov);
+
+export const screenshotLandApp = async ({
+ app,
+ range,
+ width = 300,
+ height = 300,
+ clearColor = 0xFFFFFF,
+ clearAlpha = 0,
+} = {}) => {
+ const renderer = getRenderer();
+ const size = renderer.getSize(localVector2D);
+ const pixelRatio = renderer.getPixelRatio();
+
+ const writeCanvas = document.createElement('canvas');
+ writeCanvas.width = width;
+ writeCanvas.height = height;
+ const writeCtx = writeCanvas.getContext('2d');
+
+ {
+ // push old state
+ const oldViewport = renderer.getViewport(localVector4D);
+ const oldClearColor = renderer.getClearColor(localColor);
+ const oldClearAlpha = renderer.getClearAlpha();
+
+ // push parent
+ const originalParent = app.parent;
+ sideScene.add(app);
+ sideScene.updateMatrixWorld();
+
+ // clear
+ renderer.setClearColor(clearColor, clearAlpha);
+ renderer.clear();
+
+ // render
+ const _render = () => {
+ const rangeSize = range.getSize(localVector);
+ const lookPoint = localVector2.copy(range.min)
+ .add(range.max)
+ .divideScalar(2);
+ const xzSize = Math.max(rangeSize.x, rangeSize.z);
+ lookPoint.y = xzSize;
+ // rangeSize.y = 0;
+ sideCamera.position.copy(lookPoint)
+ .add(
+ localVector3.set(zoomFactor * rangeSize.x, 0, zoomFactor * rangeSize.z)
+ );
+ // lookPoint.y = xzSize;
+ sideCamera.lookAt(lookPoint);
+ // sideCamera.position.y -= xzSize / 4;
+ sideCamera.position.y = xzSize * 3 / 4;
+ // fitCameraToBoundingBox(sideCamera, range, 1.2);
+ sideCamera.updateMatrixWorld();
+
+ // render side scene
+ renderer.setViewport(0, 0, width, height);
+ // renderer.clear();
+ renderer.render(sideScene, sideCamera);
+
+ // copy to canvas
+ writeCtx.clearRect(0, 0, width, height);
+ writeCtx.drawImage(
+ renderer.domElement,
+ 0,
+ size.y * pixelRatio - height * pixelRatio,
+ width * pixelRatio,
+ height * pixelRatio,
+ 0,
+ 0,
+ width,
+ height
+ );
+ // writeCtx.drawImage(renderer.domElement, 0, 0);
+ };
+ _render();
+
+ // pop parent
+ if (originalParent) {
+ originalParent.add(app);
+ } else {
+ sideScene.remove(app);
+ }
+
+ // pop old state
+ renderer.setViewport(oldViewport);
+ renderer.setClearColor(oldClearColor, oldClearAlpha);
+ }
+
+ return writeCanvas;
+};
\ No newline at end of file
diff --git a/light-mapper.js b/light-mapper.js
new file mode 100644
index 0000000000..0b8b71d6bb
--- /dev/null
+++ b/light-mapper.js
@@ -0,0 +1,343 @@
+import * as THREE from 'three';
+import {getRenderer, scene} from './renderer.js';
+import {WebaverseShaderMaterial} from './materials.js';
+
+const localVector = new THREE.Vector3();
+const localVector2 = new THREE.Vector3();
+const localVector3 = new THREE.Vector3();
+const localVector4 = new THREE.Vector3();
+const localBox = new THREE.Box3();
+
+const zeroVector = new THREE.Vector3();
+
+//
+
+const _writeTex3d = (() => {
+ const localVector = new THREE.Vector3();
+ const localBox = new THREE.Box3();
+ return (dstTex, dstSize, dstPosition, srcArray, sourceBox) => {
+ const renderer = getRenderer();
+
+ _copyArray3d(dstTex.image.data, dstSize, dstPosition, srcArray, sourceBox);
+
+ const w = sourceBox.max.x - sourceBox.min.x + 1;
+ const h = sourceBox.max.y - sourceBox.min.y + 1;
+ const d = sourceBox.max.z - sourceBox.min.z + 1;
+
+ const destinationBox = localBox.set(
+ dstPosition,
+ localVector.set(dstPosition.x + w - 1, dstPosition.y + h - 1, dstPosition.z + d - 1),
+ );
+
+ const level = 0;
+
+ renderer.copyTextureToTexture3D(destinationBox, dstPosition, dstTex, dstTex, level);
+ };
+})();
+const _writeTex3dWithin = (() => {
+ const localVector = new THREE.Vector3();
+ const localBox = new THREE.Box3();
+ return (dstTex, dstSize, dstPosition, sourceBox) => {
+ const renderer = getRenderer();
+
+ _copyArray3dWithin(dstTex.image.data, dstSize, dstPosition, sourceBox);
+
+ const w = sourceBox.max.x - sourceBox.min.x + 1;
+ const h = sourceBox.max.y - sourceBox.min.y + 1;
+ const d = sourceBox.max.z - sourceBox.min.z + 1;
+
+ const destinationBox = localBox.set(
+ dstPosition,
+ localVector.set(dstPosition.x + w - 1, dstPosition.y + h - 1, dstPosition.z + d - 1),
+ );
+
+ const level = 0;
+
+ renderer.copyTextureToTexture3D(destinationBox, dstPosition, dstTex, dstTex, level);
+ };
+})();
+
+//
+
+const _copyArray3d = (dstArray, dstSize, dstPosition, srcArray, sourceBox) => {
+ const sw = sourceBox.max.x - sourceBox.min.x + 1;
+ const sh = sourceBox.max.y - sourceBox.min.y + 1;
+ const sd = sourceBox.max.z - sourceBox.min.z + 1;
+
+ for (let z = 0; z < sd; z++) {
+ const sz = z + sourceBox.min.z;
+ const dz = dstPosition.z + z;
+ for (let y = 0; y < sh; y++) {
+ const sy = y + sourceBox.min.y;
+ const dy = dstPosition.y + y;
+ let srcIndex = sourceBox.min.x + sy * sw + sz * sw * sh;
+ let dstIndex = dstPosition.x + dy * dstSize.x + dz * dstSize.x * dstSize.y;
+ for (let x = 0; x < sw; x++) {
+ dstArray[dstIndex++] = srcArray[srcIndex++];
+ }
+ }
+ }
+};
+const _copyArray3dWithin = (array, dstSize, dstPosition, sourceBox) => {
+ // note that we need to pay attention to the copy direction
+ // if the src < dst, we need to copy backwards
+ const sw = sourceBox.max.x - sourceBox.min.x + 1;
+ const sh = sourceBox.max.y - sourceBox.min.y + 1;
+ const sd = sourceBox.max.z - sourceBox.min.z + 1;
+
+ const flipX = sourceBox.min.x < dstPosition.x;
+ const flipY = sourceBox.min.y < dstPosition.y;
+ const flipZ = sourceBox.min.z < dstPosition.z;
+
+ const startX = flipX ? sw - 1 : 0;
+ const startY = flipY ? sh - 1 : 0;
+ const startZ = flipZ ? sd - 1 : 0;
+
+ // const endX = flipX ? -1 : sw;
+ const endY = flipY ? -1 : sh;
+ const endZ = flipZ ? -1 : sd;
+
+ const deltaX = flipX ? -1 : 1;
+ const deltaY = flipY ? -1 : 1;
+ const deltaZ = flipZ ? -1 : 1;
+
+ for (let z = startZ; z !== endZ; z += deltaZ) {
+ const sz = z + sourceBox.min.z;
+ const dz = dstPosition.z + z;
+ for (let y = startY; y !== endY; y += deltaY) {
+ const sy = y + sourceBox.min.y;
+ const dy = dstPosition.y + y;
+ let srcIndex = startX + sourceBox.min.x + sy * dstSize.x + sz * dstSize.x * dstSize.y;
+ let dstIndex = startX + dstPosition.x + dy * dstSize.x + dz * dstSize.x * dstSize.y;
+ for (let x = 0; x < sw; x++) {
+ array[dstIndex] = array[srcIndex];
+ dstIndex += deltaX;
+ srcIndex += deltaX;
+ }
+ }
+ }
+};
+
+//
+
+export class LightMapper extends EventTarget {
+ constructor({
+ chunkSize,
+ terrainSize,
+ range,
+ debug,
+ }) {
+ super();
+
+ this.chunkSize = chunkSize;
+ this.terrainSize = terrainSize;
+ this.range = range;
+ // this.debug = debug;
+
+ const skylightData = new Uint8Array(terrainSize * terrainSize * terrainSize);
+ const skylightTex = new THREE.DataTexture3D(skylightData, terrainSize, terrainSize, terrainSize);
+ skylightTex.format = THREE.RedFormat;
+ skylightTex.type = THREE.UnsignedByteType;
+ skylightTex.minFilter = THREE.LinearFilter;
+ skylightTex.magFilter = THREE.LinearFilter;
+ // skylightTex.minFilter = THREE.NearestFilter;
+ // skylightTex.magFilter = THREE.NearestFilter;
+ skylightTex.flipY = false;
+ skylightTex.needsUpdate = true;
+ skylightTex.generateMipmaps = false;
+ this.skylightTex = skylightTex;
+
+ const aoData = new Uint8Array(terrainSize * terrainSize * terrainSize);
+ const aoTex = new THREE.DataTexture3D(aoData, terrainSize, terrainSize, terrainSize);
+ aoTex.format = THREE.RedFormat;
+ aoTex.type = THREE.UnsignedByteType;
+ aoTex.minFilter = THREE.LinearFilter;
+ aoTex.magFilter = THREE.LinearFilter;
+ // aoTex.minFilter = THREE.NearestFilter;
+ // aoTex.magFilter = THREE.NearestFilter;
+ aoTex.flipY = false;
+ aoTex.needsUpdate = true;
+ aoTex.generateMipmaps = false;
+ this.aoTex = aoTex;
+
+ this.lightBasePosition = new THREE.Vector3(
+ -terrainSize / 2,
+ 0,
+ -terrainSize / 2
+ );
+ this.lightTexSize = new THREE.Vector3(terrainSize, terrainSize, terrainSize);
+
+ if (debug) {
+ const maxInstances = terrainSize * terrainSize * terrainSize;
+ const instancedCubeGeometry = new THREE.InstancedBufferGeometry();
+ {
+ const cubeGeometry = new THREE.BoxBufferGeometry(0.8, 0.8, 0.8);
+ for (const k in cubeGeometry.attributes) {
+ instancedCubeGeometry.setAttribute(k, cubeGeometry.attributes[k]);
+ }
+ instancedCubeGeometry.setIndex(cubeGeometry.index);
+ }
+ const debugMaterial = new WebaverseShaderMaterial({
+ uniforms: {
+ uSkylightTex: {
+ value: this.skylightTex,
+ needsUpdate: true,
+ },
+ uAoTex: {
+ value: this.aoTex,
+ needsUpdate: true,
+ },
+ },
+ vertexShader: `\
+ varying vec3 vNormal;
+ varying vec3 vUv;
+
+ const float terrainSize = ${terrainSize.toFixed(8)};
+
+ void main() {
+ float instance = float(gl_InstanceID);
+ float x = mod(instance, terrainSize);
+ instance = (instance - x) / terrainSize;
+ float y = mod(instance, terrainSize);
+ instance = (instance - y) / terrainSize;
+ float z = instance;
+
+ vec3 offset = vec3(x, y, z);
+ vUv = offset / terrainSize;
+
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(position + offset, 1.0);
+
+ vNormal = normalMatrix * normal;
+ }
+ `,
+ fragmentShader: `\
+ precision highp sampler3D;
+
+ uniform sampler3D uSkylightTex;
+ uniform sampler3D uAoTex;
+
+ varying vec3 vNormal;
+ varying vec3 vUv;
+
+ const float terrainSize = ${terrainSize.toFixed(8)};
+
+ void main() {
+ float skylight = texture(uSkylightTex, vUv).r;
+ float ao = texture(uAoTex, vUv).r;
+
+ float c = 1. - (skylight * 255. / 8.);
+
+ if (c > 0.0) {
+ gl_FragColor = vec4(vNormal, c);
+ } else {
+ discard;
+ }
+ }
+ `,
+ // color: 0xFFFFFF,
+ transparent: true,
+ // opacity: 0.1,
+ });
+ const debugMesh = new THREE.InstancedMesh(instancedCubeGeometry, debugMaterial, maxInstances);
+ const heightOffset = -60;
+ // debugMesh.position.y += heightOffset;
+ // debugMesh.updateMatrixWorld();
+ // debugMesh.count = 0;
+ debugMesh.frustumCulled = false;
+ scene.add(debugMesh);
+
+ this.addEventListener('coordupdate', e => {
+ const {coord} = e.data;
+ // console.log('coord update', coord.toArray().join(','));
+ debugMesh.position.copy(coord)
+ // .multiplyScalar(terrainSize);
+ debugMesh.position.y += heightOffset;
+ debugMesh.updateMatrixWorld();
+ });
+ }
+ }
+ drawChunk(chunk, {
+ skylights,
+ aos,
+ }) {
+ const position = localVector.copy(chunk)
+ .multiplyScalar(this.chunkSize)
+ .sub(this.lightBasePosition);
+ if (
+ position.x >= 0 && position.x < this.terrainSize &&
+ position.y >= 0 && position.y < this.terrainSize &&
+ position.z >= 0 && position.z < this.terrainSize
+ ) {
+ const sourceBox = localBox.set(
+ localVector2.set(0, 0, 0),
+ localVector3.set(this.chunkSize - 1, this.chunkSize - 1, this.chunkSize - 1)
+ );
+
+ _writeTex3d(this.skylightTex, this.lightTexSize, position, skylights, sourceBox);
+ _writeTex3d(this.aoTex, this.lightTexSize, position, aos, sourceBox);
+ } else {
+ // chunk out of lighting range
+ }
+
+ this.dispatchEvent(new MessageEvent('chunkupdate', {
+ data: {
+ chunk,
+ // skylights,
+ // ao,
+ },
+ }));
+ }
+ updateCoord(min1xCoord) {
+ const lastPosition = this.lightBasePosition;
+ const newPosition = localVector.copy(min1xCoord)
+ .multiplyScalar(this.chunkSize);
+ const deltaNegative = localVector2.copy(lastPosition)
+ .sub(newPosition);
+
+ if (!deltaNegative.equals(zeroVector)) {
+ const position = deltaNegative;
+ const sourceBox = localBox.set(
+ localVector3.set(0, 0, 0),
+ localVector4.set(this.terrainSize - 1, this.terrainSize - 1, this.terrainSize - 1)
+ );
+
+ // clip to texture bounds
+ if (position.x < 0) {
+ const deltaX = -position.x;
+ sourceBox.min.x += deltaX;
+ position.x += deltaX;
+ } else if (position.x > 0) {
+ sourceBox.max.x -= position.x;
+ }
+ if (position.y < 0) {
+ const deltaY = -position.y;
+ sourceBox.min.y += deltaY;
+ position.y += deltaY;
+ } else if (position.y > 0) {
+ sourceBox.max.y -= position.y;
+ }
+ if (position.z < 0) {
+ const deltaZ = -position.z;
+ sourceBox.min.z += deltaZ;
+ position.z += deltaZ;
+ } else if (position.z > 0) {
+ sourceBox.max.z -= position.z;
+ }
+
+ _writeTex3dWithin(this.skylightTex, this.lightTexSize, position, sourceBox);
+ _writeTex3dWithin(this.aoTex, this.lightTexSize, position, sourceBox);
+
+ this.lightBasePosition.copy(newPosition);
+
+ this.dispatchEvent(new MessageEvent('coordupdate', {
+ data: {
+ coord: newPosition,
+ },
+ }));
+
+ // return true;
+ } /* else {
+ return false;
+ } */
+ }
+}
\ No newline at end of file
diff --git a/loadout-manager.js b/loadout-manager.js
index b63db31762..ddf7edeac0 100644
--- a/loadout-manager.js
+++ b/loadout-manager.js
@@ -1,4 +1,4 @@
-import {localPlayer} from './players.js';
+import {getLocalPlayer} from './players.js';
import {LoadoutRenderer} from './loadout-renderer.js';
import {InfoboxRenderer} from './infobox.js';
import {createObjectSprite} from './object-spriter.js';
@@ -25,6 +25,7 @@ class LoadoutManager extends EventTarget {
this.infoboxRenderer = null;
this.selectedIndex = -1;
+ const localPlayer = getLocalPlayer();
localPlayer.addEventListener('wearupdate', e => {
const {app, wear, loadoutIndex} = e;
diff --git a/lock-manager.js b/lock-manager.js
new file mode 100644
index 0000000000..30dd118763
--- /dev/null
+++ b/lock-manager.js
@@ -0,0 +1,80 @@
+import {makePromise} from './util.js';
+
+export const abortError = new Error('aborted');
+abortError.isAbortError = true;
+
+const unlockedEvent = new MessageEvent('unlocked');
+
+export class Lock extends EventTarget {
+ constructor() {
+ super();
+
+ this.running = false;
+ this.queue = [];
+ }
+ async lock({signal} = {}) {
+ if (this.running) {
+ const p = makePromise();
+ this.queue.push(p);
+
+ const abort = () => {
+ p.reject(abortError);
+ };
+ signal && signal.addEventListener('abort', abort);
+
+ try {
+ await p;
+ } finally {
+ signal && signal.removeEventListener('abort', abort);
+ }
+ } else {
+ this.running = true;
+ }
+ }
+ unlock() {
+ this.running = false;
+ const entry = this.queue.shift();
+ if (entry) {
+ entry.accept();
+ } else {
+ this.dispatchEvent(unlockedEvent);
+ }
+ }
+}
+
+export class LockManager {
+ constructor() {
+ this.locks = new Map();
+ }
+ async request(key, {signal} = {}, fn) {
+ let lock = this.locks.get(key);
+ if (!lock) {
+ lock = new Lock();
+ this.locks.set(key, lock);
+ lock.addEventListener('unlocked', () => {
+ this.locks.delete(key);
+ });
+ }
+ await lock.lock({
+ signal,
+ });
+
+ let result, error;
+ try {
+ result = fn !== undefined ? (await fn(lock)) : fn;
+ } catch (err) {
+ error = err;
+ } finally {
+ await Promise.resolve(); // return before unlocking
+ lock.unlock();
+ }
+
+ if (!error) {
+ return result;
+ } else {
+ throw error;
+ }
+ }
+}
+// const locks = new LockManager();
+// export default locks;
\ No newline at end of file
diff --git a/lod.js b/lod.js
new file mode 100644
index 0000000000..d96fb1024c
--- /dev/null
+++ b/lod.js
@@ -0,0 +1,661 @@
+import * as THREE from 'three';
+import {scene, camera} from './renderer.js';
+import {defaultChunkSize} from './constants.js';
+import {abortError} from './lock-manager.js';
+import {makePromise} from './util.js';
+
+const localVector = new THREE.Vector3();
+const localVector2 = new THREE.Vector3();
+const localVector3 = new THREE.Vector3();
+// const localVector4 = new THREE.Vector3();
+// const localVector5 = new THREE.Vector3();
+// const localQuaternion = new THREE.Quaternion();
+// const localMatrix = new THREE.Matrix4();
+
+// const onesLodsArray = new Array(8).fill(1);
+
+const nop = () => {};
+
+class OctreeNode extends EventTarget {
+ constructor(min, lod, isLeaf) {
+ super();
+
+ this.min = min;
+ this.lod = lod;
+ this.isLeaf = isLeaf;
+ this.lodArray = Array(8).fill(-1);
+
+ this.children = Array(8).fill(null);
+ }
+ containsPoint(p) {
+ return p.x >= this.min.x && p.x < this.min.x + this.lod &&
+ p.y >= this.min.y && p.y < this.min.y + this.lod &&
+ p.z >= this.min.z && p.z < this.min.z + this.lod;
+ }
+ containsNode(node) {
+ return this.containsPoint(node.min);
+ }
+ equalsNode(p) {
+ return p.min.x === this.min.x && p.min.y === this.min.y && p.min.z === this.min.z &&
+ p.lodArray.every((lod, i) => lod === this.lodArray[i]);
+ }
+ intersectsNode(p) {
+ return this.containsNode(p) || p.containsNode(this);
+ }
+ destroy() {
+ this.dispatchEvent(new MessageEvent('destroy'));
+ }
+}
+/* const tempUint32Array = new Uint32Array(1);
+const _toUint32 = value => {
+ tempUint32Array[0] = value;
+ return tempUint32Array[0];
+} */
+const _octreeNodeMinHash = (min, lod) => `${min.x},${min.y},${min.z}:${lod}`;
+const _getLeafNodeFromPoint = (leafNodes, p) => leafNodes.find(node => node.containsPoint(p));
+const constructOctreeForLeaf = (position, lod1Range, maxLod) => {
+ const nodeMap = new Map();
+
+ const _getNode = (min, lod) => {
+ const hash = _octreeNodeMinHash(min, lod);
+ return nodeMap.get(hash);
+ };
+ const _createNode = (min, lod, isLeaf = lod === 1) => {
+ const node = new OctreeNode(min, lod, isLeaf);
+ const hash = _octreeNodeMinHash(min, lod);
+ if (nodeMap.has(hash)) {
+ throw new Error(`Node already exists: ${hash}`);
+ }
+ nodeMap.set(hash, node);
+ return node;
+ };
+ const _getOrCreateNode = (min, lod) => _getNode(min, lod) ?? _createNode(min, lod);
+ const _ensureChildren = parentNode => {
+ const lodMin = parentNode.min;
+ const lod = parentNode.lod;
+ for (let dx = 0; dx < 2; dx++) {
+ for (let dy = 0; dy < 2; dy++) {
+ for (let dz = 0; dz < 2; dz++) {
+ const childIndex = dx + 2 * (dy + 2 * dz);
+ if (parentNode.children[childIndex] === null) {
+ parentNode.children[childIndex] = _createNode(
+ lodMin.clone().add(
+ new THREE.Vector3(dx, dy, dz).multiplyScalar(lod / 2)
+ ),
+ lod / 2,
+ true
+ );
+ parentNode.children[childIndex].parent = parentNode;
+ }
+ }
+ }
+ }
+ };
+ const _constructTreeUpwards = leafPosition => {
+ let rootNode = _getOrCreateNode(leafPosition, 1);
+ for (let lod = 2; lod <= maxLod; lod *= 2) {
+ const lodMin = rootNode.min.clone();
+ lodMin.x = Math.floor(lodMin.x / lod) * lod;
+ lodMin.y = Math.floor(lodMin.y / lod) * lod;
+ lodMin.z = Math.floor(lodMin.z / lod) * lod;
+
+ const lodCenter = lodMin.clone().addScalar(lod / 2);
+ const childIndex = (rootNode.min.x < lodCenter.x ? 0 : 1) +
+ (rootNode.min.y < lodCenter.y ? 0 : 2) +
+ (rootNode.min.z < lodCenter.z ? 0 : 4);
+
+ const parentNode = _getOrCreateNode(lodMin, lod);
+ parentNode.isLeaf = false;
+ if (parentNode.children[childIndex] === null) { // children not set yet
+ parentNode.children[childIndex] = rootNode;
+ _ensureChildren(parentNode);
+ }
+ rootNode = parentNode;
+ }
+ return rootNode;
+ };
+
+ // sample base leaf nodes to generate octree upwards
+ const rangeMin = position.clone()
+ .sub(new THREE.Vector3(lod1Range, lod1Range, lod1Range));
+ const rangeMax = position.clone()
+ .add(new THREE.Vector3(lod1Range, lod1Range, lod1Range));
+ for (let dx = rangeMin.x; dx <= rangeMax.x; dx++) {
+ for (let dy = rangeMin.y; dy <= rangeMax.y; dy++) {
+ for (let dz = rangeMin.z; dz <= rangeMax.z; dz++) {
+ const leafPosition = new THREE.Vector3(dx, dy, dz);
+ leafPosition.x = Math.floor(leafPosition.x);
+ leafPosition.y = Math.floor(leafPosition.y);
+ leafPosition.z = Math.floor(leafPosition.z);
+ _constructTreeUpwards(leafPosition);
+ }
+ }
+ }
+
+ /* // fill in missing children that are in the lod1Range
+ const _ensureChildrenDownToLod1 = node => {
+ const lodMin = node.min;
+ const lod = node.lod;
+ if (lod === 1) {
+ return;
+ }
+ node.isLeaf = false;
+ for (let dx = 0; dx < 2; dx++) {
+ for (let dy = 0; dy < 2; dy++) {
+ for (let dz = 0; dz < 2; dz++) {
+ const childIndex = dx + 2 * (dy + 2 * dz);
+ if (node.children[childIndex] === null) {
+ const childNode = _createNode(
+ lodMin.clone().add(
+ new THREE.Vector3(dx, dy, dz).multiplyScalar(lod / 2)
+ ),
+ lod / 2,
+ true
+ );
+ node.children[childIndex] = childNode;
+ _ensureChildrenDownToLod1(childNode);
+ }
+ }
+ }
+ }
+ };
+ for (let node of nodeMap.values()) {
+ if (
+ node.min.x >= rangeMin.x && node.min.x < rangeMax.x &&
+ node.min.y >= rangeMin.y && node.min.y < rangeMax.y &&
+ node.min.z >= rangeMin.z && node.min.z < rangeMax.z
+ ) {
+ _ensureChildrenDownToLod1(node);
+ }
+ } */
+
+ const rootNodes = [];
+ for (const node of nodeMap.values()) {
+ if (node.lod === maxLod) {
+ rootNodes.push(node);
+ }
+ }
+
+ const lod1Nodes = [];
+ for (const node of nodeMap.values()) {
+ if (node.lod === 1) {
+ lod1Nodes.push(node);
+ }
+ }
+
+ // sanity check lod1Nodes for duplicates
+ {
+ const lod1NodeMap = new Map();
+ for (const node of lod1Nodes) {
+ const hash = _octreeNodeMinHash(node.min, node.lod);
+ if (lod1NodeMap.has(hash)) {
+ throw new Error(`Duplicate lod1 node: ${hash}`);
+ }
+ lod1NodeMap.set(hash, node);
+ }
+ }
+
+ const leafNodes = [];
+ for (const node of nodeMap.values()) {
+ if (node.isLeaf) {
+ leafNodes.push(node);
+ }
+ }
+
+ // sanity check that no leaf node contains another leaf node
+ for (const leafNode of leafNodes) {
+ for (const childNode of leafNode.children) {
+ if (childNode?.isLeaf) {
+ throw new Error(`Leaf node contains another leaf node 1: ${leafNode.min.toArray().join(',')}`);
+ }
+ }
+ for (const leafNode2 of leafNodes) {
+ if (leafNode !== leafNode2 && leafNode.containsNode(leafNode2)) {
+ throw new Error(`Leaf node contains another leaf node 2: ${leafNode.min.toArray().join(',')}`);
+ }
+ }
+ }
+
+ // assign lodArray for each node based on the minimum lod of the target point in the world
+ // vm::ivec3(0, 0, 0),
+ // vm::ivec3(1, 0, 0),
+ // vm::ivec3(0, 0, 1),
+ // vm::ivec3(1, 0, 1),
+ // vm::ivec3(0, 1, 0),
+ // vm::ivec3(1, 1, 0),
+ // vm::ivec3(0, 1, 1),
+ // vm::ivec3(1, 1, 1),
+ for (const node of nodeMap.values()) {
+ node.lodArray = [
+ new THREE.Vector3(0, 0, 0),
+ new THREE.Vector3(1, 0, 0),
+ new THREE.Vector3(0, 0, 1),
+ new THREE.Vector3(1, 0, 1),
+ new THREE.Vector3(0, 1, 0),
+ new THREE.Vector3(1, 1, 0),
+ new THREE.Vector3(0, 1, 1),
+ new THREE.Vector3(1, 1, 1),
+ ].map(offset => {
+ const containingLeafNode = _getLeafNodeFromPoint(leafNodes, node.min.clone().add(offset.clone().multiplyScalar(node.lod)));
+ if (containingLeafNode) {
+ return containingLeafNode.lod;
+ } else {
+ return node.lod;
+ }
+ });
+ }
+
+ return leafNodes;
+ /* return {
+ rootNodes,
+ lod1Nodes,
+ leafNodes,
+ remapNodes(nodes) {
+ for (let i = 0; i < nodes.length; i++) {
+ const node = nodes[i];
+ const hash = _octreeNodeMinHash(node.min, node.lod);
+ const otherNode = nodeMap.get(hash);
+ if (otherNode) {
+ nodes[i] = otherNode;
+ }
+ }
+ },
+ getOutrangedNodes(nodes) {
+ const remainderNodes = [];
+ for (let i = 0; i < nodes.length; i++) {
+ const node = nodes[i];
+ const hash = _octreeNodeMinHash(node.min, node.lod);
+ const otherNode = nodeMap.get(hash);
+ if (!otherNode) {
+ remainderNodes.push(node);
+ }
+ }
+ return remainderNodes;
+ },
+ }; */
+};
+class Task extends EventTarget {
+ constructor(maxLodNode) {
+ super();
+
+ this.maxLodNode = maxLodNode;
+
+ this.newNodes = [];
+ this.oldNodes = [];
+
+ this.abortController = new AbortController();
+ this.signal = this.abortController.signal;
+ }
+ equals(t) {
+ return this.newNodes.length === this.oldNodes.length && this.newNodes.every(node => {
+ return t.newNodes.some(node2 => node.equalsNode(node2));
+ }) && this.oldNodes.every(node => {
+ return t.oldNodes.some(node2 => node.equalsNode(node2));
+ });
+ }
+ cancel() {
+ this.abortController.abort(abortError);
+ }
+ isNop() {
+ const task = this;
+ return task.newNodes.length === task.oldNodes.length && task.newNodes.every(newNode => {
+ return task.oldNodes.some(oldNode => oldNode.equalsNode(newNode));
+ });
+ }
+ commit() {
+ this.dispatchEvent(new MessageEvent('finish'));
+ }
+ waitForLoad() {
+ const p = makePromise();
+ this.addEventListener('finish', () => {
+ p.accept();
+ }, {
+ once: true,
+ });
+ return p;
+ }
+}
+const diffLeafNodes = (newLeafNodes, oldLeafNodes) => {
+ // map from min lod hash to task containing new nodes and old nodes
+ const taskMap = new Map();
+
+ const _getMaxLodNode = min => {
+ const newLeafNode = _getLeafNodeFromPoint(newLeafNodes, min);
+ const oldLeafNode = _getLeafNodeFromPoint(oldLeafNodes, min);
+ if (newLeafNode && oldLeafNode) {
+ return newLeafNode.lod > oldLeafNode.lod ? newLeafNode : oldLeafNode;
+ } else if (newLeafNode) {
+ return newLeafNode;
+ } else {
+ return oldLeafNode;
+ }
+ };
+ for (const newNode of newLeafNodes) {
+ const maxLodNode = _getMaxLodNode(newNode.min);
+ const hash = _octreeNodeMinHash(maxLodNode.min, maxLodNode.lod);
+ let task = taskMap.get(hash);
+ if (!task) {
+ task = new Task(maxLodNode);
+ taskMap.set(hash, task);
+ }
+ task.newNodes.push(newNode);
+ }
+ for (const oldNode of oldLeafNodes) {
+ const maxLodNode = _getMaxLodNode(oldNode.min);
+ const hash = _octreeNodeMinHash(maxLodNode.min, maxLodNode.lod);
+ let task = taskMap.get(hash);
+ if (!task) {
+ task = new Task(maxLodNode);
+ taskMap.set(hash, task);
+ }
+ task.oldNodes.push(oldNode);
+ }
+
+ let tasks = Array.from(taskMap.values());
+ return tasks;
+ /* const newTasks = [];
+ const keepTasks = [];
+ for (const task of tasks) {
+ const isNopTask = task.newNodes.length === task.oldNodes.length && task.newNodes.every(newNode => {
+ return task.oldNodes.some(oldNode => oldNode.equalsNode(newNode));
+ });
+ if (isNopTask) {
+ keepTasks.push(task);
+ } else {
+ newTasks.push(task);
+ }
+ }
+ return {
+ newTasks,
+ keepTasks,
+ }; */
+};
+// sort tasks by distance to world position of the central max lod node
+const sortTasks = (tasks, worldPosition) => {
+ const taskDistances = tasks.map(task => {
+ const distance = localVector2.copy(task.maxLodNode.min)
+ .add(localVector3.setScalar(task.maxLodNode.lod / 2))
+ .distanceToSquared(worldPosition);
+ return {
+ task,
+ distance,
+ };
+ });
+ taskDistances.sort((a, b) => {
+ return a.distance - b.distance;
+ });
+ return taskDistances.map(taskDistance => taskDistance.task);
+};
+const updateChunks = (oldChunks, tasks) => {
+ const newChunks = oldChunks.slice();
+
+ for (const task of tasks) {
+ if (!task.isNop()) {
+ let {newNodes, oldNodes} = task;
+ for (const oldNode of oldNodes) {
+ const index = newChunks.findIndex(chunk => chunk.equalsNode(oldNode));
+ if (index !== -1) {
+ newChunks.splice(index, 1);
+ } else {
+ debugger;
+ }
+ }
+ newChunks.push(...newNodes);
+ }
+ }
+
+ const removedChunks = [];
+ for (const oldChunk of oldChunks) {
+ if (!newChunks.some(newChunk => newChunk.min.equals(oldChunk.min))) {
+ removedChunks.push(oldChunk);
+ }
+ }
+ const extraTasks = removedChunks.map(chunk => {
+ const task = new Task(chunk);
+ task.oldNodes.push(chunk);
+ return task;
+ });
+
+ return {
+ chunks: newChunks,
+ extraTasks,
+ }
+};
+
+/*
+note: the nunber of lods at each level can be computed with this function:
+
+ getNumLodsAtLevel = n => n === 0 ? 1 : (2*n+1)**2-(getNumLodsAtLevel(n-1));
+
+the total number of chunks with 3 lods is:
+ > getNumLodsAtLevel(0) + getNumLodsAtLevel(1) + getNumLodsAtLevel(2) + getNumLodsAtLevel(3)
+ < 58
+
+---
+
+the view range for a chunk size and given number of lods is:
+
+ // 0, 1, 2 are our lods
+ getViewRangeInternal = n => (n === 0 ? 1 : (3*getViewRangeInternal(n-1)));
+ getViewRange = (n, chunkSize) => getViewRangeInternal(n) * chunkSize / 2;
+
+for a chunkSize of 30, we have the view distance of each lod:
+
+ getViewRange(1, 30) = 45 // LOD 0
+ getViewRange(2, 30) = 135 // LOD 1
+ getViewRange(3, 30) = 405 // LOD 2
+---
+
+for a million tris budget, the tris per chunk is:
+ 1,000,000 tri / 58 chunks rendered = 17241.379310344827586206896551724 tri
+
+for a chunk size of 30 meters, the density of tris per uniform meters cubic is:
+ > 17241.379310344827586206896551724 tri / (30**3 meters)
+ < 0.6385696040868454 tri/m^3
+
+per meters squared, it's 19.157088122605362 tri/m^2
+
+---
+
+using these results
+
+- the tri budget can be scaled linearly with the results
+- the chunk size can be changed to increase the view distance while decreasing the density, while keeping the tri budget the same
+*/
+export class LodChunk extends THREE.Vector3 {
+ constructor(x, y, z, lod, lodArray) {
+
+ super(x, y, z);
+ this.lod = lod;
+ this.lodArray = lodArray;
+
+ this.name = `chunk:${this.x}:${this.y}:${this.z}`;
+ this.binding = null;
+ this.items = [];
+ this.physicsObjects = [];
+ }
+ lodEquals(chunk) {
+ return this.lod === chunk.lod &&
+ this.lodArray.length === chunk.lodArray.length && this.lodArray.every((lod, i) => lod === chunk.lodArray[i]);
+ }
+ containsPoint(p) {
+ return p.x >= this.x && p.x < this.x + this.lod &&
+ p.y >= this.y && p.y < this.y + this.lod &&
+ p.z >= this.z && p.z < this.z + this.lod;
+ }
+}
+export class LodChunkTracker extends EventTarget {
+ constructor({
+ chunkSize = defaultChunkSize,
+ lods = 1,
+ minLodRange = 2,
+ trackY = false,
+ debug = false,
+ } = {}) {
+ super();
+
+ this.chunkSize = chunkSize;
+ this.lods = lods;
+ this.minLodRange = minLodRange;
+ this.trackY = trackY;
+
+ this.chunks = [];
+ this.lastUpdateCoord = new THREE.Vector3(NaN, NaN, NaN);
+
+ if (debug) {
+ const maxChunks = 512;
+ const instancedCubeGeometry = new THREE.InstancedBufferGeometry();
+ {
+ const cubeGeometry = new THREE.BoxBufferGeometry(1, 1, 1)
+ .translate(0.5, 0.5, 0.5);
+ for (const k in cubeGeometry.attributes) {
+ instancedCubeGeometry.setAttribute(k, cubeGeometry.attributes[k]);
+ }
+ instancedCubeGeometry.setIndex(cubeGeometry.index);
+ }
+ const redMaterial = new THREE.MeshBasicMaterial({
+ color: 0xFFFFFF,
+ // transparent: true,
+ // opacity: 0.1,
+ wireframe: true,
+ });
+ const debugMesh = new THREE.InstancedMesh(instancedCubeGeometry, redMaterial, maxChunks);
+ debugMesh.count = 0;
+ debugMesh.frustumCulled = false;
+ this.debugMesh = debugMesh;
+
+ {
+ const localVector = new THREE.Vector3();
+ const localVector2 = new THREE.Vector3();
+ const localVector3 = new THREE.Vector3();
+ const localQuaternion = new THREE.Quaternion();
+ const localMatrix = new THREE.Matrix4();
+ const localColor = new THREE.Color();
+
+ const _getChunkColorHex = chunk => {
+ if (chunk.lod === 1) {
+ return 0xFF0000;
+ } else if (chunk.lod === 2) {
+ return 0x00FF00;
+ } else if (chunk.lod === 4) {
+ return 0x0000FF;
+ } else {
+ return 0x0;
+ }
+ };
+ const _flushChunks = () => {
+ debugMesh.count = 0;
+ for (let i = 0; i < this.chunks.length; i++) {
+ const chunk = this.chunks[i];
+ localMatrix.compose(
+ localVector.copy(chunk.min)
+ .multiplyScalar(this.chunkSize),
+ // .add(localVector2.set(0, -60, 0)),
+ localQuaternion.identity(),
+ localVector3.set(1, 1, 1)
+ .multiplyScalar(chunk.lod * this.chunkSize * 0.9)
+ );
+ localColor.setHex(_getChunkColorHex(chunk));
+ debugMesh.setMatrixAt(debugMesh.count, localMatrix);
+ debugMesh.setColorAt(debugMesh.count, localColor);
+ debugMesh.count++;
+ }
+ debugMesh.instanceMatrix.needsUpdate = true;
+ debugMesh.instanceColor && (debugMesh.instanceColor.needsUpdate = true);
+ };
+ this.addEventListener('update', e => {
+ _flushChunks();
+ });
+ }
+ }
+
+ this.lastOctreeLeafNodes = [];
+ this.liveTasks = [];
+ }
+ #getCurrentCoord(position, target) {
+ const cx = Math.floor(position.x / this.chunkSize);
+ const cy = this.trackY ? Math.floor(position.y / this.chunkSize) : 0;
+ const cz = Math.floor(position.z / this.chunkSize);
+ return target.set(cx, cy, cz);
+ }
+ emitChunkDestroy(chunk) {
+ const hash = chunk.min.toArray().join(','); // _octreeNodeMinHash(chunk.min, chunk.lod);
+ this.dispatchEvent(new MessageEvent('destroy.' + hash));
+ }
+ listenForChunkDestroy(chunk, fn) {
+ const hash = chunk.min.toArray().join(','); // _octreeNodeMinHash(chunk.min, chunk.lod);
+ this.addEventListener('destroy.' + hash, e => {
+ fn(e);
+ }, {once: true});
+ }
+ updateCoord(currentCoord) {
+ const octreeLeafNodes = constructOctreeForLeaf(currentCoord, this.minLodRange, 2 ** (this.lods - 1));
+
+ let tasks = diffLeafNodes(
+ octreeLeafNodes,
+ this.lastOctreeLeafNodes,
+ );
+
+ const {
+ chunks,
+ extraTasks,
+ } = updateChunks(this.chunks, tasks);
+ this.chunks = chunks;
+ tasks.push(...extraTasks);
+
+ sortTasks(tasks, camera.position);
+
+ for (let i = 0; i < tasks.length; i++) {
+ const task = tasks[i];
+ if (!task.isNop()) {
+ const overlappingTasks = this.liveTasks.filter(lastTask => task.maxLodNode.containsNode(lastTask.maxLodNode));
+ for (const oldTask of overlappingTasks) {
+ oldTask.cancel();
+ this.liveTasks.splice(this.liveTasks.indexOf(oldTask), 1);
+ }
+ this.liveTasks.push(task);
+ }
+ }
+
+ for (const task of tasks) {
+ if (!task.isNop()) {
+ this.dispatchEvent(new MessageEvent('chunkrelod', {
+ data: {
+ task,
+ },
+ }));
+ }
+ }
+
+ this.lastOctreeLeafNodes = octreeLeafNodes;
+
+ this.dispatchEvent(new MessageEvent('update'));
+ }
+ async waitForLoad() {
+ // console.log('wait for live tasks 1', this.liveTasks.length);
+ await Promise.all(this.liveTasks.map(task => task.waitForLoad()));
+ // console.log('wait for live tasks 2', this.liveTasks.length);
+ }
+ update(position) {
+ const currentCoord = this.#getCurrentCoord(position, localVector).clone();
+
+ // if we moved across a chunk boundary, update needed chunks
+ if (!currentCoord.equals(this.lastUpdateCoord)) {
+ this.updateCoord(currentCoord);
+ this.lastUpdateCoord.copy(currentCoord);
+ }
+ }
+ destroy() {
+ for (const chunk of this.chunks) {
+ const task = new Task(chunk);
+ task.oldNodes.push(chunk);
+
+ this.dispatchEvent(new MessageEvent('chunkrelod', {
+ data: {
+ task,
+ },
+ }));
+ }
+ this.chunks.length = 0;
+ }
+}
\ No newline at end of file
diff --git a/login.js b/login.js
new file mode 100644
index 0000000000..403efb5561
--- /dev/null
+++ b/login.js
@@ -0,0 +1,29 @@
+import {getAddressFromMnemonic} from './blockchain.js';
+
+async function pullUserObject(loginToken) {
+ const address = getAddressFromMnemonic(loginToken.mnemonic);
+ const res = await fetch(`${accountsHost}/${address}`);
+ var result = await res.json();
+ result.mnemonic = loginToken.mnemonic;
+ return result;
+}
+
+export const handleDiscordLogin = async (code, id) => {
+ if (!code) {
+ return;
+ }
+ try{
+ let res = await fetch(loginEndpoint + `?discordid=${encodeURIComponent(id)}&discordcode=${encodeURIComponent(code)}&redirect_uri=${window.location.origin}/login`, {
+ method: 'POST',
+ });
+ res = await res.json();
+ if (!res.error) {
+ return await pullUserObject(res);
+ } else {
+ //console.warn('Unable to login ', res.error);
+ return res;
+ }
+ }catch(e){
+
+ }
+};
\ No newline at end of file
diff --git a/mesh-lodder.js b/mesh-lodder.js
index 7ee856e8ce..c809576222 100644
--- a/mesh-lodder.js
+++ b/mesh-lodder.js
@@ -1,107 +1,539 @@
import * as THREE from 'three';
-import {MaxRectsPacker} from 'maxrects-packer';
-import {localPlayer} from './players.js';
+import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
+import {getLocalPlayer} from './players.js';
import {alea} from './procgen/procgen.js';
-// import {getRenderer} from './renderer.js';
-import {mod/*, modUv*/} from './util.js';
import physicsManager from './physics-manager.js';
-
-const bufferSize = 2 * 1024 * 1024;
+import {defaultMaxId} from './constants.js';
+import {LodChunkTracker} from './lod.js';
+import {GeometryAllocator} from './instancing.js';
+import {mapWarpedUvs} from './atlasing.js';
+import {ImmediateGLBufferAttribute} from './ImmediateGLBufferAttribute.js';
+
+const bufferSize = 20 * 1024 * 1024;
+const maxNumItems = defaultMaxId;
const chunkWorldSize = 30;
-const defaultTextureSize = 4096;
-const startAtlasSize = 512;
const minObjectsPerChunk = 20;
const maxObjectPerChunk = 50;
const upVector = new THREE.Vector3(0, 1, 0);
+// const rightVector = new THREE.Vector3(1, 0, 0);
+// const oneVector = new THREE.Vector3(1, 1, 1);
const localVector = new THREE.Vector3();
const localVector2 = new THREE.Vector3();
const localVector2D = new THREE.Vector2();
const localVector2D2 = new THREE.Vector2();
+const localVector4D = new THREE.Vector4();
+const localQuaternion = new THREE.Quaternion();
const localMatrix = new THREE.Matrix4();
-const localMatrix2 = new THREE.Matrix4();
-
-const textureTypes = [
- 'map',
- 'normalMap',
- 'roughnessMap',
- 'metalnessMap',
- 'emissiveMap',
-];
-const _colorCanvas = (canvas, fillStyle) => {
- const ctx = canvas.getContext('2d');
- ctx.fillStyle = fillStyle;
- ctx.fillRect(0, 0, canvas.width, canvas.height);
+// const localMatrix2 = new THREE.Matrix4();
+const localMatrix3 = new THREE.Matrix4();
+
+const _diceGeometry = g => {
+ const geometryToBeCut = g;
+
+ const getCutGeometries = (geometry, plane) => {
+ const res = physicsManager.cutMesh(
+ geometry.attributes.position.array,
+ geometry.attributes.position.count * 3,
+ geometry.attributes.normal.array,
+ geometry.attributes.normal.count * 3,
+ geometry.attributes.uv.array,
+ geometry.attributes.uv.count * 2,
+ geometry.index?.array,
+ geometry.index?.count,
+
+ plane.normal.toArray(),
+ plane.constant,
+ )
+
+ const positions0 = res.outPositions.slice(0, res.numOutPositions[0])
+ const positions1 = res.outPositions.slice(res.numOutPositions[0], res.numOutPositions[0] + res.numOutPositions[1])
+
+ const normals0 = res.outNormals.slice(0, res.numOutNormals[0])
+ const normals1 = res.outNormals.slice(res.numOutNormals[0], res.numOutNormals[0] + res.numOutNormals[1])
+
+ const uvs0 = res.outUvs.slice(0, res.numOutUvs[0])
+ const uvs1 = res.outUvs.slice(res.numOutUvs[0], res.numOutUvs[0] + res.numOutUvs[1])
+
+ const geometry0 = new THREE.BufferGeometry()
+ geometry0.setAttribute('position', new THREE.Float32BufferAttribute(positions0, 3))
+ geometry0.setAttribute('normal', new THREE.Float32BufferAttribute(normals0, 3))
+ geometry0.setAttribute('uv', new THREE.Float32BufferAttribute(uvs0, 2))
+ geometry0.setAttribute('uv2', new THREE.Float32BufferAttribute(uvs0.slice(), 2))
+
+ const geometry1 = new THREE.BufferGeometry()
+ geometry1.setAttribute('position', new THREE.Float32BufferAttribute(positions1, 3))
+ geometry1.setAttribute('normal', new THREE.Float32BufferAttribute(normals1, 3))
+ geometry1.setAttribute('uv', new THREE.Float32BufferAttribute(uvs1, 2))
+ geometry1.setAttribute('uv2', new THREE.Float32BufferAttribute(uvs1.slice(), 2))
+
+ return [geometry0, geometry1];
+ }
+
+ const geometries2Parts = getCutGeometries(geometryToBeCut, new THREE.Plane(
+ new THREE.Vector3(1, 0, 0).normalize(),
+ 0,
+ ));
+
+ const geometries4Parts = [];
+ geometries2Parts.forEach(geometryToBeCut => {
+ const geometries = getCutGeometries(geometryToBeCut, new THREE.Plane(
+ new THREE.Vector3(0, 1, 0).normalize(),
+ 0,
+ ));
+ geometries4Parts.push(...geometries);
+ });
+
+ const geometries8Parts = [];
+ geometries4Parts.forEach(geometryToBeCut => {
+ const geometries = getCutGeometries(geometryToBeCut, new THREE.Plane(
+ new THREE.Vector3(0, 0, 1).normalize(),
+ 0,
+ ));
+ geometries8Parts.push(...geometries);
+ });
+
+ //
+
+ geometries8Parts.forEach((geometry, i) => {
+ const x = i < 4 ? -0.5 : 0.5;
+ const y = i % 4 < 2 ? -0.5 : 0.5;
+ const z = i % 2 < 1 ? -0.5 : 0.5;
+ geometry.translate(x, y, z);
+ });
+ return BufferGeometryUtils.mergeBufferGeometries(geometries8Parts);
};
-const textureInitializers = {
- normal(canvas) {
- _colorCanvas(canvas, 'rgb(128, 128, 255)');
- },
- roughness(canvas) {
- _colorCanvas(canvas, 'rgb(255, 255, 255)');
- },
- /* metalness(canvas) {
- _colorCanvas(canvas, 'rgb(0, 0, 0)');
- }, */
+const _eraseVertices = (geometry, positionStart, positionCount) => {
+ for (let i = 0; i < positionCount; i++) {
+ geometry.attributes.position.array[positionStart + i] = 0;
+ }
+ const popUpdate = ImmediateGLBufferAttribute.pushUpdate();
+ geometry.attributes.position.update(positionStart, positionCount);
+ popUpdate();
+};
+
+const _getMatrixWorld = (rootMesh, contentMesh, target, positionX, positionZ, rotationY) => {
+ return _getMatrix(contentMesh, target, positionX, positionZ, rotationY)
+ .premultiply(rootMesh.matrixWorld);
+};
+const _getMatrix = (contentMesh, target, positionX, positionZ, rotationY) => {
+ localVector.set(positionX, 0, positionZ)
+ localQuaternion.setFromAxisAngle(upVector, rotationY)
+
+ return target.copy(contentMesh.matrixWorld)
+ .premultiply(localMatrix3.compose(localVector, localQuaternion, localVector2.set(1, 1, 1)));
};
-const modUv = uv => {
- uv.x = mod(uv.x, 1);
- uv.y = mod(uv.y, 1);
- return uv;
+const _mapGeometryUvs = (g, geometry, tx, ty, tw, th, canvasSize) => {
+ mapWarpedUvs(g.attributes.uv, 0, geometry.attributes.uv, 0, tx, ty, tw, th, canvasSize);
+ mapWarpedUvs(g.attributes.uv2, 0, geometry.attributes.uv2, 0, tx, ty, tw, th, canvasSize);
+};
+const _makeItemMesh = (rootMesh, contentMesh, geometry, material, positionX, positionZ, rotationY) => {
+ const cloned = new THREE.Mesh(geometry, material);
+ _getMatrixWorld(rootMesh, contentMesh, cloned.matrixWorld, positionX, positionZ, rotationY);
+ cloned.matrix.copy(cloned.matrixWorld)
+ .decompose(cloned.position, cloned.quaternion, cloned.scale);
+ cloned.frustumCulled = false;
+ return cloned;
+};
+
+const _mapOffsettedPositions = (g, geometry, dstOffset, positionX, positionZ, rotationY, contentMesh) => {
+ const count = g.attributes.position.count;
+
+ const matrix = _getMatrix(contentMesh, localMatrix, positionX, positionZ, rotationY);
+
+ for (let i = 0; i < count; i++) {
+ const srcIndex = i;
+ const localDstOffset = dstOffset + i * 3;
+
+ localVector.fromArray(g.attributes.position.array, srcIndex * 3)
+ .applyMatrix4(matrix)
+ .toArray(geometry.attributes.position.array, localDstOffset);
+ }
+};
+const _mapOffsettedIndices = (g, geometry, dstOffset, positionOffset) => {
+ const count = g.index.count;
+ const positionIndex = positionOffset / 3;
+ for (let i = 0; i < count; i++) {
+ geometry.index.array[dstOffset + i] = g.index.array[i] + positionIndex;
+ }
};
-export class MeshLodder {
+class LodChunkGenerator {
+ constructor(parent) {
+ // parameters
+ this.parent = parent;
+
+ // members
+ this.physicsObjects = [];
+ this.allocator = new GeometryAllocator([
+ {
+ name: 'position',
+ Type: Float32Array,
+ itemSize: 3,
+ },
+ {
+ name: 'normal',
+ Type: Float32Array,
+ itemSize: 3,
+ },
+ {
+ name: 'uv',
+ Type: Float32Array,
+ itemSize: 2,
+ },
+ {
+ name: 'uv2',
+ Type: Float32Array,
+ itemSize: 2,
+ },
+ ], {
+ bufferSize,
+ });
+ this.itemContentMeshes = Array(maxNumItems).fill(null);
+ this.itemPositions = new Float32Array(maxNumItems * 3);
+ this.itemQuaternions = new Float32Array(maxNumItems * 4);
+ this.itemPositionOffsets = new Uint32Array(maxNumItems);
+ this.itemPositionCounts = new Uint32Array(maxNumItems);
+ this.itemRects = new Uint32Array(maxNumItems * 4);
+ this.itemShapeAddresses = new Uint32Array(maxNumItems);
+ this.itemPositionsXZY = new Float32Array(maxNumItems * 3);
+
+ // mesh
+ this.mesh = new THREE.Mesh(this.allocator.geometry, [this.parent.material]);
+ this.mesh.frustumCulled = false;
+ this.mesh.visible = false;
+ }
+ /* getItemIdByPhysicsId(physicsId) {
+ return this.physicsObjects.findIndex(o => o.physicsId === physicsId);
+ } */
+ getItemTransformByItemId(itemId, p, q, s) {
+ p.fromArray(this.itemPositions, itemId * 3);
+ q.fromArray(this.itemQuaternions, itemId * 4);
+ s.set(1, 1, 1);
+ }
+ deleteItem(itemId) {
+ _eraseVertices(
+ this.allocator.geometry,
+ this.itemPositionOffsets[itemId],
+ this.itemPositionCounts[itemId],
+ );
+
+ const index = this.physicsObjects.findIndex(po => po.physicsId === itemId);
+ const physicsObject = this.physicsObjects[index];
+ physicsManager.removeGeometry(physicsObject);
+ this.physicsObjects.splice(index, 1);
+ }
+ #getContentIndexNames() {
+ return Object.keys(this.parent.contentIndex).sort();
+ }
+ #getAtlas() {
+ return this.parent.atlas;
+ }
+ #getContent(name) {
+ return this.parent.contentIndex[name];
+ }
+ #getShapeAddress(name) {
+ return this.parent.shapeAddresses[name];
+ }
+ #getContentMeshIndex(mesh) {
+ return this.parent.meshes.indexOf(mesh);
+ }
+ #addPhysicsShape(shapeAddress, contentMesh, positionX, positionZ, rotationY) {
+ const matrixWorld = _getMatrixWorld(this.mesh, contentMesh, localMatrix, positionX, positionZ, rotationY);
+ matrixWorld.decompose(localVector, localQuaternion, localVector2);
+ const position = localVector;
+ const quaternion = localQuaternion;
+ const scale = localVector2;
+ const dynamic = false;
+ const external = true;
+ const physicsObject = physicsManager.addConvexShape(shapeAddress, position, quaternion, scale, dynamic, external);
+
+ this.physicsObjects.push(physicsObject);
+
+ return physicsObject;
+ }
+ cloneItemDiceMesh(itemId) {
+ localVector4D.fromArray(this.itemRects, itemId * 4);
+ const tx = localVector4D.x;
+ const ty = localVector4D.y;
+ const tw = localVector4D.z;
+ const th = localVector4D.w;
+
+ const positionX = this.itemPositionsXZY[itemId * 3];
+ const positionZ = this.itemPositionsXZY[itemId * 3 + 1];
+ const rotationY = this.itemPositionsXZY[itemId * 3 + 2];
+
+ const atlas = this.#getAtlas();
+ const canvasSize = Math.min(atlas.width, defaultTextureSize);
+
+ const contentMesh = this.itemContentMeshes[itemId];
+ const g = contentMesh.geometry;
+ let geometry = g.clone();
+ _mapGeometryUvs(g, geometry, tx, ty, tw, th, canvasSize);
+ geometry = _diceGeometry(geometry);
+ const itemMesh = _makeItemMesh(this.mesh, contentMesh, geometry, this.parent.material, positionX, positionZ, rotationY);
+ return itemMesh;
+ }
+ cloneItemMesh(itemId) {
+ localVector4D.fromArray(this.itemRects, itemId * 4);
+ const tx = localVector4D.x;
+ const ty = localVector4D.y;
+ const tw = localVector4D.z;
+ const th = localVector4D.w;
+
+ const positionX = this.itemPositionsXZY[itemId * 3];
+ const positionZ = this.itemPositionsXZY[itemId * 3 + 1];
+ const rotationY = this.itemPositionsXZY[itemId * 3 + 2];
+
+ const atlas = this.#getAtlas();
+ const canvasSize = Math.min(atlas.width, defaultTextureSize);
+
+ const contentMesh = this.itemContentMeshes[itemId];
+ const g = contentMesh.geometry;
+ const geometry = g.clone();
+ _mapGeometryUvs(g, geometry, tx, ty, tw, th, canvasSize);
+ const itemMesh = _makeItemMesh(this.mesh, contentMesh, geometry, this.parent.material, positionX, positionZ, rotationY);
+ return itemMesh;
+ }
+ clonePhysicsObject(itemId) {
+ const positionX = this.itemPositionsXZY[itemId * 3];
+ const positionZ = this.itemPositionsXZY[itemId * 3 + 1];
+ const rotationY = this.itemPositionsXZY[itemId * 3 + 2];
+
+ const contentMesh = this.itemContentMeshes[itemId];
+ const shapeAddress = this.itemShapeAddresses[itemId];
+
+ _getMatrixWorld(this.mesh, contentMesh, localMatrix, positionX, positionZ, rotationY)
+ .decompose(localVector, localQuaternion, localVector2);
+ const position = localVector;
+ const quaternion = localQuaternion;
+ const scale = localVector2;
+ const dynamic = true;
+ const external = true;
+ const physicsObject = physicsManager.addConvexShape(shapeAddress, position, quaternion, scale, dynamic, external);
+ return physicsObject;
+ }
+ #addItemToRegistry(contentName, contentMesh, physicsId, positionOffset, positionCount, positionX, positionZ, rotationY, tx, ty, tw, th) {
+ this.itemContentMeshes[physicsId] = contentMesh;
+ localVector.set(positionX, 0, positionZ)
+ .toArray(this.itemPositions, physicsId * 3);
+ localQuaternion.setFromAxisAngle(upVector, rotationY)
+ .toArray(this.itemQuaternions, physicsId * 4);
+ this.itemPositionOffsets[physicsId] = positionOffset;
+ this.itemPositionCounts[physicsId] = positionCount;
+ localVector4D.set(tx, ty, tw, th)
+ .toArray(this.itemRects, physicsId * 4);
+ this.itemShapeAddresses[physicsId] = this.parent.shapeAddresses[contentName];
+
+ this.itemPositionsXZY[physicsId * 3] = positionX;
+ this.itemPositionsXZY[physicsId * 3 + 1] = positionZ;
+ this.itemPositionsXZY[physicsId * 3 + 2] = rotationY;
+ }
+ generateChunk(chunk) {
+ const _collectContentsRenderList = () => {
+ const contentNames = [];
+ const contents = [];
+ let totalNumPositions = [];
+ let totalNumIndices = [];
+
+ const contentIndexNames = this.#getContentIndexNames();
+ const numObjects = minObjectsPerChunk + Math.floor(rng() * (maxObjectPerChunk - minObjectsPerChunk));
+ for (let i = 0; i < numObjects; i++) {
+ const contentName = contentIndexNames[Math.floor(rng() * contentIndexNames.length)];
+ const meshes = this.#getContent(contentName);
+
+ let totalPositionsArray = [];
+ let totalIndicesArray = [];
+ for (let lod = 0; lod < meshes.length; lod++) {
+ const mesh = meshes[lod];
+ if (mesh) {
+ totalPositionsArray.push(mesh.geometry.attributes.position.count * mesh.geometry.attributes.position.itemSize);
+ totalIndicesArray.push(mesh.geometry.index.count);
+ } else {
+ totalPositionsArray.push(0);
+ totalIndicesArray.push(0);
+ }
+ }
+
+ contentNames.push(contentName);
+ contents.push(meshes);
+ totalNumPositions.push(totalPositionsArray);
+ totalNumIndices.push(totalIndicesArray);
+ }
+
+ return {
+ contentNames,
+ contents,
+ totalNumPositions,
+ totalNumIndices,
+ };
+ };
+ const _renderContentsRenderList = (contentMeshes, contentNames, geometry, geometryBinding) => {
+ const physicsObjects = [];
+
+ const popUpdate = ImmediateGLBufferAttribute.pushUpdate();
+ {
+ let positionOffset = geometryBinding.getAttributeOffset('position');
+ let uvOffset = geometryBinding.getAttributeOffset('uv');
+ let indexOffset = geometryBinding.getIndexOffset();
+
+ // render geometries to allocated geometry binding
+ for (let i = 0; i < contentMeshes.length; i++) {
+ const contentMesh = contentMeshes[i];
+ const contentName = contentNames[i];
+ const positionX = (chunk.x + 1 + rng()) * chunkWorldSize;
+ const positionZ = (chunk.z + 1 + rng()) * chunkWorldSize;
+ const rotationY = rng() * Math.PI * 2;
+
+ const g = contentMesh.geometry;
+ const contentMeshIndex = this.#getContentMeshIndex(contentMesh);
+ const rect = atlas.rectIndexCache.get(contentMeshIndex);
+ const {x, y, width: w, height: h} = rect;
+ const tx = x * canvasScale;
+ const ty = y * canvasScale;
+ const tw = w * canvasScale;
+ const th = h * canvasScale;
+
+ // render geometry
+ {
+ _mapOffsettedPositions(g, geometry, positionOffset, positionX, positionZ, rotationY, contentMesh);
+ geometry.attributes.normal.array.set(g.attributes.normal.array, positionOffset);
+ mapWarpedUvs(g.attributes.uv, 0, geometry.attributes.uv, uvOffset, tx, ty, tw, th, canvasSize);
+ mapWarpedUvs(g.attributes.uv2, 0, geometry.attributes.uv2, uvOffset, tx, ty, tw, th, canvasSize);
+ _mapOffsettedIndices(g, geometry, indexOffset, positionOffset);
+ geometry.setAttribute('direction', new THREE.BufferAttribute(new Float32Array(g.attributes.position.array.length), 3));
+ }
+
+ // upload geometry
+ {
+ geometry.attributes.position.update(positionOffset, g.attributes.position.count * g.attributes.position.itemSize);
+ geometry.attributes.normal.update(positionOffset, g.attributes.normal.count * g.attributes.normal.itemSize);
+ geometry.attributes.uv.update(uvOffset, g.attributes.uv.count * g.attributes.uv.itemSize);
+ geometry.attributes.uv2.update(uvOffset, g.attributes.uv2.count * g.attributes.uv.itemSize);
+ geometry.index.update(indexOffset, g.index.count);
+ }
+
+ {
+ // physics
+ const shapeAddress = this.#getShapeAddress(contentName);
+ const physicsObject = this.#addPhysicsShape(shapeAddress, contentMesh, positionX, positionZ, rotationY);
+ physicsObjects.push(physicsObject);
+
+ // tracking
+ const positionCount = g.attributes.position.count * g.attributes.position.itemSize;
+ this.#addItemToRegistry(contentName, contentMesh, physicsObject.physicsId, positionOffset, positionCount, positionX, positionZ, rotationY, tx, ty, tw, th);
+ }
+
+ positionOffset += g.attributes.position.count * g.attributes.position.itemSize;
+ uvOffset += g.attributes.uv.count * g.attributes.uv.itemSize;
+ indexOffset += g.index.count;
+ }
+ }
+ popUpdate();
+
+ return {
+ physicsObjects,
+ };
+ };
+
+ const atlas = this.#getAtlas();
+ const canvasSize = Math.min(atlas.width, defaultTextureSize);
+ const canvasScale = canvasSize / atlas.width;
+
+ const rng = alea(chunk.name);
+ const {
+ contentNames,
+ contents,
+ totalNumPositions,
+ totalNumIndices,
+ } = _collectContentsRenderList();
+ const contentsLod0 = contents.map(meshes => meshes[0]);
+ const totalNumPositionsLod0 = totalNumPositions.reduce((a, b) => a + b[0], 0);
+ const totalNumIndicesLod0 = totalNumIndices.reduce((a, b) => a + b[0], 0);
+ const geometryBinding = this.allocator.alloc(totalNumPositionsLod0, totalNumIndicesLod0);
+ const {
+ physicsObjects,
+ } = _renderContentsRenderList(contentsLod0, contentNames, this.allocator.geometry, geometryBinding);
+
+ chunk.binding = geometryBinding;
+ chunk.physicsObjects = physicsObjects;
+ this.allocator.geometry.groups = this.allocator.indexFreeList.getGeometryGroups(); // XXX memory for this can be optimized
+ this.mesh.visible = true;
+ }
+ disposeChunk(chunk) {
+ this.allocator.free(chunk.binding);
+ chunk.binding = null;
+
+ for (const physicsObject of chunk.physicsObjects) {
+ physicsManager.removeGeometry(physicsObject);
+
+ const index = this.physicsObjects.findIndex(po => po.physicsId === physicsObject.physicsId);
+ this.physicsObjects.splice(index, 1);
+ }
+ chunk.physicsObjects.length = 0;
+ }
+ destroy() {
+ // nothing; the owning lod tracker disposes of our contents
+ }
+}
+
+const meshLodders = [];
+let ids = 0;
+class MeshLodManager {
constructor() {
- const positions = new Float32Array(bufferSize * 3);
- const normals = new Float32Array(bufferSize * 3);
- const uvs = new Float32Array(bufferSize * 2);
- const uvs2 = new Float32Array(bufferSize * 2);
- const geometry = new THREE.BufferGeometry();
- const indices = new Uint32Array(bufferSize);
- geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
- geometry.setAttribute('normal', new THREE.BufferAttribute(normals, 3));
- geometry.setAttribute('uv', new THREE.BufferAttribute(uvs, 2));
- geometry.setAttribute('uv2', new THREE.BufferAttribute(uvs2, 2));
- geometry.setIndex(new THREE.BufferAttribute(indices, 1));
- geometry.setDrawRange(0, 0);
- this.geometry = geometry;
+ this.id = ++ids;
const material = new THREE.MeshStandardMaterial({
side: THREE.DoubleSide,
alphaTest: 0.1,
transparent: true,
+ onBeforeCompile: shader => {
+ shader.vertexShader.replace('#include \n', `\
+ #include
+ attribute vec3 direction;
+ `);
+ shader.vertexShader.replace('#include \n', `\
+ #include
+ transformed += direction;
+ `);
+ return shader;
+ },
});
this.material = material;
- this.mesh = new THREE.Mesh(geometry, material);
- this.mesh.frustumCulled = false;
-
this.contentIndex = {};
+ this.shapeSpecs = {};
+ this.shapeAddresses = {};
this.compiled = false;
- this.lastChunkCoord = new THREE.Vector2(NaN, NaN);
- }
- registerLodMesh(name, meshes) {
- // console.log('register lod mesh', name, meshes);
- const newMeshes = meshes.map(mesh => {
- const {geometry} = mesh;
-
- const uvs = geometry.attributes.uv.array.slice();
- geometry.setAttribute('originalUv', new THREE.BufferAttribute(uvs, 2));
- const uvs2 = geometry.attributes.uv2 ? geometry.attributes.uv2.array.slice() : geometry.attributes.uv.array.slice();
- geometry.setAttribute('originalUv2', new THREE.BufferAttribute(uvs2, 2));
+ meshLodders.push(this);
- return mesh;
+ this.generator = new LodChunkGenerator(this);
+ this.tracker = new LodChunkTracker(this.generator, {
+ chunkWorldSize,
});
- this.contentIndex[name] = newMeshes;
}
- #getContentergeable() {
- /* const getObjectKey = (object, material) => {
- const renderer = getRenderer();
- return renderer.getProgramCacheKey(object, material);
- }; */
+ registerLodMesh(name, shapeSpec) {
+ const {
+ type = 'object',
+ lods = [],
+ } = shapeSpec;
+
+ this.contentIndex[name] = lods;
+
+ const lastMesh = lods.findLast(lod => lod !== null) ?? null;
+ const buffer = physicsManager.cookConvexGeometry(lastMesh);
+ const shapeAddress = physicsManager.createConvexShape(buffer);
+ this.shapeAddresses[name] = shapeAddress;
+
+ this.shapeSpecs[name] = shapeSpec;
+ }
+ getPhysicsObjects() {
+ return this.generator.physicsObjects;
+ }
+ #getContentMergeable() {
const getObjectKey = () => '';
const mergeables = new Map();
@@ -110,7 +542,7 @@ export class MeshLodder {
const meshes = this.contentIndex[name];
for (const mesh of meshes) {
- mesh.traverse(o => {
+ mesh && mesh.traverse(o => {
if (o.isMesh && o.geometry.type === 'BufferGeometry') {
const objectGeometry = o.geometry;
// const morphTargetDictionary = o.morphTargetDictionary;
@@ -170,7 +602,7 @@ export class MeshLodder {
return Array.from(mergeables.values())[0];
}
compile() {
- const mergeable = this.#getContentergeable();
+ const mergeable = this.#getContentMergeable();
const {
// type,
// material,
@@ -187,194 +619,27 @@ export class MeshLodder {
// morphTargetInfluencesArray,
} = mergeable;
- // compute texture sizes
- const textureSizes = maps.map((map, i) => {
- const emissiveMap = emissiveMaps[i];
- const normalMap = normalMaps[i];
- const roughnessMap = roughnessMaps[i];
- const metalnessMap = metalnessMaps[i];
-
- const maxSize = new THREE.Vector2(0, 0);
- if (map) {
- maxSize.x = Math.max(maxSize.x, map.image.width);
- maxSize.y = Math.max(maxSize.y, map.image.height);
- }
- if (emissiveMap) {
- maxSize.x = Math.max(maxSize.x, emissiveMap.image.width);
- maxSize.y = Math.max(maxSize.y, emissiveMap.image.height);
- }
- if (normalMap) {
- maxSize.x = Math.max(maxSize.x, normalMap.image.width);
- maxSize.y = Math.max(maxSize.y, normalMap.image.height);
- }
- if (roughnessMap) {
- maxSize.x = Math.max(maxSize.x, roughnessMap.image.width);
- maxSize.y = Math.max(maxSize.y, roughnessMap.image.height);
- }
- if (metalnessMap) {
- maxSize.x = Math.max(maxSize.x, metalnessMap.image.width);
- maxSize.y = Math.max(maxSize.y, metalnessMap.image.height);
- }
- return maxSize;
- });
- const textureUuids = maps.map((map, i) => {
- const emissiveMap = emissiveMaps[i];
- const normalMap = normalMaps[i];
- const roughnessMap = roughnessMaps[i];
- const metalnessMap = metalnessMaps[i];
-
- const uuids = [];
- uuids.push(map ? map.uuid : null);
- uuids.push(emissiveMap ? emissiveMap.uuid : null);
- uuids.push(normalMap ? normalMap.uuid : null);
- uuids.push(roughnessMap ? roughnessMap.uuid : null);
- uuids.push(metalnessMap ? metalnessMap.uuid : null);
- return uuids.join(':');
- });
-
- // generate atlas layouts
- const _packAtlases = () => {
- const _attemptPack = (textureSizes, atlasSize) => {
- const maxRectsPacker = new MaxRectsPacker(atlasSize, atlasSize, 0);
- const rectUuidCache = new Map();
- const rectIndexCache = new Map();
- // window.uniqueTextureSets = [];
- textureSizes.forEach((textureSize, index) => {
- const {x: width, y: height} = textureSize;
- const hash = textureUuids[index];
-
- let rect = rectUuidCache.get(hash);
- if (!rect) {
- /* window.uniqueTextureSets.push({
- // uuid: materials[index].uuid,
- mapUUid: maps[index]?.uuid,
- name: materials[index].name,
- material: materials[index],
- mesh: meshes[index],
- hash,
- }); */
-
- rect = {
- width,
- height,
- data: {
- index,
- },
- };
- rectUuidCache.set(hash, rect);
- }
- rectIndexCache.set(index, rect);
- });
- const rects = Array.from(rectUuidCache.values());
-
- maxRectsPacker.addArray(rects);
- let oversized = maxRectsPacker.bins.length > 1;
- maxRectsPacker.bins.forEach(bin => {
- bin.rects.forEach(rect => {
- if (rect.oversized) {
- oversized = true;
- }
- });
- });
- if (!oversized) {
- maxRectsPacker.rectIndexCache = rectIndexCache;
- return maxRectsPacker;
- } else {
- return null;
- }
- };
-
- const hasTextures = textureSizes.some(textureSize => textureSize.x > 0 || textureSize.y > 0);
- if (hasTextures) {
- let atlas;
- let atlasSize = startAtlasSize;
- while (!(atlas = _attemptPack(textureSizes, atlasSize))) {
- atlasSize *= 2;
- }
- return atlas;
- } else {
- return null;
- }
+ const textureSpecs = {
+ map: maps,
+ emissiveMap: emissiveMaps,
+ normalMap: normalMaps,
+ roughnessMap: roughnessMaps,
+ metalnessMap: metalnessMaps,
};
- const atlas = _packAtlases();
- this.atlas = atlas;
-
- // draw atlas images
- // const originalTextures = new Map(); // map of canvas to the texture that generated it
- const _drawAtlasImages = atlas => {
- const _getTexturesKey = textures => textures.map(t => t ? t.uuid : '').join(',');
- const _drawAtlasImage = (textureType, textures) => {
- if (atlas && textures.some(t => t !== null)) {
- const canvasSize = Math.min(atlas.width, defaultTextureSize);
- const canvasScale = canvasSize / atlas.width;
-
- const canvas = document.createElement('canvas');
- canvas.width = canvasSize;
- canvas.height = canvasSize;
-
- const initializer = textureInitializers[textureType];
- if (initializer) {
- initializer(canvas);
- }
-
- const ctx = canvas.getContext('2d');
- atlas.bins.forEach(bin => {
- bin.rects.forEach(rect => {
- const {x, y, width: w, height: h, data: {index}} = rect;
- const texture = textures[index];
- if (texture) {
- const image = texture.image;
-
- // draw the image in the correct box on the canvas
- const tx = x * canvasScale;
- const ty = y * canvasScale;
- const tw = w * canvasScale;
- const th = h * canvasScale;
- ctx.drawImage(image, 0, 0, image.width, image.height, tx, ty, tw, th);
-
- /* if (!originalTextures.has(canvas)) {
- originalTextures.set(canvas, texture);
- } */
- }
- });
- });
-
- return canvas;
- } else {
- return null;
- }
- };
+ const {
+ atlas,
+ atlasImages,
+ atlasTextures,
+ } = generateTextureAtlas(textureSpecs);
- const atlasImages = {};
- const atlasImagesMap = new Map(); // cache to alias identical textures
- for (const textureType of textureTypes) {
- const textures = mergeable[`${textureType}s`];
- const key = _getTexturesKey(textures);
- // console.log('textures key', key, textures);
-
- let atlasImage = atlasImagesMap.get(key);
- if (atlasImage === undefined) { // cache miss
- atlasImage = _drawAtlasImage(textureType, textures);
- if (atlasImage !== null) {
- atlasImage.key = key;
- }
- atlasImagesMap.set(key, atlasImage);
- }
- atlasImages[textureType] = atlasImage;
- }
- return atlasImages;
- };
- const atlasImages = _drawAtlasImages(atlas);
- // window.atlasImages = atlasImages;
+ this.atlas = atlas;
const {material} = this;
- for (const textureType of textureTypes) {
- const atlasImage = atlasImages[textureType];
- if (atlasImage) {
- const texture = new THREE.Texture(atlasImage);
- texture.flipY = false;
- texture.needsUpdate = true;
- material[textureType] = texture;
+ const textureNames = Object.keys(textureSpecs);
+ for (const textureName of textureNames) {
+ const texture = atlasTextures[textureName];
+ if (texture) {
+ material[textureName] = texture;
}
}
material.needsUpdate = true;
@@ -384,118 +649,43 @@ export class MeshLodder {
this.compiled = true;
}
getChunks() {
- return this.mesh;
+ return this.generator.mesh;
}
- #getCurrentCoord(target) {
- /* const position = localPlayer.position;
- target.x = Math.floor(position.x / chunkWorldSize);
- target.y = Math.floor(position.z / chunkWorldSize);
- return target; */
- return target.set(0, 0);
+ /* getItemIdByPhysicsId(physicsId) {
+ return this.generator.getItemIdByPhysicsId(physicsId);
+ } */
+ getItemTransformByItemId() {
+ return this.generator.getItemTransformByItemId.apply(this.generator, arguments);
}
- #getContentIndexNames() {
- return Object.keys(this.contentIndex).sort();
+ cloneItemDiceMesh() {
+ return this.generator.cloneItemDiceMesh.apply(this.generator, arguments);
+ }
+ cloneItemMesh() {
+ return this.generator.cloneItemMesh.apply(this.generator, arguments);
+ }
+ clonePhysicsObject() {
+ return this.generator.clonePhysicsObject.apply(this.generator, arguments);
+ }
+ deleteItem(itemId) {
+ return this.generator.deleteItem(itemId);
}
update() {
+ const localPlayer = getLocalPlayer();
if (this.compiled) {
- const currentCoord = this.#getCurrentCoord(localVector2D);
-
- if (!currentCoord.equals(this.lastChunkCoord)) {
- this.lastChunkCoord.copy(currentCoord);
-
- const {geometry} = this.mesh;
- const {atlas} = this;
- const names = this.#getContentIndexNames();
- const canvasSize = Math.min(atlas.width, defaultTextureSize);
- const canvasScale = canvasSize / atlas.width;
-
- const rng = alea(`mesh-lodder:${currentCoord.x}:${currentCoord.y}`);
- const numObjects = minObjectsPerChunk + Math.floor(rng() * (maxObjectPerChunk - minObjectsPerChunk));
- // console.log('num objects', numObjects);
- let positionIndex = 0;
- let indexIndex = 0;
- for (let i = 0; i < numObjects; i++) {
- const name = names[Math.floor(rng() * names.length)];
- const positionX = rng() * chunkWorldSize;
- const positionZ = rng() * chunkWorldSize;
- const rotationY = rng() * Math.PI * 2;
-
- const meshes = this.contentIndex[name];
- const mesh = meshes[0];
- const g = mesh.geometry;
- const meshIndex = this.meshes.indexOf(mesh);
- const rect = atlas.rectIndexCache.get(meshIndex);
- const {x, y, width: w, height: h} = rect;
- const tx = x * canvasScale;
- const ty = y * canvasScale;
- const tw = w * canvasScale;
- const th = h * canvasScale;
-
- const _mapPositions = (g, geometry) => {
- const count = g.attributes.position.count;
-
- for (let i = 0; i < count; i++) {
- const srcIndex = i;
- const dstIndex = positionIndex + i;
-
- localMatrix.copy(mesh.matrixWorld)
- .premultiply(localMatrix2.makeRotationAxis(upVector, rotationY))
- .premultiply(localMatrix2.makeTranslation(positionX, 0, positionZ));
-
- localVector.fromArray(g.attributes.position.array, srcIndex * 3)
- .applyMatrix4(localMatrix)
- .toArray(geometry.attributes.position.array, dstIndex * 3);
- }
- };
- const _mapUvs = (g, geometry, srcKey, dstKey) => {
- const count = g.attributes[srcKey].count;
-
- for (let i = 0; i < count; i++) {
- const srcIndex = i;
- const dstIndex = positionIndex + i;
-
- localVector2D.fromArray(g.attributes[srcKey].array, srcIndex * 2);
- modUv(localVector2D);
- localVector2D
- .multiply(
- localVector2D2.set(tw/canvasSize, th/canvasSize)
- )
- .add(
- localVector2D2.set(tx/canvasSize, ty/canvasSize)
- );
- localVector2D.toArray(geometry.attributes[dstKey].array, dstIndex * 2);
- }
- };
- const _mapIndices = (g, geometry) => {
- const count = g.index.count;
- for (let i = 0; i < count; i++) {
- geometry.index.array[indexIndex + i] = g.index.array[i] + positionIndex;
- }
- };
-
- _mapPositions(g, geometry);
- // geometry.attributes.position.array.set(g.attributes.position.array, positionIndex * 3);
- geometry.attributes.normal.array.set(g.attributes.normal.array, positionIndex * 3);
- _mapUvs(g, geometry, 'originalUv', 'uv');
- _mapUvs(g, geometry, 'originalUv2', 'uv2');
- // geometry.attributes.uv.array.set(g.attributes.uv.array, positionIndex * 2);
- // geometry.attributes.uv2.array.set(g.attributes.uv2.array, positionIndex * 2);
- _mapIndices(g, geometry);
- // geometry.index.array.set(g.index.array, indexIndex);
-
- geometry.attributes.position.needsUpdate = true;
- geometry.attributes.normal.needsUpdate = true;
- geometry.attributes.uv.needsUpdate = true;
- geometry.attributes.uv2.needsUpdate = true;
- geometry.index.needsUpdate = true;
-
- positionIndex += g.attributes.position.count;
- indexIndex += g.index.count;
- }
-
- geometry.setDrawRange(0, indexIndex);
- // console.log('set draw range', geometry, indexIndex);
- }
+ this.tracker.update(localPlayer.position);
}
}
-}
\ No newline at end of file
+ destroy() {
+ meshLodders.splice(meshLodders.indexOf(this), 1);
+ }
+}
+
+const meshLodManager = {
+ createMeshLodder() {
+ return new MeshLodManager();
+ },
+ getMeshLodder(id) {
+ return meshLodders.find(meshLod => meshLod.id === id) ?? null;
+ },
+};
+export default meshLodManager;
\ No newline at end of file
diff --git a/metaverse-components.js b/metaverse-components.js
index 1bfb9c0cea..c50053105b 100644
--- a/metaverse-components.js
+++ b/metaverse-components.js
@@ -1,15 +1,15 @@
import wear from './metaverse_components/wear.js';
-import npc from './metaverse_components/npc.js';
+// import npc from './metaverse_components/npc.js';
import pet from './metaverse_components/pet.js';
import drop from './metaverse_components/drop.js';
-import mob from './metaverse_components/mob.js';
+// import mob from './metaverse_components/mob.js';
const componentTemplates = {
wear,
- npc,
+ // npc,
pet,
drop,
- mob,
+ // mob,
};
export {
componentTemplates,
diff --git a/metaverse-modules.js b/metaverse-modules.js
index e0c5d9b6c6..74cfa24b5a 100644
--- a/metaverse-modules.js
+++ b/metaverse-modules.js
@@ -12,17 +12,25 @@ const moduleUrls = {
healEffect: `./metaverse_modules/heal-effect/`,
filter: './metaverse_modules/filter/',
barrier: './metaverse_modules/barrier/',
+ comet: './metaverse_modules/comet/',
infinistreet: './metaverse_modules/infinistreet/',
spawner: './metaverse_modules/spawner/',
defaultScene: './metaverse_modules/default-scene/',
path: './metaverse_modules/path/',
area: './metaverse_modules/area/',
cameraPlaceholder: './metaverse_modules/camera-placeholder/',
+ targetReticle: './metaverse_modules/target-reticle/',
halo: './metaverse_modules/halo/',
+ silks: './metaverse_modules/silks/',
+ magic: './metaverse_modules/magic/',
+ limit: './metaverse_modules/limit/',
+ flare: './metaverse_modules/flare/',
+ firedrop: './metaverse_modules/firedrop/',
+ meshLodItem: './metaverse_modules/mesh-lod-item/',
};
const modules = {};
-const loadPromise = (async () => {
- await Promise.resolve(); // wait for init
+let loadPromise = null;
+const _load = async () => {
const promises = [];
for (const moduleName in moduleUrls) {
const moduleUrl = moduleUrls[moduleName];
@@ -35,8 +43,13 @@ const loadPromise = (async () => {
promises.push(p);
}
await Promise.all(promises);
-})();
-const waitForLoad = () => loadPromise;
+};
+const waitForLoad = () => {
+ if (!loadPromise) {
+ loadPromise = _load();
+ }
+ return loadPromise;
+};
export {
moduleUrls,
modules,
diff --git a/metaverse_components/drop.js b/metaverse_components/drop.js
index e393464e89..c5b4deaca6 100644
--- a/metaverse_components/drop.js
+++ b/metaverse_components/drop.js
@@ -1,28 +1,31 @@
import * as THREE from 'three';
import metaversefile from 'metaversefile';
-// import Avatar from './avatars/avatars.js';
import {world} from '../world.js';
import physicsManager from '../physics-manager.js';
import {glowMaterial} from '../shaders.js';
import easing from '../easing.js';
import {rarityColors} from '../constants.js';
+import storyManager from '../story.js';
const localVector = new THREE.Vector3();
const localVector2 = new THREE.Vector3();
-const localQuaternion = new THREE.Quaternion();
+const localEuler = new THREE.Euler();
-const rarityColorsArray = Object.keys(rarityColors).map(k => rarityColors[k][0]);
+//
+
+const physicsScene = physicsManager.getScene();
const cubicBezier = easing(0, 1, 0, 1);
const cubicBezier2 = easing(0, 1, 1, 1);
+const rarityColorsArray = Object.keys(rarityColors).map(k => rarityColors[k][0]);
const gracePickupTime = 1000;
-export default app => {
- // console.log('call default component', new Error().stack);
-
- const localPlayer = metaversefile.useLocalPlayer();
+//
+export default app => {
const dropComponent = app.getComponent('drop');
if (dropComponent) {
+ let rotY = 0;
+
const glowHeight = 5;
const glowGeometry = new THREE.CylinderBufferGeometry(0.01, 0.01, glowHeight)
.applyMatrix4(new THREE.Matrix4().makeTranslation(0, glowHeight/2, 0));
@@ -36,16 +39,33 @@ export default app => {
const glowMesh = new THREE.Mesh(glowGeometry, material);
app.add(glowMesh);
+ const _queueDrop = () => {
+ const dropManager = metaversefile.useDropManager();
+ const appName = app.getComponent('appName');
+ const appUrl = app.getComponent('appUrl');
+ const voucher = app.getComponent('voucher');
+ if (appName && appUrl && voucher) {
+ dropManager.addClaim(appName, appUrl, voucher);
+ } else {
+ dropManager.pickupApp(app);
+ }
+
+ world.appManager.removeApp(app);
+ // app.destroy();
+ };
+
const velocity = dropComponent.velocity ? new THREE.Vector3().fromArray(dropComponent.velocity) : new THREE.Vector3();
- const angularVelocity = dropComponent.angularVelocity ? new THREE.Vector3().fromArray(dropComponent.angularVelocity) : new THREE.Vector3();
+ // const angularVelocity = dropComponent.angularVelocity ? new THREE.Vector3().fromArray(dropComponent.angularVelocity) : new THREE.Vector3();
let grounded = false;
const startTime = performance.now();
let animation = null;
- const timeOffset = Math.random() * 10;
- const frame = metaversefile.useFrame(e => {
+ let pickedUp = false;
+ metaversefile.useFrame(e => {
const {timestamp, timeDiff} = e;
- const timeDiffS = timeDiff/1000;
- const dropComponent = app.getComponent('drop');
+ const timeDiffS = timeDiff / 1000;
+ const localPlayer = metaversefile.useLocalPlayer();
+
+ // animate and check for collisions
if (!grounded) {
app.position
.add(
@@ -53,11 +73,11 @@ export default app => {
.multiplyScalar(timeDiffS)
);
velocity.add(
- localVector.copy(physicsManager.getGravity())
+ localVector.copy(physicsScene.getGravity())
.multiplyScalar(timeDiffS)
);
- const groundHeight = 0.1;
+ const groundHeight = 0.3;
if (app.position.y <= groundHeight) {
app.position.y = groundHeight;
const newDrop = JSON.parse(JSON.stringify(dropComponent));
@@ -67,10 +87,8 @@ export default app => {
grounded = true;
}
}
- // if (grounded) {
- app.rotation.y += angularVelocity.y * timeDiff;
- // }
-
+
+ // animation
glowMesh.visible = !animation;
if (!animation) {
localPlayer.avatar.modelBoneOutputs.Head.getWorldPosition(localVector);
@@ -82,6 +100,7 @@ export default app => {
if (timeSinceStart > gracePickupTime) {
// console.log('check 2');
animation = {
+ type: dropComponent.type,
startPosition: app.position.clone(),
startTime: timestamp,
endTime: timestamp + 1000,
@@ -95,37 +114,70 @@ export default app => {
const tailTimeFactorCutoff = 0.8;
const timeDiff = timestamp - animation.startTime;
const timeFactor = Math.min(Math.max(timeDiff / (animation.endTime - animation.startTime), 0), 1);
- if (timeFactor < 1) {
- if (timeFactor < tailTimeFactorCutoff) {
- const f = cubicBezier(timeFactor);
- localPlayer.avatar.modelBoneOutputs.Head.getWorldPosition(localVector)
- .add(localVector2.set(0, headOffset, 0));
- app.position.copy(animation.startPosition).lerp(localVector, f);
- } else {
- {
- const f = cubicBezier(tailTimeFactorCutoff);
- localPlayer.avatar.modelBoneOutputs.Head.getWorldPosition(localVector)
- .add(localVector2.set(0, headOffset, 0));
- app.position.copy(animation.startPosition).lerp(localVector, f);
+
+ const _handleAnimation = () => {
+ switch (animation.type) {
+ case 'minor':
+ case 'major': {
+ if (timeFactor < 1) {
+ if (timeFactor < tailTimeFactorCutoff) {
+ const f = cubicBezier(timeFactor);
+ localPlayer.avatar.modelBoneOutputs.Head.getWorldPosition(localVector)
+ .add(localVector2.set(0, headOffset, 0));
+ app.position.copy(animation.startPosition).lerp(localVector, f);
+ } else {
+ {
+ const f = cubicBezier(tailTimeFactorCutoff);
+ localPlayer.avatar.modelBoneOutputs.Head.getWorldPosition(localVector)
+ .add(localVector2.set(0, headOffset, 0));
+ app.position.copy(animation.startPosition).lerp(localVector, f);
+ }
+ {
+ const tailTimeFactor = (timeFactor - tailTimeFactorCutoff) / (1 - tailTimeFactorCutoff);
+ const f = cubicBezier2(tailTimeFactor);
+ localPlayer.avatar.modelBoneOutputs.Head.getWorldPosition(localVector)
+ .add(localVector2.set(0, bodyOffset, 0));
+ app.position.lerp(localVector, f);
+ app.scale.setScalar(1 - tailTimeFactor);
+ }
+ }
+ } else {
+ if (!pickedUp) {
+ _queueDrop();
+
+ pickedUp = true;
+ }
+ }
+ break;
}
- {
- const tailTimeFactor = (timeFactor - tailTimeFactorCutoff) / (1 - tailTimeFactorCutoff);
- const f = cubicBezier2(tailTimeFactor);
- localPlayer.avatar.modelBoneOutputs.Head.getWorldPosition(localVector)
- .add(localVector2.set(0, bodyOffset, 0));
- app.position.lerp(localVector, f);
- app.scale.setScalar(1 - tailTimeFactor);
+ case 'key': {
+ if (!pickedUp) {
+ localPlayer.addAction({
+ type: 'pickUp',
+ instanceId: app.instanceId,
+ });
+
+ const conversation = storyManager.startLocalPlayerComment('Scillia got the drop!');
+ conversation.addEventListener('close', () => {
+ localPlayer.removeAction('pickUp');
+
+ _queueDrop();
+ });
+
+ pickedUp = true;
+ }
+
+ break;
}
}
- } else {
- world.appManager.dispatchEvent(new MessageEvent('pickup', {
- data: {
- app,
- },
- }));
- world.appManager.removeApp(app);
- app.destroy();
- }
+ };
+ _handleAnimation();
+ } else {
+ // rotation
+ rotY += 0.3 * Math.PI * 2 * timeDiffS;
+ rotY = rotY % (Math.PI * 2);
+ localEuler.set(0, rotY, 0, 'YXZ');
+ app.quaternion.setFromEuler(localEuler);
}
app.updateMatrixWorld();
diff --git a/metaverse_components/mob.js b/metaverse_components/mob.js
deleted file mode 100644
index e8586ef09b..0000000000
--- a/metaverse_components/mob.js
+++ /dev/null
@@ -1,11 +0,0 @@
-import mobManager from '../mob-manager.js';
-
-export default (app, component) => {
- mobManager.addMob(app);
-
- return {
- remove() {
- mobManager.removeMob(app);
- },
- };
-};
\ No newline at end of file
diff --git a/metaverse_components/npc.js b/metaverse_components/npc.js
deleted file mode 100644
index ec54d81eea..0000000000
--- a/metaverse_components/npc.js
+++ /dev/null
@@ -1,218 +0,0 @@
-import * as THREE from 'three';
-import metaversefile from 'metaversefile';
-
-const localVector = new THREE.Vector3();
-
-export default (app, component) => {
-try {
- const {useFrame, useActivate, useLocalPlayer, useVoices, useChatManager, useLoreAIScene, useAvatarAnimations, useNpcManager, usePhysics, useCleanup} = metaversefile;
- // const scene = useScene();
- const npcManager = useNpcManager();
- const localPlayer = useLocalPlayer();
- const physics = usePhysics();
- const chatManager = useChatManager();
- const loreAIScene = useLoreAIScene();
- const voices = useVoices();
- const animations = useAvatarAnimations();
- const hurtAnimation = animations.find(a => a.isHurt);
- const hurtAnimationDuration = hurtAnimation.duration;
-
- const mode = app.getComponent('mode') ?? 'attached';
-
- if (mode === 'attached') {
- const npcName = component.name ?? 'Anon';
- const npcVoiceName = component.voice ?? 'Shining armor';
- const npcBio = component.bio ?? 'A generic avatar.';
- // const npcAvatarUrl = app.getComponent('avatarUrl') ?? `/avatars/Drake_hacker_v6_Guilty.vrm`;
- let npcWear = component.wear ?? [];
- if (!Array.isArray(npcWear)) {
- npcWear = [npcWear];
- }
-
- let live = true;
- let vrmApp = app;
- let npcPlayer = null;
- /* e.waitUntil(*/(async () => {
- // const u2 = npcAvatarUrl;
- // const m = await metaversefile.import(u2);
- // if (!live) return;
-
- // vrmApp = metaversefile.createApp({
- // name: u2,
- // });
-
- /* vrmApp.matrixWorld.copy(app.matrixWorld);
- vrmApp.matrix.copy(app.matrixWorld)
- .decompose(vrmApp.position, vrmApp.quaternion, vrmApp.scale);
- vrmApp.name = 'npc';
- vrmApp.setComponent('physics', true); */
-
- // await vrmApp.addModule(m);
- // if (!live) return;
-
- const position = vrmApp.position.clone()
- .add(new THREE.Vector3(0, 1, 0));
- const {quaternion, scale} = vrmApp;
- const newNpcPlayer = npcManager.createNpc({
- name: npcName,
- avatarApp: vrmApp,
- position,
- quaternion,
- scale,
- });
- // if (!live) return;
-
- const _setVoice = () => {
- const voice = voices.voiceEndpoints.find(v => v.name === npcVoiceName);
- if (voice) {
- newNpcPlayer.setVoiceEndpoint(voice.drive_id);
- } else {
- console.warn('unknown voice name', npcVoiceName, voices.voiceEndpoints);
- }
- };
- _setVoice();
-
- const _updateWearables = async () => {
- const wearablePromises = npcWear.map(wear => (async () => {
- const {start_url} = wear;
- const app = await metaversefile.createAppAsync({
- start_url,
- });
- // if (!live) return;
-
- newNpcPlayer.wear(app);
- })());
- await wearablePromises;
- };
- await _updateWearables();
- if (!live) return;
-
- // scene.add(vrmApp);
-
- npcPlayer = newNpcPlayer;
- })()// );
-
- app.getPhysicsObjects = () => npcPlayer ? [npcPlayer.characterController] : [];
-
- app.addEventListener('hittrackeradded', e => {
- app.hitTracker.addEventListener('hit', e => {
- if (!npcPlayer.hasAction('hurt')) {
- const newAction = {
- type: 'hurt',
- animation: 'pain_back',
- };
- npcPlayer.addAction(newAction);
-
- setTimeout(() => {
- npcPlayer.removeAction('hurt');
- }, hurtAnimationDuration * 1000);
- }
- });
- })
-
- let targetSpec = null;
- useActivate(() => {
- // console.log('activate npc');
- if (targetSpec?.object !== localPlayer) {
- targetSpec = {
- type: 'follow',
- object: localPlayer,
- };
- } else {
- targetSpec = null;
- }
- });
-
- /* console.log('got deets', {
- npcName,
- npcVoice,
- npcBio,
- npcAvatarUrl,
- }); */
-
- const character = loreAIScene.addCharacter({
- name: npcName,
- bio: npcBio,
- });
- // console.log('got character', character);
- character.addEventListener('say', e => {
- console.log('got character say', e.data);
- const {message, emote, action, object, target} = e.data;
- chatManager.addPlayerMessage(npcPlayer, message);
- if (emote === 'supersaiyan' || action === 'supersaiyan' || /supersaiyan/i.test(object) || /supersaiyan/i.test(target)) {
- const newSssAction = {
- type: 'sss',
- };
- npcPlayer.addAction(newSssAction);
- } else if (action === 'follow' || (object === 'none' && target === localPlayer.name)) { // follow player
- targetSpec = {
- type: 'follow',
- object: localPlayer,
- };
- } else if (action === 'stop') { // stop
- targetSpec = null;
- } else if (action === 'moveto' || (object !== 'none' && target === 'none')) { // move to object
- console.log('move to object', object);
- /* target = localPlayer;
- targetType = 'follow'; */
- } else if (action === 'moveto' || (object === 'none' && target !== 'none')) { // move to player
- // console.log('move to', object);
- targetSpec = {
- type: 'moveto',
- object: localPlayer,
- };
- } else if (['pickup', 'grab', 'take', 'get'].includes(action)) { // pick up object
- console.log('pickup', action, object, target);
- } else if (['use', 'activate'].includes(action)) { // use object
- console.log('use', action, object, target);
- }
- });
-
- const slowdownFactor = 0.4;
- const walkSpeed = 0.075 * slowdownFactor;
- const runSpeed = walkSpeed * 8;
- const speedDistanceRate = 0.07;
- useFrame(({timestamp, timeDiff}) => {
- if (npcPlayer && physics.getPhysicsEnabled()) {
- if (targetSpec) {
- const target = targetSpec.object;
- const v = localVector.setFromMatrixPosition(target.matrixWorld)
- .sub(npcPlayer.position);
- v.y = 0;
- const distance = v.length();
- if (targetSpec.type === 'moveto' && distance < 2) {
- targetSpec = null;
- } else {
- const speed = Math.min(Math.max(walkSpeed + ((distance - 1.5) * speedDistanceRate), 0), runSpeed);
- v.normalize()
- .multiplyScalar(speed * timeDiff);
- npcPlayer.characterPhysics.applyWasd(v);
- }
- }
-
- npcPlayer.eyeballTarget.copy(localPlayer.position);
- npcPlayer.eyeballTargetEnabled = true;
-
- npcPlayer.updatePhysics(timestamp, timeDiff);
- npcPlayer.updateAvatar(timestamp, timeDiff);
- }
- });
-
- useCleanup(() => {
- live = false;
-
- // scene.remove(vrmApp);
-
- if (npcPlayer) {
- npcManager.destroyNpc(npcPlayer);
- }
-
- loreAIScene.removeCharacter(character);
- });
- }
-
- return app;
-} catch(err) {
- console.warn(err);
-}
-};
diff --git a/metaverse_components/wear.js b/metaverse_components/wear.js
index 69ba0dc7cf..97a46d1cef 100644
--- a/metaverse_components/wear.js
+++ b/metaverse_components/wear.js
@@ -9,8 +9,23 @@ import npcManager from '../npc-manager.js';
// import {rarityColors} from '../constants.js';
const localVector = new THREE.Vector3();
-// const localVector2 = new THREE.Vector3();
+const localVector2 = new THREE.Vector3();
+const localVector3 = new THREE.Vector3();
+const localVector4 = new THREE.Vector3();
const localQuaternion = new THREE.Quaternion();
+const localQuaternion2 = new THREE.Quaternion();
+const localEuler = new THREE.Euler();
+const localMatrix = new THREE.Matrix4();
+
+//
+
+const identityVector = new THREE.Vector3();
+
+//
+
+const physicsScene = physicsManager.getScene();
+
+//
export default (app, component) => {
const {useActivate} = metaversefile;
@@ -18,25 +33,29 @@ export default (app, component) => {
let wearSpec = null;
let modelBones = null;
let appAimAnimationMixers = null;
+ let player = null;
const initialScale = app.scale.clone();
- const localPlayer = metaversefile.useLocalPlayer();
+ // const localPlayer = metaversefile.useLocalPlayer();
const wearupdate = e => {
if (e.wear) {
+ player = e.player;
+
wearSpec = app.getComponent('wear');
initialScale.copy(app.scale);
- // console.log('activate component', app, wear);
+ // console.log('wear activate', app, wearSpec, e);
if (wearSpec) {
// const {app, wearSpec} = e.data;
// console.log('got wear spec', [wearSpec.skinnedMesh, app.glb]);
+
+ const physicsObjects = app.getPhysicsObjects();
+ for (const physicsObject of physicsObjects) {
+ physicsScene.disableActor(physicsObject);
+ }
+
if (app.glb) {
- const physicsObjects = app.getPhysicsObjects();
- for (const physicsObject of physicsObjects) {
- physicsManager.disableActor(physicsObject);
- }
-
if (wearSpec.skinnedMesh) {
let skinnedMesh = null;
app.glb.scene.traverse(o => {
@@ -44,7 +63,7 @@ export default (app, component) => {
skinnedMesh = o;
}
});
- if (skinnedMesh && localPlayer.avatar) {
+ if (skinnedMesh && player.avatar) {
app.position.set(0, 0, 0);
app.quaternion.identity(); //.setFromAxisAngle(new THREE.Vector3(0, 1, 0), Math.PI);
app.scale.copy(initialScale)//.multiplyScalar(wearableScale);
@@ -152,10 +171,9 @@ export default (app, component) => {
};
app.addEventListener('wearupdate', wearupdate);
app.addEventListener('destroy', () => {
- const localPlayer = metaversefile.useLocalPlayer();
const remotePlayers = metaversefile.useRemotePlayers();
const {npcs} = npcManager;
- const players = [localPlayer]
+ const players = (player ? [player] : [])
.concat(remotePlayers)
.concat(npcs);
for (const player of players) {
@@ -172,7 +190,7 @@ export default (app, component) => {
if (wearSpec) {
const physicsObjects = app.getPhysicsObjects();
for (const physicsObject of physicsObjects) {
- physicsManager.enableActor(physicsObject);
+ physicsScene.enableActor(physicsObject);
}
app.scale.copy(initialScale);
@@ -185,33 +203,73 @@ export default (app, component) => {
const _copyBoneAttachment = spec => {
const {boneAttachment = 'hips', position, quaternion, scale} = spec;
- const boneName = Avatar.modelBoneRenames[boneAttachment];
- const bone = localPlayer.avatar.foundModelBones[boneName];
- if (bone) {
- bone.matrixWorld
- .decompose(app.position, app.quaternion, app.scale);
- if (Array.isArray(position)) {
- app.position.add(localVector.fromArray(position).applyQuaternion(app.quaternion));
- }
- if (Array.isArray(quaternion)) {
- app.quaternion.multiply(localQuaternion.fromArray(quaternion));
- }
- if (Array.isArray(scale)) {
- app.scale.multiply(localVector.fromArray(scale));
+ const boneAttachments = Array.isArray(boneAttachment) ? boneAttachment : [boneAttachment];
+
+ // lerp app's transform to average position/quaternion/scale of boneAttachments.
+ let count = 0;
+ boneAttachments.forEach((boneAttachment, i) => {
+ const boneName = Avatar.modelBoneRenames[boneAttachment];
+ const bone = player.avatar.foundModelBones[boneName];
+ if (bone) {
+ if (count === 0) {
+ bone.matrixWorld
+ .decompose(app.position, app.quaternion, app.scale);
+ count++;
+ } else {
+ bone.matrixWorld
+ .decompose(localVector, localQuaternion, localVector2);
+ const t = 1 / (count + 1);
+ app.position.lerp(localVector, t);
+ app.quaternion.slerp(localQuaternion, t);
+ app.scale.lerp(localVector2, t);
+ count++;
+ }
+ } else {
+ console.warn('invalid bone attachment', {app, boneAttachment});
}
- app.updateMatrixWorld();
- } else {
- console.warn('invalid bone attachment', {app, boneAttachment});
+ });
+
+ if (quaternion === 'upVectorHipsToPosition') {
+ const hipsPostion = localVector;
+ hipsPostion.setFromMatrixPosition(player.avatar.foundModelBones.Hips.matrixWorld);
+
+ localEuler.order = 'YXZ';
+ localEuler.setFromQuaternion(player.quaternion);
+ localEuler.x = 0;
+ localEuler.z = 0;
+ const playerQuaternion = localQuaternion2.setFromEuler(localEuler);
+
+ const eyeVector = identityVector;
+ const upVector = localVector3.copy(app.position).sub(hipsPostion).normalize();
+ const targetVector = localVector4.set(0, 0, -1);
+ targetVector.applyQuaternion(localQuaternion.setFromUnitVectors(
+ localVector.set(0, 1, 0),
+ localVector2.copy(upVector).normalize(),
+ ));
+
+ localMatrix.lookAt(eyeVector, targetVector, upVector)
+ app.quaternion.setFromRotationMatrix(localMatrix);
+ app.quaternion.multiply(playerQuaternion);
+ }
+
+ if (Array.isArray(position)) {
+ app.position.add(localVector.fromArray(position).applyQuaternion(app.quaternion));
+ }
+ if (Array.isArray(quaternion)) {
+ app.quaternion.multiply(localQuaternion.fromArray(quaternion));
+ }
+ if (Array.isArray(scale)) {
+ app.scale.multiply(localVector.fromArray(scale));
}
+ app.updateMatrixWorld();
};
const frame = metaversefile.useFrame(({timestamp, timeDiff}) => {
- // const localPlayer = metaversefile.useLocalPlayer();
- if (wearSpec && localPlayer.avatar) {
+ if (wearSpec && player.avatar) {
const {instanceId} = app;
// animations
if (app.glb) {
- const appAimAction = Array.from(localPlayer.getActionsState())
+ const appAimAction = Array.from(player.getActionsState())
.find(action => action.type === 'aim' && action.instanceId === instanceId);
const {animations} = app.glb;
@@ -249,18 +307,18 @@ export default (app, component) => {
}
// bone bindings
{
- const appUseAction = Array.from(localPlayer.getActionsState())
+ const appUseAction = Array.from(player.getActionsState())
.find(action => action.type === 'use' && action.instanceId === instanceId);
if (appUseAction?.boneAttachment && wearSpec.boneAttachment) {
_copyBoneAttachment(appUseAction);
} else {
- const appAimAction = Array.from(localPlayer.getActionsState())
+ const appAimAction = Array.from(player.getActionsState())
.find(action => action.type === 'aim' && action.instanceId === instanceId);
if (appAimAction?.boneAttachment && wearSpec.boneAttachment) {
_copyBoneAttachment(appAimAction);
} else {
if (modelBones) {
- Avatar.applyModelBoneOutputs(modelBones, localPlayer.avatar.modelBoneOutputs, localPlayer.avatar.getTopEnabled(), localPlayer.avatar.getBottomEnabled(), localPlayer.avatar.getHandEnabled(0), localPlayer.avatar.getHandEnabled(1));
+ Avatar.applyModelBoneOutputs(modelBones, player.avatar.modelBoneOutputs, player.avatar.getTopEnabled(), player.avatar.getBottomEnabled(), player.avatar.getHandEnabled(0), player.avatar.getHandEnabled(1));
modelBones.Root.updateMatrixWorld();
} else if (wearSpec.boneAttachment) {
_copyBoneAttachment(wearSpec);
diff --git a/metaverse_modules/card/index.js b/metaverse_modules/card/index.js
index afdd93ff5d..b115af42f7 100644
--- a/metaverse_modules/card/index.js
+++ b/metaverse_modules/card/index.js
@@ -1,97 +1,188 @@
import * as THREE from 'three';
+import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
// import easing from './easing.js';
import metaversefile from 'metaversefile';
-const {useApp, useFrame} = metaversefile;
+const {useApp, useFrame, useLocalPlayer, useMaterials, useCardsManager} = metaversefile;
-const cardPreviewHost = `https://card-preview.exokit.org`;
-// const cubicBezier = easing(0, 1, 0, 1);
+const dropItemSize = 0.2;
-const cardWidth = 0.063 * 3;
-const cardHeight = cardWidth / 2.5 * 3.5;
-const _loadImage = u => new Promise((accept, reject) => {
+const cardWorldWidth = 0.063 * 3;
+const cardWorldHeight = cardWorldWidth / 2.5 * 3.5;
+const width = 520;
+
+function getCardFrontTexture(appUrl) {
+ const cardsManager = useCardsManager();
+
+ const texture = new THREE.Texture();
+ (async () => {
+ const imageBitmap = await cardsManager.getCardsImage(
+ appUrl,
+ {
+ width,
+ flipY: true,
+ // signal,
+ }
+ );
+ texture.image = imageBitmap;
+ texture.needsUpdate = true;
+
+ texture.dispatchEvent({type: 'load'});
+ })();
+ return texture;
+}
+function getCardBackTexture() {
const img = new Image();
+ const texture = new THREE.Texture(img);
+
img.crossOrigin = 'Anonymous';
-
- img.src = u;
img.onload = () => {
- accept(img);
+ texture.needsUpdate = true;
+
+ texture.dispatchEvent({type: 'load'});
};
- img.onerror = reject;
-});
-const cardFrontGeometry = new THREE.PlaneBufferGeometry(cardWidth, cardHeight);
-const cardBackGeometry = cardFrontGeometry.clone()
- .applyMatrix4(
- new THREE.Matrix4().compose(
- new THREE.Vector3(0, 0, -0.001),
- new THREE.Quaternion()
- .setFromAxisAngle(new THREE.Vector3(0, 1, 0), Math.PI),
- new THREE.Vector3(1, 1, 1)
- )
- );
-const _makeCardBackMaterial = () => {
- const material = new THREE.MeshBasicMaterial({
- color: 0xFFFFFF,
- map: new THREE.Texture(),
- transparent: true,
- });
- (async () => {
- const img = await _loadImage(`${import.meta.url.replace(/(\/)[^\/]*$/, '$1')}cardback.png`);
- material.map.image = img;
- material.map.minFilter = THREE.LinearMipmapLinearFilter;
- material.map.magFilter = THREE.LinearFilter;
- material.map.encoding = THREE.sRGBEncoding;
- material.map.anisotropy = 16;
- material.map.needsUpdate = true;
- })();
- return material;
-};
-const _makeCardMesh = img => {
- const geometry = cardFrontGeometry;
- const material = new THREE.MeshBasicMaterial({
- color: 0xFFFFFF,
- map: new THREE.Texture(img),
- side: THREE.DoubleSide,
- transparent: true,
- });
- material.map.minFilter = THREE.LinearMipmapLinearFilter;
- material.map.magFilter = THREE.LinearFilter;
- material.map.encoding = THREE.sRGBEncoding;
- material.map.anisotropy = 16;
- material.map.needsUpdate = true;
- const mesh = new THREE.Mesh(geometry, material);
-
+ img.onerror = err => {
+ console.warn(err);
+ };
+ img.src = `images/cardback-01.svg`;
+
+ return texture;
+}
+const _makeCardMesh = ({
+ appUrl,
+}) => {
+ const {WebaverseShaderMaterial} = useMaterials();
+
+ // let w = 520;
+ // let h = 728;
+ let w = cardWorldWidth;
+ let h = cardWorldHeight;
+
+ h /= w;
+ w /= w;
+
+ w *= dropItemSize;
+ h *= dropItemSize;
+
+ const frontGeometry = new THREE.PlaneBufferGeometry(w, h);
+ const backGeometry = new THREE.PlaneBufferGeometry(w, h).rotateY(Math.PI);
+
+ const _setSideAttribute = (g, side) => {
+ const sides = new Int32Array(g.attributes.position.count).fill(side);
+ const sideAttribute = new THREE.BufferAttribute(sides, 1);
+ g.setAttribute('side', sideAttribute);
+ };
+ _setSideAttribute(frontGeometry, 0);
+ _setSideAttribute(backGeometry, 1);
+
+ const geometry = BufferGeometryUtils.mergeBufferGeometries([
+ frontGeometry,
+ backGeometry,
+ ]);
+
+ const frontTexture = getCardFrontTexture(appUrl);
+ {
+ const load = () => {
+ material.uniforms.uFrontTexLoaded.value = 1;
+ material.uniforms.uFrontTexLoaded.needsUpdate = true;
+ frontTexture.removeEventListener('load', load);
+ };
+ frontTexture.addEventListener('load', load);
+ }
+ const backTexture = getCardBackTexture();
{
- const geometry = cardBackGeometry;
- const material = _makeCardBackMaterial();
- const back = new THREE.Mesh(geometry, material);
- mesh.add(back);
- mesh.back = back;
+ const load = () => {
+ material.uniforms.uBackTexLoaded.value = 1;
+ material.uniforms.uBackTexLoaded.needsUpdate = true;
+ backTexture.removeEventListener('load', load);
+ };
+ backTexture.addEventListener('load', load);
}
-
- return mesh;
+
+ const material = new WebaverseShaderMaterial({
+ uniforms: {
+ uFrontTex: {
+ value: frontTexture,
+ needsUpdate: true,
+ },
+ uBackTex: {
+ value: backTexture,
+ needsUpdate: true,
+ },
+ uFrontTexLoaded: {
+ value: 0,
+ needsUpdate: true,
+ },
+ uBackTexLoaded: {
+ value: 0,
+ needsUpdate: true,
+ },
+ },
+ vertexShader: `\
+ // uniform vec4 cameraBillboardQuaternion;
+ attribute int side;
+ varying vec2 vUv;
+ flat varying int vSide;
+
+
+ /* vec3 rotate_vertex_position(vec3 position, vec4 q) {
+ return position + 2.0 * cross(q.xyz, cross(q.xyz, position) + q.w * position);
+ } */
+
+ void main() {
+ vec3 pos = position;
+
+ // pos = rotate_vertex_position(pos, cameraBillboardQuaternion);
+
+ gl_Position = projectionMatrix * modelViewMatrix * vec4(pos, 1.0);
+ vUv = uv;
+ vSide = side;
+ }
+ `,
+ fragmentShader: `\
+ uniform sampler2D uFrontTex;
+ uniform sampler2D uBackTex;
+ uniform int uFrontTexLoaded;
+ uniform int uBackTexLoaded;
+ varying vec2 vUv;
+ flat varying int vSide;
+
+ void main() {
+ vec4 diffuseColor;
+ if (vSide == 0) {
+ diffuseColor = uFrontTexLoaded == 1 ? texture2D(uFrontTex, vUv) : vec4(vec3(0.0), 1.0);
+ } else {
+ diffuseColor = uBackTexLoaded == 1 ? texture2D(uBackTex, vUv) : vec4(vec3(0.0), 1.0);
+ }
+ gl_FragColor = diffuseColor;
+ if (gl_FragColor.a < 0.1) {
+ discard;
+ }
+ }
+ `,
+ // side: THREE.DoubleSide,
+ transparent: true,
+ });
+ const itemletMesh = new THREE.Mesh(geometry, material);
+ // itemletMesh.velocity = new THREE.Vector3(0, 3, 0);
+ // itemletMesh.frustumCulled = false;
+ // itemletMesh.updateMatrixWorld();
+ return itemletMesh;
};
+
export default () => {
const app = useApp();
- let cardMesh = null;
- (async() => {
- const id = 1;
- const w = 1024;
- const ext = 'png';
- const u = `${cardPreviewHost}/?t=${id}&w=${w}&ext=${ext}`;
- const img = await _loadImage(u);
- cardMesh = _makeCardMesh(img);
- cardMesh.rotation.order = 'YXZ';
+ const appUrl = app.getComponent('appUrl');
+
+ if (appUrl) {
+ const cardMesh = _makeCardMesh({
+ appUrl,
+ });
app.add(cardMesh);
- })();
-
- useFrame(() => {
- if (cardMesh) {
- const maxTime = 2000;
- const f = (Date.now() % maxTime) / maxTime;
- cardMesh.rotation.y = f * (2*Math.PI);
- }
- });
-
+ cardMesh.updateMatrixWorld();
+ } else {
+ console.warn('card has no app url', app, new Error().stack);
+ }
+
return app;
};
\ No newline at end of file
diff --git a/metaverse_modules/comet/.metaversefile b/metaverse_modules/comet/.metaversefile
new file mode 100644
index 0000000000..6823789879
--- /dev/null
+++ b/metaverse_modules/comet/.metaversefile
@@ -0,0 +1,3 @@
+{
+ "start_url": "index.js"
+}
diff --git a/metaverse_modules/comet/index.js b/metaverse_modules/comet/index.js
new file mode 100644
index 0000000000..a76f941f75
--- /dev/null
+++ b/metaverse_modules/comet/index.js
@@ -0,0 +1,513 @@
+import * as THREE from 'three';
+import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
+import metaversefile from 'metaversefile';
+const {useApp, useFrame, useCleanup, useMaterials, useSound, useLocalPlayer, useDropManager, useDefaultModules} = metaversefile;
+
+const baseUrl = import.meta.url.replace(/(\/)[^\/\\]*$/, '$1');
+
+// const cardWidth = 0.063;
+// const cardHeight = cardWidth / 2.5 * 3.5;
+// const cardHeight = cardWidth;
+// const cardsBufferFactor = 1.1;
+// const menuWidth = cardWidth * cardsBufferFactor * 4;
+// const menuHeight = cardHeight * cardsBufferFactor * 4;
+// const menuRadius = 0.025;
+
+/* function mod(a, n) {
+ return (a % n + n) % n;
+} */
+
+const numCylinders = 3;
+const minRadius = 0.4;
+// const radiusStep = minRadius;
+const maxRadius = minRadius + minRadius * numCylinders;
+const explosionScaleFactor = 4;
+const dropItemSize = 0.2;
+const pickUpDistance = 1;
+
+const localVector = new THREE.Vector3();
+const localVector2D = new THREE.Vector2();
+const localEuler = new THREE.Euler();
+
+const zeroVector = new THREE.Vector3(0, 0, 0);
+const gravity = new THREE.Vector3(0, -9.8, 0);
+
+const makeSeamlessNoiseTexture = () => {
+ const img = new Image();
+ const texture = new THREE.Texture(img);
+ texture.wrapS = THREE.RepeatWrapping;
+ texture.wrapT = THREE.RepeatWrapping;
+ texture.minFilter = THREE.LinearFilter;
+ texture.magFilter = THREE.LinearFilter;
+
+ img.crossOrigin = 'Anonymous';
+ img.onload = () => {
+ // console.log('load image', img);
+ // document.body.appendChild(img);
+ texture.needsUpdate = true;
+ };
+ img.onerror = err => {
+ console.warn(err);
+ };
+ img.src = `${baseUrl}perlin-noise.jpg`;
+
+ return texture;
+};
+const getSeamlessNoiseTexture = (() => {
+ let noiseTexture = null;
+ return () => {
+ if (!noiseTexture) {
+ noiseTexture = makeSeamlessNoiseTexture();
+ }
+ return noiseTexture;
+ };
+})();
+
+function createShockwaveGeometry() {
+ const radius = 1;
+ const g = new THREE.SphereGeometry(
+ radius, // radius
+ 8, // widthSegments
+ 6, // heightSegments
+ 0, // phiStart
+ Math.PI * 2, // phiLength
+ 0, // thetaStart
+ Math.PI / 2, // thetaLength
+ )
+ .rotateX(Math.PI)
+ .translate(0, radius - radius/2, 0)
+ .scale(1, 2, 1);
+
+ for (let i = 0; i < g.attributes.uv.count; i++) {
+ localVector2D.fromArray(g.attributes.uv.array, i * 2);
+ localVector2D.y = 1 - localVector2D.y;
+ localVector2D.toArray(g.attributes.uv.array, i * 2);
+ }
+
+ const instances = new Float32Array(g.attributes.position.count).fill(-1);
+ g.setAttribute('instance', new THREE.BufferAttribute(instances, 1));
+
+ return g;
+}
+function createCylindersGeometry(front) {
+ const radiusTop = 1.5;
+ const radiusBottom = 1;
+ const height = 2;
+ const radialSegments = 8;
+ const heightSegments = 1;
+ const openEnded = true;
+ const baseGeometry = new THREE.CylinderGeometry(
+ radiusTop,
+ radiusBottom,
+ height,
+ radialSegments,
+ heightSegments,
+ openEnded,
+ ).translate(0, height/2, 0);
+
+ const geometries = [];
+ const _push = i => {
+ const g = baseGeometry.clone();
+ const instances = new Float32Array(g.attributes.position.count).fill(i);
+ g.setAttribute('instance', new THREE.BufferAttribute(instances, 1));
+ geometries.push(g);
+ }
+ if (!front) {
+ for (let i = 0; i < numCylinders; i++) {
+ _push(i);
+ }
+ } else {
+ for (let i = numCylinders - 1; i >= 0; i--) {
+ _push(i);
+ }
+ }
+
+ const geometry = BufferGeometryUtils.mergeBufferGeometries(geometries);
+ return geometry;
+}
+function createExplosionGeometry(front) {
+ const radius = 1;
+ const sphereGeometry = new THREE.SphereGeometry(
+ radius, // radius
+ 8, // widthSegments
+ 6, // heightSegments
+ 0, // phiStart
+ Math.PI * 2, // phiLength
+ 0, // thetaStart
+ Math.PI / 2, // thetaLength
+ );
+ const haloRadius = radius * 0.5;
+ const cylinderGeometry = new THREE.CylinderGeometry(
+ 1, // radiusTop
+ 1, // radiusBottom
+ haloRadius, // height
+ 8, // radialSegments
+ 1, // heightSegments
+ true, // openEnded
+ ).translate(0, haloRadius / 2, 0);
+
+ const geometries = [
+ cylinderGeometry,
+ sphereGeometry,
+ ];
+
+ if (!front) {
+ geometries.reverse();
+ }
+ const g = BufferGeometryUtils.mergeBufferGeometries(geometries);
+ const instances = new Float32Array(g.attributes.position.count).fill(-1);
+ g.setAttribute('instance', new THREE.BufferAttribute(instances, 1));
+ return g;
+}
+const vertexShader = `\
+precision highp float;
+precision highp int;
+
+attribute float instance;
+uniform float uTime;
+uniform sampler2D uSeamlessNoiseTexture;
+varying vec2 vUv;
+varying float vInstance;
+varying float vDistance;
+
+// #define PI 3.1415926535897932384626433832795
+
+void main() {
+ vec3 p = position;
+
+ if (instance >= 0.) {
+ float factor = mod(uTime, 1.);
+ float distance1 = ${minRadius.toFixed(8)} + instance * ${(minRadius).toFixed(8)};;
+ float distance2 = distance1 + ${minRadius.toFixed(8)};
+ float distance = distance1 * (1.0 - factor) + distance2 * factor - ${(minRadius).toFixed(8)};
+ p.xz *= distance / distance1;
+
+ float distanceFactor = (distance) / ${(maxRadius - minRadius).toFixed(8)};
+ distanceFactor = mod(distanceFactor, 1.);
+ vDistance = distanceFactor; // sin(distanceFactor * PI);
+ float vDistance2 = sin(distanceFactor * PI * 0.8);
+ p.y *= vDistance2;
+ }
+
+ vec4 mvPosition = modelViewMatrix * vec4(p, 1.0);
+ gl_Position = projectionMatrix * mvPosition;
+
+ vUv = uv;
+ vInstance = instance;
+}
+`;
+const fragmentShader = `\
+uniform float uTime;
+uniform float uOpacity;
+varying vec2 vUv;
+varying float vDistance;
+varying float vInstance;
+
+#define nsin(x) (sin(x) * 0.5 + 0.5)
+#define PI 3.1415926535897932384626433832795
+
+float rand(vec2 co){
+ return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
+}
+
+float hermite(float t)
+{
+ return t * t * (3.0 - 2.0 * t);
+}
+
+float noise(vec2 co, float frequency)
+{
+ vec2 v = vec2(co.x * frequency, co.y * frequency);
+
+ float ix1 = floor(v.x);
+ float iy1 = floor(v.y);
+ float ix2 = floor(v.x + 1.0);
+ float iy2 = floor(v.y + 1.0);
+
+ float fx = hermite(fract(v.x));
+ float fy = hermite(fract(v.y));
+
+ float fade1 = mix(rand(vec2(ix1, iy1)), rand(vec2(ix2, iy1)), fx);
+ float fade2 = mix(rand(vec2(ix1, iy2)), rand(vec2(ix2, iy2)), fx);
+
+ return mix(fade1, fade2, fy);
+}
+
+float pnoise(vec2 co, float freq, int steps, float persistence)
+{
+ float value = 0.0;
+ float ampl = 1.0;
+ float sum = 0.0;
+ for(int i=0 ; i= 0. ? 0.1 : 1.;
+
+ vec2 pos = uv;
+ pos.y -= uTime * uvSpeed;
+
+ vec4 brighterColor = vec4(1.0, 0.65, 0.1, 0.25);
+ vec4 darkerColor = vec4(1.0, 0.0, 0.15, 0.0625);
+ vec4 middleColor = mix(brighterColor, darkerColor, 0.5);
+
+ float noiseTexel = pnoise(pos, 10.0, 5, 0.5);
+
+ float firstStep = smoothstep(0.0, noiseTexel, gradient);
+ float darkerColorStep = smoothstep(0.0, noiseTexel, gradient - gradientStep);
+ float darkerColorPath = firstStep - darkerColorStep;
+ vec4 color = mix(brighterColor, darkerColor, darkerColorPath);
+
+ float middleColorStep = smoothstep(0.0, noiseTexel, gradient - 0.2 * 2.0);
+
+ color = mix(color, middleColor, darkerColorStep - middleColorStep);
+ color = mix(vec4(0.0), color, firstStep);
+ color *= 1.5;
+ fragColor = color;
+
+ fragColor.a *= (1. - vDistance) * 2. * uOpacity;
+}
+
+void main() {
+ mainImage(gl_FragColor, vUv);
+}
+
+/** SHADERDATA
+{
+ "title": "Fire shader",
+ "description": "Fire shader after @febucci",
+ "model": "nothing"
+}
+*/
+`;
+const _makeCometMesh = () => {
+ const {WebaverseShaderMaterial} = useMaterials();
+ // const localPlayer = useLocalPlayer();
+
+ // console.log('make cylinders mesh');
+
+ const object = new THREE.Object3D();
+
+ const shockwaveGeometry = createShockwaveGeometry();
+ const frontGeometry = BufferGeometryUtils.mergeBufferGeometries([
+ shockwaveGeometry,
+ createCylindersGeometry(true),
+ ]);
+ const backGeometry = BufferGeometryUtils.mergeBufferGeometries([
+ shockwaveGeometry,
+ createCylindersGeometry(false),
+ ]);
+ const explosionFrontGeometry = createExplosionGeometry(true);
+ const explosionBackGeometry = createExplosionGeometry(false);
+ const frontMaterial = new WebaverseShaderMaterial({
+ uniforms: {
+ uTime: {
+ value: 0,
+ needsUpdate: true,
+ },
+ uOpacity: {
+ value: 1,
+ needsUpdate: true,
+ },
+ uSeamlessNoiseTexture: {
+ value: getSeamlessNoiseTexture(),
+ needsUpdate: true,
+ },
+ },
+ vertexShader,
+ fragmentShader,
+ side: THREE.BackSide,
+ transparent: true,
+ });
+ const backMaterial = new WebaverseShaderMaterial({
+ uniforms: {
+ uTime: {
+ value: 0,
+ needsUpdate: true,
+ },
+ uOpacity: {
+ value: 1,
+ needsUpdate: true,
+ },
+ uSeamlessNoiseTexture: {
+ value: getSeamlessNoiseTexture(),
+ needsUpdate: true,
+ },
+ },
+ vertexShader,
+ fragmentShader,
+ side: THREE.FrontSide,
+ transparent: true,
+ });
+
+ const frontMesh = new THREE.Mesh(frontGeometry, frontMaterial);
+ object.add(frontMesh);
+ const backMesh = new THREE.Mesh(backGeometry, backMaterial);
+ object.add(backMesh);
+ const explosionFrontMesh = new THREE.Mesh(explosionFrontGeometry, frontMaterial);
+ object.add(explosionFrontMesh);
+ const explosionBackMesh = new THREE.Mesh(explosionBackGeometry, backMaterial);
+ object.add(explosionBackMesh);
+
+ let explosionStartTime = NaN;
+ let dropped = false;
+ object.update = (timestamp, timeDiff) => {
+ frontMesh.visible = false;
+ backMesh.visible = false;
+ explosionFrontMesh.visible = false;
+ explosionBackMesh.visible = false;
+
+ const timeSinceLastExplosion = timestamp - explosionStartTime;
+
+ // animate
+ if (isNaN(explosionStartTime)) {
+ object.position.y -= timeDiff * 0.01;
+ } else {
+ const scaleFactor = Math.pow(
+ Math.min(Math.max(timeSinceLastExplosion / 1000, 0), 1),
+ 0.1
+ );
+ object.scale.setScalar(scaleFactor * explosionScaleFactor);
+ }
+ object.updateMatrixWorld();
+
+ // check for collision
+ if (isNaN(explosionStartTime)) {
+ const worldPosition = localVector.setFromMatrixPosition(object.matrixWorld);
+ if (worldPosition.y >= 0) {
+ // nothing
+ } else {
+ explosionStartTime = timestamp;
+
+ if (!dropped) {
+ object.dispatchEvent({
+ type: 'drop',
+ });
+
+ dropped = true;
+ }
+ }
+ }
+
+ // check for explosion timeout
+ /* if (timeSinceLastExplosion > 1000) {
+ explosionStartTime = NaN;
+
+ object.position.y += 10;
+ object.scale.setScalar(1);
+ object.updateMatrixWorld();
+ } */
+
+ // set visibility
+ if (isNaN(explosionStartTime)) {
+ frontMesh.visible = true;
+ backMesh.visible = true;
+ } else {
+ explosionFrontMesh.visible = true;
+ explosionBackMesh.visible = true;
+ }
+
+ // update uniforms
+ const _updateUniforms = () => {
+ const maxTime = 400;
+ const f = (timestamp / maxTime) % maxTime;
+ const timeSinceLastExplosion2 = (timestamp - explosionStartTime) / 1000;
+ const opacityFactor = isNaN(explosionStartTime) ? 1 : Math.min(Math.max(1 - timeSinceLastExplosion2, 0), 1);
+
+ frontMaterial.uniforms.uTime.value = f;
+ frontMaterial.uniforms.uTime.needsUpdate = true;
+ frontMaterial.uniforms.uOpacity.value = opacityFactor;
+ frontMaterial.uniforms.uOpacity.needsUpdate = true;
+
+ backMaterial.uniforms.uTime.value = f;
+ backMaterial.uniforms.uTime.needsUpdate = true;
+ backMaterial.uniforms.uOpacity.value = opacityFactor;
+ backMaterial.uniforms.uOpacity.needsUpdate = true;
+ };
+ _updateUniforms();
+ };
+ return object;
+};
+export default () => {
+ const app = useApp();
+ const dropManager = useDropManager();
+ const {moduleUrls} = useDefaultModules();
+ // const sounds = useSound();
+
+ app.name = 'comet';
+
+ app.setComponent('renderPriority', 'lower');
+
+ const mesh = _makeCometMesh();
+
+ // const dropMeshes = [];
+ mesh.addEventListener('drop', e => {
+ /* const dropMesh = _makeDropMesh();
+ dropMesh.position.copy(worldPosition);
+ // dropMesh.position.y += 0.5;
+ // dropMesh.updateMatrixWorld();
+ dropMeshes.push(dropMesh); */
+
+ (async () => {
+ const worldPosition = localVector.setFromMatrixPosition(mesh.matrixWorld);
+ const dropApp = await dropManager.createDropApp({
+ type: 'key',
+ start_url: moduleUrls.card,
+ components: [
+ {
+ key: 'appName',
+ value: 'Silsword'
+ },
+ {
+ key: 'appUrl',
+ value: 'https://webaverse.github.io/silsword/',
+ },
+ {
+ key: 'voucher',
+ value: 'fakeVoucher',
+ },
+ ],
+ position: worldPosition.clone()
+ .add(new THREE.Vector3(0, 0.5, 0)),
+ // quaternion: app.quaternion,
+ // scale: app.scale
+ velocity: new THREE.Vector3(0, 3, 0),
+ });
+
+ // remove + add for sorting
+ const parent = app.parent;
+ parent.remove(app);
+ parent.add(app);
+ })();
+ });
+ app.add(mesh);
+ mesh.updateMatrixWorld();
+
+ useFrame(({timestamp, timeDiff}) => {
+ mesh.update(timestamp, timeDiff);
+
+ /* for (let i = 0; i < dropMeshes.length; i++) {
+ const dropMesh = dropMeshes[i];
+ dropMesh.update(timestamp, timeDiff);
+ } */
+ });
+
+ /* useCleanup(() => {
+ for (let i = 0; i < dropMeshes.length; i++) {
+ const dropMesh = dropMeshes[i];
+ dropMesh.parent.remove(dropMesh);
+ }
+ }); */
+
+ return app;
+};
\ No newline at end of file
diff --git a/metaverse_modules/firedrop/.metaversefile b/metaverse_modules/firedrop/.metaversefile
new file mode 100644
index 0000000000..6823789879
--- /dev/null
+++ b/metaverse_modules/firedrop/.metaversefile
@@ -0,0 +1,3 @@
+{
+ "start_url": "index.js"
+}
diff --git a/metaverse_modules/firedrop/index.js b/metaverse_modules/firedrop/index.js
new file mode 100644
index 0000000000..ca6c3c3dea
--- /dev/null
+++ b/metaverse_modules/firedrop/index.js
@@ -0,0 +1,84 @@
+import * as THREE from 'three';
+import metaversefile from 'metaversefile';
+const {useApp, useScene, usePhysics, useParticleSystem, useProcGen, useCleanup} = metaversefile;
+
+// const baseUrl = import.meta.url.replace(/(\/)[^\/\\]*$/, '$1');
+
+// const localVector = new THREE.Vector3();
+
+const size = 1;
+const numParticles = 128;
+const particleNames = [
+ 'Elements - Fire 114 Torch Windy loop noCT noRSZ.mov',
+ 'Elements - Fire 113 Torch Windy loop noCT noRSZ.mov',
+ 'Elements - Fire 112 Torch Calm loop noCT noRSZ.mov',
+ 'Elements - Fire 018 Torch Fireball Up Loop noCT noRSZ.mov',
+ 'Elements - Fire 008 Up Projectile Loop noCT noRSZ.mov',
+ // 'Elements - Fire 047 Up Wide loop.mov',
+];
+const downQuaternion = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(1, 0, 0), -Math.PI/2);
+
+export default e => {
+ const app = useApp();
+ const scene = useScene();
+ const physicsManager = usePhysics();
+ const particleSystemManager = useParticleSystem();
+ const procGen = useProcGen();
+ const {alea} = procGen;
+
+ app.name = 'firedrop';
+
+ const rng = alea(app.name);
+ const r = n => -n + 2 * n * rng();
+
+ let particleSystem = null;
+ const particles = [];
+ e.waitUntil((async () => {
+ {
+ const localParticleSystem = particleSystemManager.createParticleSystem({
+ particleNames,
+ size,
+ maxParticles: numParticles,
+ });
+ await localParticleSystem.waitForLoad();
+ scene.add(localParticleSystem);
+ particleSystem = localParticleSystem;
+ }
+
+ const _addParticle = (particleName, position) => {
+ const duration = 1000;
+ const loop = true;
+ const particle = particleSystem.addParticle(particleName, {
+ duration,
+ loop,
+ });
+ particle.position.copy(position);
+ particle.updateMatrixWorld();
+ particles.push(particle);
+ return particle;
+ };
+ const particleName = particleNames[Math.floor(rng() * particleNames.length)];
+ const dropParticle = _addParticle(particleName, app.position);
+
+ const result = physicsManager.raycast(dropParticle.position, downQuaternion);
+ if (result) {
+ const basePoint = new THREE.Vector3().fromArray(result.point);
+ const numExtraParticles = numParticles - 1;
+ for (let i = 0; i < numExtraParticles; i++) {
+ const particleName = particleNames[Math.floor(rng() * particleNames.length)];
+ _addParticle(
+ particleName,
+ basePoint.clone()
+ .add(new THREE.Vector3(r(3), size * 0.25, r(3)))
+ );
+ }
+ }
+ })());
+
+ useCleanup(() => {
+ scene.remove(particleSystem);
+ particleSystem.destroy();
+ });
+
+ return app;
+};
\ No newline at end of file
diff --git a/metaverse_modules/flare/.metaversefile b/metaverse_modules/flare/.metaversefile
new file mode 100644
index 0000000000..6823789879
--- /dev/null
+++ b/metaverse_modules/flare/.metaversefile
@@ -0,0 +1,3 @@
+{
+ "start_url": "index.js"
+}
diff --git a/metaverse_modules/flare/index.js b/metaverse_modules/flare/index.js
new file mode 100644
index 0000000000..14eac59dbe
--- /dev/null
+++ b/metaverse_modules/flare/index.js
@@ -0,0 +1,104 @@
+import * as THREE from 'three';
+import metaversefile from 'metaversefile';
+const {useApp, useScene, useParticleSystem, useProcGen, useLocalPlayer, useFrame} = metaversefile;
+
+// const baseUrl = import.meta.url.replace(/(\/)[^\/\\]*$/, '$1');
+
+const localVector = new THREE.Vector3();
+
+// const emptyArray = [];
+// const fnEmptyArray = () => emptyArray;
+const numParticles = 100;
+
+const particleNames = [
+ 'Elements - Explosion 003 Up noCT noRSZ.mov',
+ 'Elements - Explosion 004 Radial noCT noRSZ.mov',
+ 'Elements - Explosion 006 Up noCT noRSZ.mov',
+ 'Elements - Explosion 007 Up noCT noRSZ.mov',
+ 'Elements - Explosion 008 Up noCT noRSZ.mov',
+ 'Elements - Explosion 009 Up MIX noCT noRSZ.mov',
+ 'Elements - Explosion 010 Hit Radial MIX noCT noRSZ.mov',
+ 'Elements - Explosion 011 Hit Radial noCT noRSZ.mov',
+ 'Elements - Explosion 012 Up MIX noCT noRSZ.mov',
+ 'Elements - Explosion 013 Shot Hit Right MIX noCT noRSZ.mov',
+ 'Elements - Explosion 013 Up MIX noCT noRSZ.mov',
+ 'Elements - Explosion 015 Up MIX noCT noRSZ.mov',
+ 'Elements - Explosion 017 Radial MIX noCT noRSZ.mov',
+ 'Elements - Explosion 018 Up MIX noCT noRSZ.mov',
+];
+
+export default e => {
+ const app = useApp();
+ const scene = useScene();
+ const particleSystemManager = useParticleSystem();
+ const procGen = useProcGen();
+ const {alea} = procGen;
+
+ app.name = 'flare';
+
+ class ParticlePlayer extends THREE.Object3D {
+ constructor(particleSystem) {
+ super();
+
+ this.particleSystem = particleSystem;
+
+ this.timeout = null;
+ this.particles = [];
+
+ const now = performance.now()
+ this.lastRoundTimestamp = now;
+ }
+ update(timestamp) {
+ const timeSinceLastRound = timestamp - this.lastRoundTimestamp;
+ const roundTime = 3000;
+
+ if (timeSinceLastRound > roundTime) {
+ for (const particle of this.particles) {
+ particle.destroy();
+ }
+ this.particles.length = 0;
+ }
+ if (this.particles.length === 0) {
+ const localPlayer = useLocalPlayer();
+ // const timeDiff = timestamp - this.lastParticleTimestamp;
+
+ const rng = alea('lol');
+ const r = n => -n + rng() * n * 2;
+ for (let i = 0; i < numParticles; i++) {
+ const particleName = particleNames[Math.floor(rng() * particleNames.length)];
+ const duration = 2000;
+ const particle = this.particleSystem.addParticle(particleName, {
+ duration,
+ // loop: false,
+ });
+ particle.position.copy(localPlayer.position)
+ .add(localVector.set(r(1), r(1), r(1)));
+ this.particles.push(particle);
+ }
+
+ this.lastRoundTimestamp = timestamp;
+ }
+ }
+ }
+
+ let particleSystem = null;
+ let particlePlayer = null;
+ ((async () => {
+ particleSystem = particleSystemManager.createParticleSystem({
+ particleNames,
+ maxParticles: numParticles,
+ });
+ await particleSystem.waitForLoad();
+
+ scene.add(particleSystem);
+ particleSystem.updateMatrixWorld();
+
+ particlePlayer = new ParticlePlayer(particleSystem);
+ })());
+
+ useFrame(({timestamp, timeDiff}) => {
+ particlePlayer && particlePlayer.update(timestamp);
+ });
+
+ return app;
+};
\ No newline at end of file
diff --git a/metaverse_modules/land/.metaversefile b/metaverse_modules/land/.metaversefile
new file mode 100644
index 0000000000..ac997433c0
--- /dev/null
+++ b/metaverse_modules/land/.metaversefile
@@ -0,0 +1,4 @@
+{
+ "name": "land",
+ "start_url": "index.js"
+}
diff --git a/metaverse_modules/land/.nojekyll b/metaverse_modules/land/.nojekyll
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/metaverse_modules/land/index.js b/metaverse_modules/land/index.js
new file mode 100644
index 0000000000..15f146fe84
--- /dev/null
+++ b/metaverse_modules/land/index.js
@@ -0,0 +1,161 @@
+// import * as THREE from 'three';
+import metaversefile from 'metaversefile';
+const {useApp, useCleanup} = metaversefile;
+
+export default e => {
+ const app = useApp();
+
+ app.name = 'land';
+
+ const landApps = [
+ {
+ "start_url": "https://webaverse.github.io/dual-contouring-terrain/"
+ },
+ /* {
+ "start_url": "https://webaverse.github.io/silk-grass/"
+ },
+ {
+ "start_url": "https://webaverse.github.io/plants/"
+ },
+ {
+ "start_url": "/metaverse_modules/spawner/",
+ "components": [
+ {
+ "key": "appUrls",
+ "value": [
+ "../../ghost/",
+ "../../silkworm-biter/",
+ "../../silkworm-bloater/",
+ "../../silkworm-queen/",
+ "../../silkworm-runner/",
+ "../../silkworm-slasher/"
+ ],
+ },
+ ],
+ }, */
+ ];
+ const passComponents = [];
+ const seed = app.getComponent('seed');
+ const clipRange = app.getComponent('clipRange');
+ const physicsInstance = app.getComponent('physicsInstance');
+ const wait = app.getComponent('wait');
+ const debug = app.getComponent('debug');
+
+ const renderPosition = app.getComponent('renderPosition');
+ if (renderPosition !== undefined) {
+ passComponents.push({
+ "key": "renderPosition",
+ "value": renderPosition,
+ });
+ }
+ const minLodRange = app.getComponent('minLodRange');
+ if (minLodRange !== undefined) {
+ passComponents.push({
+ "key": "minLodRange",
+ "value": minLodRange,
+ });
+ }
+ const lods = app.getComponent('lods');
+ if (lods !== undefined) {
+ passComponents.push({
+ "key": "lods",
+ "value": lods,
+ });
+ }
+ if (seed !== undefined) {
+ passComponents.push({
+ "key": "seed",
+ "value": seed,
+ });
+ }
+ if (clipRange !== undefined) {
+ passComponents.push({
+ "key": "clipRange",
+ "value": clipRange,
+ });
+ }
+ if (physicsInstance !== undefined) {
+ passComponents.push({
+ "key": "physicsInstance",
+ "value": physicsInstance,
+ });
+ }
+ if (wait !== undefined) {
+ passComponents.push({
+ "key": "wait",
+ "value": wait,
+ });
+ }
+ if (debug !== undefined) {
+ passComponents.push({
+ "key": "debug",
+ "value": debug,
+ });
+ }
+
+ app.addEventListener('componentsupdate', e => {
+ const {keys} = e;
+ const components = {};
+ for (const key of keys) {
+ components[key] = app.getComponent(key);
+ }
+
+ for (const subApp of subApps) {
+ subApp.setComponents(components);
+ }
+ });
+
+ const subApps = [];
+ const loadPromise = (async () => {
+ await Promise.all(landApps.map(async spec => {
+ const {start_url, components} = spec;
+ const components2 = (components ?? []).concat(passComponents);
+
+ const keys = [];
+ const componentsupdate = (e) => {
+ keys.push(...e.keys);
+ };
+ app.addEventListener('componentsupdate', componentsupdate);
+
+ const subApp = await metaversefile.createAppAsync({
+ start_url,
+ parent: app,
+ components: components2,
+ });
+ subApps.push(subApp);
+
+ app.removeEventListener('componentsupdate', componentsupdate);
+ for (const key of keys) {
+ subApp.setComponent(key, app.getComponent(key));
+ }
+ }));
+ })();
+ if (wait) {
+ e.waitUntil(loadPromise);
+ }
+
+ app.getPhysicsObjects = () => {
+ const result = [];
+ for (const subApp of subApps) {
+ const physicsObjects = subApp.getPhysicsObjects();
+ result.push(...physicsObjects);
+ }
+ return result;
+ };
+ app.getChunkForPhysicsObject = physicsObject => {
+ for (const subApp of subApps) {
+ if (subApp.getChunkForPhysicsObject) {
+ return subApp.getChunkForPhysicsObject(physicsObject);
+ }
+ }
+ return null;
+ }
+
+ useCleanup(() => {
+ for (const subApp of subApps) {
+ subApp.destroy();
+ }
+ });
+
+ return app;
+};
\ No newline at end of file
diff --git a/metaverse_modules/limit/.metaversefile b/metaverse_modules/limit/.metaversefile
new file mode 100644
index 0000000000..6823789879
--- /dev/null
+++ b/metaverse_modules/limit/.metaversefile
@@ -0,0 +1,3 @@
+{
+ "start_url": "index.js"
+}
diff --git a/metaverse_modules/limit/index.js b/metaverse_modules/limit/index.js
new file mode 100644
index 0000000000..4dc4a30049
--- /dev/null
+++ b/metaverse_modules/limit/index.js
@@ -0,0 +1,289 @@
+import * as THREE from 'three';
+import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
+import metaversefile from 'metaversefile';
+const {useApp, useFrame, useMaterials, useLocalPlayer} = metaversefile;
+
+// const cardWidth = 0.063;
+// const cardHeight = cardWidth / 2.5 * 3.5;
+// const cardHeight = cardWidth;
+// const cardsBufferFactor = 1.1;
+// const menuWidth = cardWidth * cardsBufferFactor * 4;
+// const menuHeight = cardHeight * cardsBufferFactor * 4;
+// const menuRadius = 0.025;
+
+/* function mod(a, n) {
+ return (a % n + n) % n;
+} */
+
+const numCylinders = 3;
+const minRadius = 0.4;
+const radiusStep = minRadius;
+const maxRadius = minRadius + minRadius * numCylinders;
+
+function createCylindersGeometry(front) {
+ const radiusTop = 1.5;
+ const radiusBottom = 1;
+ const height = 2;
+ const radialSegments = 8;
+ const heightSegments = 1;
+ const openEnded = true;
+ const baseGeometry = new THREE.CylinderGeometry(
+ radiusTop,
+ radiusBottom,
+ height,
+ radialSegments,
+ heightSegments,
+ openEnded,
+ ).translate(0, height/2, 0);
+
+ const geometries = [];
+ const _push = i => {
+ const radius = minRadius + i * radiusStep;
+ const g = baseGeometry.clone();
+ g.scale(radius, 1, radius);
+ const instances = new Float32Array(g.attributes.position.count).fill(i);
+ g.setAttribute('instance', new THREE.BufferAttribute(instances, 1));
+ geometries.push(g);
+ }
+ if (!front) {
+ for (let i = 0; i < numCylinders; i++) {
+ _push(i);
+ }
+ } else {
+ for (let i = numCylinders - 1; i >= 0; i--) {
+ _push(i);
+ }
+ }
+
+ const geometry = BufferGeometryUtils.mergeBufferGeometries(geometries);
+ return geometry;
+};
+const vertexShader = `\
+precision highp float;
+precision highp int;
+
+attribute float instance;
+uniform float uTime;
+// uniform vec4 uBoundingBox;
+varying vec2 vUv;
+varying float vInstance;
+varying float vDistance;
+// varying vec3 vNormal;
+// varying float vFactor;
+
+// #define PI 3.1415926535897932384626433832795
+
+void main() {
+ vec3 p = position;
+ float factor = mod(uTime, 1.);
+ // float distance1 = length(p.xz);
+ float distance1 = ${minRadius.toFixed(8)} + instance * ${(minRadius).toFixed(8)};;
+ float distance2 = distance1 + ${minRadius.toFixed(8)};
+ float distance = distance1 * (1.0 - factor) + distance2 * factor - ${(minRadius).toFixed(8)};
+ p.xz *= distance / distance1;
+
+ float distanceFactor = (distance) / ${(maxRadius - minRadius).toFixed(8)};
+ distanceFactor = mod(distanceFactor, 1.);
+ vDistance = distanceFactor; // sin(distanceFactor * PI);
+ float vDistance2 = sin(distanceFactor * PI * 0.8);
+ p.y *= vDistance2;
+
+ /* if (position.y > 1.) {
+ p.xz *= 1.5;
+ } */
+
+ vec4 mvPosition = modelViewMatrix * vec4(p, 1.0);
+ gl_Position = projectionMatrix * mvPosition;
+
+ vUv = uv;
+ vInstance = instance;
+}
+`;
+const fragmentShader = `\
+uniform float uTime;
+varying vec2 vUv;
+varying float vDistance;
+varying float vInstance;
+
+#define nsin(x) (sin(x) * 0.5 + 0.5)
+#define PI 3.1415926535897932384626433832795
+
+float cnoise(vec2 uv) {
+ const vec4 noise = vec4(0.0, 1.2, 0.5, 1.0);
+ const vec4 aurora_color_b = vec4(0.0, 0.4, 0.6, 1.0);
+
+ float f = 200.0;
+
+ float t =
+ nsin(-uTime + uv.x * f + vInstance * PI * .2) * 0.075 +
+ nsin(uTime + uv.x * distance(uv.x, 0.5) * f + vInstance * PI * .2) * 0.3 +
+ nsin(uTime + uv.x * distance(uv.x, 0.) * f * 0.25 + 100. + vInstance * PI * .2) * 0.3 +
+ nsin(uTime + uv.x * distance(uv.x, 1.) * f * 0.25 + 200. + vInstance * PI * .2) * 0.3 +
+ nsin(uTime + uv.x * distance(uv.x, 0.5) * f * 2. + 300. + vInstance * PI * .2) * -0.2;
+ return t;
+}
+
+
+float rand(vec2 co){
+ return fract(sin(dot(co.xy ,vec2(12.9898,78.233))) * 43758.5453);
+}
+
+float hermite(float t)
+{
+ return t * t * (3.0 - 2.0 * t);
+}
+
+float noise(vec2 co, float frequency)
+{
+ vec2 v = vec2(co.x * frequency, co.y * frequency);
+
+ float ix1 = floor(v.x);
+ float iy1 = floor(v.y);
+ float ix2 = floor(v.x + 1.0);
+ float iy2 = floor(v.y + 1.0);
+
+ float fx = hermite(fract(v.x));
+ float fy = hermite(fract(v.y));
+
+ float fade1 = mix(rand(vec2(ix1, iy1)), rand(vec2(ix2, iy1)), fx);
+ float fade2 = mix(rand(vec2(ix1, iy2)), rand(vec2(ix2, iy2)), fx);
+
+ return mix(fade1, fade2, fy);
+}
+
+float pnoise(vec2 co, float freq, int steps, float persistence)
+{
+ float value = 0.0;
+ float ampl = 1.0;
+ float sum = 0.0;
+ for(int i=0 ; i {
+ const {WebaverseShaderMaterial} = useMaterials();
+ const localPlayer = useLocalPlayer();
+
+ // console.log('make cylinders mesh');
+
+ const object = new THREE.Object3D();
+
+ const frontGeometry = createCylindersGeometry(true);
+ const backGeometry = createCylindersGeometry(false);
+ const frontMaterial = new WebaverseShaderMaterial({
+ uniforms: {
+ uTime: {
+ type: 'f',
+ value: 0,
+ needsUpdate: true,
+ },
+ },
+ vertexShader,
+ fragmentShader,
+ side: THREE.BackSide,
+ transparent: true,
+ });
+ const backMaterial = new WebaverseShaderMaterial({
+ uniforms: {
+ uTime: {
+ type: 'f',
+ value: 0,
+ needsUpdate: true,
+ },
+ },
+ vertexShader,
+ fragmentShader,
+ side: THREE.FrontSide,
+ transparent: true,
+ });
+ const frontMesh = new THREE.Mesh(frontGeometry, frontMaterial);
+ object.add(frontMesh);
+
+ const backMesh = new THREE.Mesh(backGeometry, backMaterial);
+ object.add(backMesh);
+
+ object.update = (timestamp, timeDiff) => {
+ frontMesh.visible = false;
+ backMesh.visible = false;
+
+ if (localPlayer.avatar) {
+ const maxTime = 400;
+ const f = (timestamp / maxTime) % maxTime;
+
+ const Root = localPlayer.avatar.modelBones.Root;
+ object.position.setFromMatrixPosition(Root.matrixWorld);
+ object.updateMatrixWorld();
+
+ frontMesh.visible = true;
+ backMesh.visible = true;
+
+ frontMaterial.uniforms.uTime.value = f;
+ frontMaterial.uniforms.uTime.needsUpdate = true;
+ backMaterial.uniforms.uTime.value = f;
+ backMaterial.uniforms.uTime.needsUpdate = true;
+ }
+ };
+ return object;
+};
+export default () => {
+ const app = useApp();
+ app.setComponent('renderPriority', 'lower');
+
+ const mesh = _makeCylindersMesh();
+ app.add(mesh);
+ mesh.updateMatrixWorld();
+
+ useFrame(({timestamp, timeDiff}) => {
+ mesh.update(timestamp, timeDiff);
+ });
+
+ return app;
+};
\ No newline at end of file
diff --git a/metaverse_modules/magic/.metaversefile b/metaverse_modules/magic/.metaversefile
new file mode 100644
index 0000000000..6823789879
--- /dev/null
+++ b/metaverse_modules/magic/.metaversefile
@@ -0,0 +1,3 @@
+{
+ "start_url": "index.js"
+}
diff --git a/metaverse_modules/magic/index.js b/metaverse_modules/magic/index.js
new file mode 100644
index 0000000000..301607a26f
--- /dev/null
+++ b/metaverse_modules/magic/index.js
@@ -0,0 +1,270 @@
+import * as THREE from 'three';
+import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
+import metaversefile from 'metaversefile';
+const {useApp, useFrame, useMaterials, useLocalPlayer} = metaversefile;
+
+// const cardWidth = 0.063;
+// const cardHeight = cardWidth / 2.5 * 3.5;
+// const cardHeight = cardWidth;
+// const cardsBufferFactor = 1.1;
+// const menuWidth = cardWidth * cardsBufferFactor * 4;
+// const menuHeight = cardHeight * cardsBufferFactor * 4;
+// const menuRadius = 0.025;
+
+/* function mod(a, n) {
+ return (a % n + n) % n;
+} */
+
+const numCylinders = 5;
+const minRadius = 0.2;
+const radiusStep = minRadius;
+const maxRadius = minRadius + minRadius * numCylinders;
+
+function createCylindersGeometry(front) {
+ const radiusTop = 1;
+ const radiusBottom = 1;
+ const height = 1.25;
+ const radialSegments = 8;
+ const heightSegments = 1;
+ const openEnded = true;
+ const baseGeometry = new THREE.CylinderGeometry(
+ radiusTop,
+ radiusBottom,
+ height,
+ radialSegments,
+ heightSegments,
+ openEnded,
+ ).translate(0, height/2, 0);
+
+ const geometries = [];
+ const _push = i => {
+ const radius = minRadius + i * radiusStep;
+ const g = baseGeometry.clone();
+ g.scale(radius, 1, radius);
+ const instances = new Float32Array(g.attributes.position.count).fill(i);
+ g.setAttribute('instance', new THREE.BufferAttribute(instances, 1));
+ geometries.push(g);
+ }
+ if (!front) {
+ for (let i = 0; i < numCylinders; i++) {
+ _push(i);
+ }
+ } else {
+ for (let i = numCylinders - 1; i >= 0; i--) {
+ _push(i);
+ }
+ }
+
+ const geometry = BufferGeometryUtils.mergeBufferGeometries(geometries);
+ return geometry;
+};
+const vertexShader = `\
+precision highp float;
+precision highp int;
+
+attribute float instance;
+uniform float uTime;
+// uniform vec4 uBoundingBox;
+varying vec2 vUv;
+varying float vInstance;
+varying float vDistance;
+// varying vec3 vNormal;
+// varying float vFactor;
+
+// #define PI 3.1415926535897932384626433832795
+
+void main() {
+ vec3 p = position;
+ float factor = mod(uTime, 1.);
+ float distance1 = length(vec2(p.xz));
+ float distance2 = distance1 + ${minRadius.toFixed(8)};
+ float distance = distance1 * (1.0 - factor) + distance2 * factor;
+ p.xz *= distance / distance1;
+
+ float distanceFactor = (distance - ${(minRadius).toFixed(8)}) / ${(maxRadius - minRadius).toFixed(8)};
+ vDistance = sin(distanceFactor * PI);
+ p.y *= vDistance;
+
+ vec4 mvPosition = modelViewMatrix * vec4(p, 1.0);
+ gl_Position = projectionMatrix * mvPosition;
+
+ vUv = uv;
+ vInstance = instance;
+}
+`;
+const fragmentShader = `\
+precision highp float;
+precision highp int;
+
+#define PI 3.1415926535897932384626433832795
+
+// uniform vec4 uBoundingBox;
+uniform float uTime;
+// uniform float uTimeCubic;
+varying vec2 vUv;
+// varying float vF;
+varying float vInstance;
+varying float vDistance;
+// varying vec3 vNormal;
+
+vec3 hueShift( vec3 color, float hueAdjust ){
+ const vec3 kRGBToYPrime = vec3 (0.299, 0.587, 0.114);
+ const vec3 kRGBToI = vec3 (0.596, -0.275, -0.321);
+ const vec3 kRGBToQ = vec3 (0.212, -0.523, 0.311);
+
+ const vec3 kYIQToR = vec3 (1.0, 0.956, 0.621);
+ const vec3 kYIQToG = vec3 (1.0, -0.272, -0.647);
+ const vec3 kYIQToB = vec3 (1.0, -1.107, 1.704);
+
+ float YPrime = dot (color, kRGBToYPrime);
+ float I = dot (color, kRGBToI);
+ float Q = dot (color, kRGBToQ);
+ float hue = atan (Q, I);
+ float chroma = sqrt (I * I + Q * Q);
+
+ hue += hueAdjust;
+
+ Q = chroma * sin (hue);
+ I = chroma * cos (hue);
+
+ vec3 yIQ = vec3 (YPrime, I, Q);
+
+ return vec3( dot (yIQ, kYIQToR), dot (yIQ, kYIQToG), dot (yIQ, kYIQToB) );
+}
+
+float rand(float n){return fract(sin(n) * 43758.5453123);}
+
+#define nsin(x) (sin(x) * 0.5 + 0.5)
+
+void draw_auroras(inout vec4 color, vec2 uv) {
+ color = vec4(0.0);
+
+ const vec4 aurora_color_a = vec4(0.0, 1.2, 0.5, 1.0);
+ const vec4 aurora_color_b = vec4(0.0, 0.4, 0.6, 1.0);
+
+ float f = 200.0;
+
+ float factor = uTime; // mod(uTime, 1.);
+ float t = -1.5 +
+ nsin(-factor + uv.x * f) * 0.075 +
+ nsin(factor + uv.x * distance(uv.x, 0.5) * f) * 0.3 +
+ nsin(factor + uv.x * distance(uv.x, 0.) * f * 0.25 + 100.) * 0.3 +
+ nsin(factor + uv.x * distance(uv.x, 1.) * f * 0.25 + 200.) * 0.3 +
+ nsin(factor + uv.x * distance(uv.x, 0.5) * f * 2. + 300.) * -0.2;
+ // t += uv.y;
+ // t = pow(t, 0.5);
+ t = 1.0 - smoothstep(1.0 - uv.y - 4.0, 1.0 - uv.y * 2.0, t);
+ // t = pow(t, 2.);
+
+ vec4 final_color = mix(aurora_color_a, aurora_color_b, clamp(uv.y * t, 0.0, 1.0));
+ final_color += final_color * final_color;
+ color += final_color * t * (t + 0.5) * 0.75;
+}
+
+void main() {
+ vec3 c1 = vec3(1., 1., 0.195);
+ vec3 c2 = vec3(53./255., 254./255., 52./255.);
+
+ float factor = mod(uTime, 1.);
+ float lerpInstance = vInstance + factor;
+ float dfa = (1. - lerpInstance/${numCylinders.toFixed(8)});
+ float dfb = (1. - lerpInstance/${(numCylinders - 1).toFixed(8)});
+
+ float radiusFactor2 = vInstance - floor(uTime);
+ // float radiusFactor = (lerpInstance + 1.) / ${numCylinders.toFixed(8)};
+ // vec3 c = mix(c1, c2, radiusFactor);
+
+ vec2 uv = vUv;
+ // uv.y /= vDistance;
+ // uv.y = min(max(uv.y, 0.), 1.);
+ uv.x = mod(uv.x + rand(radiusFactor2), 1.);
+ draw_auroras(gl_FragColor, uv);
+ gl_FragColor.a *= dfa;
+
+ /* float c = vUv.y > 0.9 ? 1. : 0.;
+ gl_FragColor.r = c;
+ gl_FragColor.a = c;
+ if (gl_FragColor.a <= 0.05) {
+ discard;
+ } */
+}
+`;
+const _makeCylindersMesh = () => {
+ const {WebaverseShaderMaterial} = useMaterials();
+ const localPlayer = useLocalPlayer();
+
+ // console.log('make cylinders mesh');
+
+ const object = new THREE.Object3D();
+
+ const frontGeometry = createCylindersGeometry(true);
+ const backGeometry = createCylindersGeometry(false);
+ const frontMaterial = new WebaverseShaderMaterial({
+ uniforms: {
+ uTime: {
+ type: 'f',
+ value: 0,
+ needsUpdate: true,
+ },
+ },
+ vertexShader,
+ fragmentShader,
+ side: THREE.BackSide,
+ transparent: true,
+ });
+ const backMaterial = new WebaverseShaderMaterial({
+ uniforms: {
+ uTime: {
+ type: 'f',
+ value: 0,
+ needsUpdate: true,
+ },
+ },
+ vertexShader,
+ fragmentShader,
+ side: THREE.FrontSide,
+ transparent: true,
+ });
+ const frontMesh = new THREE.Mesh(frontGeometry, frontMaterial);
+ object.add(frontMesh);
+
+ const backMesh = new THREE.Mesh(backGeometry, backMaterial);
+ object.add(backMesh);
+
+ object.update = (timestamp, timeDiff) => {
+ frontMesh.visible = false;
+ backMesh.visible = false;
+
+ if (localPlayer.avatar) {
+ const maxTime = 150;
+ const f = (timestamp / maxTime) % 1000;
+
+ const Root = localPlayer.avatar.modelBones.Root;
+ object.position.setFromMatrixPosition(Root.matrixWorld);
+ object.updateMatrixWorld();
+
+ frontMesh.visible = true;
+ backMesh.visible = true;
+
+ frontMaterial.uniforms.uTime.value = f;
+ frontMaterial.uniforms.uTime.needsUpdate = true;
+ backMaterial.uniforms.uTime.value = f;
+ backMaterial.uniforms.uTime.needsUpdate = true;
+ }
+ };
+ return object;
+};
+export default () => {
+ const app = useApp();
+ app.setComponent('renderPriority', 'lowest');
+
+ const mesh = _makeCylindersMesh();
+ app.add(mesh);
+ mesh.updateMatrixWorld();
+
+ useFrame(({timestamp, timeDiff}) => {
+ mesh.update(timestamp, timeDiff);
+ });
+
+ return app;
+};
\ No newline at end of file
diff --git a/metaverse_modules/mesh-lod-item/.metaversefile b/metaverse_modules/mesh-lod-item/.metaversefile
new file mode 100644
index 0000000000..6823789879
--- /dev/null
+++ b/metaverse_modules/mesh-lod-item/.metaversefile
@@ -0,0 +1,3 @@
+{
+ "start_url": "index.js"
+}
diff --git a/metaverse_modules/mesh-lod-item/.nojekyll b/metaverse_modules/mesh-lod-item/.nojekyll
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/metaverse_modules/mesh-lod-item/index.js b/metaverse_modules/mesh-lod-item/index.js
new file mode 100644
index 0000000000..529c11aafb
--- /dev/null
+++ b/metaverse_modules/mesh-lod-item/index.js
@@ -0,0 +1,125 @@
+import * as THREE from 'three';
+import metaversefile from 'metaversefile';
+const {useApp, useFrame, usePhysics, useWear, useMeshLodder, useCleanup, useDefaultModules, addTrackedApp} = metaversefile;
+
+const localVector = new THREE.Vector3();
+const localVector2 = new THREE.Vector3();
+const localQuaternion = new THREE.Quaternion();
+const localMatrix = new THREE.Matrix4();
+
+const r = () => (-0.5+Math.random())*2;
+
+const _copyTransform = (dst, src) => {
+ dst.position.copy(src.position);
+ dst.quaternion.copy(src.quaternion);
+ dst.scale.copy(src.scale);
+ dst.matrix.copy(src.matrix);
+ dst.matrixWorld.copy(src.matrixWorld);
+};
+
+export default () => {
+ const app = useApp();
+ const physicsManager = usePhysics();
+ const meshLodManager = useMeshLodder();
+ const {moduleUrls} = useDefaultModules();
+
+ app.name = 'mesh-lod-item';
+
+ const meshLodderId = app.getComponent('meshLodderId');
+ const physicsId = app.getComponent('physicsId');
+
+ const meshLodder = meshLodManager.getMeshLodder(meshLodderId);
+
+ let itemDiceMesh = null;
+ {
+ itemDiceMesh = meshLodder.cloneItemDiceMesh(physicsId);
+ app.add(itemDiceMesh);
+ itemDiceMesh.updateMatrixWorld();
+ }
+
+ let itemMesh = null;
+ const physicsObjects = [];
+ {
+ itemMesh = meshLodder.cloneItemMesh(physicsId);
+ itemMesh.position.set(0, 0, 0);
+ itemMesh.quaternion.identity();
+ itemMesh.scale.set(1, 1, 1);
+
+ app.add(itemMesh);
+ itemMesh.updateMatrixWorld();
+ }
+ {
+ const physicsObject = meshLodder.clonePhysicsObject(physicsId);
+ physicsObjects.push(physicsObject);
+ }
+
+ useFrame(() => {
+ if (!wearing) {
+ const physicsObject = physicsObjects[0];
+ itemMesh.position.copy(physicsObject.position);
+ itemMesh.quaternion.copy(physicsObject.quaternion);
+ itemMesh.scale.copy(physicsObject.scale);
+ itemMesh.matrix.copy(physicsObject.matrix);
+ itemMesh.matrixWorld.copy(physicsObject.matrixWorld);
+ itemMesh.matrix
+ .premultiply(
+ localMatrix.copy(app.matrixWorld).invert()
+ )
+ .decompose(itemMesh.position, itemMesh.quaternion, itemMesh.scale);
+
+ _copyTransform(itemDiceMesh, itemMesh);
+ } else {
+ itemMesh.position.set(0, 0, 0);
+ itemMesh.quaternion.identity();
+ itemMesh.scale.set(1, 1, 1);
+ itemMesh.updateMatrixWorld();
+
+ _copyTransform(itemDiceMesh, itemMesh);
+ }
+ });
+
+ let wearing = false;
+ useWear(e => {
+ wearing = e.wear;
+ });
+
+ app.addEventListener('die', async () => {
+ const numSilks = Math.floor(1 + Math.random() * 6);
+ const promises = [];
+ for (let i = 0; i < numSilks; i++) {
+ const components = [
+ {
+ key: 'drop',
+ value: {
+ velocity: new THREE.Vector3(r(), 1+Math.random(), r())
+ .normalize()
+ .multiplyScalar(5)
+ .toArray(),
+ angularVelocity: new THREE.Vector3(0, 0.001, 0)
+ .toArray(),
+ },
+ },
+ ];
+
+ const p = addTrackedApp(
+ moduleUrls.silk,
+ localVector.setFromMatrixPosition(itemMesh.matrixWorld),
+ localQuaternion.identity(),
+ localVector2.set(1, 1, 1),
+ components
+ );
+ promises.push(p);
+ }
+ await Promise.all(promises);
+ });
+
+ useCleanup(() => {
+ for (const physicsObject of physicsObjects) {
+ physicsManager.removeGeometry(physicsObject);
+ }
+ });
+
+ app.getPhysicsObjects = () => physicsObjects;
+
+ return app;
+};
\ No newline at end of file
diff --git a/metaverse_modules/silk/index.js b/metaverse_modules/silk/index.js
index 43560596b3..2c359c1321 100644
--- a/metaverse_modules/silk/index.js
+++ b/metaverse_modules/silk/index.js
@@ -9,6 +9,8 @@ const simplex = new Simplex('lol');
export default () => {
const app = useApp();
+ app.name = 'Silk';
+
const silkMesh = new THREE.Mesh(new THREE.BoxBufferGeometry(0.1, 0.05, 0.1, 10, 10, 10), new THREE.MeshNormalMaterial());
const defaultScale = new THREE.Vector3(1, 0.3, 1).multiplyScalar(0.5);
silkMesh.scale.copy(defaultScale);
diff --git a/metaverse_modules/silks/.metaversefile b/metaverse_modules/silks/.metaversefile
new file mode 100644
index 0000000000..6823789879
--- /dev/null
+++ b/metaverse_modules/silks/.metaversefile
@@ -0,0 +1,3 @@
+{
+ "start_url": "index.js"
+}
diff --git a/metaverse_modules/silks/index.js b/metaverse_modules/silks/index.js
new file mode 100644
index 0000000000..d85cefae55
--- /dev/null
+++ b/metaverse_modules/silks/index.js
@@ -0,0 +1,279 @@
+import * as THREE from 'three';
+import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
+import metaversefile from 'metaversefile';
+const {useFrame, useMaterials, useLocalPlayer, useMathUtils} = metaversefile;
+
+const upVector = new THREE.Vector3(0, 1, 0);
+
+const radiusTop = 0.005;
+const radiusBottom = radiusTop;
+const playerCenterRadius = 0.3;
+// const height = 1;
+const radialSegments = 8;
+const heightSegments = 16;
+const openEnded = true;
+const segmentLength = 0.05;
+const verticesPerHeightSegment = radialSegments + 1;
+const verticesPerPart = verticesPerHeightSegment * (heightSegments + 1);
+const numPointSets = 2;
+
+// const localVector2D = new THREE.Vector2();
+
+let lastPartPositions = Array(numPointSets);
+for (let i = 0; i < numPointSets; i++) {
+ lastPartPositions[i] = new THREE.Vector3();
+}
+const _updatePoints = (player, pointSets) => {
+ // const leftPartPosition = player.position.clone()
+ // .add(new THREE.Vector3(-playerCenterRadius, 0, 0).applyQuaternion(player.quaternion));
+ // const rightPartPosition = player.position.clone()
+ // .add(new THREE.Vector3(playerCenterRadius, 0, 0).applyQuaternion(player.quaternion));
+ // const partPositions = [leftPartPosition, rightPartPosition];
+ for (let pointSetIndex = 0; pointSetIndex < pointSets.length; pointSetIndex++) {
+ const points = pointSets[pointSetIndex];
+ const {offset} = points;
+
+ const partPosition = player.position.clone()
+ .add(
+ offset.clone()
+ .applyQuaternion(player.quaternion)
+ );
+ const lastPartPosition = lastPartPositions[pointSetIndex];
+ const quaternion = new THREE.Quaternion().setFromRotationMatrix(
+ new THREE.Matrix4().lookAt(lastPartPosition, partPosition, upVector)
+ );
+
+ points[0].position.copy(partPosition);
+ points[0].quaternion.copy(quaternion);
+
+ for (let i = 1; i <= heightSegments; i++) {
+ const point = points[i];
+ const nextPoint = points[i - 1];
+ const pointQuaternion = new THREE.Quaternion().setFromRotationMatrix(
+ new THREE.Matrix4().lookAt(point.position, nextPoint.position, upVector)
+ );
+ point.position.copy(nextPoint.position)
+ .add(new THREE.Vector3(0, 0, segmentLength).applyQuaternion(pointQuaternion));
+ point.quaternion.copy(pointQuaternion);
+ }
+
+ lastPartPositions[pointSetIndex] = partPosition;
+ }
+};
+const _setPoints = (geometry, pointSets) => {
+ for (let pointSetIndex = 0; pointSetIndex < pointSets.length; pointSetIndex++) {
+ const points = pointSets[pointSetIndex];
+ const partVertexOffset = pointSetIndex * verticesPerPart;
+
+ for (let heightSegment = 0; heightSegment < points.length; heightSegment++) {
+ const {
+ position,
+ quaternion,
+ } = points[heightSegment];
+ for (let j = 0; j < verticesPerHeightSegment; j++) {
+ position.toArray(geometry.attributes.p.array, heightSegment * verticesPerHeightSegment * 3 + j * 3 + partVertexOffset * 3);
+ quaternion.toArray(geometry.attributes.q.array, heightSegment * verticesPerHeightSegment * 4 + j * 4 + partVertexOffset * 4);
+ }
+ }
+ geometry.attributes.p.needsUpdate = true;
+ geometry.attributes.q.needsUpdate = true;
+ }
+};
+
+function createSilksGeometry() {
+ const geometry = new THREE.CylinderGeometry(
+ radiusTop,
+ radiusBottom,
+ 0, // height,
+ radialSegments,
+ heightSegments,
+ openEnded,
+ ).rotateX(-Math.PI / 2);
+ /* geometry.setAttribute(
+ 'offset',
+ new THREE.BufferAttribute(new Float32Array(geometry.attributes.position.count), 1)
+ ); */
+ geometry.setAttribute(
+ 'p',
+ new THREE.BufferAttribute(new Float32Array(geometry.attributes.position.count * 3), 3)
+ );
+ geometry.setAttribute(
+ 'q',
+ new THREE.BufferAttribute(new Float32Array(geometry.attributes.position.count * 4), 4)
+ );
+ return geometry;
+};
+/* const _incrementUvs = (geometry, duv) => {
+ for (let i = 0; i < geometry.attributes.uv.count; i++) {
+ localVector2D.fromArray(geometry.attributes.uv.array, i * 2)
+ .add(duv)
+ .toArray(geometry.attributes.uv.array, i * 2);
+ }
+}; */
+/* const _setOffsets = (geometry, offsetValue) => {
+ for (let i = 0; i < geometry.attributes.offset.array.length; i++) {
+ geometry.attributes.offset.array[i] = offsetValue;
+ }
+ geometry.attributes.offset.needsUpdate = true;
+}; */
+const _makeSilksMesh = () => {
+ const {WebaverseShaderMaterial} = useMaterials();
+
+ const geometry1 = createSilksGeometry();
+ const geometry2 = createSilksGeometry();
+ // _incrementUvs(geometry2, new THREE.Vector2(0, 1));
+ // _setOffsets(geometry1, -1);
+ // _setOffsets(geometry2, 1);
+ const geometry = BufferGeometryUtils.mergeBufferGeometries([geometry1, geometry2]);
+ // _setOffsets(geometry, 1);
+
+ const material = new WebaverseShaderMaterial({
+ uniforms: {
+ uTime: {
+ type: 'f',
+ value: 0,
+ needsUpdate: true,
+ },
+ },
+ vertexShader: `\
+ precision highp float;
+ precision highp int;
+
+ uniform float uTime;
+ attribute vec3 p;
+ attribute vec4 q;
+ varying vec2 vUv;
+
+ const float radius = ${playerCenterRadius.toFixed(8)};
+
+ vec4 quat_from_axis_angle(vec3 axis, float angle) {
+ vec4 qr;
+ float half_angle = (angle * 0.5);
+ qr.x = axis.x * sin(half_angle);
+ qr.y = axis.y * sin(half_angle);
+ qr.z = axis.z * sin(half_angle);
+ qr.w = cos(half_angle);
+ return qr;
+ }
+
+ vec3 rotate_vertex_position(vec3 position, vec4 q) {
+ vec3 v = position.xyz;
+ return v + 2.0 * cross(q.xyz, cross(q.xyz, v) + q.w * v);
+ }
+
+ void main() {
+ vec3 pos = position;
+
+ {
+ pos = rotate_vertex_position(pos, q);
+ pos += p;
+ }
+
+ /* {
+ vec4 qt = quat_from_axis_angle(vec3(0.0, 1.0, 0.0), uTime * PI * 2.);
+ pos = rotate_vertex_position(pos, qt);
+ } */
+
+ vec4 mvPosition = modelViewMatrix * vec4(pos, 1.0);
+ gl_Position = projectionMatrix * mvPosition;
+
+ vUv = uv;
+ }
+ `,
+ fragmentShader: `\
+ precision highp float;
+ precision highp int;
+
+ #define PI 3.1415926535897932384626433832795
+
+ uniform float uTime;
+ varying float vOffset;
+ varying vec2 vUv;
+
+ vec3 hueShift( vec3 color, float hueAdjust ){
+ const vec3 kRGBToYPrime = vec3 (0.299, 0.587, 0.114);
+ const vec3 kRGBToI = vec3 (0.596, -0.275, -0.321);
+ const vec3 kRGBToQ = vec3 (0.212, -0.523, 0.311);
+
+ const vec3 kYIQToR = vec3 (1.0, 0.956, 0.621);
+ const vec3 kYIQToG = vec3 (1.0, -0.272, -0.647);
+ const vec3 kYIQToB = vec3 (1.0, -1.107, 1.704);
+
+ float YPrime = dot (color, kRGBToYPrime);
+ float I = dot (color, kRGBToI);
+ float Q = dot (color, kRGBToQ);
+ float hue = atan (Q, I);
+ float chroma = sqrt (I * I + Q * Q);
+
+ hue += hueAdjust;
+
+ Q = chroma * sin (hue);
+ I = chroma * cos (hue);
+
+ vec3 yIQ = vec3 (YPrime, I, Q);
+
+ return vec3( dot (yIQ, kYIQToR), dot (yIQ, kYIQToG), dot (yIQ, kYIQToB) );
+ }
+
+ void main() {
+ float t = pow(uTime, 0.5)/2. + 0.5;
+
+ gl_FragColor = vec4(hueShift(vec3(1., 0., 0.), vUv.y * PI * 2.), 1.);
+
+ /* bool draw;
+ if (vF > 0.5) {
+ draw = vF < t;
+ } else {
+ draw = (1.-vF) < t;
+ }
+ if (draw) {
+ gl_FragColor = vec4(hueShift(vec3(1., 0., 0.), vF * PI * 3.), 1.);
+ } else {
+ discard;
+ } */
+ }
+ `,
+ // side: THREE.DoubleSide,
+ });
+ const mesh = new THREE.Mesh(geometry, material);
+ mesh.frustumCulled = false;
+
+ const pointsSets = Array(numPointSets);
+ for (let i = 0; i < numPointSets; i++) {
+ const points = Array(heightSegments + 1);
+ for (let j = 0; j < points.length; j++) {
+ points[j] = {
+ position: new THREE.Vector3(0, 0, j / heightSegments),
+ quaternion: new THREE.Quaternion(),
+ };
+ }
+ points.offset = new THREE.Vector3((-1 + i * 2) * playerCenterRadius, 0, 0);
+ pointsSets[i] = points;
+ }
+
+ mesh.update = (timestamp, timeDiff) => {
+ const maxTime = 3000;
+ const f = (timestamp % maxTime) / maxTime;
+
+ const localPlayer = useLocalPlayer();
+ _updatePoints(localPlayer, pointsSets);
+ _setPoints(geometry, pointsSets);
+
+ /* mesh.position.copy(localPlayer.position);
+ mesh.quaternion.copy(localPlayer.quaternion);
+ mesh.updateMatrixWorld(); */
+
+ material.uniforms.uTime.value = f;
+ material.uniforms.uTime.needsUpdate = true;
+ };
+ return mesh;
+};
+export default () => {
+ const mesh = _makeSilksMesh();
+
+ useFrame(({timestamp, timeDiff}) => {
+ mesh.update(timestamp, timeDiff);
+ });
+
+ return mesh;
+};
\ No newline at end of file
diff --git a/metaverse_modules/spawner/index.js b/metaverse_modules/spawner/index.js
index f504da4b3b..9fa3111819 100644
--- a/metaverse_modules/spawner/index.js
+++ b/metaverse_modules/spawner/index.js
@@ -1,69 +1,63 @@
-// import * as THREE from 'three';
-// import hpManager from './hp-manager.js';
+import * as THREE from 'three';
import metaversefile from 'metaversefile';
-const {useApp, createApp, useHpManager} = metaversefile;
+const {useApp, useProcGenManager, useMobManager, useFrame, useScene, useCleanup} = metaversefile;
-export default () => {
+export default e => {
const app = useApp();
- const hpManager = useHpManager();
-
- const spawnUrl = app.getComponent('spawnUrl') ?? '';
-
- const range = app.getComponent('range') ?? 3;
- const r = () => -range + Math.random() * 2 * range;
- const maxMobs = 10;
-
- let subApps = [];
- (async () => {
- const m = await metaversefile.import(spawnUrl);
-
- const promises = [];
- for (let i = 0; i < maxMobs; i++) {
- promises.push((async () => {
- const subApp = createApp();
- subApp.name = `spawn-${m.name}-${i}`;
-
- subApp.position.set(
- r(),
- 0, // r(),
- r()
- );
- subApp.quaternion.copy(app.quaternion);
- app.add(subApp);
- subApp.updateMatrixWorld();
-
- await subApp.addModule(m);
-
- const hitTracker = hpManager.makeHitTracker();
- hitTracker.bind(subApp);
- hitTracker.addEventListener('die', () => {
- hitTracker.unbind(subApp);
- app.remove(subApp);
- });
-
- return subApp;
- })());
+ const mobManager = useMobManager();
+ const scene = useScene();
+ const procGenManager = useProcGenManager();
+
+ app.name = 'spawner';
+
+ const appUrls = app.getComponent('appUrls') ?? [];
+
+ const seed = app.getComponent('seed') ?? null;
+ let range = app.getComponent('range') ?? null;
+ const wait = app.getComponent('wait') ?? false;
+ if (range) {
+ range = new THREE.Box3(
+ new THREE.Vector3(range[0][0], range[0][1], range[0][2]),
+ new THREE.Vector3(range[1][0], range[1][1], range[1][2])
+ );
+ }
+
+ let mobber = null;
+ e.waitUntil((async () => {
+ let live = true;
+ useCleanup(() => {
+ live = false;
+ });
+
+ const mobData = await mobManager.loadData(appUrls);
+ if (!live) return;
+
+ const procGenInstance = procGenManager.getInstance(seed, range);
+ mobber = mobManager.createMobber({
+ procGenInstance,
+ mobData,
+ });
+
+ const chunks = mobber.getChunks();
+ app.add(chunks);
+ chunks.updateMatrixWorld();
+
+ if (wait) {
+ await mobber.waitForUpdate();
}
- subApps = await Promise.all(promises);
- })();
+ })());
- app.getPhysicsObjects = () => {
- const result = [];
- for (const subApp of subApps) {
- result.push.apply(result, subApp.getPhysicsObjects());
- }
- return result;
- };
- app.hit = (damage, opts) => {
- const {physicsObject} = opts;
- for (const subApp of subApps) {
- const physicsObjects = subApp.getPhysicsObjects();
- if (physicsObjects.includes(physicsObject)) {
- subApp.hit(damage, opts);
- break;
- }
+ useFrame(({timestamp, timeDiff}) => {
+ mobber && mobber.update(timestamp, timeDiff);
+ });
+
+ useCleanup(() => {
+ if (mobber) {
+ const chunks = mobber.getChunks();
+ scene.remove(chunks);
+ mobber.destroy();
}
- };
+ });
return app;
};
\ No newline at end of file
diff --git a/metaverse_modules/target-reticle/index.js b/metaverse_modules/target-reticle/index.js
index e9c453309d..fd98bcc88c 100644
--- a/metaverse_modules/target-reticle/index.js
+++ b/metaverse_modules/target-reticle/index.js
@@ -1,7 +1,7 @@
import * as THREE from 'three';
import * as BufferGeometryUtils from 'three/examples/jsm/utils/BufferGeometryUtils.js';
import metaversefile from 'metaversefile';
-const {useFrame, useMaterials, useLocalPlayer} = metaversefile;
+const {useFrame, useMaterials, useCamera, useLocalPlayer} = metaversefile;
// const cardWidth = 0.063;
// const cardHeight = cardWidth / 2.5 * 3.5;
@@ -13,26 +13,36 @@ const menuRadius = 0.025; */
const localVector = new THREE.Vector3();
const localVector2D = new THREE.Vector2();
+const localQuaternion = new THREE.Quaternion();
-const targetTypes = [
+/* const targetTypes = [
'object',
'enemy',
'friend',
+]; */
+const targetTypeColors = [
+ {
+ name: 'object',
+ colors: [
+ new THREE.Color(0x42a5f5),
+ new THREE.Color(0x1976d2),
+ ],
+ },
+ {
+ name: 'enemy',
+ colors: [
+ new THREE.Color(0xffca28),
+ new THREE.Color(0xffa000),
+ ],
+ },
+ {
+ name: 'friend',
+ colors: [
+ new THREE.Color(0x66bb6a),
+ new THREE.Color(0x388e3c),
+ ],
+ },
];
-const targetTypeColors = {
- object: [
- new THREE.Color(0xffa726),
- new THREE.Color(0xf57c00),
- ],
- enemy: [
- new THREE.Color(0xef5350),
- new THREE.Color(0xd32f2f),
- ],
- friend: [
- new THREE.Color(0x66bb6a),
- new THREE.Color(0x388e3c),
- ],
-};
const triangleHalfSize = 0.08;
const triangleSize = triangleHalfSize * 2;
const innerRadius = 0.3;
@@ -49,6 +59,30 @@ function createTargetReticleGeometry() {
shape.lineTo(a.x, a.y);
const baseGeometry = new THREE.ShapeGeometry(shape);
+
+ const _setOffsets = g => {
+ const offsets = new Float32Array(g.attributes.position.count * 3);
+ baseGeometry.setAttribute('offset', new THREE.BufferAttribute(offsets, 3));
+ };
+ _setOffsets(baseGeometry);
+
+ const _setQuaternions = g => {
+ const quaternions = new Float32Array(g.attributes.position.count * 4);
+ baseGeometry.setAttribute('quaternion', new THREE.BufferAttribute(quaternions, 4));
+ };
+ _setQuaternions(baseGeometry);
+
+ const _setTypes = g => {
+ const types = new Int32Array(g.attributes.position.count);
+ baseGeometry.setAttribute('type', new THREE.BufferAttribute(types, 1));
+ };
+ _setTypes(baseGeometry);
+
+ const _setZooms = g => {
+ const zooms = new Float32Array(g.attributes.position.count);
+ baseGeometry.setAttribute('zoom', new THREE.BufferAttribute(zooms, 1));
+ }
+ _setZooms(baseGeometry);
const _setUvs = g => {
const positions = g.attributes.position.array;
@@ -70,7 +104,6 @@ function createTargetReticleGeometry() {
for (let i = 0; i < g.attributes.normal2.count; i++) {
normal2D.toArray(normal2s, i * 2);
}
- // console.log('got normnal 2s', normal2s);
g.attributes.normal2.needsUpdate = true;
return g;
};
@@ -103,10 +136,23 @@ function createTargetReticleGeometry() {
];
return BufferGeometryUtils.mergeBufferGeometries(geometries);
};
+function createTargetReticleGeometries(count) {
+ const geometry = createTargetReticleGeometry();
+ const geometries = Array(count);
+ for (let i = 0; i < count; i++) {
+ geometries[i] = geometry;
+ }
+ const result = BufferGeometryUtils.mergeBufferGeometries(geometries);
+ result.drawStride = geometry.attributes.position.count;
+ return result;
+}
const _makeTargetReticleMesh = () => {
const {WebaverseShaderMaterial} = useMaterials();
+ const camera = useCamera();
+ // const localPlayer = useLocalPlayer();
- const geometry = createTargetReticleGeometry();
+ const geometry = createTargetReticleGeometries(16);
+ geometry.setDrawRange(0, 0);
const material = new WebaverseShaderMaterial({
uniforms: {
/* uBoundingBox: {
@@ -126,7 +172,6 @@ const _makeTargetReticleMesh = () => {
uColor2: {
value: new THREE.Color(0xFFFFFF),
needsUpdate: true,
-
},
uZoom: {
// type: 'f',
@@ -145,10 +190,13 @@ const _makeTargetReticleMesh = () => {
// #define PI 3.1415926535897932384626433832795
- // attribute float f;
+ attribute vec3 offset;
+ attribute vec4 quaternion;
+ attribute int type;
attribute vec2 normal2;
+ attribute float zoom;
// uniform vec4 uBoundingBox;
- uniform float uZoom;
+ // uniform float uZoom;
uniform float uTime;
// varying vec3 vColor;
// varying float vF;
@@ -156,8 +204,9 @@ const _makeTargetReticleMesh = () => {
// varying vec2 vNormal2;
// varying vec3 vNormal;
varying vec3 vBarycentric;
+ flat varying int vType;
- const float zoomDistance = 20.;
+ const float zoomDistance = 5.;
vec2 rotate2D(vec2 v, float a) {
return vec2(
@@ -165,11 +214,20 @@ const _makeTargetReticleMesh = () => {
v.x * sin(a) + v.y * cos(a)
);
}
+ vec3 rotateVec3Quat( vec3 v, vec4 q ) {
+ return v + 2.0*cross(cross(v, q.xyz ) + q.w*v, q.xyz);
+ }
void main() {
- float angle = uTime * PI * 2.;
- // vec2 direction = rotate2D(normal2, angle);
- vec3 p = vec3(rotate2D(position.xy, angle) + rotate2D(normal2 * uZoom * zoomDistance, angle), position.z);
+ float uZoom = zoom;
+
+ vec3 p = position;
+ {
+ float angle = uTime * PI * 2.;
+ p = vec3(rotate2D(p.xy, angle) + rotate2D(normal2 * uZoom * zoomDistance, angle), p.z);
+ }
+ p = rotateVec3Quat(p, quaternion);
+ p += offset;
vec4 mvPosition = modelViewMatrix * vec4(p, 1.0);
gl_Position = projectionMatrix * mvPosition;
@@ -190,6 +248,8 @@ const _makeTargetReticleMesh = () => {
} else {
vBarycentric = vec3(0., 0., 1.);
}
+
+ vType = type;
}
`,
fragmentShader: `\
@@ -198,15 +258,9 @@ const _makeTargetReticleMesh = () => {
#define PI 3.1415926535897932384626433832795
- // uniform vec4 uBoundingBox;
uniform float uTime;
- uniform vec3 uColor1;
- uniform vec3 uColor2;
- // uniform float uZoom;
- // uniform float uTimeCubic;
- // varying vec3 vColor;
- // varying float vF;
varying vec2 vUv;
+ flat varying int vType;
// varying vec2 vNormal2;
// varying vec3 vNormal;
varying vec3 vBarycentric;
@@ -261,6 +315,19 @@ const _makeTargetReticleMesh = () => {
}
void main() {
+ vec3 uColor1;
+ vec3 uColor2;
+ if (vType == 0) {
+ uColor1 = vec3(${targetTypeColors[0].colors[0].toArray().join(', ')});
+ uColor2 = vec3(${targetTypeColors[0].colors[1].toArray().join(', ')});
+ } else if (vType == 1) {
+ uColor1 = vec3(${targetTypeColors[1].colors[0].toArray().join(', ')});
+ uColor2 = vec3(${targetTypeColors[1].colors[1].toArray().join(', ')});
+ } else if (vType == 2) {
+ uColor1 = vec3(${targetTypeColors[2].colors[0].toArray().join(', ')});
+ uColor2 = vec3(${targetTypeColors[2].colors[1].toArray().join(', ')});
+ }
+
/* float t = pow(uTime, 0.5)/2. + 0.5;
bool draw;
if (vF > 0.5) {
@@ -299,37 +366,39 @@ const _makeTargetReticleMesh = () => {
side: THREE.DoubleSide,
});
const mesh = new THREE.Mesh(geometry, material);
+ mesh.frustumCulled = false;
mesh.update = (timestamp, timeDiff) => {
const maxTime = 3000;
const f = (timestamp % maxTime) / maxTime;
- /* const localPlayer = useLocalPlayer();
- mesh.position.copy(localPlayer.position);
- mesh.quaternion.copy(localPlayer.quaternion);
- mesh.updateMatrixWorld(); */
-
- const targetType = 'friend';
- // const targetTypeIndex = targetTypes.indexOf(targetType);
- const targetTypeColor = targetTypeColors[targetType];
- material.uniforms.uColor1.value.copy(targetTypeColor[0])//.multiplyScalar(0.75);
- material.uniforms.uColor1.needsUpdate = true;
- material.uniforms.uColor2.value.copy(targetTypeColor[1])//.multiplyScalar(0.75);
- material.uniforms.uColor2.needsUpdate = true;
-
- let f2;
- if (f < 1/4) {
- f2 = f * 4;
- } else if (f < 3/4) {
- f2 = 1;
- } else {
- f2 = 1 - ((f - 3/4) * 4);
- }
- material.uniforms.uZoom.value = 1 - f2;
- material.uniforms.uZoom.needsUpdate = true;
-
material.uniforms.uTime.value = f;
material.uniforms.uTime.needsUpdate = true;
};
+
+ mesh.setReticles = reticles => {
+ const numReticles = reticles.length;
+ for (let i = 0; i < numReticles; i++) {
+ const reticle = reticles[i];
+
+ const position = reticle.position;
+ const quaternion = localQuaternion.copy(camera.quaternion).invert();
+ const type = reticle.type;
+ const typeIndex = targetTypeColors.findIndex(t => t.name === type);
+ const zoom = reticle.zoom;
+
+ for (let j = 0; j < geometry.drawStride; j++) {
+ position.toArray(geometry.attributes.offset.array, (i * geometry.drawStride * 3) + (j * 3));
+ quaternion.toArray(geometry.attributes.quaternion.array, (i * geometry.drawStride * 3) + (j * 4));
+ geometry.attributes.type.array[i * geometry.drawStride + j] = typeIndex;
+ geometry.attributes.zoom.array[i * geometry.drawStride + j] = zoom;
+ }
+ }
+ geometry.attributes.offset.needsUpdate = true;
+ geometry.attributes.quaternion.needsUpdate = true;
+ geometry.attributes.type.needsUpdate = true;
+ geometry.attributes.zoom.needsUpdate = true;
+ geometry.setDrawRange(0, geometry.drawStride * numReticles);
+ };
return mesh;
};
export default () => {
diff --git a/metaversefile-api.js b/metaversefile-api.js
index 5c13810224..779c53e47d 100644
--- a/metaversefile-api.js
+++ b/metaversefile-api.js
@@ -9,7 +9,7 @@ import {Text} from 'troika-three-text';
import React from 'react';
import * as ReactThreeFiber from '@react-three/fiber';
import metaversefile from 'metaversefile';
-import {getRenderer, scene, sceneHighPriority, sceneLowPriority, rootScene, camera} from './renderer.js';
+import {getRenderer, scene, sceneHighPriority, sceneLowPriority, sceneLowerPriority, sceneLowestPriority, rootScene, camera} from './renderer.js';
import cameraManager from './camera-manager.js';
import physicsManager from './physics-manager.js';
import Avatar from './avatars/avatars.js';
@@ -23,17 +23,18 @@ import postProcessing from './post-processing.js';
import {getRandomString, memoize} from './util.js';
import * as mathUtils from './math-utils.js';
import JSON6 from 'json-6';
-import * as materials from './materials.js';
import * as geometries from './geometries.js';
-import {MeshLodder} from './mesh-lodder.js';
+import * as materials from './materials.js';
+import meshLodManager from './mesh-lodder.js';
import * as avatarCruncher from './avatar-cruncher.js';
import * as avatarSpriter from './avatar-spriter.js';
import {chatManager} from './chat-manager.js';
import loreAI from './ai/lore/lore-ai.js';
import npcManager from './npc-manager.js';
+import mobManager from './mob-manager.js';
import universe from './universe.js';
import {PathFinder} from './npc-utils.js';
-import {localPlayer, remotePlayers} from './players.js';
+import {getLocalPlayer, remotePlayers} from './players.js';
import loaders from './loaders.js';
import * as voices from './voices.js';
import * as procgen from './procgen/procgen.js';
@@ -46,15 +47,19 @@ import debug from './debug.js';
import * as sceneCruncher from './scene-cruncher.js';
import * as scenePreviewer from './scene-previewer.js';
import * as sounds from './sounds.js';
+import * as lodder from './lod.js';
import hpManager from './hp-manager.js';
import particleSystemManager from './particle-system.js';
+import domRenderEngine from './dom-renderer.jsx';
+import dropManager from './drop-manager.js';
+import hitManager from './character-hitter.js';
+// import dcWorkerManager from './dc-worker-manager.js';
+import procGenManager from './procgen-manager.js';
+import cardsManager from './cards-manager.js';
+import * as instancing from './instancing.js';
+import * as atlasing from './atlasing.js';
-// const localVector = new THREE.Vector3();
-// const localVector2 = new THREE.Vector3();
const localVector2D = new THREE.Vector2();
-// const localQuaternion = new THREE.Quaternion();
-// const localMatrix = new THREE.Matrix4();
-// const localMatrix2 = new THREE.Matrix4();
class App extends THREE.Object3D {
constructor() {
@@ -131,13 +136,15 @@ class App extends THREE.Object3D {
}
}
get contentId() {
- return this.getComponent('contentId') + '';
+ const contentIdComponent = this.getComponent('contentId');
+ return (contentIdComponent !== null) ? contentIdComponent : '';
}
set contentId(contentId) {
this.setComponent('contentId', contentId + '');
}
get instanceId() {
- return this.getComponent('instanceId') + '';
+ const instanceIdComponent = this.getComponent('instanceId');
+ return (instanceIdComponent !== null) ? instanceIdComponent : '';
}
set instanceId(instanceId) {
this.setComponent('instanceId', instanceId + '');
@@ -167,15 +174,20 @@ class App extends THREE.Object3D {
return null;
}
}
- activate() {
+ activate({
+ physicsId = -1,
+ } = {}) {
this.dispatchEvent({
type: 'activate',
+ physicsId,
});
}
wear() {
+ const localPlayer = getLocalPlayer();
localPlayer.wear(this);
}
unwear() {
+ const localPlayer = getLocalPlayer();
localPlayer.unwear(this);
}
use() {
@@ -196,6 +208,7 @@ const defaultModules = {
modules,
};
+const localPlayer = getLocalPlayer();
const loreAIScene = loreAI.createScene(localPlayer);
const _bindAppManagerToLoreAIScene = (appManager, loreAIScene) => {
const bindings = new WeakMap();
@@ -215,6 +228,7 @@ const _bindAppManagerToLoreAIScene = (appManager, loreAIScene) => {
});
};
_bindAppManagerToLoreAIScene(world.appManager, loreAIScene);
+world.loreAIScene = loreAIScene;
class ErrorBoundary extends React.Component {
constructor(props) {
@@ -349,7 +363,7 @@ metaversefile.setApi({
}
s = `/@proxy/${s}`;
}
- // console.log('do import', s);
+ // console.log('js import', s);
try {
const m = await import(s);
return m;
@@ -490,6 +504,7 @@ metaversefile.setApi({
recursion++;
if (recursion === 1) {
// scene.directionalLight.castShadow = false;
+ const localPlayer = getLocalPlayer();
if (localPlayer.avatar) {
wasDecapitated = localPlayer.avatar.decapitated;
localPlayer.avatar.undecapitate();
@@ -500,6 +515,7 @@ metaversefile.setApi({
recursion--;
if (recursion === 0) {
// console.log('was decap', wasDecapitated);
+ const localPlayer = getLocalPlayer();
if (localPlayer.avatar && wasDecapitated) {
localPlayer.avatar.decapitate();
localPlayer.avatar.skeleton.update();
@@ -517,7 +533,7 @@ metaversefile.setApi({
}
},
useLocalPlayer() {
- return localPlayer;
+ return getLocalPlayer();
},
useRemotePlayer(playerId) {
let player = remotePlayers.get(playerId);
@@ -532,28 +548,36 @@ metaversefile.setApi({
useNpcManager() {
return npcManager;
},
+ useMobManager() {
+ return mobManager;
+ },
usePathFinder() {
return PathFinder;
},
useLoaders() {
return loaders;
},
+ useLodder() {
+ return lodder;
+ },
useMeshLodder() {
- return MeshLodder;
+ return meshLodManager;
},
- usePhysics() {
+ usePhysics(instance = null) {
const app = currentAppRender;
if (app) {
- const physics = {};
+ const physicsScene = physicsManager.getScene(instance)
+ .clone();
+ /* const physics = {};
for (const k in physicsManager) {
physics[k] = physicsManager[k];
- }
+ } */
/* const localVector = new THREE.Vector3();
const localVector2 = new THREE.Vector3();
const localQuaternion = new THREE.Quaternion();
const localMatrix = new THREE.Matrix4(); */
// const localMatrix2 = new THREE.Matrix4();
- physics.addBoxGeometry = (addBoxGeometry => function(position, quaternion, size, dynamic) {
+ physicsScene.addBoxGeometry = (addBoxGeometry => function(position, quaternion, size, dynamic) {
/* const basePosition = position;
const baseQuaternion = quaternion;
const baseScale = size;
@@ -581,8 +605,8 @@ metaversefile.setApi({
app.physicsObjects.push(physicsObject);
return physicsObject;
- })(physics.addBoxGeometry);
- physics.addCapsuleGeometry = (addCapsuleGeometry => function(position, quaternion, radius, halfHeight, physicsMaterial, dynamic, flags) {
+ })(physicsScene.addBoxGeometry);
+ physicsScene.addCapsuleGeometry = (addCapsuleGeometry => function(position, quaternion, radius, halfHeight, physicsMaterial, dynamic, flags) {
// const basePosition = position;
// const baseQuaternion = quaternion;
// const baseScale = new THREE.Vector3(radius, halfHeight*2, radius)
@@ -623,7 +647,7 @@ metaversefile.setApi({
// physicsManager.pushUpdate(app, physicsObject);
//physicsManager.setTransform(physicsObject);
return physicsObject;
- })(physics.addCapsuleGeometry);
+ })(physicsScene.addCapsuleGeometry);
/* physics.addSphereGeometry = (addSphereGeometry => function(position, quaternion, radius, physicsMaterial, ccdEnabled) {
const basePosition = position;
const baseQuaternion = quaternion;
@@ -653,7 +677,7 @@ metaversefile.setApi({
// physicsManager.pushUpdate(app, physicsObject);
return physicsObject;
})(physics.addSphereGeometry); */
- physics.addGeometry = (addGeometry => function(mesh) {
+ physicsScene.addGeometry = (addGeometry => function(mesh) {
/* const oldParent = mesh.parent;
const parentMesh = new THREE.Object3D();
@@ -678,62 +702,26 @@ metaversefile.setApi({
// app.add(physicsObject);
app.physicsObjects.push(physicsObject);
return physicsObject;
- })(physics.addGeometry);
- physics.addCookedGeometry = (addCookedGeometry => function(buffer, position, quaternion, scale) {
+ })(physicsScene.addGeometry);
+ physicsScene.addCookedGeometry = (addCookedGeometry => function(buffer, position, quaternion, scale) {
const physicsObject = addCookedGeometry.apply(this, arguments);
// app.add(physicsObject);
app.physicsObjects.push(physicsObject);
return physicsObject;
- })(physics.addCookedGeometry);
- physics.addConvexGeometry = (addConvexGeometry => function(mesh) {
+ })(physicsScene.addCookedGeometry);
+ physicsScene.addConvexGeometry = (addConvexGeometry => function(mesh) {
const physicsObject = addConvexGeometry.apply(this, arguments);
// app.add(physicsObject);
app.physicsObjects.push(physicsObject);
return physicsObject;
- })(physics.addConvexGeometry);
- physics.addCookedConvexGeometry = (addCookedConvexGeometry => function(buffer, position, quaternion, scale) {
+ })(physicsScene.addConvexGeometry);
+ physicsScene.addCookedConvexGeometry = (addCookedConvexGeometry => function(buffer, position, quaternion, scale) {
const physicsObject = addCookedConvexGeometry.apply(this, arguments);
// app.add(physicsObject);
app.physicsObjects.push(physicsObject);
return physicsObject;
- })(physics.addCookedConvexGeometry);
- /* physics.enablePhysicsObject = (enablePhysicsObject => function(physicsObject) {
- enablePhysicsObject.call(this, physicsObject);
- })(physics.enablePhysicsObject);
- physics.disablePhysicsObject = (disablePhysicsObject => function(physicsObject) {
- disablePhysicsObject.call(this, physicsObject);
- })(physics.disablePhysicsObject);
- physics.enableGeometryQueries = (enableGeometryQueries => function(physicsObject) {
- enableGeometryQueries.call(this, physicsObject);
- })(physics.enableGeometryQueries);
- physics.disableGeometryQueries = (disableGeometryQueries => function(physicsObject) {
- disableGeometryQueries.call(this, physicsObject);
- })(physics.disableGeometryQueries); */
-
- /* physics.setTransform = (setTransform => function(physicsObject) {
- setTransform.call(this, physicsObject);
- })(physics.setTransform); */
- /* physics.getPhysicsTransform = (getPhysicsTransform => function(physicsId) {
- const transform = getPhysicsTransform.apply(this, arguments);
- const {position, quaternion} = transform;
- app.updateMatrixWorld();
- localMatrix
- .compose(position, quaternion, localVector2.set(1, 1, 1))
- .premultiply(localMatrix2.copy(app.matrixWorld).invert())
- .decompose(position, quaternion, localVector2);
- return transform;
- })(physics.getPhysicsTransform);
- physics.setPhysicsTransform = (setPhysicsTransform => function(physicsId, position, quaternion, scale) {
- app.updateMatrixWorld();
- localMatrix
- .compose(position, quaternion, scale)
- .premultiply(app.matrixWorld)
- .decompose(localVector, localQuaternion, localVector2);
- position = localVector;
- quaternion = localQuaternion;
- return setPhysicsTransform.call(this, physicsId, position, quaternion, scale);
- })(physics.setPhysicsTransform); */
- physics.removeGeometry = (removeGeometry => function(physicsObject) {
+ })(physicsScene.addCookedConvexGeometry);
+ physicsScene.removeGeometry = (removeGeometry => function(physicsObject) {
removeGeometry.apply(this, arguments);
const index = app.physicsObjects.indexOf(physicsObject);
@@ -741,9 +729,9 @@ metaversefile.setApi({
app.remove(physicsObject);
app.physicsObjects.splice(index);
}
- })(physics.removeGeometry);
+ })(physicsScene.removeGeometry);
- return physics;
+ return physicsScene;
} else {
throw new Error('usePhysics cannot be called outside of render()');
}
@@ -864,6 +852,7 @@ metaversefile.setApi({
matrixNeedsUpdate = true;
}
if (in_front) {
+ const localPlayer = getLocalPlayer();
app.position.copy(localPlayer.position).add(new THREE.Vector3(0, 0, -1).applyQuaternion(localPlayer.quaternion));
app.quaternion.copy(localPlayer.quaternion);
app.scale.setScalar(1);
@@ -968,74 +957,150 @@ export default () => {
return world.appManager.removeTrackedApp.apply(world.appManager, arguments);
},
getAppByInstanceId(instanceId) {
- let result = world.appManager.getAppByInstanceId(instanceId) ||
- localPlayer.appManager.getAppByInstanceId(instanceId);
+ // local
+ const localPlayer = getLocalPlayer();
+ let result = world.appManager.getAppByInstanceId(instanceId) || localPlayer.appManager.getAppByInstanceId(instanceId);
if (result) {
return result;
- } else {
- const remotePlayers = metaversefile.useRemotePlayers();
- for (const remotePlayer of remotePlayers) {
- const remoteApp = remotePlayer.appManager.getAppByInstanceId(instanceId);
- if (remoteApp) {
- return remoteApp;
- }
+ }
+
+ // npc
+ for (const npc of npcManager.npcs) {
+ const npcApp = npc.appManager.getAppByInstanceId(instanceId);
+ if (npcApp) {
+ return npcApp;
+ }
+ }
+
+ // remote
+ const remotePlayers = metaversefile.useRemotePlayers();
+ for (const remotePlayer of remotePlayers) {
+ const remoteApp = remotePlayer.appManager.getAppByInstanceId(instanceId);
+ if (remoteApp) {
+ return remoteApp;
}
- return null;
}
+
+ // default
+ return null;
},
getAppByPhysicsId(physicsId) {
- let result = world.appManager.getAppByPhysicsId(physicsId) ||
- localPlayer.appManager.getAppByPhysicsId(physicsId);
+ // local player
+ const localPlayer = getLocalPlayer();
+ let result = world.appManager.getAppByPhysicsId(physicsId);
if (result) {
return result;
- } else {
- const remotePlayers = metaversefile.useRemotePlayers();
- for (const remotePlayer of remotePlayers) {
- const remoteApp = remotePlayer.appManager.getAppByPhysicsId(physicsId);
- if (remoteApp) {
- return remoteApp;
+ }
+
+ // local app
+ result = localPlayer.appManager.getAppByPhysicsId(physicsId);
+ if (result) {
+ return result;
+ }
+
+ // remote player
+ const remotePlayers = metaversefile.useRemotePlayers();
+ for (const remotePlayer of remotePlayers) {
+ const remoteApp = remotePlayer.appManager.getAppByPhysicsId(physicsId);
+ if (remoteApp) {
+ return remoteApp;
+ }
+ }
+
+ // mob
+ for (const mob of mobManager.mobs) {
+ const mobPhysicsObjects = mob.getPhysicsObjects();
+ for (const mobPhysicsObject of mobPhysicsObjects) {
+ if (mobPhysicsObject.physicsId === physicsId) {
+ return mob.subApp;
}
}
- return null;
}
+
+ // default
+ return null;
},
getPhysicsObjectByPhysicsId(physicsId) {
- let result = world.appManager.getPhysicsObjectByPhysicsId(physicsId) ||
- localPlayer.appManager.getPhysicsObjectByPhysicsId(physicsId);
+ // local player
+ const localPlayer = getLocalPlayer();
+ let result = world.appManager.getPhysicsObjectByPhysicsId(physicsId);
if (result) {
return result;
- } else {
- const remotePlayers = metaversefile.useRemotePlayers();
- for (const remotePlayer of remotePlayers) {
- const remotePhysicsObject = remotePlayer.appManager.getPhysicsObjectByPhysicsId(physicsId);
- if (remotePhysicsObject) {
- return remotePhysicsObject;
+ }
+
+ // local app
+ result = localPlayer.appManager.getPhysicsObjectByPhysicsId(physicsId);
+ if (result) {
+ return result;
+ }
+
+ // remote player
+ const remotePlayers = metaversefile.useRemotePlayers();
+ for (const remotePlayer of remotePlayers) {
+ const remotePhysicsObject = remotePlayer.appManager.getPhysicsObjectByPhysicsId(physicsId);
+ if (remotePhysicsObject) {
+ return remotePhysicsObject;
+ }
+ }
+
+ // mob
+ for (const mob of mobManager.mobs) {
+ const mobPhysicsObjects = mob.getPhysicsObjects();
+ for (const mobPhysicsObject of mobPhysicsObjects) {
+ if (mobPhysicsObject.physicsId === physicsId) {
+ return mobPhysicsObject;
}
}
- return null;
}
+
+ // default
+ return null;
},
getPairByPhysicsId(physicsId) {
- let result = world.appManager.getPairByPhysicsId(physicsId) ||
- localPlayer.appManager.getPairByPhysicsId(physicsId);
+ // local player
+ const localPlayer = getLocalPlayer();
+ let result = world.appManager.getPairByPhysicsId(physicsId);
if (result) {
+ // console.log('return 1');
return result;
- } else {
- const remotePlayers = metaversefile.useRemotePlayers();
- for (const remotePlayer of remotePlayers) {
- const remotePair = remotePlayer.appManager.getPairByPhysicsId(physicsId);
- if (remotePair) {
- return remotePair;
+ }
+
+ // local app
+ result = localPlayer.appManager.getPairByPhysicsId(physicsId);
+ if (result) {
+ // console.log('return 2');
+ return result;
+ }
+
+ // remote player
+ const remotePlayers = metaversefile.useRemotePlayers();
+ for (const remotePlayer of remotePlayers) {
+ const remotePair = remotePlayer.appManager.getPairByPhysicsId(physicsId);
+ if (remotePair) {
+ // console.log('return 3');
+ return remotePair;
+ }
+ }
+
+ // mob
+ for (const mob of mobManager.mobs) {
+ const mobPhysicsObjects = mob.getPhysicsObjects();
+ for (const mobPhysicsObject of mobPhysicsObjects) {
+ if (mobPhysicsObject.physicsId === physicsId) {
+ // console.log('return 4');
+ return [mob.subApp, mobPhysicsObject];
}
}
- return null;
}
+
+ // default
+ return null;
},
getAvatarHeight(obj) {
return getHeight(obj);
},
useInternals() {
- if (!iframeContainer) {
+ /* if (!iframeContainer) {
iframeContainer = document.getElementById('iframe-container');
iframeContainer.getFov = () => camera.projectionMatrix.elements[ 5 ] * (window.innerHeight / 2);
@@ -1053,7 +1118,7 @@ export default () => {
`;
};
iframeContainer.updateSize();
- }
+ } */
const renderer = getRenderer();
return {
@@ -1065,6 +1130,8 @@ export default () => {
camera,
sceneHighPriority,
sceneLowPriority,
+ sceneLowerPriority,
+ sceneLowestPriority,
iframeContainer,
};
},
@@ -1080,6 +1147,12 @@ export default () => {
useGeometries() {
return geometries;
},
+ useInstancing() {
+ return instancing;
+ },
+ useAtlasing() {
+ return atlasing;
+ },
useMaterials() {
return materials;
},
@@ -1095,6 +1168,21 @@ export default () => {
async waitForSceneLoaded() {
await universe.waitForSceneLoaded();
},
+ useDomRenderer() {
+ return domRenderEngine;
+ },
+ useDropManager() {
+ return dropManager;
+ },
+ useHitManager() {
+ return hitManager;
+ },
+ useProcGenManager() {
+ return procGenManager;
+ },
+ useCardsManager() {
+ return cardsManager;
+ },
useDebug() {
return debug;
},
@@ -1268,7 +1356,7 @@ export default () => {
onCreated: state => {
// state = newState;
// scene.add(state.scene);
- console.log('got state', state);
+ // console.log('got state', state);
const {scene: newRtfScene} = state;
if (newRtfScene !== rtfScene) {
if (rtfScene) {
diff --git a/mob-manager.js b/mob-manager.js
index 9c01221997..f6af5e14ae 100644
--- a/mob-manager.js
+++ b/mob-manager.js
@@ -1,6 +1,16 @@
import * as THREE from 'three';
-import {localPlayer} from './players.js';
+import * as SkeletonUtils from 'three/examples/jsm/utils/SkeletonUtils.js';
+import metaversefile from 'metaversefile';
+import {getLocalPlayer} from './players.js';
import physicsManager from './physics-manager.js';
+import hpManager from './hp-manager.js';
+// import {LodChunkTracker} from './lod.js';
+import {alea} from './procgen/procgen.js';
+import {createRelativeUrl} from './util.js';
+import dropManager from './drop-manager.js';
+import loaders from './loaders.js';
+import {InstancedBatchedMesh, InstancedGeometryAllocator} from './instancing.js';
+import {createTextureAtlas} from './atlasing.js';
const localVector = new THREE.Vector3();
const localVector2 = new THREE.Vector3();
@@ -8,32 +18,76 @@ const localVector3 = new THREE.Vector3();
const localVector4 = new THREE.Vector3();
const localVector5 = new THREE.Vector3();
const localVector6 = new THREE.Vector3();
+const localVector7 = new THREE.Vector3();
const localQuaternion = new THREE.Quaternion();
const localQuaternion2 = new THREE.Quaternion();
const localEuler = new THREE.Euler();
const localMatrix = new THREE.Matrix4();
const upVector = new THREE.Vector3(0, 1, 0);
+const identityMatrix = new THREE.Matrix4();
+const chunkWorldSize = 16;
+const minDistance = 1;
+const hitDistance = 1.5;
+const maxAnisotropy = 16;
+
+const maxInstancesPerDrawCall = 128;
+const maxDrawCallsPerGeometry = 1;
+const maxBonesPerInstance = 128;
+
+// window.THREE = THREE;
const _zeroY = v => {
v.y = 0;
return v;
};
+const _findMesh = o => {
+ let mesh = null;
+ const _recurse = o => {
+ if (o.isMesh) {
+ mesh = o;
+ } else if (o.children) {
+ for (const child of o.children) {
+ _recurse(child);
+ if (mesh) {
+ break;
+ }
+ }
+ }
+ };
+ _recurse(o);
+ return mesh;
+};
+const _findBone = o => {
+ let bone = null;
+ const _recurse = o => {
+ if (o.isBone) {
+ bone = o;
+ } else if (o.children) {
+ for (const child of o.children) {
+ _recurse(child);
+ if (bone) {
+ break;
+ }
+ }
+ }
+ };
+ _recurse(o);
+ return bone;
+};
function makeCharacterController(app, {
radius,
height,
- position,
+ physicsOffset,
}) {
- // const radius = 0.2;
const innerHeight = height - radius * 2;
const contactOffset = 0.1 * height;
const stepOffset = 0.1 * height;
- app.matrixWorld.decompose(localVector, localQuaternion, localVector2);
const characterPosition = localVector.setFromMatrixPosition(app.matrixWorld)
.add(
- localVector3.copy(position)
+ localVector3.copy(physicsOffset)
.applyQuaternion(localQuaternion)
);
@@ -44,28 +98,111 @@ function makeCharacterController(app, {
stepOffset,
characterPosition
);
- // this.characterControllerObject = new THREE.Object3D();
return characterController;
}
class Mob {
- constructor(app) {
+ constructor(app = null, srcUrl = '') {
this.app = app;
-
+ this.subApp = null;
+
+ this.name = this.app.name + '@' + this.app.position.toArray().join(',');
+
this.updateFns = [];
this.cleanupFns = [];
- const mobComponent = app.getComponent('mob');
+ if (srcUrl) {
+ (async () => {
+ await this.loadApp(srcUrl);
+ })();
+ }
+ }
+ #getRng() {
+ return alea(this.name);
+ }
+ async loadApp(mobJsonUrl) {
+ let live = true;
+ this.cleanupFns.push(() => {
+ live = false;
+ });
+
+ const res = await fetch(mobJsonUrl);
+ if (!live) return;
+ const json = await res.json();
+ if (!live) return;
+
+ const mobComponent = json;
if (mobComponent) {
- const {
+ let {
+ mobUrl = '',
radius = 0.3,
height = 1,
- position = [0, 0, 0],
+ physicsPosition = [0, 0, 0],
+ // physicsQuaternion = [0, 0, 0],
+ // modelPosition = [0, 0, 0],
+ modelQuaternion = [0, 0, 0, 1],
+ extraPhysics = [],
} = mobComponent;
- const offset = new THREE.Vector3().fromArray(position);
+ mobUrl = createRelativeUrl(mobUrl, mobJsonUrl);
+ const physicsOffset = new THREE.Vector3().fromArray(physicsPosition);
+ // const physicsRotation = new THREE.Quaternion().fromArray(physicsQuaternion);
+ // const modelOffset = new THREE.Vector3().fromArray(modelPosition);
+ const modelPrerotation = new THREE.Quaternion().fromArray(modelQuaternion);
+
+ const subApp = await metaversefile.createAppAsync({
+ start_url: mobUrl,
+ position: this.app.position,
+ quaternion: this.app.quaternion,
+ scale: this.app.scale,
+ });
+ if (!live) return;
+
+ const rng = this.#getRng();
+ const numDrops = Math.floor(rng() * 3) + 1;
+ let lastHitTime = 0;
+
+ const _attachToApp = () => {
+ this.app.add(subApp);
+ this.subApp = subApp;
+
+ this.app.position.set(0, 0, 0);
+ this.app.quaternion.identity();
+ this.app.scale.set(1, 1, 1);
+ this.app.updateMatrixWorld();
+
+ this.cleanupFns.push(() => {
+ this.app.clear();
+ });
+ };
+ _attachToApp();
+
+ const _drop = () => {
+ const {moduleUrls} = metaversefile.useDefaultModules();
+ const silkStartUrl = moduleUrls.silk;
+ for (let i = 0; i < numDrops; i++) {
+ dropManager.createDropApp({
+ start_url: silkStartUrl,
+ position: subApp.position.clone()
+ .add(new THREE.Vector3(0, 0.7, 0)),
+ quaternion: subApp.quaternion,
+ scale: subApp.scale
+ });
+ }
+ };
+ const _bindHitTracker = () => {
+ const hitTracker = hpManager.makeHitTracker();
+ hitTracker.bind(subApp);
+ subApp.dispatchEvent({type: 'hittrackeradded'});
+ const die = () => {
+ this.app.destroy();
+ _drop();
+ };
+ subApp.addEventListener('die', die, {once: true});
+ };
+ _bindHitTracker();
- const mesh = app;
- const animations = app.glb.animations;
+ const mesh = subApp;
+ const animations = subApp.glb.animations;
let {idleAnimation = ['idle'], aggroDistance, walkSpeed = 1} = mobComponent;
if (idleAnimation) {
if (!Array.isArray(idleAnimation)) {
@@ -75,25 +212,62 @@ class Mob {
idleAnimation = [];
}
- const characterController = makeCharacterController(app, {
+ const characterController = makeCharacterController(subApp, {
radius,
height,
- position: offset,
+ physicsOffset,
+ });
+ const _getPhysicsExtraPositionQuaternion = (
+ spec,
+ localVector,
+ localQuaternion,
+ localVector2,
+ localMatrix
+ ) => {
+ const {
+ position,
+ quaternion,
+ } = spec;
+
+ localVector.fromArray(position);
+ localQuaternion.fromArray(quaternion);
+ localVector2.set(1, 1, 1);
+ localMatrix.compose(localVector, localQuaternion, localVector2)
+ .premultiply(mesh.matrixWorld)
+ .decompose(localVector, localQuaternion, localVector2);
+ };
+ const extraPhysicsObjects = extraPhysics.map(spec => {
+ const {
+ radius,
+ halfHeight,
+ } = spec;
+ _getPhysicsExtraPositionQuaternion(spec, localVector, localQuaternion, localVector2, localMatrix);
+ const physicsObject = physicsManager.addCapsuleGeometry(localVector, localQuaternion, radius, halfHeight);
+ physicsObject.spec = spec;
+ return physicsObject;
+ });
+ const physicsObjects = [characterController].concat(extraPhysicsObjects);
+ subApp.getPhysicsObjects = () => physicsObjects;
+
+ this.cleanupFns.push(() => {
+ physicsManager.destroyCharacterController(characterController);
+ for (const extraPhysicsObject of extraPhysicsObjects) {
+ physicsManager.removeGeometry(extraPhysicsObject);
+ }
});
- const physicsObjects = [characterController];
- app.getPhysicsObjects = () => physicsObjects;
+ // rotation hacks
+ {
+ mesh.position.y = 0;
+ localEuler.setFromQuaternion(mesh.quaternion, 'YXZ');
+ localEuler.x = 0;
+ localEuler.z = 0;
+ mesh.quaternion.setFromEuler(localEuler);
+ }
+
+ // initialize animation
const idleAnimationClips = idleAnimation.map(name => animations.find(a => a.name === name)).filter(a => !!a);
if (idleAnimationClips.length > 0) {
- // hacks
- {
- mesh.position.y = 0;
- localEuler.setFromQuaternion(mesh.quaternion, 'YXZ');
- localEuler.x = 0;
- localEuler.z = 0;
- mesh.quaternion.setFromEuler(localEuler);
- }
-
const mixer = new THREE.AnimationMixer(mesh);
const idleActions = idleAnimationClips.map(idleAnimationClip => mixer.clipAction(idleAnimationClip));
for (const idleAction of idleActions) {
@@ -106,18 +280,12 @@ class Mob {
});
}
+ // set up frame loop
let animation = null;
+ let velocity = new THREE.Vector3(0, 0, 0);
this.updateFns.push((timestamp, timeDiff) => {
- // console.log('update');
+ const localPlayer = getLocalPlayer();
const timeDiffS = timeDiff / 1000;
- // console.log('do update');
-
- /* const _updatePhysics = () => {
- const physicsIds = mesh.getPhysicsIds();
- for (const physicsId of physicsIds) {
- physicsManager.setPhysicsTransform(physicsId, mesh.position, mesh.quaternion, mesh.scale);
- }
- }; */
if (animation) {
mesh.position.add(localVector.copy(animation.velocity).multiplyScalar(timeDiff/1000));
@@ -132,66 +300,117 @@ class Mob {
// _updatePhysics();
} else {
- // const head = rigManager.localRig.model.isVrm ? rigManager.localRig.modelBones.Head : rigManager.localRig.model;
- // const position = localVector.copy(localPlayer.position)
-
+ // decompose world transform
mesh.matrixWorld.decompose(localVector2, localQuaternion, localVector3);
const meshPosition = localVector2;
const meshQuaternion = localQuaternion;
const meshScale = localVector3;
- const meshPositionY0 = _zeroY(localVector4.copy(meshPosition));
- const characterPositionY0 = _zeroY(localVector5.copy(localPlayer.position));
-
- const distance = meshPositionY0
- .distanceTo(characterPositionY0);
- if (distance < aggroDistance) {
- const minDistance = 1;
- if (distance > minDistance) {
- const direction = characterPositionY0.sub(meshPositionY0).normalize();
- const maxMoveDistance = distance - minDistance;
- const moveDistance = Math.min(walkSpeed * timeDiff * 1000, maxMoveDistance);
- const moveDelta = localVector6.copy(direction).multiplyScalar(moveDistance);
- const minDist = 0;
-
- const flags = physicsManager.moveCharacterController(
- characterController,
- moveDelta,
- minDist,
- timeDiffS,
- characterController.position
- );
- // window.flags = flags;
-
- meshPosition.copy(characterController.position)
- .sub(offset);
-
- const targetQuaternion = localQuaternion2
- .setFromRotationMatrix(
- localMatrix
- .lookAt(
- meshPosition,
- localPlayer.position,
- upVector
- )
+ const meshPositionY0 = localVector4.copy(meshPosition);
+ const characterPositionY0 = localVector5.copy(localPlayer.position)
+ .add(localVector6.set(0, localPlayer.avatar ? -localPlayer.avatar.height : 0, 0));
+ const distance = meshPositionY0.distanceTo(characterPositionY0);
+
+ _zeroY(meshPositionY0);
+ _zeroY(characterPositionY0);
+
+ const _handleAggroMovement = () => {
+ if (distance < aggroDistance) {
+ if (distance > minDistance) {
+ const movementDirection = _zeroY(characterPositionY0.sub(meshPositionY0))
+ .normalize();
+ const maxMoveDistance = distance - minDistance;
+ const moveDistance = Math.min(walkSpeed * timeDiff * 1000, maxMoveDistance);
+ const moveDelta = localVector6.copy(movementDirection)
+ .multiplyScalar(moveDistance)
+ .add(localVector7.copy(velocity).multiplyScalar(timeDiffS));
+ const minDist = 0;
+
+ const popExtraGeometry = (() => {
+ for (const extraPhysicsObject of extraPhysicsObjects) {
+ physicsManager.disableActor(extraPhysicsObject);
+ }
+ return () => {
+ for (const extraPhysicsObject of extraPhysicsObjects) {
+ physicsManager.enableActor(extraPhysicsObject);
+ }
+ };
+ })();
+
+ const flags = physicsManager.moveCharacterController(
+ characterController,
+ moveDelta,
+ minDist,
+ timeDiffS,
+ characterController.position
);
- localEuler.setFromQuaternion(targetQuaternion, 'YXZ');
- localEuler.x = 0;
- localEuler.y += Math.PI;
- localEuler.z = 0;
- localQuaternion2.setFromEuler(localEuler);
- meshQuaternion.slerp(targetQuaternion, 0.1);
-
- mesh.matrixWorld.compose(meshPosition, meshQuaternion, meshScale);
- mesh.matrix.copy(mesh.matrixWorld);
- if (app.parent) {
- mesh.matrix.premultiply(localMatrix.copy(app.parent.matrixWorld).invert());
+ popExtraGeometry();
+
+ // const collided = flags !== 0;
+ let grounded = !!(flags & 0x1);
+ if (!grounded) {
+ velocity.add(
+ localVector.copy(physicsManager.getGravity())
+ .multiplyScalar(timeDiffS)
+ );
+ } else {
+ velocity.set(0, 0, 0);
+ }
+
+ meshPosition.copy(characterController.position)
+ .sub(physicsOffset);
+
+ const targetQuaternion = localQuaternion2
+ .setFromRotationMatrix(
+ localMatrix
+ .lookAt(
+ meshPosition,
+ localPlayer.position,
+ upVector
+ )
+ ).premultiply(modelPrerotation);
+ localEuler.setFromQuaternion(targetQuaternion, 'YXZ');
+ localEuler.x = 0;
+ localEuler.y += Math.PI;
+ localEuler.z = 0;
+ localQuaternion2.setFromEuler(localEuler);
+ meshQuaternion.slerp(targetQuaternion, 0.1);
+
+ mesh.matrixWorld.compose(meshPosition, meshQuaternion, meshScale);
+ mesh.matrix.copy(mesh.matrixWorld);
+ if (app.parent) {
+ mesh.matrix.premultiply(localMatrix.copy(app.parent.matrixWorld).invert());
+ }
+ mesh.matrix.decompose(mesh.position, mesh.quaternion, mesh.scale);
}
- mesh.matrix.decompose(mesh.position, mesh.quaternion, mesh.scale);
-
- // _updatePhysics();
}
- }
+ };
+ _handleAggroMovement();
+
+ const _handleAggroHit = () => {
+ if (distance < hitDistance) {
+ const timeSinceLastHit = timestamp - lastHitTime;
+ if (timeSinceLastHit > 1000) {
+ localPlayer.characterHitter.getHit(Math.random() * 10);
+ lastHitTime = timestamp;
+ }
+ }
+ };
+ _handleAggroHit();
+
+ const _updateExtraPhysics = () => {
+ for (const extraPhysicsObject of extraPhysicsObjects) {
+ const {spec} = extraPhysicsObject;
+
+ _getPhysicsExtraPositionQuaternion(spec, localVector, localQuaternion, localVector2, localMatrix);
+
+ extraPhysicsObject.position.copy(localVector);
+ extraPhysicsObject.quaternion.copy(localQuaternion);
+ extraPhysicsObject.updateMatrixWorld();
+ physicsManager.setTransform(extraPhysicsObject);
+ }
+ };
+ _updateExtraPhysics();
}
});
const hit = e => {
@@ -205,12 +424,19 @@ class Mob {
velocity: new THREE.Vector3(0, 6, -5).applyQuaternion(quaternion).multiplyScalar(hitSpeed),
};
};
- app.addEventListener('hit', hit);
+ subApp.addEventListener('hit', hit);
this.cleanupFns.push(() => {
- app.removeEventListener('hit', hit);
+ subApp.removeEventListener('hit', hit);
});
}
}
+ getPhysicsObjects() {
+ if (this.subApp) {
+ return this.subApp.getPhysicsObjects();
+ } else {
+ return [];
+ }
+ }
update(timestamp, timeDiff) {
for (const fn of this.updateFns) {
fn(timestamp, timeDiff);
@@ -223,19 +449,745 @@ class Mob {
}
}
+class MobInstance {
+ constructor(skeleton, mixer) {
+ this.skeleton = skeleton;
+ this.mixer = mixer;
+ }
+}
+
+class InstancedSkeleton extends THREE.Skeleton {
+ constructor(parent) {
+ super();
+
+ this.parent = parent;
+
+ // bone texture
+ const boneTexture = this.parent.allocator.getTexture('boneTexture');
+ this.boneMatrices = boneTexture.image.data;
+ this.boneTexture = boneTexture;
+ this.boneTextureSize = boneTexture.image.width;
+ }
+ update() {
+ const boneMatrices = this.boneMatrices;
+ const boneTexture = this.parent.allocator.getTexture('boneTexture');
+
+ for (let drawCallIndex = 0; drawCallIndex < this.parent.drawCalls.length; drawCallIndex++) {
+ const drawCall = this.parent.drawCalls[drawCallIndex];
+
+ if (drawCall) {
+ // const {geometryIndex} = drawCall;
+
+ for (let instanceIndex = 0; instanceIndex < drawCall.instances.length; instanceIndex++) {
+ const mobInstance = drawCall.instances[instanceIndex];
+ const {skeleton} = mobInstance;
+
+ // geometry -> instance (skeleton) -> bone -> matrix
+ const dstOffset = drawCall.freeListEntry.start * maxDrawCallsPerGeometry * maxInstancesPerDrawCall * maxBonesPerInstance * 16 +
+ instanceIndex * maxBonesPerInstance * 16;
+
+ const bones = skeleton.bones;
+ const boneInverses = skeleton.boneInverses;
+
+ // flatten bone matrices to array
+
+ for ( let i = 0, il = bones.length; i < il; i ++ ) {
+
+ // compute the offset between the current and the original transform
+
+ const matrix = bones[ i ] ? bones[ i ].matrixWorld : identityMatrix;
+
+ localMatrix.multiplyMatrices( matrix, boneInverses[ i ] );
+ localMatrix.toArray( boneMatrices, dstOffset + i * 16 );
+
+ }
+ }
+ }
+ }
+
+ boneTexture.needsUpdate = true;
+ }
+}
+
+class MobBatchedMesh extends InstancedBatchedMesh {
+ constructor({
+ procGenInstance,
+ mobData,
+ }) {
+ const {
+ glbs,
+ skinnedMeshes: meshes,
+ } = mobData;
+ const {
+ // atlas,
+ // atlasImages,
+ atlasTextures,
+ geometries,
+ } = createTextureAtlas(meshes, {
+ attributes: ['position', 'normal', 'uv', 'skinIndex', 'skinWeight'],
+ textures: ['map', 'normalMap', 'roughnessMap', 'metalnessMap'],
+ });
+
+ // allocator
+
+ const allocator = new InstancedGeometryAllocator(geometries, [
+ {
+ name: 'p',
+ Type: Float32Array,
+ itemSize: 3,
+ },
+ {
+ name: 'q',
+ Type: Float32Array,
+ itemSize: 4,
+ },
+ {
+ name: 'boneTexture',
+ Type: Float32Array,
+ itemSize: maxBonesPerInstance * 16,
+ },
+ ], {
+ maxInstancesPerDrawCall,
+ maxDrawCallsPerGeometry,
+ });
+ const {geometry, textures: attributeTextures} = allocator;
+ for (const k in attributeTextures) {
+ const texture = attributeTextures[k];
+ texture.anisotropy = maxAnisotropy;
+ }
+
+ // material
+
+ const material = new THREE.MeshStandardMaterial({
+ map: atlasTextures.map,
+ normalMap: atlasTextures.normalMap,
+ roughnessMap: atlasTextures.roughnessMap,
+ metalnessMap: atlasTextures.metalnessMap,
+ // side: THREE.DoubleSide,
+ // transparent: true,
+ // alphaTest: 0.5,
+ onBeforeCompile: (shader) => {
+ // console.log('on before compile', shader.fragmentShader);
+
+ shader.uniforms.pTexture = {
+ value: attributeTextures.p,
+ needsUpdate: true,
+ };
+ shader.uniforms.qTexture = {
+ value: attributeTextures.q,
+ needsUpdate: true,
+ };
+
+ // skin vertex
+
+ window.shader = shader;
+ window.vertexShader = shader.vertexShader;
+
+ shader.vertexShader = shader.vertexShader.replace(`#include `, `\
+// #undef USE_SKINNING
+
+#ifdef USE_SKINNING
+uniform mat4 bindMatrix;
+uniform mat4 bindMatrixInverse;
+uniform highp sampler2D boneTexture;
+uniform int boneTextureSize;
+mat4 getBoneMatrix( const in float base, const in float i ) {
+ float j = base + i * 4.0;
+ float x = mod( j, float( boneTextureSize ) );
+ float y = floor( j / float( boneTextureSize ) );
+ float dx = 1.0 / float( boneTextureSize );
+ float dy = 1.0 / float( boneTextureSize );
+ y = dy * ( y + 0.5 );
+ vec4 v1 = texture2D( boneTexture, vec2( dx * ( x + 0.5 ), y ) );
+ vec4 v2 = texture2D( boneTexture, vec2( dx * ( x + 1.5 ), y ) );
+ vec4 v3 = texture2D( boneTexture, vec2( dx * ( x + 2.5 ), y ) );
+ vec4 v4 = texture2D( boneTexture, vec2( dx * ( x + 3.5 ), y ) );
+ mat4 bone = mat4( v1, v2, v3, v4 );
+ return bone;
+}
+#endif
+ `);
+ shader.vertexShader = shader.vertexShader.replace(`#include `, `\
+int boneTextureInstanceIndex = gl_DrawID * ${maxInstancesPerDrawCall} * ${maxBonesPerInstance} +
+ gl_InstanceID * ${maxBonesPerInstance};
+float boneIndexOffset = float(boneTextureInstanceIndex) * 4.;
+
+#ifdef USE_SKINNING
+ mat4 boneMatX = getBoneMatrix( boneIndexOffset, skinIndex.x );
+ mat4 boneMatY = getBoneMatrix( boneIndexOffset, skinIndex.y );
+ mat4 boneMatZ = getBoneMatrix( boneIndexOffset, skinIndex.z );
+ mat4 boneMatW = getBoneMatrix( boneIndexOffset, skinIndex.w );
+
+ /* mat4 boneMatX = mat4(1.);
+ mat4 boneMatY = mat4(1.);
+ mat4 boneMatZ = mat4(1.);
+ mat4 boneMatW = mat4(1.); */
+#endif
+ `);
+ shader.vertexShader = shader.vertexShader.replace(`#include `, `\
+#ifdef USE_SKINNING
+ mat4 skinMatrix = mat4( 0.0 );
+ skinMatrix += skinWeight.x * boneMatX;
+ skinMatrix += skinWeight.y * boneMatY;
+ skinMatrix += skinWeight.z * boneMatZ;
+ skinMatrix += skinWeight.w * boneMatW;
+ skinMatrix = bindMatrixInverse * skinMatrix * bindMatrix;
+ objectNormal = vec4( skinMatrix * vec4( objectNormal, 0.0 ) ).xyz;
+ #ifdef USE_TANGENT
+ objectTangent = vec4( skinMatrix * vec4( objectTangent, 0.0 ) ).xyz;
+ #endif
+#endif
+ `);
+ shader.vertexShader = shader.vertexShader.replace(`#include `, `\
+#ifdef USE_SKINNING
+ vec4 skinVertex = bindMatrix * vec4( transformed, 1.0 );
+ vec4 skinned = vec4( 0.0 );
+ skinned += boneMatX * skinVertex * skinWeight.x;
+ skinned += boneMatY * skinVertex * skinWeight.y;
+ skinned += boneMatZ * skinVertex * skinWeight.z;
+ skinned += boneMatW * skinVertex * skinWeight.w;
+ transformed = ( bindMatrixInverse * skinned ).xyz;
+#endif
+ `);
+
+ // vertex shader
+
+ shader.vertexShader = shader.vertexShader.replace(`#include `, `\
+#undef USE_INSTANCING
+
+#include
+
+uniform sampler2D pTexture;
+uniform sampler2D qTexture;
+
+vec3 rotate_vertex_position(vec3 position, vec4 q) {
+ return position + 2.0 * cross(q.xyz, cross(q.xyz, position) + q.w * position);
+}
+ `);
+ shader.vertexShader = shader.vertexShader.replace(`#include `, `\
+int instanceIndex = gl_DrawID * ${maxInstancesPerDrawCall} + gl_InstanceID;
+const float width = ${attributeTextures.p.image.width.toFixed(8)};
+const float height = ${attributeTextures.p.image.height.toFixed(8)};
+float x = mod(float(instanceIndex), width);
+float y = floor(float(instanceIndex) / width);
+vec2 pUv = (vec2(x, y) + 0.5) / vec2(width, height);
+vec3 p = texture2D(pTexture, pUv).xyz;
+vec4 q = texture2D(qTexture, pUv).xyzw;
+
+// instance offset position
+{
+ transformed = rotate_vertex_position(transformed, q);
+ transformed += p;
+}
+
+vec4 mvPosition = vec4( transformed, 1.0 );
+#ifdef USE_INSTANCING
+ mvPosition = instanceMatrix * mvPosition;
+#endif
+mvPosition = modelViewMatrix * mvPosition;
+gl_Position = projectionMatrix * mvPosition;
+ `);
+ /* shader.vertexShader = shader.vertexShader.replace(`#include `, `\
+#if defined( USE_ENVMAP ) || defined( DISTANCE ) || defined ( USE_SHADOWMAP )
+ vec4 worldPosition = vec4( transformed, 1.0 );
+ #ifdef USE_INSTANCING
+ worldPosition = instanceMatrix * worldPosition;
+ #endif
+ worldPosition = modelMatrix * worldPosition;
+#endif
+ `); */
+
+ // fragment shader
+
+ shader.fragmentShader = shader.fragmentShader.replace(`#include `, `\
+#undef USE_INSTANCING
+
+#if ( defined( USE_UV ) && ! defined( UVS_VERTEX_ONLY ) )
+ varying vec2 vUv;
+#endif
+ `);
+
+ return shader;
+ },
+ });
+
+ // mesh
+
+ super(geometry, material, allocator);
+ this.frustumCulled = false;
+
+ this.procGenInstance = procGenInstance;
+
+ {
+ this.isSkinnedMesh = true;
+
+ this.bindMode = 'attached';
+ this.bindMatrix = new THREE.Matrix4();
+ this.bindMatrixInverse = new THREE.Matrix4();
+
+ /* const bones = [];
+ const boneInverses = [];
+ for (let i = 0; i < meshes.length; i++) {
+ const mesh = meshes[i];
+ if (bones.length > maxBonesPerInstance) {
+ throw new Error('too many bones in base mesh skeleton: ' + bones.length);
+ }
+ bones.push.apply(bones, mesh.skeleton.bones);
+ boneInverses.push.apply(boneInverses, mesh.skeleton.boneInverses);
+ } */
+
+ // this.bindMode = 'attached';
+ // this.bindMatrix = this.matrixWorld;
+ // this.bindMatrixInverse = this.bindMatrix.clone().invert();
+
+ this.skeleton = new InstancedSkeleton(this);
+
+ // window.skeleton = this.skeleton; // XXX
+ }
+
+ // window.shader = shader;
+ // window.vertexShader = shader.vertexShader;
+ // window.fragmentShader = shader.fragmentShader;
+ // window.geometry = geometry;
+
+ this.glbs = glbs;
+ this.meshes = meshes;
+ // this.rootBones = rootBones;
+ this.drawCalls = Array(meshes.length).fill(null);
+
+ this.animationMixers = [];
+
+ /* this.meshes = lodMeshes;
+ this.shapeAddresses = shapeAddresses;
+ this.physics = physics;
+ this.physicsObjects = []; */
+ }
+ async addChunk(chunk, {
+ signal,
+ } = {}) {
+ if (chunk.y === 0) {
+ let live = true;
+ signal.addEventListener('abort', e => {
+ live = false;
+ });
+
+ const _getMobData = async chunk => {
+ const lod = 1;
+ return await this.procGenInstance.dcWorkerManager.createMobSplat(chunk.x * chunkWorldSize, chunk.z * chunkWorldSize, lod);
+ };
+ const mobData = await _getMobData(chunk);
+ // mobData.instances.length > 0 && console.log('got mob data', mobData, chunk); // XXX
+ if (!live) return;
+
+ const _getDrawCall = geometryIndex => {
+ // console.log('alloc geometry', geometryIndex);
+ let drawCall = this.drawCalls[geometryIndex];
+ if (!drawCall) {
+ drawCall = this.allocator.allocDrawCall(geometryIndex);
+ drawCall.instances = [];
+
+ this.drawCalls[geometryIndex] = drawCall;
+ }
+ return drawCall;
+ };
+ const _renderMobGeometry = (drawCall, ps, qs, index) => {
+ // locals
+
+ const instanceIndex = drawCall.getInstanceCount();
+ const pTexture = drawCall.getTexture('p');
+ const pOffset = drawCall.getTextureOffset('p');
+ const qTexture = drawCall.getTexture('q');
+ const qOffset = drawCall.getTextureOffset('q');
+ // const boneTextureOffsetTexture = drawCall.getTexture('boneTextureOffset');
+ // const boneTextureOffsetOffset = drawCall.getTextureOffset('boneTextureOffset');
+
+ // position
+
+ const px = ps[index * 3];
+ const py = ps[index * 3 + 1];
+ const pz = ps[index * 3 + 2];
+ pTexture.image.data[pOffset + instanceIndex * 3] = px;
+ pTexture.image.data[pOffset + instanceIndex * 3 + 1] = py;
+ pTexture.image.data[pOffset + instanceIndex * 3 + 2] = pz;
+
+ drawCall.updateTexture('p', pOffset / 3 + instanceIndex, 1);
+
+ // quaternion
+
+ const qx = qs[index * 4];
+ const qy = qs[index * 4 + 1];
+ const qz = qs[index * 4 + 2];
+ const qw = qs[index * 4 + 3];
+ qTexture.image.data[qOffset + instanceIndex * 4] = qx;
+ qTexture.image.data[qOffset + instanceIndex * 4 + 1] = qy;
+ qTexture.image.data[qOffset + instanceIndex * 4 + 2] = qz;
+ qTexture.image.data[qOffset + instanceIndex * 4 + 3] = qw;
+
+ drawCall.updateTexture('q', qOffset / 4 + instanceIndex, 1);
+
+ // bone texture offset
+
+ // XXX allocate space in the bone texture via instanced skeleton
+ // each bone requires a mat4, i.e 4 vec4 pixels per bone
+ // console.log('free list', this.skeleton.boneTextureFreeList);
+ /* console.log('alloc', {
+ boneTextureSize: this.skeleton.boneTextureSize,
+ boneTextureOffsetSize: this.skeleton.boneTextureSize * this.skeleton.boneTextureSize,
+ allocSize: mesh.skeleton.bones.length * 4,
+ }); */
+ // const boneTextureEntry = this.skeleton.boneTextureFreeList.alloc(mesh.skeleton.bones.length * 4);
+ // boneTextureOffsetTexture.image.data[boneTextureOffsetOffset] = boneTextureEntry.start;
+
+ // drawCall.updateTexture('boneTextureOffset', boneTextureOffsetOffset + instanceIndex, 1);
+
+
+
+
+ // mob instance
+
+ const glb = this.glbs[drawCall.geometryIndex];
+ const glb2Scene = SkeletonUtils.clone(glb.scene);
+ const mesh2 = _findMesh(glb2Scene);
+ const rootBone2 = _findBone(glb2Scene);
+ const skeleton2 = mesh2.skeleton;
+ if (skeleton2.bones.length > maxBonesPerInstance) {
+ throw new Error('too many bones in base mesh skeleton: ' + bones.length);
+ }
+ /* if (skeleton.bones.some(b => {
+ return mesh.skeleton.includes(b);
+ })) {
+ debugger;
+ } */
+
+ // animations
+ let mixer = null;
+ /* for (const glb of glbs)*/ {
+ // const glb = this.glbs[drawCall.geometryIndex];
+ // const rootBone = this.rootBones[drawCall.geometryIndex];
+ // const rootBone = skeleton2.bones[0];
+ const {animations} = glb;
+ // console.log('got animations', animations);
+ // const idleAnimation = animations.find(a => a.name === 'idle');
+ const clip = animations[0];
+ if (clip) {
+ // console.log('new mixer', rootBone);
+ // try {
+ mixer = new THREE.AnimationMixer(rootBone2);
+ // console.log('new action', clip);
+ const action = mixer.clipAction(clip);
+ action.play();
+ mixer.updateMatrixWorld = () => {
+ glb2Scene.updateMatrixWorld();
+
+ // window.glb2Scene = glb2Scene; // XXX
+ };
+
+ this.animationMixers.push(mixer);
+ /* } catch (err) {
+ debugger;
+ } */
+ }
+ }
+
+ const instance = new MobInstance(skeleton2, mixer);
+ drawCall.instances.push(instance);
+
+ // physics
+ // const shapeAddress = this.#getShapeAddress(drawCall.geometryIndex);
+ // const physicsObject = this.#addPhysicsShape(shapeAddress, px, py, pz, qx, qy, qz, qw);
+ // this.physicsObjects.push(physicsObject);
+
+ // bookkeeping
+
+ drawCall.incrementInstanceCount();
+
+ // return
+
+ return instance;
+ };
+ const _unrenderMobGeometry = (drawCall, mobInstance) => {
+ const instanceIndex = drawCall.instances.indexOf(mobInstance);
+ if (drawCall.instances.length >= 2) {
+ // locals
+
+ const lastInstanceIndex = drawCall.getInstanceCount() - 1;
+ const oldInstance = drawCall.instances[instanceIndex];
+
+ const pTexture = drawCall.getTexture('p');
+ const pOffset = drawCall.getTextureOffset('p');
+ const qTexture = drawCall.getTexture('q');
+ const qOffset = drawCall.getTextureOffset('q');
+ const boneTextureOffsetTexture = drawCall.getTexture('boneTexture');
+ const boneTextureOffsetOffset = drawCall.getTextureOffset('boneTexture');
+
+ // delete by replacing current instance with last instance
+
+ pTexture.image.data[pOffset + instanceIndex * 3] = pTexture.image.data[pOffset + lastInstanceIndex * 3];
+ pTexture.image.data[pOffset + instanceIndex * 3 + 1] = pTexture.image.data[pOffset + lastInstanceIndex * 3 + 1];
+ pTexture.image.data[pOffset + instanceIndex * 3 + 2] = pTexture.image.data[pOffset + lastInstanceIndex * 3 + 2];
+
+ qTexture.image.data[qOffset + instanceIndex * 4] = qTexture.image.data[qOffset + lastInstanceIndex * 4];
+ qTexture.image.data[qOffset + instanceIndex * 4 + 1] = qTexture.image.data[qOffset + lastInstanceIndex * 4 + 1];
+ qTexture.image.data[qOffset + instanceIndex * 4 + 2] = qTexture.image.data[qOffset + lastInstanceIndex * 4 + 2];
+ qTexture.image.data[qOffset + instanceIndex * 4 + 3] = qTexture.image.data[qOffset + lastInstanceIndex * 4 + 3];
+
+ // copy the last instance bone matrix (a block of maxBonesPerInstance bones) to the current location
+ boneTextureOffsetTexture.image.data.set(boneTextureOffsetTexture.image.data.subarray(
+ boneTextureOffsetOffset + lastInstanceIndex * maxBonesPerInstance * 16,
+ boneTextureOffsetOffset + (lastInstanceIndex + 1) * maxBonesPerInstance * 16
+ ), boneTextureOffsetOffset + instanceIndex * maxBonesPerInstance * 16);
+
+ drawCall.updateTexture('p', pOffset / 3 + instanceIndex, 1);
+ drawCall.updateTexture('q', qOffset / 4 + instanceIndex, 1);
+ drawCall.updateTexture('boneTexture', boneTextureOffsetOffset + instanceIndex, 1);
+
+ // animations
+
+ const mixerIndex = oldInstance.mixer !== null ? this.animationMixers.indexOf(oldInstance.mixer) : -1;
+ if (mixerIndex !== -1) {
+ this.animationMixers.splice(mixerIndex, 1);
+ }
+
+ // this.skeleton.boneTextureFreeList.free(oldInstance.boneTextureEntry);
+ // this.skeleton.removeSkeleton(oldInstance.skeleton);
+
+ // mob instance
+
+ drawCall.instances[instanceIndex] = drawCall.instances[drawCall.instances.length - 1];
+ drawCall.instances.length--;
+ } else {
+ drawCall.instances.length = 0;
+ }
+
+ // bookkeeping
+
+ drawCall.decrementInstanceCount();
+ }
+
+ for (let i = 0; i < mobData.instances.length; i++) {
+ const geometryNoise = mobData.instances[i];
+ // console.log('got noise', geometryNoise);
+ const geometryIndex = Math.floor(geometryNoise * this.meshes.length);
+
+ const drawCall = _getDrawCall(geometryIndex);
+ const mobInstance = _renderMobGeometry(drawCall, mobData.ps, mobData.qs, i);
+ // window.drawCall = drawCall;
+
+ signal.addEventListener('abort', e => {
+ _unrenderMobGeometry(drawCall, mobInstance);
+ });
+ }
+ }
+ }
+ update(timestamp, timeDiff) {
+ // console.log('update', timestamp, timeDiff);
+ if (this.animationMixers.length > 0) {
+ const deltaSeconds = timeDiff / 1000;
+ for (const mixer of this.animationMixers) {
+ mixer.update(deltaSeconds);
+ mixer.updateMatrixWorld();
+ }
+ }
+ this.skeleton.update();
+ }
+}
+
+class MobsCompiledData {
+ constructor({
+ appUrls = [],
+ } = {}) {
+ this.glbs = null;
+ this.skinnedMeshes = null;
+
+ this.loadPromise = (async () => {
+ // lod mob modules
+ const glbs = await Promise.all(appUrls.map(async u => {
+ const m = await metaversefile.import(u);
+
+ // load glb
+ const glb = await (async () => {
+ const mobJsonUrl = m.srcUrl;
+ const res = await fetch(mobJsonUrl);
+ const j = await res.json();
+
+ return await new Promise((accept, reject) => {
+ const mobUrl = createRelativeUrl(j.mobUrl, mobJsonUrl);
+ loaders.gltfLoader.load(mobUrl, accept, function onProgress() {}, reject);
+ });
+ })();
+ return glb;
+ }));
+ const skinnedMeshSpecs = glbs.map(glb => {
+ const mesh = _findMesh(glb.scene);
+
+ return {
+ glb,
+ mesh,
+ };
+ });
+ const skinnedMeshes = skinnedMeshSpecs.map(spec => spec.mesh);
+
+ this.glbs = glbs;
+ this.skinnedMeshes = skinnedMeshes;
+ })();
+ }
+ waitForLoad() {
+ return this.loadPromise;
+ }
+}
+
+class MobGenerator {
+ constructor({
+ procGenInstance,
+ mobData,
+ }) {
+ // this.procGenInstance = procGenInstance;
+ // this.mobData = mobData;
+
+ this.object = new THREE.Object3D();
+ this.object.name = 'mob-chunks';
+
+ // make batched mesh
+ const mobBatchedMesh = new MobBatchedMesh({
+ procGenInstance,
+ mobData,
+ });
+ this.object.add(mobBatchedMesh);
+ this.mobBatchedMesh = mobBatchedMesh;
+ }
+ getMobModuleNames() {
+ return Object.keys(this.mobModules).sort();
+ }
+ generateChunk(chunk) {
+ const abortController = new AbortController();
+ const {signal} = abortController;
+
+ (async () => {
+ await this.mobBatchedMesh.addChunk(chunk, {
+ signal,
+ });
+ })();
+
+ chunk.binding = {
+ abortController,
+ };
+ }
+ disposeChunk(chunk) {
+ const {abortController} = chunk.binding;
+ abortController.abort();
+ chunk.binding = null;
+ }
+ update(timestamp, timeDiff) {
+ this.mobBatchedMesh.update(timestamp, timeDiff);
+ }
+ destroy() {
+ // nothing; the owning lod tracker disposes of our contents
+ }
+}
+
+class Mobber {
+ constructor({
+ procGenInstance,
+ mobData,
+ }) {
+ this.procGenInstance = procGenInstance;
+ this.mobData = mobData;
+
+ const generator = new MobGenerator({
+ procGenInstance,
+ mobData,
+ });
+ this.generator = generator;
+ /* this.tracker = new LodChunkTracker(this.generator, {
+ chunkWorldSize,
+ }); */
+ const numLods = 1;
+ const tracker = procGenInstance.getChunkTracker({
+ numLods,
+ // trackY: true,
+ // relod: true,
+ });
+ const chunkadd = e => {
+ const {chunk, waitUntil} = e.data;
+ waitUntil(generator.generateChunk(chunk));
+ };
+ tracker.addEventListener('chunkadd', chunkadd);
+ const chunkremove = e => {
+ const {chunk} = e.data;
+ generator.disposeChunk(chunk);
+ };
+ tracker.addEventListener('chunkremove', chunkremove);
+ this.tracker = tracker;
+ }
+ async waitForUpdate() {
+ await new Promise((accept, reject) => {
+ this.tracker.addEventListener('update', () => {
+ accept();
+ });
+ });
+ }
+ /* async addMobModule(srcUrl) {
+ const m = await metaversefile.import(srcUrl);
+ this.mobModules[srcUrl] = m;
+ }
+ compile() {
+ this.compiled = true;
+ } */
+ getChunks() {
+ return this.generator.object;
+ }
+ update(timestamp, timeDiff) {
+ const localPlayer = getLocalPlayer();
+ !this.procGenInstance.range && this.tracker.update(localPlayer.position);
+ this.generator.update(timestamp, timeDiff);
+ }
+ destroy() {
+ this.tracker.destroy();
+ this.generator.destroy();
+ }
+}
+
class MobManager {
constructor() {
+ this.mobbers = [];
this.mobs = [];
}
- async addMob(app) {
- if (app.appType !== 'glb') {
- throw new Error('only glb apps can be mobs');
+ createMobber({
+ procGenInstance,
+ mobData,
+ }) {
+ const mobber = new Mobber({
+ procGenInstance,
+ mobData,
+ });
+ this.mobbers.push(mobber);
+ return mobber;
+ }
+ destroyMobber(mobber) {
+ mobber.destroy();
+ this.mobbers.splice(this.mobbers.indexOf(mobber), 1);
+ }
+ async loadData(appUrls) {
+ const mobData = new MobsCompiledData({
+ appUrls,
+ });
+ await mobData.waitForLoad();
+ return mobData;
+ }
+ addMobApp(app, srcUrl) {
+ if (app.appType !== 'mob') {
+ console.warn('not a mob app', app);
+ throw new Error('only mob apps can be mobs');
+ }
+ if (!srcUrl) {
+ console.warn('no srcUrl', app);
+ throw new Error('srcUrl is required');
}
- const mob = new Mob(app);
+ const mob = new Mob(app, srcUrl);
this.mobs.push(mob);
}
- removeMob(app) {
+ removeMobApp(app) {
const index = this.mobs.findIndex(mob => mob.app === app);
if (index !== -1) {
const mob = this.mobs[index];
@@ -243,7 +1195,21 @@ class MobManager {
this.mobs.splice(index, 1);
}
}
+ getPhysicsObjects() {
+ let results = [];
+ for (const mob of this.mobs) {
+ const physicsObjects = mob.getPhysicsObjects();
+ results.push(physicsObjects);
+ }
+ results = results.flat();
+ return results;
+ }
update(timestamp, timeDiff) {
+ // mobber is updated by the app that created it
+ /* for (const mobber of this.mobbers) {
+ mobber.update(timestamp, timeDiff);
+ } */
+
for (const mob of this.mobs) {
mob.update(timestamp, timeDiff);
}
diff --git a/music-manager.js b/music-manager.js
index 34f1ca1206..134d443637 100644
--- a/music-manager.js
+++ b/music-manager.js
@@ -6,9 +6,9 @@ import WSRTC from 'wsrtc/wsrtc.js';
import {defaultMusicVolume} from './constants.js';
class Music {
- constructor({name, urls}, audioContext) {
+ constructor({name, urls, url}, audioContext) {
this.name = name;
- this.urls = urls;
+ this.urls = urls ?? [url];
this.audioContext = audioContext;
this.audioBuffers = null;
this.audioBufferIndex = 0; // Math.floor(Math.random() * this.urls.length);
@@ -101,30 +101,34 @@ class MusicManager {
.then(() => {});
this.currentMusic = null;
}
- getMusic(name) {
- const music = this.musics.find(music => music.name);
- /* if (music) {
- await music.waitForLoad();
- } */
- return music || null;
+ async fetchMusic(url, name = url) {
+ const music = new Music({
+ name,
+ url,
+ }, this.audioContext);
+ await music.waitForLoad();
+ return music;
}
- playCurrentMusic(name, {
+ playCurrentMusic(newMusic, {
repeat = false,
} = {}) {
this.stopCurrentMusic();
+ this.currentMusic = newMusic.play({
+ repeat,
+ });
+
+ const localCurrentMusic = this.currentMusic;
+ this.currentMusic.source.addEventListener('ended', () => {
+ if (this.currentMusic === localCurrentMusic) {
+ this.currentMusic = null;
+ }
+ });
+ }
+ playCurrentMusicName(name, opts) {
const newMusic = this.musics.find(music => music.name === name);
if (newMusic) {
- this.currentMusic = newMusic.play({
- repeat,
- });
-
- const localCurrentMusic = this.currentMusic;
- this.currentMusic.source.addEventListener('ended', () => {
- if (this.currentMusic === localCurrentMusic) {
- this.currentMusic = null;
- }
- });
+ this.playCurrentMusic(newMusic, opts);
}
}
stopCurrentMusic() {
diff --git a/npc-manager.js b/npc-manager.js
index 55eee6b4ad..91f3078dc1 100644
--- a/npc-manager.js
+++ b/npc-manager.js
@@ -1,4 +1,17 @@
-import {NpcPlayer} from './character-controller.js';
+import * as THREE from 'three';
+import Avatar from './avatars/avatars.js';
+import physicsManager from './physics-manager.js';
+import {LocalPlayer} from './character-controller.js';
+import {getLocalPlayer} from './players.js';
+import * as voices from './voices.js';
+import {world} from './world.js';
+import {chatManager} from './chat-manager.js';
+import {createRelativeUrl} from './util.js';
+
+const localVector = new THREE.Vector3();
+
+const physicsScene = physicsManager.getScene();
+const cancelFnMap = new WeakMap();
class NpcManager extends EventTarget {
constructor() {
@@ -7,15 +20,20 @@ class NpcManager extends EventTarget {
this.npcs = [];
}
- createNpc({
+ async createNpcAsync({
name,
- avatarApp,
+ npcApp,
+ // avatarApp,
+ avatarUrl,
position,
quaternion,
scale,
detached,
}) {
- const npcPlayer = new NpcPlayer();
+ const npcPlayer = new LocalPlayer({
+ npc: true,
+ detached,
+ });
npcPlayer.name = name;
let matrixNeedsUpdate = false;
@@ -35,15 +53,15 @@ class NpcManager extends EventTarget {
npcPlayer.updateMatrixWorld();
}
- npcPlayer.setAvatarApp(avatarApp);
+ npcPlayer.npcApp = npcApp; // for lore AI
+ if (npcApp) {
+ npcApp.npcPlayer = npcPlayer; // for character select
+ }
+
+ await npcPlayer.setAvatarUrl(avatarUrl);
if (!detached) {
this.npcs.push(npcPlayer);
- this.dispatchEvent(new MessageEvent('npcadd', {
- data: {
- player: npcPlayer,
- },
- }));
}
return npcPlayer;
@@ -55,11 +73,253 @@ class NpcManager extends EventTarget {
const removeIndex = this.npcs.indexOf(npcPlayer);
if (removeIndex !== -1) {
this.npcs.splice(removeIndex, 1);
- this.dispatchEvent(new MessageEvent('npcremove', {
- data: {
- player: npcPlayer,
- },
- }));
+ }
+ }
+
+ async addNpcApp(app, srcUrl) {
+ const localPlayer = getLocalPlayer();
+
+ let live = true;
+ let json = null;
+ let npcPlayer = null;
+ let character = null;
+ const cancelFns = [
+ () => {
+ live = false;
+
+ if (npcPlayer) {
+ npcManager.destroyNpc(npcPlayer);
+ }
+ if (character) {
+ world.loreAIScene.removeCharacter(character);
+ }
+ },
+ ];
+ cancelFnMap.set(app, () => {
+ for (const cancelFn of cancelFns) {
+ cancelFn();
+ }
+ });
+
+ const mode = app.getComponent('mode') ?? 'attached';
+
+ const animations = Avatar.getAnimations();
+ const hurtAnimation = animations.find(a => a.isHurt);
+ const hurtAnimationDuration = hurtAnimation.duration;
+
+ app.getPhysicsObjects = () => npcPlayer ? [npcPlayer.characterController] : [];
+ app.getLoreSpec = () => {
+ const name = json.name ?? 'Anon';
+ const description = json.bio ?? '';
+ return {
+ name,
+ description,
+ }
+ };
+
+ // events
+ let targetSpec = null;
+ if (mode === 'attached') {
+ const _listenEvents = () => {
+ const hittrackeradd = e => {
+ app.hitTracker.addEventListener('hit', e => {
+ if (!npcPlayer.hasAction('hurt')) {
+ const newAction = {
+ type: 'hurt',
+ animation: 'pain_back',
+ };
+ npcPlayer.addAction(newAction);
+
+ setTimeout(() => {
+ npcPlayer.removeAction('hurt');
+ }, hurtAnimationDuration * 1000);
+ }
+ });
+ };
+ app.addEventListener('hittrackeradded', hittrackeradd);
+
+ const activate = () => {
+ if (targetSpec?.object !== localPlayer) {
+ targetSpec = {
+ type: 'follow',
+ object: localPlayer,
+ };
+ } else {
+ targetSpec = null;
+ }
+ };
+ app.addEventListener('activate', activate);
+
+ const slowdownFactor = 0.4;
+ const walkSpeed = 0.075 * slowdownFactor;
+ const runSpeed = walkSpeed * 8;
+ const speedDistanceRate = 0.07;
+ const frame = e => {
+ if (npcPlayer && physicsScene.getPhysicsEnabled()) {
+ const {timestamp, timeDiff} = e.data;
+
+ if (targetSpec) {
+ const target = targetSpec.object;
+ const v = localVector.setFromMatrixPosition(target.matrixWorld)
+ .sub(npcPlayer.position);
+ v.y = 0;
+ const distance = v.length();
+ if (targetSpec.type === 'moveto' && distance < 2) {
+ targetSpec = null;
+ } else {
+ const speed = Math.min(Math.max(walkSpeed + ((distance - 1.5) * speedDistanceRate), 0), runSpeed);
+ v.normalize()
+ .multiplyScalar(speed * timeDiff);
+ npcPlayer.characterPhysics.applyWasd(v);
+ }
+ }
+
+ npcPlayer.eyeballTarget.copy(localPlayer.position);
+ npcPlayer.eyeballTargetEnabled = true;
+
+ /* if (isNaN(npcPlayer.position.x)) {
+ debugger;
+ } */
+ npcPlayer.updatePhysics(timestamp, timeDiff);
+ /* if (isNaN(npcPlayer.position.x)) {
+ debugger;
+ } */
+ npcPlayer.updateAvatar(timestamp, timeDiff);
+ /* if (isNaN(npcPlayer.position.x)) {
+ debugger;
+ } */
+ }
+ };
+ world.appManager.addEventListener('frame', frame);
+
+ cancelFns.push(() => {
+ app.removeEventListener('hittrackeradded', hittrackeradd);
+ app.removeEventListener('activate', activate);
+ world.appManager.removeEventListener('frame', frame);
+ });
+ };
+ _listenEvents();
+ }
+
+ // load
+ if (mode === 'attached') {
+ // load json
+ const res = await fetch(srcUrl);
+ if (!live) return;
+ json = await res.json();
+ if (!live) return;
+
+ // npc pameters
+ let avatarUrl = json.avatarUrl;
+ avatarUrl = createRelativeUrl(avatarUrl, srcUrl);
+ const npcName = json.name ?? 'Anon';
+ const npcVoiceName = json.voice ?? 'Shining armor';
+ const npcBio = json.bio ?? 'A generic avatar.';
+ const npcDetached = !!json.detached;
+ let npcWear = json.wear ?? [];
+ if (!Array.isArray(npcWear)) {
+ npcWear = [npcWear];
+ }
+
+ // ai scene
+ const _addToAiScene = () => {
+ character = world.loreAIScene.addCharacter({
+ name: npcName,
+ bio: npcBio,
+ });
+ character.addEventListener('say', e => {
+ console.log('got character say', e.data);
+ const {message, emote, action, object, target} = e.data;
+ chatManager.addPlayerMessage(npcPlayer, message);
+ if (emote === 'supersaiyan' || action === 'supersaiyan' || /supersaiyan/i.test(object) || /supersaiyan/i.test(target)) {
+ const newSssAction = {
+ type: 'sss',
+ };
+ npcPlayer.addAction(newSssAction);
+ } else if (action === 'follow' || (object === 'none' && target === localPlayer.name)) { // follow player
+ targetSpec = {
+ type: 'follow',
+ object: localPlayer,
+ };
+ } else if (action === 'stop') { // stop
+ targetSpec = null;
+ } else if (action === 'moveto' || (object !== 'none' && target === 'none')) { // move to object
+ console.log('move to object', object);
+ } else if (action === 'moveto' || (object === 'none' && target !== 'none')) { // move to player
+ targetSpec = {
+ type: 'moveto',
+ object: localPlayer,
+ };
+ } else if (['pickup', 'grab', 'take', 'get'].includes(action)) { // pick up object
+ console.log('pickup', action, object, target);
+ } else if (['use', 'activate'].includes(action)) { // use object
+ console.log('use', action, object, target);
+ }
+ });
+ };
+ _addToAiScene();
+
+ // create npc
+ const newNpcPlayer = await npcManager.createNpcAsync({
+ name: npcName,
+ npcApp: app,
+ // avatarApp: vrmApp,
+ avatarUrl,
+ position: app.position.clone()
+ .add(new THREE.Vector3(0, 1, 0)),
+ quaternion: app.quaternion,
+ scale: app.scale,
+ detached: npcDetached,
+ });
+
+ // attach to scene
+ const _addPlayerAvatarToApp = () => {
+ app.position.set(0, 0, 0);
+ app.quaternion.identity();
+ app.scale.set(1, 1, 1);
+
+ // app.add(vrmApp);
+ app.updateMatrixWorld();
+ };
+ _addPlayerAvatarToApp();
+
+ // voice endpoint setup
+ const _setVoiceEndpoint = () => {
+ const voice = voices.voiceEndpoints.find(v => v.name === npcVoiceName);
+ if (voice) {
+ newNpcPlayer.setVoiceEndpoint(voice.drive_id);
+ } else {
+ console.warn('unknown voice name', npcVoiceName, voices.voiceEndpoints);
+ }
+ };
+ _setVoiceEndpoint();
+
+ // wearables
+ const _updateWearables = async () => {
+ const wearablePromises = npcWear.map(wear => (async () => {
+ const {start_url} = wear;
+ const app = await newNpcPlayer.appManager.addTrackedApp(start_url);
+ /* const app = await metaversefile.createAppAsync({
+ start_url,
+ }); */
+ // if (!live) return;
+
+ newNpcPlayer.wear(app);
+ })());
+ await wearablePromises;
+ };
+ await _updateWearables();
+ if (!live) return;
+
+ // latch
+ npcPlayer = newNpcPlayer;
+ }
+ }
+ removeNpcApp(app) {
+ const cancelFn = cancelFnMap.get(app);
+ if (cancelFn) {
+ cancelFnMap.delete(app);
+ cancelFn();
}
}
}
diff --git a/object-screenshotter.js b/object-screenshotter.js
index 6f3d02df6b..eed6c375b1 100644
--- a/object-screenshotter.js
+++ b/object-screenshotter.js
@@ -25,7 +25,6 @@ export const screenshotObjectUrl = async ({
start_url,
width = 300,
height = 300,
- canvas
}) => {
const app = await metaversefile.createAppAsync({
start_url,
@@ -34,7 +33,6 @@ export const screenshotObjectUrl = async ({
app,
width,
height,
- canvas
});
};
@@ -62,28 +60,15 @@ const sideCamera = new THREE.PerspectiveCamera();
}); */
export const screenshotObjectApp = async ({
app,
- width,
- height,
+ width = 300,
+ height = 300,
clearColor = 0xFFFFFF,
clearAlpha = 1,
- canvas
} = {}) => {
// const {devicePixelRatio: pixelRatio} = window;
// console.log('create object sprite', app, size, numFrames);
- if (canvas && (width || height)) {
-
- throw( 'screenshotObjectApp method should receive only "canvas" or "width"/"height" arguments and not both.' );
-
- }
-
- if (!canvas && (!width || !height)) {
-
- throw( 'screenshotObjectApp method should receive at least "canvas" or "width"/"height" arguments.' );
-
- }
-
const renderer = getRenderer();
const size = renderer.getSize(localVector2D);
const pixelRatio = renderer.getPixelRatio();
@@ -92,20 +77,9 @@ export const screenshotObjectApp = async ({
// const numFramesPerRow = Math.ceil(Math.sqrt(numFramesPow2));
// const frameSize = size / numFramesPerRow;
- const writeCanvas = canvas ?? document.createElement('canvas');
-
- if (!canvas) {
-
- writeCanvas.width = width ?? 80;
- writeCanvas.height = height ?? 80;
-
- } else {
-
- width = writeCanvas.width;
- height = writeCanvas.height;
-
- }
-
+ const writeCanvas = document.createElement('canvas');
+ writeCanvas.width = width;
+ writeCanvas.height = height;
const writeCtx = writeCanvas.getContext('2d');
{
@@ -184,4 +158,4 @@ export const screenshotObjectApp = async ({
}
return writeCanvas;
-};
+};
\ No newline at end of file
diff --git a/offscreen-engine.js b/offscreen-engine.js
index cde4fe92eb..c31caeb580 100644
--- a/offscreen-engine.js
+++ b/offscreen-engine.js
@@ -3,49 +3,55 @@ import {inappPreviewHost} from './constants.js';
class OffscreenEngine {
constructor() {
- const id = getRandomString();
+ this.id = getRandomString();
+ this.frame = null;
this.port = null;
- const iframe = document.createElement('iframe');
- iframe.width = '0px';
- iframe.height = '0px';
- iframe.style.cssText = `\
- border: 0;
- `;
-
- this.iframe = iframe;
- this.live = true;
-
- const setport = new Promise((resolve, reject) => {
- const message = (e) => {
- if (e.data?.method === 'engineReady' && e.data.id === id && e.data.port instanceof MessagePort){
- window.removeEventListener('message', message);
- resolve(e.data.port);
- }
- };
- window.addEventListener('message', message);
- });
-
- const loading = new Promise((resolve, reject) => {
- iframe.onload = () => {
- resolve();
- iframe.onload = null;
- iframe.onerror = null;
- };
- iframe.onerror = reject;
- });
-
- this.loadPromise = Promise.all([loading, setport]);
-
- iframe.src = `${inappPreviewHost}/engine.html#id=${id}`;
- document.body.appendChild(iframe);
+ this.loadPromise = null;
}
- waitForLoad() {
- return this.loadPromise.then(([, port]) => {
- this.port = port;
- this.port.start();
- return port;
- });
+ async waitForLoad() {
+ if (!this.loadPromise) {
+ this.loadPromise = (async () => {
+ const iframe = document.createElement('iframe');
+ iframe.width = '0px';
+ iframe.height = '0px';
+ iframe.style.cssText = `\
+ border: 0;
+ `;
+
+ // this.live = true;
+
+ const messageChannel = new MessageChannel();
+ const {port1, port2} = messageChannel;
+
+ const iframeLoadPromise = new Promise((resolve, reject) => {
+ iframe.onload = () => {
+ resolve();
+ iframe.onload = null;
+ iframe.onerror = null;
+ };
+ iframe.onerror = reject;
+ });
+
+ iframe.allow = 'cross-origin-isolated';
+ iframe.src = `${inappPreviewHost}/engine.html#id=${this.id}`;
+ document.body.appendChild(iframe);
+ this.iframe = iframe;
+
+ await iframeLoadPromise;
+
+ iframe.contentWindow.postMessage({
+ method: 'initializeEngine',
+ port: port2,
+ }, '*', [port2]);
+
+ return port1;
+ })();
+ }
+ const port = await this.loadPromise;
+ port.start();
+ this.port = port;
+ return port;
}
createFunction(o) {
if (!Array.isArray(o)) {
@@ -85,6 +91,7 @@ export default _default_export_;`;
if (!error) {
accept(result);
} else {
+ console.warn(error);
reject(error);
}
this.port.removeEventListener('message', message);
@@ -95,20 +102,34 @@ export default _default_export_;`;
})();
const self = this;
- async function callRemoteFn() {
- const args = Array.from(arguments);
-
+ async function callRemoteFn(args = [], {
+ signal = null,
+ } = {}) {
await loadPromise;
const id = getRandomString();
- self.port.postMessage({
- method: 'callHandler',
- id,
- handlerId,
- args,
- });
-
+ const _postMessage = () => {
+ try {
+ self.port.postMessage({
+ method: 'callHandler',
+ id,
+ handlerId,
+ args,
+ });
+ } catch(err) {
+ console.warn('post message error', err);
+ throw err;
+ }
+ };
+ _postMessage();
const result = await new Promise((accept, reject) => {
+ const cleanups = [];
+ const _cleanup = () => {
+ for (const cleanupFn of cleanups) {
+ cleanupFn();
+ }
+ };
+
const message = e => {
const {method, id: localId} = e.data;
if (method === 'response' && localId === id) {
@@ -118,17 +139,33 @@ export default _default_export_;`;
} else {
reject(error);
}
- self.port.removeEventListener('message', message);
+ _cleanup();
}
};
self.port.addEventListener('message', message);
+ cleanups.push(() => {
+ self.port.removeEventListener('message', message);
+ });
+
+ if (signal) {
+ const abort = () => {
+ // XXX we can post the abort to the worker process to make it stop faster
+ reject(new Error('abort'));
+ _cleanup();
+ };
+ signal.addEventListener('abort', abort);
+ cleanups.push(() => {
+ signal.removeEventListener('abort', abort);
+ });
+ }
});
return result;
}
return callRemoteFn;
}
destroy() {
- this.live = false;
+ // this.live = false;
+
if (this.iframe) {
this.iframe.parentElement.removeChild(this.iframe);
this.iframe = null;
diff --git a/overrides.js b/overrides.js
new file mode 100644
index 0000000000..a45de1c8ca
--- /dev/null
+++ b/overrides.js
@@ -0,0 +1,26 @@
+class Override extends EventTarget {
+ constructor(value) {
+ super();
+ this.value = value;
+ }
+ get() {
+ return this.value;
+ }
+ set(value) {
+ if (value !== this.value) {
+ this.value = value;
+ this.dispatchEvent(new MessageEvent('change', {
+ data: {
+ value,
+ },
+ }));
+ }
+ }
+}
+const overrides = {
+ overrideVoicePack: new Override(null),
+ overrideVoiceEndpoint: new Override(null),
+ userVoicePack: new Override(null),
+ userVoiceEndpoint: new Override(null),
+}
+export default overrides;
\ No newline at end of file
diff --git a/overworld.js b/overworld.js
index 3e8a04341c..90e444d4ba 100644
--- a/overworld.js
+++ b/overworld.js
@@ -1,6 +1,6 @@
import * as THREE from 'three';
// import metaversefile from 'metaversefile';
-import {localPlayer} from './players.js';
+import {getLocalPlayer} from './players.js';
import {world} from './world.js';
import {scene} from './renderer.js';
import {ScenePreviewer} from './scene-previewer.js';
@@ -63,6 +63,7 @@ class OverworldApp {
}
const loadOverworld = async () => {
+ const localPlayer = getLocalPlayer();
const chunks = [
{
name: 'street',
diff --git a/package-lock.json b/package-lock.json
index cad6ad1c40..5ca691b567 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,29 +9,20 @@
"version": "0.0.1",
"license": "ISC",
"dependencies": {
- "@3id/connect": "^0.2.5",
- "@babel/preset-react": "^7.14.5",
- "@ceramicnetwork/3id-did-resolver": "^1.4.3",
- "@ceramicnetwork/http-client": "^1.3.0",
- "@ceramicstudio/idx": "^0.12.2",
- "@glazed/devtools": "^0.1.3",
+ "@babel/preset-react": "^7.17.12",
"@pixiv/three-vrm": "./packages/three-vrm",
- "@react-three/fiber": "^7.0.6",
- "@shaderfrog/glsl-parser": "^0.1.20",
+ "@react-three/fiber": "^7.0.29",
+ "@shaderfrog/glsl-parser": "^0.1.23",
"classnames": "^2.3.1",
- "dids": "^2.4.0",
"encoding-japanese": "^1.0.30",
- "ethers": "^5.6.4",
- "express": "^4.17.1",
- "forever": "^4.0.1",
+ "ethers": "^5.6.8",
+ "express": "^4.18.1",
+ "forever": "^4.0.3",
"gpt-3-encoder": "^1.1.3",
"json-6": "^1.1.4",
- "key-did-provider-ed25519": "^1.1.0",
- "key-did-resolver": "^1.4.0",
- "maxrects-packer": "^2.7.2",
+ "maxrects-packer": "^2.7.3",
"metaversefile": "./packages/totum",
- "node-fetch": "^3.1.0",
- "openai-api": "^1.2.6",
+ "openai-api": "^1.3.1",
"react": "17.0.2",
"react-dom": "17.0.2",
"smile2emoji": "^1.1.6",
@@ -44,68 +35,33 @@
"zjs": "./packages/zjs"
},
"devDependencies": {
- "@vitejs/plugin-react-refresh": "^1.3.1",
- "eslint": "^7.8.1",
+ "@vitejs/plugin-react-refresh": "^1.3.6",
+ "eslint": "^7.32.0",
"eslint-config-semistandard": "^15.0.1",
"eslint-config-standard": "^14.1.1",
- "eslint-plugin-import": "^2.22.0",
+ "eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^4.2.1",
- "eslint-plugin-standard": "^4.0.1",
- "spectorjs": "^0.9.27",
- "vite": "^2.5.1"
- }
- },
- "node_modules/@3id/common": {
- "version": "0.2.1",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "errors-utils": "^0.1.0",
- "uint8arrays": "^2.1.5"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@3id/connect": {
- "version": "0.2.5",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@3id/common": "^0.2.1",
- "@3id/connect-display": "^0.2.1",
- "@3id/window-auth-provider": "^0.2.5",
- "@ceramicnetwork/blockchain-utils-linking": "^1.2.0",
- "postmsg-rpc": "^2.4.0",
- "rpc-utils": "^0.4.0",
- "rxjs": "^6.6.6"
- }
- },
- "node_modules/@3id/connect-display": {
- "version": "0.2.1",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/rpc-window": "^0.1.1",
- "@ceramicnetwork/transport-postmessage": "^0.3.0",
- "rxjs": "^6.6.6"
- },
- "engines": {
- "node": ">=12"
+ "eslint-plugin-promise": "^4.3.1",
+ "eslint-plugin-standard": "^4.1.0",
+ "vite": "^2.9.12"
}
},
- "node_modules/@3id/window-auth-provider": {
- "version": "0.2.5",
- "license": "(Apache-2.0 OR MIT)",
+ "node_modules/@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
"dependencies": {
- "@ceramicnetwork/rpc-window": "^0.1.1",
- "caip": "^0.9.2"
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
- "node": ">=12"
+ "node": ">=6.0.0"
}
},
"node_modules/@babel/code-frame": {
"version": "7.16.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
+ "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
"dependencies": {
"@babel/highlight": "^7.16.7"
},
@@ -114,31 +70,33 @@
}
},
"node_modules/@babel/compat-data": {
- "version": "7.16.8",
- "license": "MIT",
+ "version": "7.17.10",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz",
+ "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/core": {
- "version": "7.15.8",
- "license": "MIT",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz",
+ "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==",
"dependencies": {
- "@babel/code-frame": "^7.15.8",
- "@babel/generator": "^7.15.8",
- "@babel/helper-compilation-targets": "^7.15.4",
- "@babel/helper-module-transforms": "^7.15.8",
- "@babel/helpers": "^7.15.4",
- "@babel/parser": "^7.15.8",
- "@babel/template": "^7.15.4",
- "@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.6",
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.16.7",
+ "@babel/generator": "^7.18.2",
+ "@babel/helper-compilation-targets": "^7.18.2",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helpers": "^7.18.2",
+ "@babel/parser": "^7.18.0",
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.1.2",
- "semver": "^6.3.0",
- "source-map": "^0.5.0"
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
},
"engines": {
"node": ">=6.9.0"
@@ -149,9 +107,10 @@
}
},
"node_modules/@babel/eslint-parser": {
- "version": "7.16.5",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz",
+ "integrity": "sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-scope": "^5.1.1",
"eslint-visitor-keys": "^2.1.0",
@@ -166,20 +125,35 @@
}
},
"node_modules/@babel/generator": {
- "version": "7.16.8",
- "license": "MIT",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz",
+ "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==",
"dependencies": {
- "@babel/types": "^7.16.8",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
+ "@babel/types": "^7.18.2",
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "jsesc": "^2.5.1"
},
"engines": {
"node": ">=6.9.0"
}
},
+ "node_modules/@babel/generator/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
+ "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
"node_modules/@babel/helper-annotate-as-pure": {
"version": "7.16.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz",
+ "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -189,8 +163,9 @@
},
"node_modules/@babel/helper-builder-binary-assignment-operator-visitor": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz",
+ "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-explode-assignable-expression": "^7.16.7",
"@babel/types": "^7.16.7"
@@ -200,12 +175,13 @@
}
},
"node_modules/@babel/helper-compilation-targets": {
- "version": "7.16.7",
- "license": "MIT",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz",
+ "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==",
"dependencies": {
- "@babel/compat-data": "^7.16.4",
+ "@babel/compat-data": "^7.17.10",
"@babel/helper-validator-option": "^7.16.7",
- "browserslist": "^4.17.5",
+ "browserslist": "^4.20.2",
"semver": "^6.3.0"
},
"engines": {
@@ -216,14 +192,15 @@
}
},
"node_modules/@babel/helper-create-class-features-plugin": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz",
+ "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
- "@babel/helper-member-expression-to-functions": "^7.16.7",
+ "@babel/helper-function-name": "^7.17.9",
+ "@babel/helper-member-expression-to-functions": "^7.17.7",
"@babel/helper-optimise-call-expression": "^7.16.7",
"@babel/helper-replace-supers": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7"
@@ -236,12 +213,13 @@
}
},
"node_modules/@babel/helper-create-regexp-features-plugin": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz",
+ "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "regexpu-core": "^4.7.1"
+ "regexpu-core": "^5.0.1"
},
"engines": {
"node": ">=6.9.0"
@@ -251,9 +229,10 @@
}
},
"node_modules/@babel/helper-define-polyfill-provider": {
- "version": "0.3.0",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz",
+ "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.13.0",
"@babel/helper-module-imports": "^7.12.13",
@@ -269,19 +248,18 @@
}
},
"node_modules/@babel/helper-environment-visitor": {
- "version": "7.16.7",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.16.7"
- },
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz",
+ "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-explode-assignable-expression": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz",
+ "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -290,22 +268,12 @@
}
},
"node_modules/@babel/helper-function-name": {
- "version": "7.16.7",
- "license": "MIT",
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz",
+ "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==",
"dependencies": {
- "@babel/helper-get-function-arity": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/types": "^7.16.7"
- },
- "engines": {
- "node": ">=6.9.0"
- }
- },
- "node_modules/@babel/helper-get-function-arity": {
- "version": "7.16.7",
- "license": "MIT",
- "dependencies": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.17.0"
},
"engines": {
"node": ">=6.9.0"
@@ -313,7 +281,8 @@
},
"node_modules/@babel/helper-hoist-variables": {
"version": "7.16.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
+ "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -322,11 +291,12 @@
}
},
"node_modules/@babel/helper-member-expression-to-functions": {
- "version": "7.16.7",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz",
+ "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.17.0"
},
"engines": {
"node": ">=6.9.0"
@@ -334,7 +304,8 @@
},
"node_modules/@babel/helper-module-imports": {
"version": "7.16.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
+ "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -343,17 +314,18 @@
}
},
"node_modules/@babel/helper-module-transforms": {
- "version": "7.16.7",
- "license": "MIT",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz",
+ "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==",
"dependencies": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-simple-access": "^7.16.7",
+ "@babel/helper-simple-access": "^7.17.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/traverse": "^7.18.0",
+ "@babel/types": "^7.18.0"
},
"engines": {
"node": ">=6.9.0"
@@ -361,8 +333,9 @@
},
"node_modules/@babel/helper-optimise-call-expression": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz",
+ "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -371,16 +344,18 @@
}
},
"node_modules/@babel/helper-plugin-utils": {
- "version": "7.16.7",
- "license": "MIT",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz",
+ "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-remap-async-to-generator": {
"version": "7.16.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz",
+ "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-wrap-function": "^7.16.8",
@@ -391,25 +366,27 @@
}
},
"node_modules/@babel/helper-replace-supers": {
- "version": "7.16.7",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz",
+ "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-member-expression-to-functions": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-member-expression-to-functions": "^7.17.7",
"@babel/helper-optimise-call-expression": "^7.16.7",
- "@babel/traverse": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-simple-access": {
- "version": "7.16.7",
- "license": "MIT",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz",
+ "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==",
"dependencies": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.18.2"
},
"engines": {
"node": ">=6.9.0"
@@ -417,8 +394,9 @@
},
"node_modules/@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz",
+ "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/types": "^7.16.0"
},
@@ -428,7 +406,8 @@
},
"node_modules/@babel/helper-split-export-declaration": {
"version": "7.16.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
+ "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
"dependencies": {
"@babel/types": "^7.16.7"
},
@@ -438,22 +417,25 @@
},
"node_modules/@babel/helper-validator-identifier": {
"version": "7.16.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-validator-option": {
"version": "7.16.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
+ "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/helper-wrap-function": {
"version": "7.16.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz",
+ "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-function-name": "^7.16.7",
"@babel/template": "^7.16.7",
@@ -465,20 +447,22 @@
}
},
"node_modules/@babel/helpers": {
- "version": "7.15.4",
- "license": "MIT",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz",
+ "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==",
"dependencies": {
- "@babel/template": "^7.15.4",
- "@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.4"
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2"
},
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/@babel/highlight": {
- "version": "7.16.7",
- "license": "MIT",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz",
+ "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==",
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
@@ -489,8 +473,9 @@
}
},
"node_modules/@babel/parser": {
- "version": "7.16.8",
- "license": "MIT",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz",
+ "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow==",
"bin": {
"parser": "bin/babel-parser.js"
},
@@ -499,11 +484,12 @@
}
},
"node_modules/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz",
+ "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -513,13 +499,14 @@
}
},
"node_modules/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz",
+ "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
- "@babel/plugin-proposal-optional-chaining": "^7.16.7"
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -529,11 +516,12 @@
}
},
"node_modules/@babel/plugin-proposal-async-generator-functions": {
- "version": "7.16.8",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz",
+ "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-remap-async-to-generator": "^7.16.8",
"@babel/plugin-syntax-async-generators": "^7.8.4"
},
@@ -545,12 +533,13 @@
}
},
"node_modules/@babel/plugin-proposal-class-properties": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz",
+ "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -560,12 +549,13 @@
}
},
"node_modules/@babel/plugin-proposal-class-static-block": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz",
+ "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-create-class-features-plugin": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
},
"engines": {
@@ -577,8 +567,9 @@
},
"node_modules/@babel/plugin-proposal-dynamic-import": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz",
+ "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/plugin-syntax-dynamic-import": "^7.8.3"
@@ -591,11 +582,12 @@
}
},
"node_modules/@babel/plugin-proposal-export-namespace-from": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz",
+ "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
},
"engines": {
@@ -606,11 +598,12 @@
}
},
"node_modules/@babel/plugin-proposal-json-strings": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz",
+ "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-json-strings": "^7.8.3"
},
"engines": {
@@ -621,11 +614,12 @@
}
},
"node_modules/@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz",
+ "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
},
"engines": {
@@ -636,11 +630,12 @@
}
},
"node_modules/@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz",
+ "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
},
"engines": {
@@ -652,8 +647,9 @@
},
"node_modules/@babel/plugin-proposal-numeric-separator": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz",
+ "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/plugin-syntax-numeric-separator": "^7.10.4"
@@ -666,15 +662,16 @@
}
},
"node_modules/@babel/plugin-proposal-object-rest-spread": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz",
+ "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.16.4",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/compat-data": "^7.17.10",
+ "@babel/helper-compilation-targets": "^7.17.10",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.16.7"
+ "@babel/plugin-transform-parameters": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -685,8 +682,9 @@
},
"node_modules/@babel/plugin-proposal-optional-catch-binding": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz",
+ "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/plugin-syntax-optional-catch-binding": "^7.8.3"
@@ -699,11 +697,12 @@
}
},
"node_modules/@babel/plugin-proposal-optional-chaining": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz",
+ "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
},
@@ -715,12 +714,13 @@
}
},
"node_modules/@babel/plugin-proposal-private-methods": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz",
+ "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -730,13 +730,14 @@
}
},
"node_modules/@babel/plugin-proposal-private-property-in-object": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz",
+ "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
},
"engines": {
@@ -747,12 +748,13 @@
}
},
"node_modules/@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz",
+ "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=4"
@@ -763,8 +765,9 @@
},
"node_modules/@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -774,8 +777,9 @@
},
"node_modules/@babel/plugin-syntax-class-properties": {
"version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.12.13"
},
@@ -785,8 +789,9 @@
},
"node_modules/@babel/plugin-syntax-class-static-block": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -799,8 +804,9 @@
},
"node_modules/@babel/plugin-syntax-dynamic-import": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -810,8 +816,9 @@
},
"node_modules/@babel/plugin-syntax-export-namespace-from": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.3"
},
@@ -819,10 +826,26 @@
"@babel/core": "^7.0.0-0"
}
},
+ "node_modules/@babel/plugin-syntax-import-assertions": {
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz",
+ "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==",
+ "dev": true,
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.17.12"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
"node_modules/@babel/plugin-syntax-json-strings": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -831,10 +854,11 @@
}
},
"node_modules/@babel/plugin-syntax-jsx": {
- "version": "7.14.5",
- "license": "MIT",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz",
+ "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -845,8 +869,9 @@
},
"node_modules/@babel/plugin-syntax-logical-assignment-operators": {
"version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -856,8 +881,9 @@
},
"node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -867,8 +893,9 @@
},
"node_modules/@babel/plugin-syntax-numeric-separator": {
"version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.10.4"
},
@@ -878,8 +905,9 @@
},
"node_modules/@babel/plugin-syntax-object-rest-spread": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -889,8 +917,9 @@
},
"node_modules/@babel/plugin-syntax-optional-catch-binding": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -900,8 +929,9 @@
},
"node_modules/@babel/plugin-syntax-optional-chaining": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.8.0"
},
@@ -911,8 +941,9 @@
},
"node_modules/@babel/plugin-syntax-private-property-in-object": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -925,8 +956,9 @@
},
"node_modules/@babel/plugin-syntax-top-level-await": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.14.5"
},
@@ -938,11 +970,12 @@
}
},
"node_modules/@babel/plugin-transform-arrow-functions": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz",
+ "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -952,12 +985,13 @@
}
},
"node_modules/@babel/plugin-transform-async-to-generator": {
- "version": "7.16.8",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz",
+ "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-remap-async-to-generator": "^7.16.8"
},
"engines": {
@@ -969,8 +1003,9 @@
},
"node_modules/@babel/plugin-transform-block-scoped-functions": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz",
+ "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
@@ -982,11 +1017,12 @@
}
},
"node_modules/@babel/plugin-transform-block-scoping": {
- "version": "7.16.7",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz",
+ "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -996,16 +1032,17 @@
}
},
"node_modules/@babel/plugin-transform-classes": {
- "version": "7.16.7",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz",
+ "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-function-name": "^7.17.9",
"@babel/helper-optimise-call-expression": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-replace-supers": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-replace-supers": "^7.18.2",
"@babel/helper-split-export-declaration": "^7.16.7",
"globals": "^11.1.0"
},
@@ -1017,11 +1054,12 @@
}
},
"node_modules/@babel/plugin-transform-computed-properties": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz",
+ "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1031,11 +1069,12 @@
}
},
"node_modules/@babel/plugin-transform-destructuring": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz",
+ "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1046,8 +1085,9 @@
},
"node_modules/@babel/plugin-transform-dotall-regex": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz",
+ "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7"
@@ -1060,11 +1100,12 @@
}
},
"node_modules/@babel/plugin-transform-duplicate-keys": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz",
+ "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1075,8 +1116,9 @@
},
"node_modules/@babel/plugin-transform-exponentiation-operator": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz",
+ "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7"
@@ -1089,11 +1131,12 @@
}
},
"node_modules/@babel/plugin-transform-for-of": {
- "version": "7.16.7",
+ "version": "7.18.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz",
+ "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1104,8 +1147,9 @@
},
"node_modules/@babel/plugin-transform-function-name": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz",
+ "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-compilation-targets": "^7.16.7",
"@babel/helper-function-name": "^7.16.7",
@@ -1119,11 +1163,12 @@
}
},
"node_modules/@babel/plugin-transform-literals": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz",
+ "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1134,8 +1179,9 @@
},
"node_modules/@babel/plugin-transform-member-expression-literals": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz",
+ "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
@@ -1147,12 +1193,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-amd": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz",
+ "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
"engines": {
@@ -1163,13 +1210,14 @@
}
},
"node_modules/@babel/plugin-transform-modules-commonjs": {
- "version": "7.16.8",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz",
+ "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-simple-access": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-simple-access": "^7.18.2",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
"engines": {
@@ -1180,13 +1228,14 @@
}
},
"node_modules/@babel/plugin-transform-modules-systemjs": {
- "version": "7.16.7",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz",
+ "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-hoist-variables": "^7.16.7",
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-identifier": "^7.16.7",
"babel-plugin-dynamic-import-node": "^2.3.3"
},
@@ -1198,12 +1247,13 @@
}
},
"node_modules/@babel/plugin-transform-modules-umd": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz",
+ "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1213,11 +1263,13 @@
}
},
"node_modules/@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.16.8",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz",
+ "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-create-regexp-features-plugin": "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1227,11 +1279,12 @@
}
},
"node_modules/@babel/plugin-transform-new-target": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz",
+ "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1242,8 +1295,9 @@
},
"node_modules/@babel/plugin-transform-object-super": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz",
+ "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7",
"@babel/helper-replace-supers": "^7.16.7"
@@ -1256,11 +1310,12 @@
}
},
"node_modules/@babel/plugin-transform-parameters": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz",
+ "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1271,8 +1326,9 @@
},
"node_modules/@babel/plugin-transform-property-literals": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz",
+ "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
@@ -1284,10 +1340,11 @@
}
},
"node_modules/@babel/plugin-transform-react-display-name": {
- "version": "7.15.1",
- "license": "MIT",
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz",
+ "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1297,14 +1354,15 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx": {
- "version": "7.14.9",
- "license": "MIT",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz",
+ "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-module-imports": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-jsx": "^7.14.5",
- "@babel/types": "^7.14.9"
+ "@babel/helper-annotate-as-pure": "^7.16.7",
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/plugin-syntax-jsx": "^7.17.12",
+ "@babel/types": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1314,10 +1372,11 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-development": {
- "version": "7.14.5",
- "license": "MIT",
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz",
+ "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==",
"dependencies": {
- "@babel/plugin-transform-react-jsx": "^7.14.5"
+ "@babel/plugin-transform-react-jsx": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1327,11 +1386,12 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-self": {
- "version": "7.14.9",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.17.12.tgz",
+ "integrity": "sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1341,11 +1401,12 @@
}
},
"node_modules/@babel/plugin-transform-react-jsx-source": {
- "version": "7.14.5",
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz",
+ "integrity": "sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1355,11 +1416,12 @@
}
},
"node_modules/@babel/plugin-transform-react-pure-annotations": {
- "version": "7.14.5",
- "license": "MIT",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz",
+ "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==",
"dependencies": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1369,11 +1431,13 @@
}
},
"node_modules/@babel/plugin-transform-regenerator": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz",
+ "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "regenerator-transform": "^0.14.2"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "regenerator-transform": "^0.15.0"
},
"engines": {
"node": ">=6.9.0"
@@ -1383,11 +1447,12 @@
}
},
"node_modules/@babel/plugin-transform-reserved-words": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz",
+ "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1398,8 +1463,9 @@
},
"node_modules/@babel/plugin-transform-shorthand-properties": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz",
+ "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
@@ -1411,11 +1477,12 @@
}
},
"node_modules/@babel/plugin-transform-spread": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz",
+ "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
},
"engines": {
@@ -1427,8 +1494,9 @@
},
"node_modules/@babel/plugin-transform-sticky-regex": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz",
+ "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
@@ -1440,11 +1508,12 @@
}
},
"node_modules/@babel/plugin-transform-template-literals": {
- "version": "7.16.7",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz",
+ "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1454,11 +1523,12 @@
}
},
"node_modules/@babel/plugin-transform-typeof-symbol": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz",
+ "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
},
"engines": {
"node": ">=6.9.0"
@@ -1469,8 +1539,9 @@
},
"node_modules/@babel/plugin-transform-unicode-escapes": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz",
+ "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.16.7"
},
@@ -1483,8 +1554,9 @@
},
"node_modules/@babel/plugin-transform-unicode-regex": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz",
+ "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-create-regexp-features-plugin": "^7.16.7",
"@babel/helper-plugin-utils": "^7.16.7"
@@ -1497,36 +1569,38 @@
}
},
"node_modules/@babel/preset-env": {
- "version": "7.16.8",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz",
+ "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/compat-data": "^7.16.8",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/compat-data": "^7.17.10",
+ "@babel/helper-compilation-targets": "^7.18.2",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-option": "^7.16.7",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7",
- "@babel/plugin-proposal-async-generator-functions": "^7.16.8",
- "@babel/plugin-proposal-class-properties": "^7.16.7",
- "@babel/plugin-proposal-class-static-block": "^7.16.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12",
+ "@babel/plugin-proposal-async-generator-functions": "^7.17.12",
+ "@babel/plugin-proposal-class-properties": "^7.17.12",
+ "@babel/plugin-proposal-class-static-block": "^7.18.0",
"@babel/plugin-proposal-dynamic-import": "^7.16.7",
- "@babel/plugin-proposal-export-namespace-from": "^7.16.7",
- "@babel/plugin-proposal-json-strings": "^7.16.7",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
+ "@babel/plugin-proposal-export-namespace-from": "^7.17.12",
+ "@babel/plugin-proposal-json-strings": "^7.17.12",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12",
"@babel/plugin-proposal-numeric-separator": "^7.16.7",
- "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.18.0",
"@babel/plugin-proposal-optional-catch-binding": "^7.16.7",
- "@babel/plugin-proposal-optional-chaining": "^7.16.7",
- "@babel/plugin-proposal-private-methods": "^7.16.7",
- "@babel/plugin-proposal-private-property-in-object": "^7.16.7",
- "@babel/plugin-proposal-unicode-property-regex": "^7.16.7",
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12",
+ "@babel/plugin-proposal-private-methods": "^7.17.12",
+ "@babel/plugin-proposal-private-property-in-object": "^7.17.12",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.17.12",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.17.12",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -1536,44 +1610,44 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.16.7",
- "@babel/plugin-transform-async-to-generator": "^7.16.8",
+ "@babel/plugin-transform-arrow-functions": "^7.17.12",
+ "@babel/plugin-transform-async-to-generator": "^7.17.12",
"@babel/plugin-transform-block-scoped-functions": "^7.16.7",
- "@babel/plugin-transform-block-scoping": "^7.16.7",
- "@babel/plugin-transform-classes": "^7.16.7",
- "@babel/plugin-transform-computed-properties": "^7.16.7",
- "@babel/plugin-transform-destructuring": "^7.16.7",
+ "@babel/plugin-transform-block-scoping": "^7.17.12",
+ "@babel/plugin-transform-classes": "^7.17.12",
+ "@babel/plugin-transform-computed-properties": "^7.17.12",
+ "@babel/plugin-transform-destructuring": "^7.18.0",
"@babel/plugin-transform-dotall-regex": "^7.16.7",
- "@babel/plugin-transform-duplicate-keys": "^7.16.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.17.12",
"@babel/plugin-transform-exponentiation-operator": "^7.16.7",
- "@babel/plugin-transform-for-of": "^7.16.7",
+ "@babel/plugin-transform-for-of": "^7.18.1",
"@babel/plugin-transform-function-name": "^7.16.7",
- "@babel/plugin-transform-literals": "^7.16.7",
+ "@babel/plugin-transform-literals": "^7.17.12",
"@babel/plugin-transform-member-expression-literals": "^7.16.7",
- "@babel/plugin-transform-modules-amd": "^7.16.7",
- "@babel/plugin-transform-modules-commonjs": "^7.16.8",
- "@babel/plugin-transform-modules-systemjs": "^7.16.7",
- "@babel/plugin-transform-modules-umd": "^7.16.7",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8",
- "@babel/plugin-transform-new-target": "^7.16.7",
+ "@babel/plugin-transform-modules-amd": "^7.18.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.18.2",
+ "@babel/plugin-transform-modules-systemjs": "^7.18.0",
+ "@babel/plugin-transform-modules-umd": "^7.18.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12",
+ "@babel/plugin-transform-new-target": "^7.17.12",
"@babel/plugin-transform-object-super": "^7.16.7",
- "@babel/plugin-transform-parameters": "^7.16.7",
+ "@babel/plugin-transform-parameters": "^7.17.12",
"@babel/plugin-transform-property-literals": "^7.16.7",
- "@babel/plugin-transform-regenerator": "^7.16.7",
- "@babel/plugin-transform-reserved-words": "^7.16.7",
+ "@babel/plugin-transform-regenerator": "^7.18.0",
+ "@babel/plugin-transform-reserved-words": "^7.17.12",
"@babel/plugin-transform-shorthand-properties": "^7.16.7",
- "@babel/plugin-transform-spread": "^7.16.7",
+ "@babel/plugin-transform-spread": "^7.17.12",
"@babel/plugin-transform-sticky-regex": "^7.16.7",
- "@babel/plugin-transform-template-literals": "^7.16.7",
- "@babel/plugin-transform-typeof-symbol": "^7.16.7",
+ "@babel/plugin-transform-template-literals": "^7.18.2",
+ "@babel/plugin-transform-typeof-symbol": "^7.17.12",
"@babel/plugin-transform-unicode-escapes": "^7.16.7",
"@babel/plugin-transform-unicode-regex": "^7.16.7",
"@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.16.8",
+ "@babel/types": "^7.18.2",
"babel-plugin-polyfill-corejs2": "^0.3.0",
"babel-plugin-polyfill-corejs3": "^0.5.0",
"babel-plugin-polyfill-regenerator": "^0.3.0",
- "core-js-compat": "^3.20.2",
+ "core-js-compat": "^3.22.1",
"semver": "^6.3.0"
},
"engines": {
@@ -1585,8 +1659,9 @@
},
"node_modules/@babel/preset-modules": {
"version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-plugin-utils": "^7.0.0",
"@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
@@ -1599,15 +1674,16 @@
}
},
"node_modules/@babel/preset-react": {
- "version": "7.14.5",
- "license": "MIT",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz",
+ "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==",
"dependencies": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-transform-react-display-name": "^7.14.5",
- "@babel/plugin-transform-react-jsx": "^7.14.5",
- "@babel/plugin-transform-react-jsx-development": "^7.14.5",
- "@babel/plugin-transform-react-pure-annotations": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-validator-option": "^7.16.7",
+ "@babel/plugin-transform-react-display-name": "^7.16.7",
+ "@babel/plugin-transform-react-jsx": "^7.17.12",
+ "@babel/plugin-transform-react-jsx-development": "^7.16.7",
+ "@babel/plugin-transform-react-pure-annotations": "^7.16.7"
},
"engines": {
"node": ">=6.9.0"
@@ -1617,8 +1693,9 @@
}
},
"node_modules/@babel/runtime": {
- "version": "7.15.4",
- "license": "MIT",
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz",
+ "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==",
"dependencies": {
"regenerator-runtime": "^0.13.4"
},
@@ -1628,7 +1705,8 @@
},
"node_modules/@babel/template": {
"version": "7.16.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
+ "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
"dependencies": {
"@babel/code-frame": "^7.16.7",
"@babel/parser": "^7.16.7",
@@ -1639,17 +1717,18 @@
}
},
"node_modules/@babel/traverse": {
- "version": "7.16.8",
- "license": "MIT",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz",
+ "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==",
"dependencies": {
"@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.16.8",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
+ "@babel/generator": "^7.18.2",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-function-name": "^7.17.9",
"@babel/helper-hoist-variables": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7",
- "@babel/parser": "^7.16.8",
- "@babel/types": "^7.16.8",
+ "@babel/parser": "^7.18.0",
+ "@babel/types": "^7.18.2",
"debug": "^4.1.0",
"globals": "^11.1.0"
},
@@ -1658,8 +1737,9 @@
}
},
"node_modules/@babel/types": {
- "version": "7.16.8",
- "license": "MIT",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz",
+ "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==",
"dependencies": {
"@babel/helper-validator-identifier": "^7.16.7",
"to-fast-properties": "^2.0.0"
@@ -1668,193 +1748,29 @@
"node": ">=6.9.0"
}
},
- "node_modules/@ceramicnetwork/3id-did-resolver": {
- "version": "1.4.4",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/common": "^1.6.0",
- "@ceramicnetwork/stream-tile": "^1.3.2",
- "@ceramicnetwork/streamid": "^1.3.0",
- "cids": "~1.1.6",
- "cross-fetch": "^3.1.4",
- "lru_map": "^0.4.1",
- "uint8arrays": "^2.0.5"
- }
- },
- "node_modules/@ceramicnetwork/blockchain-utils-linking": {
- "version": "1.2.1",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@stablelib/sha256": "^1.0.0",
- "caip": "~0.9.2",
- "uint8arrays": "^2.0.5"
- }
- },
- "node_modules/@ceramicnetwork/common": {
- "version": "1.6.0",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/streamid": "^1.3.0",
- "@overnightjs/logger": "^1.2.0",
- "cids": "~1.1.6",
- "cross-fetch": "^3.1.4",
- "flat": "^5.0.2",
- "lodash.clonedeep": "^4.5.0",
- "logfmt": "^1.3.2",
- "rxjs": "^7.0.0",
- "uint8arrays": "^2.0.5"
- }
- },
- "node_modules/@ceramicnetwork/common/node_modules/rxjs": {
- "version": "7.4.0",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "~2.1.0"
- }
- },
- "node_modules/@ceramicnetwork/common/node_modules/tslib": {
- "version": "2.1.0",
- "license": "0BSD"
- },
- "node_modules/@ceramicnetwork/http-client": {
- "version": "1.4.0",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/common": "^1.6.0",
- "@ceramicnetwork/stream-caip10-link": "^1.1.6",
- "@ceramicnetwork/stream-tile": "^1.3.2",
- "@ceramicnetwork/streamid": "^1.3.0",
- "query-string": "7.0.1",
- "rxjs": "^7.0.0"
- }
- },
- "node_modules/@ceramicnetwork/http-client/node_modules/rxjs": {
- "version": "7.4.0",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "~2.1.0"
- }
- },
- "node_modules/@ceramicnetwork/http-client/node_modules/tslib": {
- "version": "2.1.0",
- "license": "0BSD"
- },
- "node_modules/@ceramicnetwork/rpc-postmessage": {
- "version": "0.4.1",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/rpc-transport": "^0.3.0",
- "@ceramicnetwork/transport-postmessage": "^0.3.0",
- "@ceramicnetwork/transport-subject": "^0.3.0",
- "rpc-utils": "^0.4.0",
- "rxjs": "^6.6.6"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@ceramicnetwork/rpc-transport": {
- "version": "0.3.1",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/transport-subject": "^0.3.0",
- "rpc-utils": "^0.4.0",
- "rxjs": "^6.6.6"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@ceramicnetwork/rpc-window": {
- "version": "0.1.1",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/rpc-postmessage": "^0.4.0",
- "@ceramicnetwork/transport-postmessage": "^0.3.0",
- "rpc-utils": "^0.4.0"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@ceramicnetwork/stream-caip10-link": {
- "version": "1.1.6",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/common": "^1.6.0",
- "@ceramicnetwork/streamid": "^1.3.0",
- "caip": "~0.9.2"
- }
- },
- "node_modules/@ceramicnetwork/stream-tile": {
- "version": "1.3.2",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/common": "^1.6.0",
- "@ceramicnetwork/streamid": "^1.3.0",
- "@stablelib/random": "^1.0.0",
- "fast-json-patch": "^2.2.1",
- "uint8arrays": "^2.0.5"
- }
- },
- "node_modules/@ceramicnetwork/streamid": {
- "version": "1.3.0",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "cids": "~1.1.6",
- "ipld-dag-cbor": "^0.17.0",
- "multibase": "~4.0.2",
- "typescript-memoize": "^1.0.0-alpha.4",
- "uint8arrays": "^2.0.5",
- "varint": "^6.0.0"
- }
- },
- "node_modules/@ceramicnetwork/transport-postmessage": {
- "version": "0.3.0",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/transport-subject": "^0.3.0",
- "rxjs": "^6.6.6"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@ceramicnetwork/transport-subject": {
- "version": "0.3.0",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "rxjs": "^6.6.6"
- },
+ "node_modules/@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==",
"engines": {
- "node": ">=12"
+ "node": ">=0.1.90"
}
},
- "node_modules/@ceramicstudio/idx": {
- "version": "0.12.2",
- "license": "(Apache-2.0 OR MIT)",
+ "node_modules/@dabh/diagnostics": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
+ "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
"dependencies": {
- "@ceramicnetwork/stream-caip10-link": "^1.0.0",
- "@ceramicnetwork/stream-tile": "^1.0.0",
- "@ceramicstudio/idx-constants": "^1.0.0",
- "caip": "^0.9.2",
- "cross-fetch": "^3.1.4"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/@ceramicstudio/idx-constants": {
- "version": "1.0.0",
- "license": "(Apache-2.0 OR MIT)",
- "engines": {
- "node": ">=12"
+ "colorspace": "1.1.x",
+ "enabled": "2.0.x",
+ "kuler": "^2.0.0"
}
},
"node_modules/@eslint/eslintrc": {
"version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
+ "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ajv": "^6.12.4",
"debug": "^4.1.1",
@@ -1872,8 +1788,9 @@
},
"node_modules/@eslint/eslintrc/node_modules/ajv": {
"version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -1886,9 +1803,10 @@
}
},
"node_modules/@eslint/eslintrc/node_modules/globals": {
- "version": "13.11.0",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -1901,13 +1819,14 @@
},
"node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": {
"version": "0.4.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
},
"node_modules/@ethersproject/abi": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.1.tgz",
- "integrity": "sha512-0cqssYh6FXjlwKWBmLm3+zH2BNARoS5u/hxbz+LpQmcDB3w0W553h2btWui1/uZp2GBM/SI3KniTuMcYyHpA5w==",
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.3.tgz",
+ "integrity": "sha512-CxKTdoZY4zDJLWXG6HzNH6znWK0M79WzzxHegDoecE3+K32pzfHOzuXg2/oGSTecZynFgpkjYXNPOqXVJlqClw==",
"funding": [
{
"type": "individual",
@@ -1919,21 +1838,21 @@
}
],
"dependencies": {
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
- "@ethersproject/hash": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/strings": "^5.6.1"
}
},
"node_modules/@ethersproject/abstract-provider": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz",
- "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz",
+ "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==",
"funding": [
{
"type": "individual",
@@ -1945,19 +1864,19 @@
}
],
"dependencies": {
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/networks": "^5.6.0",
+ "@ethersproject/networks": "^5.6.3",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
- "@ethersproject/web": "^5.6.0"
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/web": "^5.6.1"
}
},
"node_modules/@ethersproject/abstract-signer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz",
- "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz",
+ "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==",
"funding": [
{
"type": "individual",
@@ -1969,17 +1888,17 @@
}
],
"dependencies": {
- "@ethersproject/abstract-provider": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0"
}
},
"node_modules/@ethersproject/address": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz",
- "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz",
+ "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==",
"funding": [
{
"type": "individual",
@@ -1991,17 +1910,17 @@
}
],
"dependencies": {
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/rlp": "^5.6.0"
+ "@ethersproject/rlp": "^5.6.1"
}
},
"node_modules/@ethersproject/base64": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz",
- "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz",
+ "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==",
"funding": [
{
"type": "individual",
@@ -2013,13 +1932,13 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0"
+ "@ethersproject/bytes": "^5.6.1"
}
},
"node_modules/@ethersproject/basex": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.0.tgz",
- "integrity": "sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz",
+ "integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==",
"funding": [
{
"type": "individual",
@@ -2031,14 +1950,14 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/properties": "^5.6.0"
}
},
"node_modules/@ethersproject/bignumber": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz",
- "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz",
+ "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==",
"funding": [
{
"type": "individual",
@@ -2050,9 +1969,9 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "bn.js": "^4.11.9"
+ "bn.js": "^5.2.1"
}
},
"node_modules/@ethersproject/bytes": {
@@ -2074,9 +1993,9 @@
}
},
"node_modules/@ethersproject/constants": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz",
- "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz",
+ "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==",
"funding": [
{
"type": "individual",
@@ -2088,13 +2007,13 @@
}
],
"dependencies": {
- "@ethersproject/bignumber": "^5.6.0"
+ "@ethersproject/bignumber": "^5.6.2"
}
},
"node_modules/@ethersproject/contracts": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.0.tgz",
- "integrity": "sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.2.tgz",
+ "integrity": "sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g==",
"funding": [
{
"type": "individual",
@@ -2106,22 +2025,22 @@
}
],
"dependencies": {
- "@ethersproject/abi": "^5.6.0",
- "@ethersproject/abstract-provider": "^5.6.0",
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
+ "@ethersproject/abi": "^5.6.3",
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0"
+ "@ethersproject/transactions": "^5.6.2"
}
},
"node_modules/@ethersproject/hash": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz",
- "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz",
+ "integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==",
"funding": [
{
"type": "individual",
@@ -2133,20 +2052,20 @@
}
],
"dependencies": {
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/strings": "^5.6.1"
}
},
"node_modules/@ethersproject/hdnode": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.0.tgz",
- "integrity": "sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz",
+ "integrity": "sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q==",
"funding": [
{
"type": "individual",
@@ -2158,24 +2077,24 @@
}
],
"dependencies": {
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/basex": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/basex": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/pbkdf2": "^5.6.0",
+ "@ethersproject/pbkdf2": "^5.6.1",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/sha2": "^5.6.0",
- "@ethersproject/signing-key": "^5.6.0",
- "@ethersproject/strings": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
- "@ethersproject/wordlists": "^5.6.0"
+ "@ethersproject/sha2": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/wordlists": "^5.6.1"
}
},
"node_modules/@ethersproject/json-wallets": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz",
- "integrity": "sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz",
+ "integrity": "sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ==",
"funding": [
{
"type": "individual",
@@ -2187,25 +2106,25 @@
}
],
"dependencies": {
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/hdnode": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hdnode": "^5.6.2",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/pbkdf2": "^5.6.0",
+ "@ethersproject/pbkdf2": "^5.6.1",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/random": "^5.6.0",
- "@ethersproject/strings": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
"aes-js": "3.0.0",
"scrypt-js": "3.0.1"
}
},
"node_modules/@ethersproject/keccak256": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz",
- "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz",
+ "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==",
"funding": [
{
"type": "individual",
@@ -2217,7 +2136,7 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"js-sha3": "0.8.0"
}
},
@@ -2237,9 +2156,9 @@
]
},
"node_modules/@ethersproject/networks": {
- "version": "5.6.2",
- "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz",
- "integrity": "sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA==",
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.3.tgz",
+ "integrity": "sha512-QZxRH7cA5Ut9TbXwZFiCyuPchdWi87ZtVNHWZd0R6YFgYtes2jQ3+bsslJ0WdyDe0i6QumqtoYqvY3rrQFRZOQ==",
"funding": [
{
"type": "individual",
@@ -2255,9 +2174,9 @@
}
},
"node_modules/@ethersproject/pbkdf2": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz",
- "integrity": "sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz",
+ "integrity": "sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ==",
"funding": [
{
"type": "individual",
@@ -2269,8 +2188,8 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/sha2": "^5.6.0"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/sha2": "^5.6.1"
}
},
"node_modules/@ethersproject/properties": {
@@ -2292,9 +2211,9 @@
}
},
"node_modules/@ethersproject/providers": {
- "version": "5.6.4",
- "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.4.tgz",
- "integrity": "sha512-WAdknnaZ52hpHV3qPiJmKx401BLpup47h36Axxgre9zT+doa/4GC/Ne48ICPxTm0BqndpToHjpLP1ZnaxyE+vw==",
+ "version": "5.6.8",
+ "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.8.tgz",
+ "integrity": "sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w==",
"funding": [
{
"type": "individual",
@@ -2306,51 +2225,32 @@
}
],
"dependencies": {
- "@ethersproject/abstract-provider": "^5.6.0",
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/basex": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
- "@ethersproject/hash": "^5.6.0",
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/base64": "^5.6.1",
+ "@ethersproject/basex": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/networks": "^5.6.0",
+ "@ethersproject/networks": "^5.6.3",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/random": "^5.6.0",
- "@ethersproject/rlp": "^5.6.0",
- "@ethersproject/sha2": "^5.6.0",
- "@ethersproject/strings": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
- "@ethersproject/web": "^5.6.0",
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/rlp": "^5.6.1",
+ "@ethersproject/sha2": "^5.6.1",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/web": "^5.6.1",
"bech32": "1.1.4",
"ws": "7.4.6"
}
},
- "node_modules/@ethersproject/providers/node_modules/ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "engines": {
- "node": ">=8.3.0"
- },
- "peerDependencies": {
- "bufferutil": "^4.0.1",
- "utf-8-validate": "^5.0.2"
- },
- "peerDependenciesMeta": {
- "bufferutil": {
- "optional": true
- },
- "utf-8-validate": {
- "optional": true
- }
- }
- },
"node_modules/@ethersproject/random": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.0.tgz",
- "integrity": "sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz",
+ "integrity": "sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA==",
"funding": [
{
"type": "individual",
@@ -2362,14 +2262,14 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"node_modules/@ethersproject/rlp": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz",
- "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz",
+ "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==",
"funding": [
{
"type": "individual",
@@ -2381,14 +2281,14 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"node_modules/@ethersproject/sha2": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.0.tgz",
- "integrity": "sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz",
+ "integrity": "sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g==",
"funding": [
{
"type": "individual",
@@ -2400,15 +2300,15 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"hash.js": "1.1.7"
}
},
"node_modules/@ethersproject/signing-key": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.0.tgz",
- "integrity": "sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz",
+ "integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==",
"funding": [
{
"type": "individual",
@@ -2420,18 +2320,18 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "bn.js": "^4.11.9",
+ "bn.js": "^5.2.1",
"elliptic": "6.5.4",
"hash.js": "1.1.7"
}
},
"node_modules/@ethersproject/solidity": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.0.tgz",
- "integrity": "sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.1.tgz",
+ "integrity": "sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g==",
"funding": [
{
"type": "individual",
@@ -2443,18 +2343,18 @@
}
],
"dependencies": {
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/sha2": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/sha2": "^5.6.1",
+ "@ethersproject/strings": "^5.6.1"
}
},
"node_modules/@ethersproject/strings": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz",
- "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz",
+ "integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==",
"funding": [
{
"type": "individual",
@@ -2466,15 +2366,15 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"node_modules/@ethersproject/transactions": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz",
- "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz",
+ "integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==",
"funding": [
{
"type": "individual",
@@ -2486,21 +2386,21 @@
}
],
"dependencies": {
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/rlp": "^5.6.0",
- "@ethersproject/signing-key": "^5.6.0"
+ "@ethersproject/rlp": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2"
}
},
"node_modules/@ethersproject/units": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.0.tgz",
- "integrity": "sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.1.tgz",
+ "integrity": "sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw==",
"funding": [
{
"type": "individual",
@@ -2512,15 +2412,15 @@
}
],
"dependencies": {
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"node_modules/@ethersproject/wallet": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.0.tgz",
- "integrity": "sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.2.tgz",
+ "integrity": "sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg==",
"funding": [
{
"type": "individual",
@@ -2532,27 +2432,27 @@
}
],
"dependencies": {
- "@ethersproject/abstract-provider": "^5.6.0",
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/hash": "^5.6.0",
- "@ethersproject/hdnode": "^5.6.0",
- "@ethersproject/json-wallets": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/hdnode": "^5.6.2",
+ "@ethersproject/json-wallets": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/random": "^5.6.0",
- "@ethersproject/signing-key": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
- "@ethersproject/wordlists": "^5.6.0"
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/wordlists": "^5.6.1"
}
},
"node_modules/@ethersproject/web": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz",
- "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz",
+ "integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==",
"funding": [
{
"type": "individual",
@@ -2564,17 +2464,17 @@
}
],
"dependencies": {
- "@ethersproject/base64": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/base64": "^5.6.1",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/strings": "^5.6.1"
}
},
"node_modules/@ethersproject/wordlists": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.0.tgz",
- "integrity": "sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz",
+ "integrity": "sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw==",
"funding": [
{
"type": "individual",
@@ -2586,79 +2486,109 @@
}
],
"dependencies": {
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/hash": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/strings": "^5.6.1"
}
},
"node_modules/@gar/promisify": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT"
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
+ "dev": true
},
- "node_modules/@glazed/constants": {
- "version": "0.1.1",
- "license": "(Apache-2.0 OR MIT)",
+ "node_modules/@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dev": true,
+ "dependencies": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ },
"engines": {
- "node": ">=14.14"
+ "node": ">=10.10.0"
}
},
- "node_modules/@glazed/devtools": {
- "version": "0.1.3",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@ceramicnetwork/common": "^1.3.0",
- "@ceramicnetwork/stream-tile": "^1.2.0",
- "@ceramicnetwork/streamid": "^1.1.2",
- "@glazed/constants": "^0.1.1",
- "@glazed/did-datastore-model": "^0.1.1",
- "ajv": "^8.6.2",
- "ajv-formats": "^2.1.1",
- "change-case": "^4.1.2",
- "cids": "^1.1.8",
- "fast-deep-equal": "^3.1.3",
- "uint8arrays": "^3.0.0"
+ "node_modules/@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
},
"engines": {
- "node": ">=14.14"
+ "node": ">=6.0.0"
}
},
- "node_modules/@glazed/devtools/node_modules/uint8arrays": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "multiformats": "^9.4.2"
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
+ "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA==",
+ "engines": {
+ "node": ">=6.0.0"
}
},
- "node_modules/@glazed/did-datastore-model": {
- "version": "0.1.1",
- "license": "(Apache-2.0 OR MIT)",
+ "node_modules/@jridgewell/set-array": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz",
+ "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ==",
"engines": {
- "node": ">=14.14"
+ "node": ">=6.0.0"
}
},
- "node_modules/@humanwhocodes/config-array": {
- "version": "0.5.0",
+ "node_modules/@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
- "@humanwhocodes/object-schema": "^1.2.0",
- "debug": "^4.1.1",
- "minimatch": "^3.0.4"
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ },
+ "node_modules/@jridgewell/source-map/node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
+ "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
},
"engines": {
- "node": ">=10.10.0"
+ "node": ">=6.0.0"
}
},
- "node_modules/@humanwhocodes/object-schema": {
- "version": "1.2.0",
- "dev": true,
- "license": "BSD-3-Clause"
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.4.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
+ "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w=="
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz",
+ "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
},
"node_modules/@mark.probst/typescript-json-schema": {
"version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/@mark.probst/typescript-json-schema/-/typescript-json-schema-0.32.0.tgz",
+ "integrity": "sha512-OoD+5D7Mka80FIcmvPyuAKV7g5Of5S04R74S4DTAG8pr9REDWySUh9pOloro7SNFwWt/+2f90wyP+DtGHykVfg==",
"dev": true,
"dependencies": {
"glob": "~7.1.3",
@@ -2670,268 +2600,51 @@
"typescript-json-schema": "bin/typescript-json-schema"
}
},
- "node_modules/@mark.probst/typescript-json-schema/node_modules/ansi-regex": {
- "version": "3.0.0",
+ "node_modules/@mark.probst/typescript-json-schema/node_modules/glob": {
+ "version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
"dev": true,
- "license": "MIT",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.0.4",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
"engines": {
- "node": ">=4"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/camelcase": {
- "version": "5.3.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/cliui": {
- "version": "4.1.0",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/decamelize": {
- "version": "1.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/find-up": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/get-caller-file": {
- "version": "1.0.3",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/glob": {
- "version": "7.1.7",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- },
- "engines": {
- "node": "*"
- },
- "funding": {
- "url": "https://github.com/sponsors/isaacs"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/is-fullwidth-code-point": {
- "version": "2.0.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/locate-path": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/p-limit": {
- "version": "2.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/p-locate": {
- "version": "3.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/p-try": {
- "version": "2.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/string-width": {
- "version": "2.1.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/strip-ansi": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^3.0.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/wrap-ansi": {
- "version": "2.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/wrap-ansi/node_modules/ansi-regex": {
- "version": "2.1.1",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
- "version": "1.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "number-is-nan": "^1.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/wrap-ansi/node_modules/string-width": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/wrap-ansi/node_modules/strip-ansi": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "ansi-regex": "^2.0.0"
- },
- "engines": {
- "node": ">=0.10.0"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/y18n": {
- "version": "4.0.3",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/yargs": {
- "version": "12.0.5",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "cliui": "^4.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^3.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1 || ^4.0.0",
- "yargs-parser": "^11.1.1"
- }
- },
- "node_modules/@mark.probst/typescript-json-schema/node_modules/yargs-parser": {
- "version": "11.1.1",
- "dev": true,
- "license": "ISC",
- "dependencies": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
}
},
"node_modules/@mark.probst/unicode-properties": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@mark.probst/unicode-properties/-/unicode-properties-1.1.0.tgz",
+ "integrity": "sha512-7AQsO0hMmpqDledV7AhBuSYqYPFsKP9PaltMecX9nlnsyFxqtsqUg9/pvB2L/jxvskrDrNkdKYz2KTbQznCtng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"brfs": "^1.4.0",
"unicode-trie": "^0.3.0"
}
},
- "node_modules/@multiformats/base-x": {
- "version": "4.0.1",
- "license": "MIT"
- },
"node_modules/@npmcli/fs": {
- "version": "1.1.0",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@gar/promisify": "^1.0.1",
"semver": "^7.3.5"
- },
- "engines": {
- "node": "^12.13.0 || ^14.15.0 || >=16"
}
},
"node_modules/@npmcli/fs/node_modules/semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -2944,8 +2657,9 @@
},
"node_modules/@npmcli/git": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz",
+ "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@npmcli/promise-spawn": "^1.3.2",
"lru-cache": "^6.0.0",
@@ -2959,8 +2673,9 @@
},
"node_modules/@npmcli/git/node_modules/mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
- "license": "MIT",
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -2969,9 +2684,10 @@
}
},
"node_modules/@npmcli/git/node_modules/semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -2984,8 +2700,9 @@
},
"node_modules/@npmcli/installed-package-contents": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz",
+ "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"npm-bundled": "^1.1.1",
"npm-normalize-package-bin": "^1.0.1"
@@ -2999,8 +2716,9 @@
},
"node_modules/@npmcli/move-file": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"mkdirp": "^1.0.4",
"rimraf": "^3.0.2"
@@ -3011,8 +2729,9 @@
},
"node_modules/@npmcli/move-file/node_modules/mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
- "license": "MIT",
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -3022,21 +2741,24 @@
},
"node_modules/@npmcli/node-gyp": {
"version": "1.0.3",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz",
+ "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==",
+ "dev": true
},
"node_modules/@npmcli/promise-spawn": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz",
+ "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"infer-owner": "^1.0.4"
}
},
"node_modules/@npmcli/run-script": {
"version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz",
+ "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@npmcli/node-gyp": "^1.0.2",
"@npmcli/promise-spawn": "^1.3.2",
@@ -3044,27 +2766,21 @@
"read-package-json-fast": "^2.0.1"
}
},
- "node_modules/@overnightjs/logger": {
- "version": "1.2.1",
- "license": "MIT",
- "dependencies": {
- "colors": "^1.3.3",
- "util": "^0.11.1"
- }
- },
"node_modules/@pixiv/three-vrm": {
"resolved": "packages/three-vrm",
"link": true
},
"node_modules/@react-three/fiber": {
- "version": "7.0.17",
- "license": "MIT",
+ "version": "7.0.29",
+ "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-7.0.29.tgz",
+ "integrity": "sha512-TE+/iaGrjluGsPwN2RkLXxKD4ak+unsh0YKIFKGcuAOW9jYcAyMGKAtgFO8MS7/HNCrZZQQSg23sJ8IPgtdkDg==",
"dependencies": {
"@babel/runtime": "^7.13.10",
+ "@types/react-reconciler": "^0.26.2",
"react-merge-refs": "^1.1.0",
"react-reconciler": "^0.26.2",
"react-three-fiber": "0.0.0-deprecated",
- "react-use-measure": "^2.0.4",
+ "react-use-measure": "^2.1.1",
"resize-observer-polyfill": "^1.5.1",
"scheduler": "^0.20.2",
"use-asset": "^1.0.4",
@@ -3074,7 +2790,7 @@
"peerDependencies": {
"react": ">=17.0",
"react-dom": ">=17.0",
- "three": ">=0.126"
+ "three": ">=0.133"
},
"peerDependenciesMeta": {
"react-dom": {
@@ -3083,9 +2799,10 @@
}
},
"node_modules/@rollup/plugin-babel": {
- "version": "5.3.0",
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
+ "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/helper-module-imports": "^7.10.4",
"@rollup/pluginutils": "^3.1.0"
@@ -3106,8 +2823,9 @@
},
"node_modules/@rollup/plugin-babel/node_modules/@rollup/pluginutils": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/estree": "0.0.39",
"estree-walker": "^1.0.1",
@@ -3122,18 +2840,20 @@
},
"node_modules/@rollup/plugin-babel/node_modules/estree-walker": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "dev": true
},
"node_modules/@rollup/plugin-node-resolve": {
- "version": "13.1.3",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz",
+ "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@rollup/pluginutils": "^3.1.0",
"@types/resolve": "1.17.1",
- "builtin-modules": "^3.1.0",
"deepmerge": "^4.2.2",
+ "is-builtin-module": "^3.1.0",
"is-module": "^1.0.0",
"resolve": "^1.19.0"
},
@@ -3146,8 +2866,9 @@
},
"node_modules/@rollup/plugin-node-resolve/node_modules/@rollup/pluginutils": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/estree": "0.0.39",
"estree-walker": "^1.0.1",
@@ -3162,13 +2883,15 @@
},
"node_modules/@rollup/plugin-node-resolve/node_modules/estree-walker": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
+ "dev": true
},
"node_modules/@rollup/pluginutils": {
- "version": "4.1.1",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
+ "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"estree-walker": "^2.0.1",
"picomatch": "^2.2.2"
@@ -3178,191 +2901,100 @@
}
},
"node_modules/@shaderfrog/glsl-parser": {
- "version": "0.1.20",
- "license": "ISC",
+ "version": "0.1.23",
+ "resolved": "https://registry.npmjs.org/@shaderfrog/glsl-parser/-/glsl-parser-0.1.23.tgz",
+ "integrity": "sha512-VPXA4Wm1FYtwq+Nu3yCpyFTuI40Vy3rAulLBXfVxpHH6ads4NGd9OCwufSEY6nasfCV2jZjguLWRN9zA2J1dqQ==",
"engines": {
"node": ">=16"
}
},
- "node_modules/@stablelib/aead": {
- "version": "1.0.1",
- "license": "MIT"
- },
- "node_modules/@stablelib/binary": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/int": "^1.0.1"
+ "node_modules/@tootallnate/once": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
+ "dev": true,
+ "engines": {
+ "node": ">= 6"
}
},
- "node_modules/@stablelib/bytes": {
- "version": "1.0.1",
- "license": "MIT"
+ "node_modules/@types/estree": {
+ "version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
+ "dev": true
},
- "node_modules/@stablelib/chacha": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "node_modules/@stablelib/chacha20poly1305": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/aead": "^1.0.1",
- "@stablelib/binary": "^1.0.1",
- "@stablelib/chacha": "^1.0.1",
- "@stablelib/constant-time": "^1.0.1",
- "@stablelib/poly1305": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "node_modules/@stablelib/constant-time": {
- "version": "1.0.1",
- "license": "MIT"
- },
- "node_modules/@stablelib/ed25519": {
- "version": "1.0.2",
- "license": "MIT",
- "dependencies": {
- "@stablelib/random": "^1.0.1",
- "@stablelib/sha512": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "node_modules/@stablelib/hash": {
- "version": "1.0.1",
- "license": "MIT"
- },
- "node_modules/@stablelib/int": {
- "version": "1.0.1",
- "license": "MIT"
- },
- "node_modules/@stablelib/keyagreement": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/bytes": "^1.0.1"
- }
- },
- "node_modules/@stablelib/poly1305": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/constant-time": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "node_modules/@stablelib/random": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "node_modules/@stablelib/sha256": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/hash": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
+ "node_modules/@types/json5": {
+ "version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
+ "dev": true
},
- "node_modules/@stablelib/sha512": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/hash": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
+ "node_modules/@types/node": {
+ "version": "17.0.42",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz",
+ "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==",
+ "dev": true
},
- "node_modules/@stablelib/wipe": {
- "version": "1.0.1",
- "license": "MIT"
+ "node_modules/@types/parse-json": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
+ "dev": true
},
- "node_modules/@stablelib/x25519": {
- "version": "1.0.1",
- "license": "MIT",
- "dependencies": {
- "@stablelib/keyagreement": "^1.0.1",
- "@stablelib/random": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
+ "node_modules/@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
},
- "node_modules/@stablelib/xchacha20": {
- "version": "1.0.1",
- "license": "MIT",
+ "node_modules/@types/react": {
+ "version": "18.0.12",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.12.tgz",
+ "integrity": "sha512-duF1OTASSBQtcigUvhuiTB1Ya3OvSy+xORCiEf20H0P0lzx+/KeVsA99U5UjLXSbyo1DRJDlLKqTeM1ngosqtg==",
"dependencies": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/chacha": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
}
},
- "node_modules/@stablelib/xchacha20poly1305": {
- "version": "1.0.1",
- "license": "MIT",
+ "node_modules/@types/react-reconciler": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz",
+ "integrity": "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==",
"dependencies": {
- "@stablelib/aead": "^1.0.1",
- "@stablelib/chacha20poly1305": "^1.0.1",
- "@stablelib/constant-time": "^1.0.1",
- "@stablelib/wipe": "^1.0.1",
- "@stablelib/xchacha20": "^1.0.1"
- }
- },
- "node_modules/@tootallnate/once": {
- "version": "1.1.2",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">= 6"
+ "@types/react": "*"
}
},
- "node_modules/@types/estree": {
- "version": "0.0.39",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/json5": {
- "version": "0.0.29",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/node": {
- "version": "17.0.8",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/@types/parse-json": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT"
- },
"node_modules/@types/resolve": {
"version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
+ "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/node": "*"
}
},
+ "node_modules/@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ },
"node_modules/@types/three": {
"version": "0.132.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/@types/three/-/three-0.132.2.tgz",
+ "integrity": "sha512-DpaP0sObpHvKX8zdfCqyTK526N8lQ86Qstp6MnQJ3jNYie7Bv9AMRTALuoIH8dgVZ62z9twuNvEarWHXOZwmSw==",
+ "dev": true
},
"node_modules/@ungap/promise-all-settled": {
"version": "1.1.2",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
+ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
},
"node_modules/@vitejs/plugin-react-refresh": {
"version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz",
+ "integrity": "sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA==",
+ "deprecated": "This package has been deprecated in favor of @vitejs/plugin-react",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/core": "^7.14.8",
"@babel/plugin-transform-react-jsx-self": "^7.14.5",
@@ -3381,15 +3013,17 @@
},
"node_modules/abbrev": {
"version": "1.1.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
+ "dev": true
},
"node_modules/accepts": {
- "version": "1.3.7",
- "license": "MIT",
+ "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==",
"dependencies": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
},
"engines": {
"node": ">= 0.6"
@@ -3397,8 +3031,9 @@
},
"node_modules/acorn": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true,
- "license": "MIT",
"bin": {
"acorn": "bin/acorn"
},
@@ -3408,8 +3043,9 @@
},
"node_modules/acorn-jsx": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
- "license": "MIT",
"peerDependencies": {
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
@@ -3417,12 +3053,13 @@
"node_modules/aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
- "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
},
"node_modules/agent-base": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "4"
},
@@ -3431,9 +3068,10 @@
}
},
"node_modules/agentkeepalive": {
- "version": "4.2.0",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
+ "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^4.1.0",
"depd": "^1.1.2",
@@ -3443,10 +3081,20 @@
"node": ">= 8.0.0"
}
},
+ "node_modules/agentkeepalive/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/aggregate-error": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"clean-stack": "^2.0.0",
"indent-string": "^4.0.0"
@@ -3456,8 +3104,10 @@
}
},
"node_modules/ajv": {
- "version": "8.6.3",
- "license": "MIT",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dev": true,
"dependencies": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
@@ -3469,44 +3119,34 @@
"url": "https://github.com/sponsors/epoberezkin"
}
},
- "node_modules/ajv-formats": {
- "version": "2.1.1",
- "license": "MIT",
- "dependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependencies": {
- "ajv": "^8.0.0"
- },
- "peerDependenciesMeta": {
- "ajv": {
- "optional": true
- }
- }
- },
"node_modules/alea": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/alea/-/alea-1.0.1.tgz",
+ "integrity": "sha512-QU+wv+ziDXaMxRdsQg/aH7sVfWdhKps5YP97IIwFkHCsbDZA3k87JXoZ5/iuemf4ntytzIWeScrRpae8+lDrXA=="
},
"node_modules/ansi-align": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
"dev": true,
- "license": "ISC",
"dependencies": {
"string-width": "^4.1.0"
}
},
"node_modules/ansi-colors": {
- "version": "4.1.1",
- "license": "MIT",
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true,
"engines": {
"node": ">=6"
}
},
"node_modules/ansi-escapes": {
"version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-fest": "^0.21.3"
},
@@ -3519,8 +3159,9 @@
},
"node_modules/ansi-escapes/node_modules/type-fest": {
"version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -3530,14 +3171,16 @@
},
"node_modules/ansi-regex": {
"version": "5.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/ansi-styles": {
"version": "3.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dependencies": {
"color-convert": "^1.9.0"
},
@@ -3547,7 +3190,8 @@
},
"node_modules/anymatch": {
"version": "2.0.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
"dependencies": {
"micromatch": "^3.1.4",
"normalize-path": "^2.1.1"
@@ -3555,7 +3199,8 @@
},
"node_modules/anymatch/node_modules/normalize-path": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz",
+ "integrity": "sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w==",
"dependencies": {
"remove-trailing-separator": "^1.0.1"
},
@@ -3565,22 +3210,31 @@
},
"node_modules/aproba": {
"version": "1.2.0",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
+ "dev": true
},
"node_modules/are-we-there-yet": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
}
},
+ "node_modules/are-we-there-yet/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/are-we-there-yet/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,
- "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -3593,45 +3247,51 @@
},
"node_modules/are-we-there-yet/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,
- "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/argparse": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"sprintf-js": "~1.0.2"
}
},
"node_modules/arr-diff": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/arr-flatten": {
"version": "1.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/arr-union": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/array-back": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
+ "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"typical": "^2.6.1"
},
@@ -3641,16 +3301,18 @@
},
"node_modules/array-flatten": {
"version": "1.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"node_modules/array-includes": {
- "version": "3.1.4",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
+ "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5",
"get-intrinsic": "^1.1.1",
"is-string": "^1.0.7"
},
@@ -3663,8 +3325,9 @@
},
"node_modules/array-union": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-uniq": "^1.0.1"
},
@@ -3674,27 +3337,31 @@
},
"node_modules/array-uniq": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/array-unique": {
"version": "0.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/array.prototype.flat": {
- "version": "1.2.5",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
+ "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "es-abstract": "^1.19.2",
+ "es-shim-unscopables": "^1.0.0"
},
"engines": {
"node": ">= 0.4"
@@ -3705,51 +3372,59 @@
},
"node_modules/asn1": {
"version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safer-buffer": "~2.1.0"
}
},
"node_modules/assert-plus": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.8"
}
},
"node_modules/assign-symbols": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/astral-regex": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/async": {
"version": "1.5.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w=="
},
"node_modules/async-each": {
"version": "1.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
},
"node_modules/asynckit": {
"version": "0.4.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
+ "dev": true
},
"node_modules/atob": {
"version": "2.1.2",
- "license": "(MIT OR Apache-2.0)",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==",
"bin": {
"atob": "bin/atob.js"
},
@@ -3757,41 +3432,57 @@
"node": ">= 4.5.0"
}
},
+ "node_modules/available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/aws-sign2": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": "*"
}
},
"node_modules/aws4": {
"version": "1.11.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
+ "dev": true
},
"node_modules/axios": {
"version": "0.21.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"dependencies": {
"follow-redirects": "^1.14.0"
}
},
"node_modules/babel-plugin-dynamic-import-node": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"object.assign": "^4.1.0"
}
},
"node_modules/babel-plugin-polyfill-corejs2": {
- "version": "0.3.0",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz",
+ "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/compat-data": "^7.13.11",
- "@babel/helper-define-polyfill-provider": "^0.3.0",
+ "@babel/helper-define-polyfill-provider": "^0.3.1",
"semver": "^6.1.1"
},
"peerDependencies": {
@@ -3799,23 +3490,25 @@
}
},
"node_modules/babel-plugin-polyfill-corejs3": {
- "version": "0.5.0",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz",
+ "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.3.0",
- "core-js-compat": "^3.20.0"
+ "@babel/helper-define-polyfill-provider": "^0.3.1",
+ "core-js-compat": "^3.21.0"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
}
},
"node_modules/babel-plugin-polyfill-regenerator": {
- "version": "0.3.0",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz",
+ "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "@babel/helper-define-polyfill-provider": "^0.3.0"
+ "@babel/helper-define-polyfill-provider": "^0.3.1"
},
"peerDependencies": {
"@babel/core": "^7.0.0-0"
@@ -3823,11 +3516,13 @@
},
"node_modules/balanced-match": {
"version": "1.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/base": {
"version": "0.11.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"dependencies": {
"cache-base": "^1.0.1",
"class-utils": "^0.3.5",
@@ -3843,7 +3538,8 @@
},
"node_modules/base/node_modules/define-property": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
"dependencies": {
"is-descriptor": "^1.0.0"
},
@@ -3851,28 +3547,11 @@
"node": ">=0.10.0"
}
},
- "node_modules/base64-js": {
- "version": "1.5.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT"
- },
"node_modules/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,
- "license": "MIT",
"dependencies": {
"safe-buffer": "5.1.2"
},
@@ -3882,13 +3561,15 @@
},
"node_modules/batch": {
"version": "0.6.1",
- "dev": true,
- "license": "MIT"
+ "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/bcrypt-pbkdf": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"tweetnacl": "^0.14.3"
}
@@ -3900,67 +3581,75 @@
},
"node_modules/bidi-js": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.2.tgz",
+ "integrity": "sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw==",
"dependencies": {
"require-from-string": "^2.0.2"
}
},
- "node_modules/bignumber.js": {
- "version": "9.0.1",
- "license": "MIT",
- "engines": {
- "node": "*"
- }
- },
"node_modules/binary-extensions": {
"version": "1.13.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/blakejs": {
- "version": "1.1.1",
- "license": "CC0-1.0"
+ "node_modules/bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "optional": true,
+ "dependencies": {
+ "file-uri-to-path": "1.0.0"
+ }
},
"node_modules/bn.js": {
- "version": "4.12.0",
- "license": "MIT"
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
},
"node_modules/body-parser": {
- "version": "1.19.0",
- "license": "MIT",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
"dependencies": {
- "bytes": "3.1.0",
+ "bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
},
"engines": {
- "node": ">= 0.8"
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/body-parser/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/boxen": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-align": "^3.0.0",
"camelcase": "^6.2.0",
@@ -3980,8 +3669,9 @@
},
"node_modules/boxen/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -3992,10 +3682,23 @@
"url": "https://github.com/chalk/ansi-styles?sponsor=1"
}
},
+ "node_modules/boxen/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true,
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
"node_modules/boxen/node_modules/chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -4009,8 +3712,9 @@
},
"node_modules/boxen/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4020,21 +3724,24 @@
},
"node_modules/boxen/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/boxen/node_modules/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,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/boxen/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -4044,7 +3751,8 @@
},
"node_modules/brace-expansion": {
"version": "1.1.11",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -4052,7 +3760,8 @@
},
"node_modules/braces": {
"version": "2.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"dependencies": {
"arr-flatten": "^1.1.0",
"array-unique": "^0.3.2",
@@ -4071,8 +3780,9 @@
},
"node_modules/brfs": {
"version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz",
+ "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"quote-stream": "^1.0.1",
"resolve": "^1.1.5",
@@ -4085,6 +3795,8 @@
},
"node_modules/broadway": {
"version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz",
+ "integrity": "sha512-zivf7KWx8ftTEsXaKfmve6wdSfbDJ6NLXwhwWN4Q1z5+/nsHWALP952KV9jJbJGwjZHEMZABHyuKqEAh3wb2kw==",
"dependencies": {
"cliff": "0.1.9",
"eventemitter2": "0.4.14",
@@ -4097,10 +3809,14 @@
}
},
"node_modules/broadway/node_modules/async": {
- "version": "0.2.10"
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
},
"node_modules/broadway/node_modules/cliff": {
"version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz",
+ "integrity": "sha512-2EECQDk23AtYy9WTUDS0UwdlyGJe62IatdR9dOfG/T3+VIoC6/SA5AnYJWGTjXjweTYL360HEGu4DchCeee4Ng==",
"dependencies": {
"colors": "0.x.x",
"eyes": "0.1.x",
@@ -4112,23 +3828,29 @@
},
"node_modules/broadway/node_modules/colors": {
"version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==",
"engines": {
"node": ">=0.1.90"
}
},
"node_modules/broadway/node_modules/eventemitter2": {
"version": "0.4.14",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ=="
},
"node_modules/broadway/node_modules/pkginfo": {
"version": "0.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+ "integrity": "sha512-yO5feByMzAp96LtP58wvPKSbaKAi/1C4kV9XpTctr6EepnP6F33RBNOiVrdz9BrPA98U2BMFsTNHo44TWcbQ2A==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/broadway/node_modules/winston": {
"version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz",
+ "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=",
"dependencies": {
"async": "0.2.x",
"colors": "0.6.x",
@@ -4143,12 +3865,14 @@
},
"node_modules/brorand": {
"version": "1.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"node_modules/brotli-size": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz",
+ "integrity": "sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"duplexer": "0.1.1"
},
@@ -4158,25 +3882,40 @@
},
"node_modules/brotli-size/node_modules/duplexer": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==",
"dev": true
},
"node_modules/browser-or-node": {
"version": "1.3.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz",
+ "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==",
+ "dev": true
},
"node_modules/browser-stdout": {
"version": "1.3.1",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
},
"node_modules/browserslist": {
- "version": "4.19.1",
- "license": "MIT",
+ "version": "4.20.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz",
+ "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ }
+ ],
"dependencies": {
- "caniuse-lite": "^1.0.30001286",
- "electron-to-chromium": "^1.4.17",
+ "caniuse-lite": "^1.0.30001349",
+ "electron-to-chromium": "^1.4.147",
"escalade": "^3.1.1",
- "node-releases": "^2.0.1",
+ "node-releases": "^2.0.5",
"picocolors": "^1.0.0"
},
"bin": {
@@ -4184,29 +3923,28 @@
},
"engines": {
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
}
},
"node_modules/buffer-equal": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
+ "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/buffer-from": {
"version": "1.1.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "dev": true
},
"node_modules/builtin-modules": {
- "version": "3.2.0",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -4216,20 +3954,23 @@
},
"node_modules/builtins": {
"version": "1.0.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==",
+ "dev": true
},
"node_modules/bytes": {
- "version": "3.1.0",
- "license": "MIT",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/cacache": {
"version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@npmcli/fs": "^1.0.0",
"@npmcli/move-file": "^1.0.1",
@@ -4256,8 +3997,9 @@
},
"node_modules/cacache/node_modules/mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
- "license": "MIT",
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -4267,7 +4009,8 @@
},
"node_modules/cache-base": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
"dependencies": {
"collection-visit": "^1.0.0",
"component-emitter": "^1.2.1",
@@ -4283,14 +4026,10 @@
"node": ">=0.10.0"
}
},
- "node_modules/caip": {
- "version": "0.9.2",
- "license": "MIT"
- },
"node_modules/call-bind": {
"version": "1.0.2",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"dependencies": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
@@ -4300,67 +4039,53 @@
}
},
"node_modules/caller": {
- "version": "0.0.1",
- "license": "MIT",
- "dependencies": {
- "tape": "~2.3.2"
- }
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/caller/-/caller-1.0.1.tgz",
+ "integrity": "sha512-tfj+ErW/0SbOyfoXriRtdjCMTwrZAvLXj2jHqlh8YCcgoZVzUI22E/JJLxbiuZqDs0Ke7BuRrHTVuxm3EwYbJQ=="
},
"node_modules/callsites": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/camel-case": {
- "version": "4.1.2",
- "license": "MIT",
- "dependencies": {
- "pascal-case": "^3.1.2",
- "tslib": "^2.0.3"
- }
- },
"node_modules/camelcase": {
- "version": "6.2.1",
- "license": "MIT",
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true,
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=6"
}
},
"node_modules/caniuse-lite": {
- "version": "1.0.30001299",
- "license": "CC-BY-4.0",
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/browserslist"
- }
- },
- "node_modules/canonicalize": {
- "version": "1.0.5",
- "license": "Apache-2.0"
- },
- "node_modules/capital-case": {
- "version": "1.0.4",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3",
- "upper-case-first": "^2.0.2"
- }
+ "version": "1.0.30001352",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz",
+ "integrity": "sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ }
+ ]
},
"node_modules/caseless": {
"version": "0.12.0",
- "dev": true,
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
+ "dev": true
},
"node_modules/chalk": {
"version": "2.4.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
@@ -4370,27 +4095,11 @@
"node": ">=4"
}
},
- "node_modules/change-case": {
- "version": "4.1.2",
- "license": "MIT",
- "dependencies": {
- "camel-case": "^4.1.2",
- "capital-case": "^1.0.4",
- "constant-case": "^3.0.4",
- "dot-case": "^3.0.4",
- "header-case": "^2.0.4",
- "no-case": "^3.0.4",
- "param-case": "^3.0.4",
- "pascal-case": "^3.1.2",
- "path-case": "^3.0.4",
- "sentence-case": "^3.0.4",
- "snake-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"node_modules/chokidar": {
"version": "2.1.8",
- "license": "MIT",
+ "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",
"dependencies": {
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
@@ -4410,7 +4119,8 @@
},
"node_modules/chokidar/node_modules/glob-parent": {
"version": "3.1.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz",
+ "integrity": "sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==",
"dependencies": {
"is-glob": "^3.1.0",
"path-dirname": "^1.0.0"
@@ -4418,7 +4128,8 @@
},
"node_modules/chokidar/node_modules/glob-parent/node_modules/is-glob": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz",
+ "integrity": "sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==",
"dependencies": {
"is-extglob": "^2.1.0"
},
@@ -4428,36 +4139,17 @@
},
"node_modules/chownr": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=10"
}
},
- "node_modules/cids": {
- "version": "1.1.9",
- "license": "MIT",
- "dependencies": {
- "multibase": "^4.0.1",
- "multicodec": "^3.0.1",
- "multihashes": "^4.0.1",
- "uint8arrays": "^3.0.0"
- },
- "engines": {
- "node": ">=4.0.0",
- "npm": ">=3.0.0"
- }
- },
- "node_modules/cids/node_modules/uint8arrays": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "multiformats": "^9.4.2"
- }
- },
"node_modules/class-utils": {
"version": "0.3.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz",
+ "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==",
"dependencies": {
"arr-union": "^3.1.0",
"define-property": "^0.2.5",
@@ -4470,7 +4162,8 @@
},
"node_modules/class-utils/node_modules/define-property": {
"version": "0.2.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dependencies": {
"is-descriptor": "^0.1.0"
},
@@ -4480,7 +4173,8 @@
},
"node_modules/class-utils/node_modules/is-accessor-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -4490,7 +4184,8 @@
},
"node_modules/class-utils/node_modules/is-data-descriptor": {
"version": "0.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -4500,7 +4195,8 @@
},
"node_modules/class-utils/node_modules/is-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dependencies": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -4512,27 +4208,31 @@
},
"node_modules/class-utils/node_modules/is-descriptor/node_modules/kind-of": {
"version": "5.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/classnames": {
"version": "2.3.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
+ "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
},
"node_modules/clean-stack": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/cli-boxes": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
},
@@ -4542,8 +4242,9 @@
},
"node_modules/cli-cursor": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"restore-cursor": "^3.1.0"
},
@@ -4553,8 +4254,9 @@
},
"node_modules/cli-truncate": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"slice-ansi": "^3.0.0",
"string-width": "^4.2.0"
@@ -4568,8 +4270,9 @@
},
"node_modules/cli-truncate/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4582,8 +4285,9 @@
},
"node_modules/cli-truncate/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4593,13 +4297,15 @@
},
"node_modules/cli-truncate/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/cli-truncate/node_modules/slice-ansi": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -4611,6 +4317,8 @@
},
"node_modules/cliff": {
"version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz",
+ "integrity": "sha512-roZWcC2Cxo/kKjRXw7YUpVNtxJccbvcl7VzTjUYgLQk6Ot0R8bm2netbhSZYWWNrKlOO/7HD6GXHl8dtzE6SiQ==",
"dependencies": {
"colors": "~1.0.3",
"eyes": "~0.1.8",
@@ -4620,45 +4328,193 @@
"node": ">= 0.4.0"
}
},
+ "node_modules/cliff/node_modules/async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
+ },
"node_modules/cliff/node_modules/colors": {
"version": "1.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==",
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/cliff/node_modules/pkginfo": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+ "integrity": "sha512-yO5feByMzAp96LtP58wvPKSbaKAi/1C4kV9XpTctr6EepnP6F33RBNOiVrdz9BrPA98U2BMFsTNHo44TWcbQ2A==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/cliff/node_modules/winston": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz",
+ "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=",
+ "dependencies": {
+ "async": "0.2.x",
+ "colors": "0.6.x",
+ "cycle": "1.0.x",
+ "eyes": "0.1.x",
+ "isstream": "0.1.x",
+ "pkginfo": "0.3.x",
+ "stack-trace": "0.0.x"
+ },
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
+ "node_modules/cliff/node_modules/winston/node_modules/colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==",
"engines": {
"node": ">=0.1.90"
}
},
"node_modules/cliui": {
- "version": "7.0.4",
- "license": "ISC",
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
"dependencies": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cliui/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "dependencies": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi/node_modules/ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true,
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "dev": true,
+ "dependencies": {
+ "number-is-nan": "^1.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi/node_modules/string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+ "dev": true,
+ "dependencies": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi/node_modules/strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
}
},
"node_modules/clone": {
"version": "2.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w==",
"engines": {
"node": ">=0.8"
}
},
"node_modules/code-point-at": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/collection-utils": {
"version": "1.0.1",
- "dev": true,
- "license": "Apache-2.0"
+ "resolved": "https://registry.npmjs.org/collection-utils/-/collection-utils-1.0.1.tgz",
+ "integrity": "sha512-LA2YTIlR7biSpXkKYwwuzGjwL5rjWEZVOSnvdUc7gObvWe4WkjxOpfrdhoP7Hs09YWDVfg0Mal9BpAqLfVEzQg==",
+ "dev": true
},
"node_modules/collection-visit": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz",
+ "integrity": "sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==",
"dependencies": {
"map-visit": "^1.0.0",
"object-visit": "^1.0.0"
@@ -4667,41 +4523,66 @@
"node": ">=0.10.0"
}
},
+ "node_modules/color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "dependencies": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
"node_modules/color-convert": {
"version": "1.9.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/color-name": {
"version": "1.1.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "dependencies": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
},
"node_modules/color-support": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"dev": true,
- "license": "ISC",
"bin": {
"color-support": "bin.js"
}
},
"node_modules/colorette": {
- "version": "2.0.16",
- "dev": true,
- "license": "MIT"
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.17.tgz",
+ "integrity": "sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==",
+ "dev": true
},
- "node_modules/colors": {
- "version": "1.4.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.1.90"
+ "node_modules/colorspace": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
+ "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
+ "dependencies": {
+ "color": "^3.1.3",
+ "text-hex": "1.0.x"
}
},
"node_modules/combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"delayed-stream": "~1.0.0"
},
@@ -4711,8 +4592,9 @@
},
"node_modules/command-line-args": {
"version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz",
+ "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-back": "^2.0.0",
"find-replace": "^1.0.3",
@@ -4724,8 +4606,9 @@
},
"node_modules/command-line-usage": {
"version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz",
+ "integrity": "sha512-d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-back": "^2.0.0",
"chalk": "^2.4.1",
@@ -4738,28 +4621,34 @@
},
"node_modules/commander": {
"version": "2.20.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
},
"node_modules/commondir": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
+ "dev": true
},
"node_modules/component-emitter": {
"version": "1.3.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"node_modules/concat-map": {
"version": "0.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/concat-stream": {
"version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"dev": true,
"engines": [
"node >= 0.8"
],
- "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"inherits": "^2.0.3",
@@ -4767,10 +4656,17 @@
"typedarray": "^0.0.6"
}
},
+ "node_modules/concat-stream/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/concat-stream/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,
- "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -4783,16 +4679,18 @@
},
"node_modules/concat-stream/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,
- "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/concurrently": {
"version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz",
+ "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"date-fns": "^2.16.1",
@@ -4812,8 +4710,9 @@
},
"node_modules/concurrently/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -4826,8 +4725,9 @@
},
"node_modules/concurrently/node_modules/chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -4841,8 +4741,9 @@
},
"node_modules/concurrently/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -4850,10 +4751,22 @@
"node": ">=8"
}
},
+ "node_modules/concurrently/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"
+ }
+ },
"node_modules/concurrently/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -4863,21 +4776,45 @@
},
"node_modules/concurrently/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
- "node_modules/concurrently/node_modules/has-flag": {
- "version": "4.0.0",
+ "node_modules/concurrently/node_modules/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.*"
+ }
+ },
+ "node_modules/concurrently/node_modules/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,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
+ "node_modules/concurrently/node_modules/rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^1.9.0"
+ },
+ "engines": {
+ "npm": ">=2.0.0"
+ }
+ },
"node_modules/concurrently/node_modules/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -4888,9 +4825,52 @@
"url": "https://github.com/chalk/supports-color?sponsor=1"
}
},
+ "node_modules/concurrently/node_modules/tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "node_modules/concurrently/node_modules/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"
+ }
+ },
+ "node_modules/concurrently/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/concurrently/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/configstore": {
"version": "4.0.0",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz",
+ "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==",
"dependencies": {
"dot-prop": "^4.1.0",
"graceful-fs": "^4.1.2",
@@ -4905,66 +4885,84 @@
},
"node_modules/console-control-strings": {
"version": "1.1.0",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/constant-case": {
- "version": "3.0.4",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3",
- "upper-case": "^2.0.2"
- }
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
+ "dev": true
},
"node_modules/content-disposition": {
- "version": "0.5.3",
- "license": "MIT",
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"dependencies": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "5.2.1"
},
"engines": {
"node": ">= 0.6"
}
},
+ "node_modules/content-disposition/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
+ },
"node_modules/content-type": {
"version": "1.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/convert-source-map": {
"version": "1.8.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
"dependencies": {
"safe-buffer": "~5.1.1"
}
},
"node_modules/cookie": {
- "version": "0.4.0",
- "license": "MIT",
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/cookie-signature": {
"version": "1.0.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"node_modules/copy-descriptor": {
"version": "0.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/core-js-compat": {
- "version": "3.20.2",
+ "version": "3.22.8",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.8.tgz",
+ "integrity": "sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "browserslist": "^4.19.1",
+ "browserslist": "^4.20.3",
"semver": "7.0.0"
},
"funding": {
@@ -4974,20 +4972,23 @@
},
"node_modules/core-js-compat/node_modules/semver": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/core-util-is": {
"version": "1.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
},
"node_modules/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,
- "license": "MIT",
"dependencies": {
"object-assign": "^4",
"vary": "^1"
@@ -4998,8 +4999,9 @@
},
"node_modules/cosmiconfig": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/parse-json": "^4.0.0",
"import-fresh": "^3.2.1",
@@ -5011,24 +5013,11 @@
"node": ">=10"
}
},
- "node_modules/cross-fetch": {
- "version": "3.1.4",
- "license": "MIT",
- "dependencies": {
- "node-fetch": "2.6.1"
- }
- },
- "node_modules/cross-fetch/node_modules/node-fetch": {
- "version": "2.6.1",
- "license": "MIT",
- "engines": {
- "node": "4.x || >=6.0.0"
- }
- },
"node_modules/cross-spawn": {
"version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"path-key": "^3.1.0",
"shebang-command": "^2.0.0",
@@ -5040,32 +5029,30 @@
},
"node_modules/crypto-random-string": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg==",
"engines": {
"node": ">=4"
}
},
+ "node_modules/csstype": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
+ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
+ },
"node_modules/cycle": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+ "integrity": "sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA==",
"engines": {
"node": ">=0.4.0"
}
},
- "node_modules/dag-jose-utils": {
- "version": "0.1.1",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "cids": "^1.1.6",
- "ipld-dag-cbor": "^0.17.1",
- "multihashes": "^4.0.2",
- "uint8arrays": "^2.1.4",
- "varint": "^6.0.0"
- }
- },
"node_modules/dashdash": {
"version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0"
},
@@ -5073,21 +5060,14 @@
"node": ">=0.10"
}
},
- "node_modules/data-uri-to-buffer": {
- "version": "4.0.0",
- "license": "MIT",
- "engines": {
- "node": ">= 12"
- }
- },
"node_modules/data-urls": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz",
- "integrity": "sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
+ "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
"dependencies": {
- "abab": "^2.0.3",
+ "abab": "^2.0.6",
"whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^10.0.0"
+ "whatwg-url": "^11.0.0"
},
"engines": {
"node": ">=12"
@@ -5113,9 +5093,9 @@
}
},
"node_modules/data-urls/node_modules/whatwg-url": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz",
- "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
"dependencies": {
"tr46": "^3.0.0",
"webidl-conversions": "^7.0.0"
@@ -5126,8 +5106,9 @@
},
"node_modules/date-fns": {
"version": "2.28.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
+ "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.11"
},
@@ -5138,11 +5119,13 @@
},
"node_modules/debounce": {
"version": "1.2.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
},
"node_modules/debug": {
- "version": "4.3.2",
- "license": "MIT",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"dependencies": {
"ms": "2.1.2"
},
@@ -5156,66 +5139,105 @@
}
},
"node_modules/decamelize": {
- "version": "4.0.0",
- "license": "MIT",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true,
"engines": {
- "node": ">=10"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "node": ">=0.10.0"
}
},
"node_modules/decode-uri-component": {
"version": "0.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==",
"engines": {
"node": ">=0.10"
}
},
"node_modules/dedent": {
"version": "0.7.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
+ "dev": true
},
"node_modules/deep-equal": {
- "version": "0.1.2",
- "license": "MIT"
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz",
+ "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==",
+ "dependencies": {
+ "call-bind": "^1.0.0",
+ "es-get-iterator": "^1.1.1",
+ "get-intrinsic": "^1.0.1",
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.2",
+ "is-regex": "^1.1.1",
+ "isarray": "^2.0.5",
+ "object-is": "^1.1.4",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "regexp.prototype.flags": "^1.3.0",
+ "side-channel": "^1.0.3",
+ "which-boxed-primitive": "^1.0.1",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/deep-extend": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4.0.0"
}
},
"node_modules/deep-is": {
"version": "0.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true
},
"node_modules/deepmerge": {
"version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/define-properties": {
- "version": "1.1.3",
+ "node_modules/define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
"dev": true,
- "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/define-properties": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
"dependencies": {
- "object-keys": "^1.0.12"
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
},
"engines": {
"node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/define-property": {
"version": "2.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"dependencies": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
@@ -5224,107 +5246,59 @@
"node": ">=0.10.0"
}
},
- "node_modules/defined": {
- "version": "0.0.0",
- "license": "MIT"
- },
"node_modules/delayed-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/delegates": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/delimit-stream": {
- "version": "0.1.0",
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
+ "dev": true
},
"node_modules/depd": {
- "version": "1.1.2",
- "license": "MIT",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/destroy": {
- "version": "1.0.4",
- "license": "MIT"
- },
- "node_modules/did-jwt": {
- "version": "5.8.0",
- "license": "Apache-2.0",
- "dependencies": {
- "@stablelib/ed25519": "^1.0.2",
- "@stablelib/random": "^1.0.1",
- "@stablelib/sha256": "^1.0.1",
- "@stablelib/x25519": "^1.0.1",
- "@stablelib/xchacha20poly1305": "^1.0.1",
- "canonicalize": "^1.0.5",
- "did-resolver": "^3.1.1",
- "elliptic": "^6.5.4",
- "js-sha3": "^0.8.0",
- "multiformats": "^9.4.8",
- "uint8arrays": "^3.0.0"
- }
- },
- "node_modules/did-jwt/node_modules/uint8arrays": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "multiformats": "^9.4.2"
- }
- },
- "node_modules/did-resolver": {
- "version": "3.1.2",
- "license": "Apache-2.0"
- },
- "node_modules/dids": {
- "version": "2.4.0",
- "license": "MIT",
- "dependencies": {
- "@stablelib/random": "^1.0.1",
- "cids": "^1.1.6",
- "dag-jose-utils": "^0.1.1",
- "did-jwt": "^5.6.1",
- "did-resolver": "^3.1.0",
- "query-string": "^7.0.0",
- "rpc-utils": "^0.3.4",
- "uint8arrays": "^2.1.5"
- }
- },
- "node_modules/dids/node_modules/rpc-utils": {
- "version": "0.3.4",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "nanoid": "^3.1.21"
- },
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
"engines": {
- "node": ">=12"
+ "node": ">= 0.8",
+ "npm": "1.2.8000 || >= 1.4.16"
}
},
"node_modules/diff": {
"version": "5.0.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==",
"engines": {
"node": ">=0.3.1"
}
},
"node_modules/director": {
"version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/director/-/director-1.2.7.tgz",
+ "integrity": "sha512-Cuia7IBvmSanM+7ZmKYtP9hq+Du7n7mv2cpCt8GiEIkUDni0ecSlVCFJUL6HWwGzqLX03uA49xVOZOjwnabWmQ==",
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/doctrine": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -5333,9 +5307,10 @@
}
},
"node_modules/dom-serializer": {
- "version": "1.3.2",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
"dev": true,
- "license": "MIT",
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.2.0",
@@ -5347,27 +5322,30 @@
},
"node_modules/dom-serializer/node_modules/entities": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
"dev": true,
- "license": "BSD-2-Clause",
"funding": {
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
"node_modules/domelementtype": {
- "version": "2.2.0",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"dev": true,
"funding": [
{
"type": "github",
"url": "https://github.com/sponsors/fb55"
}
- ],
- "license": "BSD-2-Clause"
+ ]
},
"node_modules/domhandler": {
- "version": "4.3.0",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"domelementtype": "^2.2.0"
},
@@ -5380,8 +5358,9 @@
},
"node_modules/domutils": {
"version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"dom-serializer": "^1.0.1",
"domelementtype": "^2.2.0",
@@ -5391,17 +5370,10 @@
"url": "https://github.com/fb55/domutils?sponsor=1"
}
},
- "node_modules/dot-case": {
- "version": "3.0.4",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"node_modules/dot-prop": {
"version": "4.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
+ "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
"dependencies": {
"is-obj": "^1.0.0"
},
@@ -5411,27 +5383,37 @@
},
"node_modules/dotenv": {
"version": "8.6.0",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g==",
"engines": {
"node": ">=10"
}
},
"node_modules/duplexer": {
"version": "0.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
},
"node_modules/duplexer2": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"readable-stream": "^2.0.2"
}
},
+ "node_modules/duplexer2/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/duplexer2/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,
- "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -5444,16 +5426,18 @@
},
"node_modules/duplexer2/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,
- "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/ecc-jsbn": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"jsbn": "~0.1.0",
"safer-buffer": "^2.1.0"
@@ -5461,15 +5445,18 @@
},
"node_modules/ee-first": {
"version": "1.1.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
- "version": "1.4.43",
- "license": "ISC"
+ "version": "1.4.152",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.152.tgz",
+ "integrity": "sha512-jk4Ju5SGZAQQJ1iI4Rgru7dDlvkQPLpNPWH9gIZmwCD4YteA5Bbk1xPcPDUf5jUYs3e1e80RXdi8XgKQZaigeg=="
},
"node_modules/elliptic": {
"version": "6.5.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"dependencies": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
@@ -5480,38 +5467,54 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
+ "node_modules/elliptic/node_modules/bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ },
"node_modules/email-addresses": {
"version": "3.1.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz",
+ "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==",
+ "dev": true
},
"node_modules/emoji-regex": {
"version": "8.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "node_modules/enabled": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
+ "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
},
"node_modules/encodeurl": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/encoding": {
"version": "0.1.13",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "devOptional": true,
"dependencies": {
"iconv-lite": "^0.6.2"
}
},
"node_modules/encoding-japanese": {
"version": "1.0.30",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-1.0.30.tgz",
+ "integrity": "sha512-bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg=="
},
"node_modules/encoding/node_modules/iconv-lite": {
"version": "0.6.3",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "devOptional": true,
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
},
@@ -5521,16 +5524,18 @@
},
"node_modules/end-of-stream": {
"version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"once": "^1.4.0"
}
},
"node_modules/enquirer": {
"version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-colors": "^4.1.1"
},
@@ -5540,8 +5545,9 @@
},
"node_modules/entities": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=0.12"
},
@@ -5551,56 +5557,56 @@
},
"node_modules/env-paths": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
- "node_modules/err-code": {
- "version": "3.0.1",
- "license": "MIT"
- },
"node_modules/error-ex": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-arrayish": "^0.2.1"
}
},
- "node_modules/errors-utils": {
- "version": "0.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=12"
- }
+ "node_modules/error-ex/node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
},
"node_modules/es-abstract": {
- "version": "1.19.1",
- "dev": true,
- "license": "MIT",
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
+ "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
"dependencies": {
"call-bind": "^1.0.2",
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
"get-intrinsic": "^1.1.1",
"get-symbol-description": "^1.0.0",
"has": "^1.0.3",
- "has-symbols": "^1.0.2",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
"internal-slot": "^1.0.3",
"is-callable": "^1.2.4",
- "is-negative-zero": "^2.0.1",
+ "is-negative-zero": "^2.0.2",
"is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.1",
+ "is-shared-array-buffer": "^1.0.2",
"is-string": "^1.0.7",
- "is-weakref": "^1.0.1",
- "object-inspect": "^1.11.0",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.0",
"object-keys": "^1.1.1",
"object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
+ "regexp.prototype.flags": "^1.4.3",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
},
"engines": {
"node": ">= 0.4"
@@ -5609,10 +5615,37 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/es-get-iterator": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
+ "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.0",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.1.0",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.5",
+ "isarray": "^2.0.5"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dev": true,
+ "dependencies": {
+ "has": "^1.0.3"
+ }
+ },
"node_modules/es-to-primitive": {
"version": "1.2.1",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
"dependencies": {
"is-callable": "^1.1.4",
"is-date-object": "^1.0.1",
@@ -5626,67 +5659,386 @@
}
},
"node_modules/esbuild": {
- "version": "0.13.8",
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.43.tgz",
+ "integrity": "sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA==",
"dev": true,
"hasInstallScript": true,
- "license": "MIT",
"bin": {
"esbuild": "bin/esbuild"
},
+ "engines": {
+ "node": ">=12"
+ },
"optionalDependencies": {
- "esbuild-android-arm64": "0.13.8",
- "esbuild-darwin-64": "0.13.8",
- "esbuild-darwin-arm64": "0.13.8",
- "esbuild-freebsd-64": "0.13.8",
- "esbuild-freebsd-arm64": "0.13.8",
- "esbuild-linux-32": "0.13.8",
- "esbuild-linux-64": "0.13.8",
- "esbuild-linux-arm": "0.13.8",
- "esbuild-linux-arm64": "0.13.8",
- "esbuild-linux-mips64le": "0.13.8",
- "esbuild-linux-ppc64le": "0.13.8",
- "esbuild-netbsd-64": "0.13.8",
- "esbuild-openbsd-64": "0.13.8",
- "esbuild-sunos-64": "0.13.8",
- "esbuild-windows-32": "0.13.8",
- "esbuild-windows-64": "0.13.8",
- "esbuild-windows-arm64": "0.13.8"
+ "esbuild-android-64": "0.14.43",
+ "esbuild-android-arm64": "0.14.43",
+ "esbuild-darwin-64": "0.14.43",
+ "esbuild-darwin-arm64": "0.14.43",
+ "esbuild-freebsd-64": "0.14.43",
+ "esbuild-freebsd-arm64": "0.14.43",
+ "esbuild-linux-32": "0.14.43",
+ "esbuild-linux-64": "0.14.43",
+ "esbuild-linux-arm": "0.14.43",
+ "esbuild-linux-arm64": "0.14.43",
+ "esbuild-linux-mips64le": "0.14.43",
+ "esbuild-linux-ppc64le": "0.14.43",
+ "esbuild-linux-riscv64": "0.14.43",
+ "esbuild-linux-s390x": "0.14.43",
+ "esbuild-netbsd-64": "0.14.43",
+ "esbuild-openbsd-64": "0.14.43",
+ "esbuild-sunos-64": "0.14.43",
+ "esbuild-windows-32": "0.14.43",
+ "esbuild-windows-64": "0.14.43",
+ "esbuild-windows-arm64": "0.14.43"
+ }
+ },
+ "node_modules/esbuild-android-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.43.tgz",
+ "integrity": "sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-android-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.43.tgz",
+ "integrity": "sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.43.tgz",
+ "integrity": "sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-darwin-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.43.tgz",
+ "integrity": "sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.43.tgz",
+ "integrity": "sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-freebsd-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.43.tgz",
+ "integrity": "sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-32": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.43.tgz",
+ "integrity": "sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.43.tgz",
+ "integrity": "sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.43.tgz",
+ "integrity": "sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.43.tgz",
+ "integrity": "sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-mips64le": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.43.tgz",
+ "integrity": "sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-ppc64le": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.43.tgz",
+ "integrity": "sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-riscv64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.43.tgz",
+ "integrity": "sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-linux-s390x": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.43.tgz",
+ "integrity": "sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-netbsd-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.43.tgz",
+ "integrity": "sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-openbsd-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.43.tgz",
+ "integrity": "sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-sunos-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.43.tgz",
+ "integrity": "sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-32": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.43.tgz",
+ "integrity": "sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/esbuild-windows-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.43.tgz",
+ "integrity": "sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
}
},
- "node_modules/esbuild-linux-64": {
- "version": "0.13.8",
+ "node_modules/esbuild-windows-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.43.tgz",
+ "integrity": "sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw==",
"cpu": [
- "x64"
+ "arm64"
],
"dev": true,
- "license": "MIT",
"optional": true,
"os": [
- "linux"
- ]
+ "win32"
+ ],
+ "engines": {
+ "node": ">=12"
+ }
},
"node_modules/escalade": {
"version": "3.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
"engines": {
"node": ">=6"
}
},
"node_modules/escape-html": {
"version": "1.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/escape-string-regexp": {
"version": "1.0.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/escodegen": {
"version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
+ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"esprima": "^3.1.3",
"estraverse": "^4.2.0",
@@ -5706,8 +6058,9 @@
},
"node_modules/escodegen/node_modules/esprima": {
"version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==",
"dev": true,
- "license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
@@ -5718,8 +6071,9 @@
},
"node_modules/escodegen/node_modules/levn": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
@@ -5730,8 +6084,9 @@
},
"node_modules/escodegen/node_modules/optionator": {
"version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.6",
@@ -5746,6 +6101,8 @@
},
"node_modules/escodegen/node_modules/prelude-ls": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
"dev": true,
"engines": {
"node": ">= 0.8.0"
@@ -5753,8 +6110,9 @@
},
"node_modules/escodegen/node_modules/source-map": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
- "license": "BSD-3-Clause",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -5762,8 +6120,9 @@
},
"node_modules/escodegen/node_modules/type-check": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "~1.1.2"
},
@@ -5773,8 +6132,9 @@
},
"node_modules/eslint": {
"version": "7.32.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+ "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/code-frame": "7.12.11",
"@eslint/eslintrc": "^0.4.3",
@@ -5829,13 +6189,15 @@
},
"node_modules/eslint-config-mdcs": {
"version": "5.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eslint-config-mdcs/-/eslint-config-mdcs-5.0.0.tgz",
+ "integrity": "sha512-d4lzeT/sQ3TkI69hd+N/dtQ15g3GrbIboTfCAw6FaDQTLjWK2O3+dNfOOfkAC5TlwyU9BxztR1TE+x8iSzyuPw==",
+ "dev": true
},
"node_modules/eslint-config-semistandard": {
"version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-15.0.1.tgz",
+ "integrity": "sha512-sfV+qNBWKOmF0kZJll1VH5XqOAdTmLlhbOl9WKI11d2eMEe+Kicxnpm24PQWHOqAfk5pAWU2An0LjNCXKa4Usg==",
"dev": true,
- "license": "ISC",
"peerDependencies": {
"eslint": ">=6.0.1",
"eslint-config-standard": ">=14.1.0",
@@ -5847,8 +6209,9 @@
},
"node_modules/eslint-config-standard": {
"version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz",
+ "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==",
"dev": true,
- "license": "MIT",
"peerDependencies": {
"eslint": ">=6.2.2",
"eslint-plugin-import": ">=2.18.0",
@@ -5859,8 +6222,9 @@
},
"node_modules/eslint-import-resolver-node": {
"version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
+ "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^3.2.7",
"resolve": "^1.20.0"
@@ -5868,20 +6232,21 @@
},
"node_modules/eslint-import-resolver-node/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
"node_modules/eslint-module-utils": {
- "version": "2.7.1",
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
+ "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"debug": "^3.2.7",
- "find-up": "^2.1.0",
- "pkg-dir": "^2.0.0"
+ "find-up": "^2.1.0"
},
"engines": {
"node": ">=4"
@@ -5889,38 +6254,60 @@
},
"node_modules/eslint-module-utils/node_modules/debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "^2.1.1"
}
},
+ "node_modules/eslint-plugin-es": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
+ "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "dev": true,
+ "dependencies": {
+ "eslint-utils": "^2.0.0",
+ "regexpp": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/mysticatea"
+ },
+ "peerDependencies": {
+ "eslint": ">=4.19.1"
+ }
+ },
"node_modules/eslint-plugin-html": {
"version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-6.2.0.tgz",
+ "integrity": "sha512-vi3NW0E8AJombTvt8beMwkL1R/fdRWl4QSNRNMhVQKWm36/X0KF0unGNAY4mqUF06mnwVWZcIcerrCnfn9025g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"htmlparser2": "^7.1.2"
}
},
"node_modules/eslint-plugin-import": {
- "version": "2.25.2",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
+ "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-includes": "^3.1.4",
"array.prototype.flat": "^1.2.5",
"debug": "^2.6.9",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.0",
+ "eslint-module-utils": "^2.7.3",
"has": "^1.0.3",
- "is-core-module": "^2.7.0",
+ "is-core-module": "^2.8.1",
"is-glob": "^4.0.3",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"object.values": "^1.1.5",
- "resolve": "^1.20.0",
- "tsconfig-paths": "^3.11.0"
+ "resolve": "^1.22.0",
+ "tsconfig-paths": "^3.14.1"
},
"engines": {
"node": ">=4"
@@ -5931,16 +6318,18 @@
},
"node_modules/eslint-plugin-import/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/eslint-plugin-import/node_modules/doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"esutils": "^2.0.2"
},
@@ -5950,13 +6339,15 @@
},
"node_modules/eslint-plugin-import/node_modules/ms": {
"version": "2.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "dev": true
},
"node_modules/eslint-plugin-node": {
"version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
+ "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-plugin-es": "^3.0.0",
"eslint-utils": "^2.0.0",
@@ -5972,42 +6363,28 @@
"eslint": ">=5.16.0"
}
},
- "node_modules/eslint-plugin-node/node_modules/eslint-plugin-es": {
- "version": "3.0.1",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- },
- "engines": {
- "node": ">=8.10.0"
- },
- "funding": {
- "url": "https://github.com/sponsors/mysticatea"
- },
- "peerDependencies": {
- "eslint": ">=4.19.1"
- }
- },
"node_modules/eslint-plugin-node/node_modules/ignore": {
- "version": "5.1.8",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/eslint-plugin-promise": {
"version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz",
+ "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=6"
}
},
"node_modules/eslint-plugin-standard": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz",
+ "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==",
"dev": true,
"funding": [
{
@@ -6023,15 +6400,15 @@
"url": "https://feross.org/support"
}
],
- "license": "MIT",
"peerDependencies": {
"eslint": ">=5.0.0"
}
},
"node_modules/eslint-scope": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"esrecurse": "^4.3.0",
"estraverse": "^4.1.1"
@@ -6042,8 +6419,9 @@
},
"node_modules/eslint-utils": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"eslint-visitor-keys": "^1.1.0"
},
@@ -6056,32 +6434,36 @@
},
"node_modules/eslint-utils/node_modules/eslint-visitor-keys": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": ">=4"
}
},
"node_modules/eslint-visitor-keys": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": ">=10"
}
},
"node_modules/eslint/node_modules/@babel/code-frame": {
"version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/highlight": "^7.10.4"
}
},
"node_modules/eslint/node_modules/ajv": {
"version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -6095,8 +6477,9 @@
},
"node_modules/eslint/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -6109,8 +6492,9 @@
},
"node_modules/eslint/node_modules/chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -6124,8 +6508,9 @@
},
"node_modules/eslint/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -6135,13 +6520,15 @@
},
"node_modules/eslint/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/eslint/node_modules/escape-string-regexp": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=10"
},
@@ -6150,9 +6537,10 @@
}
},
"node_modules/eslint/node_modules/globals": {
- "version": "13.11.0",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"dev": true,
- "license": "MIT",
"dependencies": {
"type-fest": "^0.20.2"
},
@@ -6165,21 +6553,24 @@
},
"node_modules/eslint/node_modules/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,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/eslint/node_modules/json-schema-traverse": {
"version": "0.4.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
},
"node_modules/eslint/node_modules/semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -6192,8 +6583,9 @@
},
"node_modules/eslint/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -6203,8 +6595,9 @@
},
"node_modules/espree": {
"version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"acorn": "^7.4.0",
"acorn-jsx": "^5.3.1",
@@ -6216,16 +6609,18 @@
},
"node_modules/espree/node_modules/eslint-visitor-keys": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": ">=4"
}
},
"node_modules/esprima": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true,
- "license": "BSD-2-Clause",
"bin": {
"esparse": "bin/esparse.js",
"esvalidate": "bin/esvalidate.js"
@@ -6236,8 +6631,9 @@
},
"node_modules/esquery": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"estraverse": "^5.1.0"
},
@@ -6246,17 +6642,19 @@
}
},
"node_modules/esquery/node_modules/estraverse": {
- "version": "5.2.0",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
},
"node_modules/esrecurse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"estraverse": "^5.2.0"
},
@@ -6265,45 +6663,50 @@
}
},
"node_modules/esrecurse/node_modules/estraverse": {
- "version": "5.2.0",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
},
"node_modules/estraverse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=4.0"
}
},
"node_modules/estree-walker": {
"version": "2.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true
},
"node_modules/esutils": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true,
- "license": "BSD-2-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/etag": {
"version": "1.8.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/ethers": {
- "version": "5.6.4",
- "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.4.tgz",
- "integrity": "sha512-62UIfxAQXdf67TeeOaoOoPctm5hUlYgfd0iW3wxfj7qRYKDcvvy0f+sJ3W2/Pyx77R8dblvejA8jokj+lS+ATQ==",
+ "version": "5.6.8",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.8.tgz",
+ "integrity": "sha512-YxIGaltAOdvBFPZwIkyHnXbW40f1r8mHUgapW6dxkO+6t7H6wY8POUn0Kbxrd/N7I4hHxyi7YCddMAH/wmho2w==",
"funding": [
{
"type": "individual",
@@ -6315,41 +6718,42 @@
}
],
"dependencies": {
- "@ethersproject/abi": "5.6.1",
- "@ethersproject/abstract-provider": "5.6.0",
- "@ethersproject/abstract-signer": "5.6.0",
- "@ethersproject/address": "5.6.0",
- "@ethersproject/base64": "5.6.0",
- "@ethersproject/basex": "5.6.0",
- "@ethersproject/bignumber": "5.6.0",
+ "@ethersproject/abi": "5.6.3",
+ "@ethersproject/abstract-provider": "5.6.1",
+ "@ethersproject/abstract-signer": "5.6.2",
+ "@ethersproject/address": "5.6.1",
+ "@ethersproject/base64": "5.6.1",
+ "@ethersproject/basex": "5.6.1",
+ "@ethersproject/bignumber": "5.6.2",
"@ethersproject/bytes": "5.6.1",
- "@ethersproject/constants": "5.6.0",
- "@ethersproject/contracts": "5.6.0",
- "@ethersproject/hash": "5.6.0",
- "@ethersproject/hdnode": "5.6.0",
- "@ethersproject/json-wallets": "5.6.0",
- "@ethersproject/keccak256": "5.6.0",
+ "@ethersproject/constants": "5.6.1",
+ "@ethersproject/contracts": "5.6.2",
+ "@ethersproject/hash": "5.6.1",
+ "@ethersproject/hdnode": "5.6.2",
+ "@ethersproject/json-wallets": "5.6.1",
+ "@ethersproject/keccak256": "5.6.1",
"@ethersproject/logger": "5.6.0",
- "@ethersproject/networks": "5.6.2",
- "@ethersproject/pbkdf2": "5.6.0",
+ "@ethersproject/networks": "5.6.3",
+ "@ethersproject/pbkdf2": "5.6.1",
"@ethersproject/properties": "5.6.0",
- "@ethersproject/providers": "5.6.4",
- "@ethersproject/random": "5.6.0",
- "@ethersproject/rlp": "5.6.0",
- "@ethersproject/sha2": "5.6.0",
- "@ethersproject/signing-key": "5.6.0",
- "@ethersproject/solidity": "5.6.0",
- "@ethersproject/strings": "5.6.0",
- "@ethersproject/transactions": "5.6.0",
- "@ethersproject/units": "5.6.0",
- "@ethersproject/wallet": "5.6.0",
- "@ethersproject/web": "5.6.0",
- "@ethersproject/wordlists": "5.6.0"
+ "@ethersproject/providers": "5.6.8",
+ "@ethersproject/random": "5.6.1",
+ "@ethersproject/rlp": "5.6.1",
+ "@ethersproject/sha2": "5.6.1",
+ "@ethersproject/signing-key": "5.6.2",
+ "@ethersproject/solidity": "5.6.1",
+ "@ethersproject/strings": "5.6.1",
+ "@ethersproject/transactions": "5.6.2",
+ "@ethersproject/units": "5.6.1",
+ "@ethersproject/wallet": "5.6.2",
+ "@ethersproject/web": "5.6.1",
+ "@ethersproject/wordlists": "5.6.1"
}
},
"node_modules/event-stream": {
"version": "3.3.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
+ "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==",
"dependencies": {
"duplexer": "~0.1.1",
"from": "~0",
@@ -6362,7 +6766,8 @@
},
"node_modules/event-stream/node_modules/split": {
"version": "0.3.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
+ "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==",
"dependencies": {
"through": "2"
},
@@ -6372,12 +6777,14 @@
},
"node_modules/eventemitter2": {
"version": "6.4.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz",
+ "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw=="
},
"node_modules/execa": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cross-spawn": "^7.0.0",
"get-stream": "^5.0.0",
@@ -6398,7 +6805,8 @@
},
"node_modules/expand-brackets": {
"version": "2.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz",
+ "integrity": "sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==",
"dependencies": {
"debug": "^2.3.3",
"define-property": "^0.2.5",
@@ -6414,14 +6822,16 @@
},
"node_modules/expand-brackets/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/expand-brackets/node_modules/define-property": {
"version": "0.2.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dependencies": {
"is-descriptor": "^0.1.0"
},
@@ -6431,7 +6841,8 @@
},
"node_modules/expand-brackets/node_modules/is-accessor-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -6441,7 +6852,8 @@
},
"node_modules/expand-brackets/node_modules/is-data-descriptor": {
"version": "0.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -6451,7 +6863,8 @@
},
"node_modules/expand-brackets/node_modules/is-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dependencies": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -6463,46 +6876,50 @@
},
"node_modules/expand-brackets/node_modules/is-descriptor/node_modules/kind-of": {
"version": "5.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/expand-brackets/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/express": {
- "version": "4.17.1",
- "license": "MIT",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
"dependencies": {
- "accepts": "~1.3.7",
+ "accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
+ "body-parser": "1.20.0",
+ "content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.0",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "~1.1.2",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
+ "http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.10.3",
"range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
@@ -6513,23 +6930,46 @@
},
"node_modules/express/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/express/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "node_modules/express/node_modules/safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ]
},
"node_modules/extend": {
"version": "3.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
+ "dev": true
},
"node_modules/extend-shallow": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
"dependencies": {
"is-extendable": "^0.1.0"
},
@@ -6539,7 +6979,8 @@
},
"node_modules/extglob": {
"version": "2.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"dependencies": {
"array-unique": "^0.3.2",
"define-property": "^1.0.0",
@@ -6556,7 +6997,8 @@
},
"node_modules/extglob/node_modules/define-property": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
"dependencies": {
"is-descriptor": "^1.0.0"
},
@@ -6566,88 +7008,61 @@
},
"node_modules/extsprintf": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
"dev": true,
"engines": [
"node >=0.6.0"
- ],
- "license": "MIT"
+ ]
},
"node_modules/eyes": {
"version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==",
"engines": {
"node": "> 0.1.90"
}
},
"node_modules/falafel": {
- "version": "2.2.4",
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz",
+ "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"acorn": "^7.1.1",
- "foreach": "^2.0.5",
- "isarray": "^2.0.1",
- "object-keys": "^1.0.6"
+ "isarray": "^2.0.1"
},
"engines": {
"node": ">=0.4.0"
}
},
- "node_modules/falafel/node_modules/isarray": {
- "version": "2.0.5",
- "dev": true,
- "license": "MIT"
- },
"node_modules/fast-deep-equal": {
"version": "3.1.3",
- "license": "MIT"
- },
- "node_modules/fast-json-patch": {
- "version": "2.2.1",
- "license": "MIT",
- "dependencies": {
- "fast-deep-equal": "^2.0.1"
- },
- "engines": {
- "node": ">= 0.4.0"
- }
- },
- "node_modules/fast-json-patch/node_modules/fast-deep-equal": {
- "version": "2.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"node_modules/fast-json-stable-stringify": {
"version": "2.1.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
},
"node_modules/fast-levenshtein": {
"version": "2.0.6",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true
},
- "node_modules/fetch-blob": {
- "version": "3.1.3",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/jimmywarting"
- },
- {
- "type": "paypal",
- "url": "https://paypal.me/jimmywarting"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "web-streams-polyfill": "^3.0.3"
- },
- "engines": {
- "node": "^12.20 || >= 14.13"
- }
+ "node_modules/fecha": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
+ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
},
"node_modules/file-entry-cache": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"flat-cache": "^3.0.4"
},
@@ -6655,18 +7070,26 @@
"node": "^10.12.0 || >=12.0.0"
}
},
+ "node_modules/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==",
+ "optional": true
+ },
"node_modules/filename-reserved-regex": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
+ "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/filenamify": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz",
+ "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"filename-reserved-regex": "^2.0.0",
"strip-outer": "^1.0.1",
@@ -6681,15 +7104,17 @@
},
"node_modules/filesize": {
"version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz",
+ "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/fill-range": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz",
+ "integrity": "sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==",
"dependencies": {
"extend-shallow": "^2.0.1",
"is-number": "^3.0.0",
@@ -6700,23 +7125,17 @@
"node": ">=0.10.0"
}
},
- "node_modules/filter-obj": {
- "version": "1.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=0.10.0"
- }
- },
"node_modules/finalhandler": {
- "version": "1.1.2",
- "license": "MIT",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"dependencies": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"unpipe": "~1.0.0"
},
"engines": {
@@ -6725,124 +7144,54 @@
},
"node_modules/finalhandler/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/finalhandler/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/find-cache-dir": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
"dev": true,
- "license": "MIT",
"dependencies": {
"commondir": "^1.0.1",
"make-dir": "^3.0.2",
"pkg-dir": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
- }
- },
- "node_modules/find-cache-dir/node_modules/find-up": {
- "version": "4.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-cache-dir/node_modules/locate-path": {
- "version": "5.0.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-locate": "^4.1.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-cache-dir/node_modules/make-dir": {
- "version": "3.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "semver": "^6.0.0"
- },
- "engines": {
- "node": ">=8"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/find-cache-dir/node_modules/p-limit": {
- "version": "2.3.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-try": "^2.0.0"
- },
- "engines": {
- "node": ">=6"
- },
- "funding": {
- "url": "https://github.com/sponsors/sindresorhus"
- }
- },
- "node_modules/find-cache-dir/node_modules/p-locate": {
- "version": "4.1.0",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "p-limit": "^2.2.0"
- },
- "engines": {
- "node": ">=8"
- }
- },
- "node_modules/find-cache-dir/node_modules/p-try": {
- "version": "2.2.0",
- "dev": true,
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
- },
- "node_modules/find-cache-dir/node_modules/path-exists": {
- "version": "4.0.0",
- "dev": true,
- "license": "MIT",
+ },
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/avajs/find-cache-dir?sponsor=1"
}
},
- "node_modules/find-cache-dir/node_modules/pkg-dir": {
- "version": "4.2.0",
+ "node_modules/find-cache-dir/node_modules/make-dir": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "find-up": "^4.0.0"
+ "semver": "^6.0.0"
},
"engines": {
"node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/find-replace": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz",
+ "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-back": "^1.0.4",
"test-value": "^2.1.0"
@@ -6853,8 +7202,9 @@
},
"node_modules/find-replace/node_modules/array-back": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
+ "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"typical": "^2.6.0"
},
@@ -6864,8 +7214,9 @@
},
"node_modules/find-up": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"locate-path": "^2.0.0"
},
@@ -6875,15 +7226,17 @@
},
"node_modules/flat": {
"version": "5.0.2",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==",
"bin": {
"flat": "cli.js"
}
},
"node_modules/flat-cache": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"flatted": "^3.1.0",
"rimraf": "^3.0.2"
@@ -6894,6 +7247,8 @@
},
"node_modules/flatiron": {
"version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz",
+ "integrity": "sha512-+X3/0hl9in0FJPsPB5/xTpkxxMzDSoA4cyon46HtXhrfEbpqBvKxpR+HJGqMjKv4jcBmoLjEtTVIAADJjLjv8A==",
"dependencies": {
"broadway": "~0.3.2",
"director": "1.2.7",
@@ -6908,19 +7263,26 @@
}
},
"node_modules/flatted": {
- "version": "3.2.2",
- "dev": true,
- "license": "ISC"
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
+ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
+ "dev": true
+ },
+ "node_modules/fn.name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
+ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
},
"node_modules/follow-redirects": {
- "version": "1.14.4",
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==",
"funding": [
{
"type": "individual",
"url": "https://github.com/sponsors/RubenVerborgh"
}
],
- "license": "MIT",
"engines": {
"node": ">=4.0"
},
@@ -6930,26 +7292,31 @@
}
}
},
+ "node_modules/for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "dependencies": {
+ "is-callable": "^1.1.3"
+ }
+ },
"node_modules/for-in": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/foreach": {
- "version": "2.0.5",
- "dev": true,
- "license": "MIT"
- },
"node_modules/forever": {
- "version": "4.0.1",
- "license": "MIT",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/forever/-/forever-4.0.3.tgz",
+ "integrity": "sha512-N8aVtvB3bdh3lXPE9Rb+ErISSnJsAkv0GgZ0h6qtN8UXFgcSqJNMyBst9r3SBNk6+n4iBVaZso16mr1SUVvG3Q==",
"dependencies": {
"async": "^1.5.2",
"cliff": "^0.1.10",
"clone": "^2.1.2",
- "colors": "^0.6.2",
+ "colors": "0.6.2",
"configstore": "4.0.0",
"eventemitter2": "6.4.4",
"flatiron": "~0.4.3",
@@ -6957,9 +7324,9 @@
"mkdirp": "^0.5.5",
"nssocket": "^0.6.0",
"object-assign": "^4.1.1",
- "prettyjson": "^1.2.1",
+ "prettyjson": "^1.2.2",
"shush": "^1.0.0",
- "winston": "~0.8.1"
+ "winston": "^3.4.0"
},
"bin": {
"forever": "bin/forever"
@@ -6970,15 +7337,17 @@
},
"node_modules/forever-agent": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": "*"
}
},
"node_modules/forever-monitor": {
"version": "3.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-3.0.3.tgz",
+ "integrity": "sha512-7YGDo0UlbMy++6G3lzncWISDaT5CVp+yPVAkZ7FDFF0ec+0HKgBOWOhPGKpMF0hjcm3Ps/HbtrETrQLYREZ7YQ==",
"dependencies": {
"async": "^1.5.2",
"chokidar": "^2.1.8",
@@ -6992,14 +7361,17 @@
},
"node_modules/forever/node_modules/colors": {
"version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==",
"engines": {
"node": ">=0.1.90"
}
},
"node_modules/form-data": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"asynckit": "^0.4.0",
"combined-stream": "^1.0.6",
@@ -7009,26 +7381,18 @@
"node": ">= 0.12"
}
},
- "node_modules/formdata-polyfill": {
- "version": "4.0.10",
- "license": "MIT",
- "dependencies": {
- "fetch-blob": "^3.1.2"
- },
- "engines": {
- "node": ">=12.20.0"
- }
- },
"node_modules/forwarded": {
"version": "0.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/fragment-cache": {
"version": "0.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
"dependencies": {
"map-cache": "^0.2.2"
},
@@ -7038,19 +7402,22 @@
},
"node_modules/fresh": {
"version": "0.5.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/from": {
"version": "0.1.7",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g=="
},
"node_modules/fs-extra": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^4.0.0",
@@ -7062,8 +7429,9 @@
},
"node_modules/fs-minipass": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"minipass": "^3.0.0"
},
@@ -7073,22 +7441,68 @@
},
"node_modules/fs.realpath": {
"version": "1.0.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "node_modules/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.",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "dependencies": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ },
+ "engines": {
+ "node": ">= 4.0"
+ }
},
"node_modules/function-bind": {
"version": "1.1.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "node_modules/function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/functional-red-black-tree": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
+ "dev": true
+ },
+ "node_modules/functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/gauge": {
"version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"aproba": "^1.0.3",
"console-control-strings": "^1.0.0",
@@ -7102,16 +7516,18 @@
},
"node_modules/gauge/node_modules/ansi-regex": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/gauge/node_modules/is-fullwidth-code-point": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"number-is-nan": "^1.0.0"
},
@@ -7121,8 +7537,9 @@
},
"node_modules/gauge/node_modules/string-width": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0",
@@ -7134,8 +7551,9 @@
},
"node_modules/gauge/node_modules/strip-ansi": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-regex": "^2.0.0"
},
@@ -7145,26 +7563,26 @@
},
"node_modules/gensync": {
"version": "1.0.0-beta.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
"engines": {
"node": ">=6.9.0"
}
},
"node_modules/get-caller-file": {
- "version": "2.0.5",
- "license": "ISC",
- "engines": {
- "node": "6.* || 8.* || >= 10.*"
- }
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
},
"node_modules/get-intrinsic": {
- "version": "1.1.1",
- "dev": true,
- "license": "MIT",
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
"dependencies": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "has-symbols": "^1.0.3"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -7172,13 +7590,15 @@
},
"node_modules/get-own-enumerable-property-symbols": {
"version": "3.0.2",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
+ "dev": true
},
"node_modules/get-stream": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pump": "^3.0.0"
},
@@ -7191,8 +7611,8 @@
},
"node_modules/get-symbol-description": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
"dependencies": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.1"
@@ -7206,23 +7626,26 @@
},
"node_modules/get-value": {
"version": "2.0.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/getpass": {
"version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0"
}
},
"node_modules/gh-pages": {
"version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz",
+ "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"async": "^2.6.1",
"commander": "^2.18.0",
@@ -7241,21 +7664,23 @@
}
},
"node_modules/gh-pages/node_modules/async": {
- "version": "2.6.3",
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"lodash": "^4.17.14"
}
},
"node_modules/glob": {
- "version": "7.2.0",
- "license": "ISC",
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
},
@@ -7268,7 +7693,8 @@
},
"node_modules/glob-parent": {
"version": "5.1.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dependencies": {
"is-glob": "^4.0.1"
},
@@ -7278,15 +7704,17 @@
},
"node_modules/globals": {
"version": "11.12.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==",
"engines": {
"node": ">=4"
}
},
"node_modules/globby": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-union": "^1.0.1",
"glob": "^7.0.3",
@@ -7300,39 +7728,45 @@
},
"node_modules/globby/node_modules/pify": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/gpt-3-encoder": {
"version": "1.1.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/gpt-3-encoder/-/gpt-3-encoder-1.1.3.tgz",
+ "integrity": "sha512-Ep1+I5hQ5VcLF5qKc2FyqvSj2T0Al9LNC0uXNq6Cx0Twl6Gq2RWG7Q5Mo/9Of30xcAegsgemNtuulPEiwanUww=="
},
"node_modules/graceful-fs": {
- "version": "4.2.8",
- "license": "ISC"
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"node_modules/graphql": {
"version": "0.11.7",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.11.7.tgz",
+ "integrity": "sha512-x7uDjyz8Jx+QPbpCFCMQ8lltnQa4p4vSYHx6ADe8rVYRTdsyhCJbvSty5DAsLVmU6cGakl+r8HQYolKHxk/tiw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"iterall": "1.1.3"
}
},
"node_modules/growl": {
"version": "1.10.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
"engines": {
"node": ">=4.x"
}
},
"node_modules/gzip-size": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
+ "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"duplexer": "^0.1.2"
},
@@ -7345,16 +7779,19 @@
},
"node_modules/har-schema": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">=4"
}
},
"node_modules/har-validator": {
"version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
+ "deprecated": "this library is no longer supported",
"dev": true,
- "license": "MIT",
"dependencies": {
"ajv": "^6.12.3",
"har-schema": "^2.0.0"
@@ -7365,8 +7802,9 @@
},
"node_modules/har-validator/node_modules/ajv": {
"version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"fast-deep-equal": "^3.1.1",
"fast-json-stable-stringify": "^2.0.0",
@@ -7380,13 +7818,14 @@
},
"node_modules/har-validator/node_modules/json-schema-traverse": {
"version": "0.4.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true
},
"node_modules/has": {
"version": "1.0.3",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"dependencies": {
"function-bind": "^1.1.1"
},
@@ -7395,24 +7834,36 @@
}
},
"node_modules/has-bigints": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==",
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/has-flag": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
"engines": {
"node": ">=4"
}
},
+ "node_modules/has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "dependencies": {
+ "get-intrinsic": "^1.1.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/has-symbols": {
- "version": "1.0.2",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
"engines": {
"node": ">= 0.4"
},
@@ -7422,8 +7873,8 @@
},
"node_modules/has-tostringtag": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"dependencies": {
"has-symbols": "^1.0.2"
},
@@ -7436,12 +7887,14 @@
},
"node_modules/has-unicode": {
"version": "2.0.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
+ "dev": true
},
"node_modules/has-value": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
"dependencies": {
"get-value": "^2.0.6",
"has-values": "^1.0.0",
@@ -7453,7 +7906,8 @@
},
"node_modules/has-values": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz",
+ "integrity": "sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==",
"dependencies": {
"is-number": "^3.0.0",
"kind-of": "^4.0.0"
@@ -7464,7 +7918,8 @@
},
"node_modules/has-values/node_modules/kind-of": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz",
+ "integrity": "sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==",
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -7474,7 +7929,8 @@
},
"node_modules/hash.js": {
"version": "1.1.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"dependencies": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
@@ -7482,22 +7938,16 @@
},
"node_modules/he": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
"bin": {
"he": "bin/he"
}
},
- "node_modules/header-case": {
- "version": "2.0.4",
- "license": "MIT",
- "dependencies": {
- "capital-case": "^1.0.4",
- "tslib": "^2.0.3"
- }
- },
"node_modules/hmac-drbg": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
"dependencies": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
@@ -7506,8 +7956,9 @@
},
"node_modules/hosted-git-info": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -7517,6 +7968,8 @@
},
"node_modules/htmlparser2": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
"dev": true,
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
@@ -7525,7 +7978,6 @@
"url": "https://github.com/sponsors/fb55"
}
],
- "license": "MIT",
"dependencies": {
"domelementtype": "^2.0.1",
"domhandler": "^4.2.2",
@@ -7535,31 +7987,30 @@
},
"node_modules/http-cache-semantics": {
"version": "4.1.0",
- "dev": true,
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
+ "dev": true
},
"node_modules/http-errors": {
- "version": "1.7.2",
- "license": "MIT",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"dependencies": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
},
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
- "node_modules/http-errors/node_modules/inherits": {
- "version": "2.0.3",
- "license": "ISC"
- },
"node_modules/http-proxy-agent": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@tootallnate/once": "1",
"agent-base": "6",
@@ -7571,8 +8022,9 @@
},
"node_modules/http-signature": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0",
"jsprim": "^1.2.2",
@@ -7584,9 +8036,10 @@
}
},
"node_modules/https-proxy-agent": {
- "version": "5.0.0",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"agent-base": "6",
"debug": "4"
@@ -7597,29 +8050,34 @@
},
"node_modules/human-signals": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": ">=8.12.0"
}
},
"node_modules/humanize-ms": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "^2.0.0"
}
},
"node_modules/i": {
"version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz",
+ "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==",
"engines": {
"node": ">=0.4"
}
},
"node_modules/iconv-lite": {
"version": "0.4.24",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -7627,44 +8085,29 @@
"node": ">=0.10.0"
}
},
- "node_modules/ieee754": {
- "version": "1.2.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "BSD-3-Clause"
- },
"node_modules/ignore": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/ignore-walk": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz",
+ "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"minimatch": "^3.0.4"
}
},
"node_modules/import-fresh": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"parent-module": "^1.0.0",
"resolve-from": "^4.0.0"
@@ -7678,27 +8121,31 @@
},
"node_modules/imurmurhash": {
"version": "0.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
"engines": {
"node": ">=0.8.19"
}
},
"node_modules/indent-string": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/infer-owner": {
"version": "1.0.4",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
+ "dev": true
},
"node_modules/inflight": {
"version": "1.0.6",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@@ -7706,16 +8153,18 @@
},
"node_modules/inherits": {
"version": "2.0.4",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
"version": "1.3.8",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"node_modules/internal-slot": {
"version": "1.0.3",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
+ "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
"dependencies": {
"get-intrinsic": "^1.1.0",
"has": "^1.0.3",
@@ -7727,95 +8176,31 @@
},
"node_modules/invert-kv": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/ip": {
- "version": "1.1.5",
- "dev": true,
- "license": "MIT"
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
+ "dev": true
},
"node_modules/ipaddr.js": {
"version": "1.9.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
"engines": {
"node": ">= 0.10"
}
},
- "node_modules/ipld-dag-cbor": {
- "version": "0.17.1",
- "license": "MIT",
- "dependencies": {
- "borc": "^2.1.2",
- "cids": "^1.0.0",
- "is-circular": "^1.0.2",
- "multicodec": "^3.0.1",
- "multihashing-async": "^2.0.0",
- "uint8arrays": "^2.1.3"
- },
- "engines": {
- "node": ">=6.0.0",
- "npm": ">=3.0.0"
- }
- },
- "node_modules/ipld-dag-cbor/node_modules/borc": {
- "version": "2.1.2",
- "license": "MIT",
- "dependencies": {
- "bignumber.js": "^9.0.0",
- "buffer": "^5.5.0",
- "commander": "^2.15.0",
- "ieee754": "^1.1.13",
- "iso-url": "~0.4.7",
- "json-text-sequence": "~0.1.0",
- "readable-stream": "^3.6.0"
- },
- "engines": {
- "node": ">=4"
- }
- },
- "node_modules/ipld-dag-cbor/node_modules/buffer": {
- "version": "5.7.1",
- "funding": [
- {
- "type": "github",
- "url": "https://github.com/sponsors/feross"
- },
- {
- "type": "patreon",
- "url": "https://www.patreon.com/feross"
- },
- {
- "type": "consulting",
- "url": "https://feross.org/support"
- }
- ],
- "license": "MIT",
- "dependencies": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "node_modules/ipld-dag-cbor/node_modules/iso-url": {
- "version": "0.4.7",
- "license": "MIT",
- "engines": {
- "node": ">=10"
- }
- },
- "node_modules/ipld-dag-cbor/node_modules/json-text-sequence": {
- "version": "0.1.1",
- "license": "MIT",
- "dependencies": {
- "delimit-stream": "0.1.0"
- }
- },
"node_modules/is-accessor-descriptor": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz",
+ "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==",
"dependencies": {
"kind-of": "^6.0.0"
},
@@ -7825,20 +8210,36 @@
},
"node_modules/is-accessor-descriptor/node_modules/kind-of": {
"version": "6.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ },
"engines": {
- "node": ">=0.10.0"
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-arrayish": {
- "version": "0.2.1",
- "dev": true,
- "license": "MIT"
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"node_modules/is-bigint": {
"version": "1.0.4",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
"dependencies": {
"has-bigints": "^1.0.1"
},
@@ -7848,7 +8249,8 @@
},
"node_modules/is-binary-path": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz",
+ "integrity": "sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q==",
"dependencies": {
"binary-extensions": "^1.0.0"
},
@@ -7858,8 +8260,8 @@
},
"node_modules/is-boolean-object": {
"version": "1.1.2",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -7873,12 +8275,25 @@
},
"node_modules/is-buffer": {
"version": "1.1.6",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "node_modules/is-builtin-module": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz",
+ "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==",
+ "dev": true,
+ "dependencies": {
+ "builtin-modules": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
},
"node_modules/is-callable": {
"version": "1.2.4",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==",
"engines": {
"node": ">= 0.4"
},
@@ -7886,14 +8301,11 @@
"url": "https://github.com/sponsors/ljharb"
}
},
- "node_modules/is-circular": {
- "version": "1.0.2",
- "license": "MIT"
- },
"node_modules/is-core-module": {
- "version": "2.8.0",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
+ "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"has": "^1.0.3"
},
@@ -7903,7 +8315,8 @@
},
"node_modules/is-data-descriptor": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz",
+ "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==",
"dependencies": {
"kind-of": "^6.0.0"
},
@@ -7913,15 +8326,16 @@
},
"node_modules/is-data-descriptor/node_modules/kind-of": {
"version": "6.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-date-object": {
"version": "1.0.5",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -7934,7 +8348,8 @@
},
"node_modules/is-descriptor": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz",
+ "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==",
"dependencies": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -7946,15 +8361,17 @@
},
"node_modules/is-descriptor/node_modules/kind-of": {
"version": "6.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-docker": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true,
- "license": "MIT",
"bin": {
"is-docker": "cli.js"
},
@@ -7967,28 +8384,32 @@
},
"node_modules/is-extendable": {
"version": "0.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-extglob": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-fullwidth-code-point": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
"engines": {
"node": ">=8"
}
},
"node_modules/is-glob": {
"version": "4.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"dependencies": {
"is-extglob": "^2.1.1"
},
@@ -7998,18 +8419,28 @@
},
"node_modules/is-lambda": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
+ "dev": true
+ },
+ "node_modules/is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/is-module": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
+ "dev": true
},
"node_modules/is-negative-zero": {
- "version": "2.0.1",
- "dev": true,
- "license": "MIT",
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==",
"engines": {
"node": ">= 0.4"
},
@@ -8019,7 +8450,8 @@
},
"node_modules/is-number": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz",
+ "integrity": "sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -8028,9 +8460,9 @@
}
},
"node_modules/is-number-object": {
- "version": "1.0.6",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -8043,21 +8475,24 @@
},
"node_modules/is-obj": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-plain-obj": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==",
"engines": {
"node": ">=8"
}
},
"node_modules/is-plain-object": {
"version": "2.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz",
+ "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -8067,8 +8502,8 @@
},
"node_modules/is-regex": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
"dependencies": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -8082,24 +8517,36 @@
},
"node_modules/is-regexp": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
+ "node_modules/is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-shared-array-buffer": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/is-stream": {
"version": "2.0.1",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
"engines": {
"node": ">=8"
},
@@ -8109,8 +8556,8 @@
},
"node_modules/is-string": {
"version": "1.0.7",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
"dependencies": {
"has-tostringtag": "^1.0.0"
},
@@ -8123,8 +8570,8 @@
},
"node_modules/is-symbol": {
"version": "1.0.4",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
"dependencies": {
"has-symbols": "^1.0.2"
},
@@ -8135,14 +8582,34 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/is-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz",
+ "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
+ "has-tostringtag": "^1.0.0"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/is-typedarray": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
+ "dev": true
},
"node_modules/is-unicode-supported": {
"version": "0.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==",
"engines": {
"node": ">=10"
},
@@ -8152,15 +8619,36 @@
},
"node_modules/is-url": {
"version": "1.2.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
+ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==",
+ "dev": true
+ },
+ "node_modules/is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/is-weakref": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
+ "dependencies": {
+ "call-bind": "^1.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
"dependencies": {
- "call-bind": "^1.0.0"
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -8168,15 +8656,17 @@
},
"node_modules/is-windows": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/is-wsl": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-docker": "^2.0.0"
},
@@ -8185,24 +8675,28 @@
}
},
"node_modules/isarray": {
- "version": "1.0.0",
- "license": "MIT"
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
"node_modules/isexe": {
"version": "2.0.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"node_modules/isobject": {
"version": "3.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/isomorphic-fetch": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+ "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"node-fetch": "^1.0.1",
"whatwg-fetch": ">=0.10.0"
@@ -8210,16 +8704,18 @@
},
"node_modules/isomorphic-fetch/node_modules/is-stream": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/isomorphic-fetch/node_modules/node-fetch": {
"version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"encoding": "^0.1.11",
"is-stream": "^1.0.1"
@@ -8227,17 +8723,20 @@
},
"node_modules/isstream": {
"version": "0.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
},
"node_modules/iterall": {
"version": "1.1.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz",
+ "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ==",
+ "dev": true
},
"node_modules/jest-worker": {
"version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
+ "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/node": "*",
"merge-stream": "^2.0.0",
@@ -8249,16 +8748,18 @@
},
"node_modules/jest-worker/node_modules/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,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/jest-worker/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8268,21 +8769,25 @@
},
"node_modules/js-base64": {
"version": "2.6.4",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
+ "dev": true
},
"node_modules/js-sha3": {
"version": "0.8.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
},
"node_modules/js-tokens": {
"version": "4.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"node_modules/js-yaml": {
"version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"argparse": "^1.0.7",
"esprima": "^4.0.0"
@@ -8293,12 +8798,14 @@
},
"node_modules/jsbn": {
"version": "0.1.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
+ "dev": true
},
"node_modules/jsesc": {
"version": "2.5.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==",
"bin": {
"jsesc": "bin/jsesc"
},
@@ -8308,7 +8815,8 @@
},
"node_modules/json-6": {
"version": "1.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/json-6/-/json-6-1.1.4.tgz",
+ "integrity": "sha512-ljsNv5ARPvSDpWmjFwja8NjzzEFkOis2OMRtvO5GRtr217DXaQseFYZO6fgVPThPPuaWpOI5/cs/fUCfqQlWiA==",
"bin": {
"json-6": "lib/cli.js"
},
@@ -8318,42 +8826,47 @@
},
"node_modules/json-parse-even-better-errors": {
"version": "2.3.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "dev": true
},
"node_modules/json-schema": {
"version": "0.4.0",
- "dev": true,
- "license": "(AFL-2.1 OR BSD-3-Clause)"
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
+ "dev": true
},
"node_modules/json-schema-traverse": {
"version": "1.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
},
"node_modules/json-stable-stringify": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"jsonify": "~0.0.0"
}
},
"node_modules/json-stable-stringify-without-jsonify": {
"version": "1.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true
},
"node_modules/json-stringify-safe": {
"version": "5.0.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
+ "dev": true
},
"node_modules/json5": {
- "version": "2.2.0",
- "license": "MIT",
- "dependencies": {
- "minimist": "^1.2.5"
- },
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==",
"bin": {
"json5": "lib/cli.js"
},
@@ -8363,28 +8876,36 @@
},
"node_modules/jsonfile": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
- "license": "MIT",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/jsonify": {
"version": "0.0.0",
- "license": "Public Domain"
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA==",
+ "dev": true,
+ "engines": {
+ "node": "*"
+ }
},
"node_modules/jsonparse": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
"dev": true,
"engines": [
"node >= 0.2.0"
- ],
- "license": "MIT"
+ ]
},
"node_modules/jsprim": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"assert-plus": "1.0.0",
"extsprintf": "1.3.0",
@@ -8395,43 +8916,10 @@
"node": ">=0.6.0"
}
},
- "node_modules/key-did-provider-ed25519": {
- "version": "1.1.0",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@stablelib/ed25519": "^1.0.1",
- "did-jwt": "^5.0.1",
- "fast-json-stable-stringify": "^2.1.0",
- "rpc-utils": "^0.3.4",
- "uint8arrays": "^2.1.5"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/key-did-provider-ed25519/node_modules/rpc-utils": {
- "version": "0.3.4",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "nanoid": "^3.1.21"
- },
- "engines": {
- "node": ">=12"
- }
- },
- "node_modules/key-did-resolver": {
- "version": "1.4.0",
- "license": "(Apache-2.0 OR MIT)",
- "dependencies": {
- "@stablelib/ed25519": "^1.0.2",
- "multibase": "~4.0.2",
- "uint8arrays": "^2.0.5",
- "varint": "^6.0.0"
- }
- },
"node_modules/kind-of": {
"version": "3.2.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
"dependencies": {
"is-buffer": "^1.1.5"
},
@@ -8439,17 +8927,24 @@
"node": ">=0.10.0"
}
},
+ "node_modules/kuler": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
+ "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
+ },
"node_modules/lazy": {
"version": "1.0.11",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz",
+ "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA==",
"engines": {
"node": ">=0.2.0"
}
},
"node_modules/lcid": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"invert-kv": "^2.0.0"
},
@@ -8459,8 +8954,9 @@
},
"node_modules/levn": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1",
"type-check": "~0.4.0"
@@ -8471,13 +8967,15 @@
},
"node_modules/lines-and-columns": {
"version": "1.2.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "dev": true
},
"node_modules/lint-staged": {
"version": "10.5.4",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz",
+ "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"chalk": "^4.1.0",
"cli-truncate": "^2.1.0",
@@ -8504,8 +9002,9 @@
},
"node_modules/lint-staged/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8518,8 +9017,9 @@
},
"node_modules/lint-staged/node_modules/braces": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -8529,8 +9029,9 @@
},
"node_modules/lint-staged/node_modules/chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8544,8 +9045,9 @@
},
"node_modules/lint-staged/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8555,21 +9057,24 @@
},
"node_modules/lint-staged/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/lint-staged/node_modules/commander": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 6"
}
},
"node_modules/lint-staged/node_modules/fill-range": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -8579,27 +9084,30 @@
},
"node_modules/lint-staged/node_modules/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,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/lint-staged/node_modules/is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/lint-staged/node_modules/micromatch": {
- "version": "4.0.4",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
},
"engines": {
"node": ">=8.6"
@@ -8607,8 +9115,9 @@
},
"node_modules/lint-staged/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8618,8 +9127,9 @@
},
"node_modules/lint-staged/node_modules/to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -8628,16 +9138,17 @@
}
},
"node_modules/listr2": {
- "version": "3.13.5",
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cli-truncate": "^2.1.0",
"colorette": "^2.0.16",
"log-update": "^4.0.0",
"p-map": "^4.0.0",
"rfdc": "^1.3.0",
- "rxjs": "^7.4.0",
+ "rxjs": "^7.5.1",
"through": "^2.3.8",
"wrap-ansi": "^7.0.0"
},
@@ -8653,23 +9164,11 @@
}
}
},
- "node_modules/listr2/node_modules/rxjs": {
- "version": "7.4.0",
- "dev": true,
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "~2.1.0"
- }
- },
- "node_modules/listr2/node_modules/tslib": {
- "version": "2.1.0",
- "dev": true,
- "license": "0BSD"
- },
"node_modules/locate-path": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-locate": "^2.0.0",
"path-exists": "^3.0.0"
@@ -8680,36 +9179,38 @@
},
"node_modules/lodash": {
"version": "4.17.21",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/lodash.clonedeep": {
- "version": "4.5.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
+ "dev": true
},
"node_modules/lodash.debounce": {
"version": "4.0.8",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
+ "dev": true
},
"node_modules/lodash.merge": {
"version": "4.6.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true
},
"node_modules/lodash.padend": {
"version": "4.6.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
+ "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==",
+ "dev": true
},
"node_modules/lodash.truncate": {
"version": "4.4.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
+ "dev": true
},
"node_modules/log-symbols": {
"version": "4.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"dependencies": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -8723,7 +9224,8 @@
},
"node_modules/log-symbols/node_modules/ansi-styles": {
"version": "4.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8736,7 +9238,8 @@
},
"node_modules/log-symbols/node_modules/chalk": {
"version": "4.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -8750,7 +9253,8 @@
},
"node_modules/log-symbols/node_modules/color-convert": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8760,18 +9264,21 @@
},
"node_modules/log-symbols/node_modules/color-name": {
"version": "1.1.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/log-symbols/node_modules/has-flag": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/log-symbols/node_modules/supports-color": {
"version": "7.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -8781,8 +9288,9 @@
},
"node_modules/log-update": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-escapes": "^4.3.0",
"cli-cursor": "^3.1.0",
@@ -8798,8 +9306,9 @@
},
"node_modules/log-update/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -8812,8 +9321,9 @@
},
"node_modules/log-update/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -8823,13 +9333,15 @@
},
"node_modules/log-update/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/log-update/node_modules/wrap-ansi": {
"version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -8839,20 +9351,22 @@
"node": ">=8"
}
},
- "node_modules/logfmt": {
- "version": "1.3.2",
- "license": "MIT",
+ "node_modules/logform": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz",
+ "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==",
"dependencies": {
- "split": "0.2.x",
- "through": "2.3.x"
- },
- "bin": {
- "logfmt": "bin/logfmt"
+ "@colors/colors": "1.5.0",
+ "fecha": "^4.2.0",
+ "ms": "^2.1.1",
+ "safe-stable-stringify": "^2.3.1",
+ "triple-beam": "^1.3.0"
}
},
"node_modules/loose-envify": {
"version": "1.4.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"dependencies": {
"js-tokens": "^3.0.0 || ^4.0.0"
},
@@ -8860,21 +9374,11 @@
"loose-envify": "cli.js"
}
},
- "node_modules/lower-case": {
- "version": "2.0.2",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.3"
- }
- },
- "node_modules/lru_map": {
- "version": "0.4.1",
- "license": "MIT"
- },
"node_modules/lru-cache": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -8884,15 +9388,17 @@
},
"node_modules/magic-string": {
"version": "0.22.5",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
+ "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"vlq": "^0.2.2"
}
},
"node_modules/make-dir": {
"version": "1.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"dependencies": {
"pify": "^3.0.0"
},
@@ -8902,8 +9408,9 @@
},
"node_modules/make-fetch-happen": {
"version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
+ "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"agentkeepalive": "^4.1.3",
"cacache": "^15.2.0",
@@ -8928,8 +9435,9 @@
},
"node_modules/map-age-cleaner": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-defer": "^1.0.0"
},
@@ -8939,17 +9447,21 @@
},
"node_modules/map-cache": {
"version": "0.2.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/map-stream": {
- "version": "0.1.0"
+ "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=="
},
"node_modules/map-visit": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz",
+ "integrity": "sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==",
"dependencies": {
"object-visit": "^1.0.0"
},
@@ -8958,20 +9470,23 @@
}
},
"node_modules/maxrects-packer": {
- "version": "2.7.2",
- "license": "MIT"
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/maxrects-packer/-/maxrects-packer-2.7.3.tgz",
+ "integrity": "sha512-bG6qXujJ1QgttZVIH4WDanhoJtvbud/xP/XPyf6A69C9RdA61BM4TomFALCq2nrTa+tARRIBB4LuIFsnUQU2wA=="
},
"node_modules/media-typer": {
"version": "0.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mem": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"map-age-cleaner": "^0.1.1",
"mimic-fn": "^2.0.0",
@@ -8983,20 +9498,23 @@
},
"node_modules/merge-descriptors": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"node_modules/merge-source-map": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz",
+ "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"source-map": "^0.5.6"
}
},
"node_modules/merge-stream": {
"version": "2.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "dev": true
},
"node_modules/metaversefile": {
"resolved": "packages/totum",
@@ -9004,14 +9522,16 @@
},
"node_modules/methods": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/micromatch": {
"version": "3.1.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"dependencies": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -9033,7 +9553,8 @@
},
"node_modules/micromatch/node_modules/extend-shallow": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -9044,7 +9565,8 @@
},
"node_modules/micromatch/node_modules/is-extendable": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -9054,14 +9576,16 @@
},
"node_modules/micromatch/node_modules/kind-of": {
"version": "6.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/mime": {
"version": "1.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
"bin": {
"mime": "cli.js"
},
@@ -9070,17 +9594,19 @@
}
},
"node_modules/mime-db": {
- "version": "1.50.0",
- "license": "MIT",
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/mime-types": {
- "version": "2.1.33",
- "license": "MIT",
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"dependencies": {
- "mime-db": "1.50.0"
+ "mime-db": "1.52.0"
},
"engines": {
"node": ">= 0.6"
@@ -9088,23 +9614,27 @@
},
"node_modules/mimic-fn": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/minimalistic-assert": {
"version": "1.0.1",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"node_modules/minimalistic-crypto-utils": {
"version": "1.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"node_modules/minimatch": {
- "version": "3.0.4",
- "license": "ISC",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dependencies": {
"brace-expansion": "^1.1.7"
},
@@ -9113,13 +9643,15 @@
}
},
"node_modules/minimist": {
- "version": "1.2.5",
- "license": "MIT"
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"node_modules/minipass": {
"version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
+ "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"yallist": "^4.0.0"
},
@@ -9129,8 +9661,9 @@
},
"node_modules/minipass-collect": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"minipass": "^3.0.0"
},
@@ -9140,8 +9673,9 @@
},
"node_modules/minipass-fetch": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
+ "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"minipass": "^3.1.0",
"minipass-sized": "^1.0.3",
@@ -9156,8 +9690,9 @@
},
"node_modules/minipass-flush": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"minipass": "^3.0.0"
},
@@ -9167,8 +9702,9 @@
},
"node_modules/minipass-json-stream": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz",
+ "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"jsonparse": "^1.3.1",
"minipass": "^3.0.0"
@@ -9176,8 +9712,9 @@
},
"node_modules/minipass-pipeline": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
"dev": true,
- "license": "ISC",
"dependencies": {
"minipass": "^3.0.0"
},
@@ -9187,8 +9724,9 @@
},
"node_modules/minipass-sized": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"minipass": "^3.0.0"
},
@@ -9198,8 +9736,9 @@
},
"node_modules/minizlib": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"minipass": "^3.0.0",
"yallist": "^4.0.0"
@@ -9210,7 +9749,8 @@
},
"node_modules/mixin-deep": {
"version": "1.3.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"dependencies": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -9221,7 +9761,8 @@
},
"node_modules/mixin-deep/node_modules/is-extendable": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -9230,40 +9771,42 @@
}
},
"node_modules/mkdirp": {
- "version": "0.5.5",
- "license": "MIT",
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"dependencies": {
- "minimist": "^1.2.5"
+ "minimist": "^1.2.6"
},
"bin": {
"mkdirp": "bin/cmd.js"
}
},
"node_modules/mocha": {
- "version": "9.1.3",
- "license": "MIT",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
+ "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
"dependencies": {
"@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
- "chokidar": "3.5.2",
- "debug": "4.3.2",
+ "chokidar": "3.5.3",
+ "debug": "4.3.3",
"diff": "5.0.0",
"escape-string-regexp": "4.0.0",
"find-up": "5.0.0",
- "glob": "7.1.7",
+ "glob": "7.2.0",
"growl": "1.10.5",
"he": "1.2.0",
"js-yaml": "4.1.0",
"log-symbols": "4.1.0",
- "minimatch": "3.0.4",
+ "minimatch": "4.2.1",
"ms": "2.1.3",
- "nanoid": "3.1.25",
+ "nanoid": "3.3.1",
"serialize-javascript": "6.0.0",
"strip-json-comments": "3.1.1",
"supports-color": "8.1.1",
"which": "2.0.2",
- "workerpool": "6.1.5",
+ "workerpool": "6.2.0",
"yargs": "16.2.0",
"yargs-parser": "20.2.4",
"yargs-unparser": "2.0.0"
@@ -9280,9 +9823,18 @@
"url": "https://opencollective.com/mochajs"
}
},
+ "node_modules/mocha/node_modules/ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/mocha/node_modules/anymatch": {
"version": "3.1.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"dependencies": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
@@ -9293,18 +9845,21 @@
},
"node_modules/mocha/node_modules/argparse": {
"version": "2.0.1",
- "license": "Python-2.0"
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"node_modules/mocha/node_modules/binary-extensions": {
"version": "2.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"engines": {
"node": ">=8"
}
},
"node_modules/mocha/node_modules/braces": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dependencies": {
"fill-range": "^7.0.1"
},
@@ -9313,8 +9868,15 @@
}
},
"node_modules/mocha/node_modules/chokidar": {
- "version": "3.5.2",
- "license": "MIT",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://paulmillr.com/funding/"
+ }
+ ],
"dependencies": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -9331,9 +9893,41 @@
"fsevents": "~2.3.2"
}
},
+ "node_modules/mocha/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==",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/mocha/node_modules/debug": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "dependencies": {
+ "ms": "2.1.2"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/mocha/node_modules/debug/node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ },
"node_modules/mocha/node_modules/escape-string-regexp": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"engines": {
"node": ">=10"
},
@@ -9343,7 +9937,8 @@
},
"node_modules/mocha/node_modules/fill-range": {
"version": "7.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dependencies": {
"to-regex-range": "^5.0.1"
},
@@ -9353,7 +9948,8 @@
},
"node_modules/mocha/node_modules/find-up": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"dependencies": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
@@ -9365,9 +9961,31 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/mocha/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/mocha/node_modules/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==",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
"node_modules/mocha/node_modules/glob": {
- "version": "7.1.7",
- "license": "ISC",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -9383,16 +10001,29 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/mocha/node_modules/glob/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
"node_modules/mocha/node_modules/has-flag": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"engines": {
"node": ">=8"
}
},
"node_modules/mocha/node_modules/is-binary-path": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dependencies": {
"binary-extensions": "^2.0.0"
},
@@ -9402,14 +10033,16 @@
},
"node_modules/mocha/node_modules/is-number": {
"version": "7.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"engines": {
"node": ">=0.12.0"
}
},
"node_modules/mocha/node_modules/js-yaml": {
"version": "4.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"dependencies": {
"argparse": "^2.0.1"
},
@@ -9419,7 +10052,8 @@
},
"node_modules/mocha/node_modules/locate-path": {
"version": "6.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"dependencies": {
"p-locate": "^5.0.0"
},
@@ -9430,13 +10064,26 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/mocha/node_modules/minimatch": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
+ "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/mocha/node_modules/ms": {
"version": "2.1.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/mocha/node_modules/nanoid": {
- "version": "3.1.25",
- "license": "MIT",
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
+ "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==",
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -9446,7 +10093,8 @@
},
"node_modules/mocha/node_modules/p-limit": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"dependencies": {
"yocto-queue": "^0.1.0"
},
@@ -9459,7 +10107,8 @@
},
"node_modules/mocha/node_modules/p-locate": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"dependencies": {
"p-limit": "^3.0.2"
},
@@ -9472,14 +10121,16 @@
},
"node_modules/mocha/node_modules/path-exists": {
"version": "4.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
"engines": {
"node": ">=8"
}
},
"node_modules/mocha/node_modules/readdirp": {
"version": "3.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dependencies": {
"picomatch": "^2.2.1"
},
@@ -9489,7 +10140,8 @@
},
"node_modules/mocha/node_modules/supports-color": {
"version": "8.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -9502,7 +10154,8 @@
},
"node_modules/mocha/node_modules/to-regex-range": {
"version": "5.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dependencies": {
"is-number": "^7.0.0"
},
@@ -9510,109 +10163,69 @@
"node": ">=8.0"
}
},
- "node_modules/moment": {
- "version": "2.29.1",
- "dev": true,
- "license": "MIT",
+ "node_modules/mocha/node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
"engines": {
- "node": "*"
+ "node": ">=10"
}
},
- "node_modules/ms": {
- "version": "2.1.2",
- "license": "MIT"
- },
- "node_modules/multibase": {
- "version": "4.0.6",
- "license": "MIT",
+ "node_modules/mocha/node_modules/yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"dependencies": {
- "@multiformats/base-x": "^4.0.1"
+ "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": ">=12.0.0",
- "npm": ">=6.0.0"
- }
- },
- "node_modules/multicodec": {
- "version": "3.2.1",
- "license": "MIT",
- "dependencies": {
- "uint8arrays": "^3.0.0",
- "varint": "^6.0.0"
- }
- },
- "node_modules/multicodec/node_modules/uint8arrays": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "multiformats": "^9.4.2"
+ "node": ">=10"
}
},
- "node_modules/multiformats": {
- "version": "9.4.9",
- "license": "(Apache-2.0 AND MIT)"
- },
- "node_modules/multihashes": {
- "version": "4.0.3",
- "license": "MIT",
- "dependencies": {
- "multibase": "^4.0.1",
- "uint8arrays": "^3.0.0",
- "varint": "^5.0.2"
- },
+ "node_modules/mocha/node_modules/yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==",
"engines": {
- "node": ">=12.0.0",
- "npm": ">=6.0.0"
- }
- },
- "node_modules/multihashes/node_modules/uint8arrays": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "multiformats": "^9.4.2"
+ "node": ">=10"
}
},
- "node_modules/multihashes/node_modules/varint": {
- "version": "5.0.2",
- "license": "MIT"
- },
- "node_modules/multihashing-async": {
- "version": "2.1.4",
- "license": "MIT",
- "dependencies": {
- "blakejs": "^1.1.0",
- "err-code": "^3.0.0",
- "js-sha3": "^0.8.0",
- "multihashes": "^4.0.1",
- "murmurhash3js-revisited": "^3.0.0",
- "uint8arrays": "^3.0.0"
- },
+ "node_modules/moment": {
+ "version": "2.29.3",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
+ "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==",
+ "dev": true,
"engines": {
- "node": ">=12.0.0",
- "npm": ">=6.0.0"
- }
- },
- "node_modules/multihashing-async/node_modules/uint8arrays": {
- "version": "3.0.0",
- "license": "MIT",
- "dependencies": {
- "multiformats": "^9.4.2"
+ "node": "*"
}
},
- "node_modules/murmurhash3js-revisited": {
- "version": "3.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=8.0.0"
- }
+ "node_modules/ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/mute-stream": {
"version": "0.0.8",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "node_modules/nan": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
+ "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==",
+ "optional": true
},
"node_modules/nanoid": {
- "version": "3.1.30",
- "license": "MIT",
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "dev": true,
"bin": {
"nanoid": "bin/nanoid.cjs"
},
@@ -9622,7 +10235,8 @@
},
"node_modules/nanomatch": {
"version": "1.2.13",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
"dependencies": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -9642,7 +10256,8 @@
},
"node_modules/nanomatch/node_modules/extend-shallow": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -9653,7 +10268,8 @@
},
"node_modules/nanomatch/node_modules/is-extendable": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -9663,18 +10279,22 @@
},
"node_modules/nanomatch/node_modules/kind-of": {
"version": "6.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/natural-compare": {
"version": "1.4.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "dev": true
},
"node_modules/nconf": {
"version": "0.6.9",
+ "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz",
+ "integrity": "sha512-MHiYHIc2igQsoI1v0IcVE4MVaV/+yIQtduOwUcQNoLd+pPgoKblWKbgU3itkhC0az5w2VMdQlQuAO+oi4qxtJg==",
"dependencies": {
"async": "0.2.9",
"ini": "1.x.x",
@@ -9685,63 +10305,65 @@
}
},
"node_modules/nconf/node_modules/async": {
- "version": "0.2.9"
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz",
+ "integrity": "sha512-OAtM6mexGteNKdU29wcUfRW+VuBr94A3hx9h9yzBnPaQAbKoW1ORd68XM4CCAOpdL5wlNFgO29hsY1TKv2vAKw=="
},
"node_modules/ncp": {
"version": "0.4.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz",
+ "integrity": "sha512-PfGU8jYWdRl4FqJfCy0IzbkGyFHntfWygZg46nFk/dJD/XRrk2cj0SsKSX9n5u5gE0E0YfEpKWrEkfjnlZSTXA==",
"bin": {
"ncp": "bin/ncp"
}
},
"node_modules/negotiator": {
- "version": "0.6.2",
- "license": "MIT",
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/nice-try": {
"version": "1.0.5",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/no-case": {
- "version": "3.0.4",
- "license": "MIT",
- "dependencies": {
- "lower-case": "^2.0.2",
- "tslib": "^2.0.3"
- }
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
+ "dev": true
},
"node_modules/node-fetch": {
- "version": "3.1.0",
- "license": "MIT",
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"dependencies": {
- "data-uri-to-buffer": "^4.0.0",
- "fetch-blob": "^3.1.2",
- "formdata-polyfill": "^4.0.10"
+ "whatwg-url": "^5.0.0"
},
"engines": {
- "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
+ "node": "4.x || >=6.0.0"
},
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/node-fetch"
+ "peerDependencies": {
+ "encoding": "^0.1.0"
+ },
+ "peerDependenciesMeta": {
+ "encoding": {
+ "optional": true
+ }
}
},
"node_modules/node-forge": {
- "version": "0.10.0",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
"dev": true,
- "license": "(BSD-3-Clause OR GPL-2.0)",
"engines": {
- "node": ">= 6.0.0"
+ "node": ">= 6.13.0"
}
},
"node_modules/node-gyp": {
"version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz",
+ "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"env-paths": "^2.2.0",
"glob": "^7.1.4",
@@ -9762,9 +10384,10 @@
}
},
"node_modules/node-gyp/node_modules/semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -9776,13 +10399,15 @@
}
},
"node_modules/node-releases": {
- "version": "2.0.1",
- "license": "MIT"
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz",
+ "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q=="
},
"node_modules/nopt": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"abbrev": "1"
},
@@ -9795,23 +10420,26 @@
},
"node_modules/normalize-path": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/npm-bundled": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
+ "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"npm-normalize-package-bin": "^1.0.1"
}
},
"node_modules/npm-install-checks": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz",
+ "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"semver": "^7.1.1"
},
@@ -9820,9 +10448,10 @@
}
},
"node_modules/npm-install-checks/node_modules/semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -9835,13 +10464,15 @@
},
"node_modules/npm-normalize-package-bin": {
"version": "1.0.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
+ "dev": true
},
"node_modules/npm-package-arg": {
"version": "8.1.5",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz",
+ "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==",
"dev": true,
- "license": "ISC",
"dependencies": {
"hosted-git-info": "^4.0.1",
"semver": "^7.3.4",
@@ -9852,9 +10483,10 @@
}
},
"node_modules/npm-package-arg/node_modules/semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -9867,8 +10499,9 @@
},
"node_modules/npm-packlist": {
"version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz",
+ "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"glob": "^7.1.6",
"ignore-walk": "^3.0.3",
@@ -9884,8 +10517,9 @@
},
"node_modules/npm-pick-manifest": {
"version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz",
+ "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"npm-install-checks": "^4.0.0",
"npm-normalize-package-bin": "^1.0.1",
@@ -9894,9 +10528,10 @@
}
},
"node_modules/npm-pick-manifest/node_modules/semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
- "license": "ISC",
"dependencies": {
"lru-cache": "^6.0.0"
},
@@ -9909,8 +10544,9 @@
},
"node_modules/npm-registry-fetch": {
"version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz",
+ "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"make-fetch-happen": "^9.0.1",
"minipass": "^3.1.3",
@@ -9925,8 +10561,9 @@
},
"node_modules/npm-run-path": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"path-key": "^3.0.0"
},
@@ -9936,8 +10573,9 @@
},
"node_modules/npmlog": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"are-we-there-yet": "~1.1.2",
"console-control-strings": "~1.1.0",
@@ -9947,7 +10585,8 @@
},
"node_modules/nssocket": {
"version": "0.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz",
+ "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==",
"dependencies": {
"eventemitter2": "~0.4.14",
"lazy": "~1.0.11"
@@ -9958,34 +10597,39 @@
},
"node_modules/nssocket/node_modules/eventemitter2": {
"version": "0.4.14",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ=="
},
"node_modules/number-is-nan": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/oauth-sign": {
"version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true,
- "license": "Apache-2.0",
"engines": {
"node": "*"
}
},
"node_modules/object-assign": {
"version": "4.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-copy": {
"version": "0.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
"dependencies": {
"copy-descriptor": "^0.1.0",
"define-property": "^0.2.5",
@@ -9997,7 +10641,8 @@
},
"node_modules/object-copy/node_modules/define-property": {
"version": "0.2.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dependencies": {
"is-descriptor": "^0.1.0"
},
@@ -10007,7 +10652,8 @@
},
"node_modules/object-copy/node_modules/is-accessor-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -10017,7 +10663,8 @@
},
"node_modules/object-copy/node_modules/is-data-descriptor": {
"version": "0.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -10027,7 +10674,8 @@
},
"node_modules/object-copy/node_modules/is-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dependencies": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -10039,30 +10687,47 @@
},
"node_modules/object-copy/node_modules/is-descriptor/node_modules/kind-of": {
"version": "5.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/object-inspect": {
- "version": "1.11.0",
- "dev": true,
- "license": "MIT",
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/object-keys": {
"version": "1.1.1",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
"engines": {
"node": ">= 0.4"
}
},
"node_modules/object-visit": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
"dependencies": {
"isobject": "^3.0.0"
},
@@ -10072,8 +10737,8 @@
},
"node_modules/object.assign": {
"version": "4.1.2",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
"dependencies": {
"call-bind": "^1.0.0",
"define-properties": "^1.1.3",
@@ -10089,7 +10754,8 @@
},
"node_modules/object.pick": {
"version": "1.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz",
+ "integrity": "sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==",
"dependencies": {
"isobject": "^3.0.1"
},
@@ -10099,8 +10765,9 @@
},
"node_modules/object.values": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
+ "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
@@ -10114,8 +10781,9 @@
}
},
"node_modules/on-finished": {
- "version": "2.3.0",
- "license": "MIT",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"dependencies": {
"ee-first": "1.1.1"
},
@@ -10125,15 +10793,25 @@
},
"node_modules/once": {
"version": "1.4.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dependencies": {
"wrappy": "1"
}
},
+ "node_modules/one-time": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
+ "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
+ "dependencies": {
+ "fn.name": "1.x.x"
+ }
+ },
"node_modules/onetime": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"mimic-fn": "^2.1.0"
},
@@ -10145,23 +10823,26 @@
}
},
"node_modules/open": {
- "version": "7.4.2",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
+ "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "is-docker": "^2.0.0",
- "is-wsl": "^2.1.1"
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
},
"engines": {
- "node": ">=8"
+ "node": ">=12"
},
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/openai-api": {
- "version": "1.2.6",
- "license": "ISC",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/openai-api/-/openai-api-1.3.1.tgz",
+ "integrity": "sha512-wKhm/BZS/PyzQRJTdl6kciwL4LpqqyertLYEbbPYDg7ySk1tEywPSBnMio0xdSQaRmdSYVS8VHzJvnwKb9tqkw==",
"dependencies": {
"axios": "^0.21.1",
"dotenv": "^8.2.0"
@@ -10169,7 +10850,8 @@
},
"node_modules/optimist": {
"version": "0.6.0",
- "license": "MIT/X11",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz",
+ "integrity": "sha512-ubrZPyOU0AHpXkmwqfWolap+eHMwQ484AKivkf0ZGyysd6fUJZl7ow9iu5UNV1vCZv46HQ7EM83IC3NGJ820hg==",
"dependencies": {
"minimist": "~0.0.1",
"wordwrap": "~0.0.2"
@@ -10177,12 +10859,14 @@
},
"node_modules/optimist/node_modules/minimist": {
"version": "0.0.10",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw=="
},
"node_modules/optionator": {
"version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"deep-is": "^0.1.3",
"fast-levenshtein": "^2.0.6",
@@ -10197,8 +10881,9 @@
},
"node_modules/os-locale": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"execa": "^1.0.0",
"lcid": "^2.0.0",
@@ -10210,8 +10895,9 @@
},
"node_modules/os-locale/node_modules/cross-spawn": {
"version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"nice-try": "^1.0.4",
"path-key": "^2.0.1",
@@ -10225,8 +10911,9 @@
},
"node_modules/os-locale/node_modules/execa": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"cross-spawn": "^6.0.0",
"get-stream": "^4.0.0",
@@ -10242,8 +10929,9 @@
},
"node_modules/os-locale/node_modules/get-stream": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pump": "^3.0.0"
},
@@ -10253,16 +10941,18 @@
},
"node_modules/os-locale/node_modules/is-stream": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/os-locale/node_modules/npm-run-path": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"path-key": "^2.0.0"
},
@@ -10272,24 +10962,27 @@
},
"node_modules/os-locale/node_modules/path-key": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/os-locale/node_modules/semver": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true,
- "license": "ISC",
"bin": {
"semver": "bin/semver"
}
},
"node_modules/os-locale/node_modules/shebang-command": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"shebang-regex": "^1.0.0"
},
@@ -10299,16 +10992,18 @@
},
"node_modules/os-locale/node_modules/shebang-regex": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/os-locale/node_modules/which": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -10318,32 +11013,36 @@
},
"node_modules/p-defer": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+ "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/p-finally": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/p-is-promise": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/p-limit": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-try": "^1.0.0"
},
@@ -10353,8 +11052,9 @@
},
"node_modules/p-locate": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"p-limit": "^1.1.0"
},
@@ -10364,8 +11064,9 @@
},
"node_modules/p-map": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"aggregate-error": "^3.0.0"
},
@@ -10378,16 +11079,18 @@
},
"node_modules/p-try": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/pacote": {
"version": "11.3.5",
+ "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz",
+ "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"@npmcli/git": "^2.1.0",
"@npmcli/installed-package-contents": "^1.0.6",
@@ -10418,8 +11121,9 @@
},
"node_modules/pacote/node_modules/mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
- "license": "MIT",
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -10428,21 +11132,16 @@
}
},
"node_modules/pako": {
- "version": "2.0.4",
- "license": "(MIT AND Zlib)"
- },
- "node_modules/param-case": {
- "version": "3.0.4",
- "license": "MIT",
- "dependencies": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true
},
"node_modules/parent-module": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"callsites": "^3.0.0"
},
@@ -10452,8 +11151,9 @@
},
"node_modules/parse-json": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.0.0",
"error-ex": "^1.3.1",
@@ -10469,100 +11169,94 @@
},
"node_modules/parseurl": {
"version": "1.3.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
"engines": {
"node": ">= 0.8"
}
},
- "node_modules/pascal-case": {
- "version": "3.1.2",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"node_modules/pascalcase": {
"version": "0.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==",
"engines": {
"node": ">=0.10.0"
}
},
- "node_modules/path-case": {
- "version": "3.0.4",
- "license": "MIT",
- "dependencies": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"node_modules/path-dirname": {
"version": "1.0.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q=="
},
"node_modules/path-exists": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/path-is-absolute": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/path-key": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/path-parse": {
"version": "1.0.7",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "dev": true
},
"node_modules/path-to-regexp": {
"version": "0.1.7",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"node_modules/path-type": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"node_modules/pause-stream": {
"version": "0.0.11",
- "license": [
- "MIT",
- "Apache2"
- ],
+ "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz",
+ "integrity": "sha512-e3FBlXLmN/D1S+zHzanP4E/4Z60oFAa3O051qt1pxa7DEJWKAyil6upYVXCWadEnuoqa4Pkc9oUx9zsxYeRv8A==",
"dependencies": {
"through": "~2.3"
}
},
"node_modules/performance-now": {
"version": "2.1.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
+ "dev": true
},
"node_modules/picocolors": {
"version": "1.0.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
},
"node_modules/picomatch": {
- "version": "2.3.0",
- "license": "MIT",
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
"engines": {
"node": ">=8.6"
},
@@ -10572,23 +11266,26 @@
},
"node_modules/pify": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==",
"engines": {
"node": ">=4"
}
},
"node_modules/pinkie": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/pinkie-promise": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pinkie": "^2.0.0"
},
@@ -10597,115 +11294,191 @@
}
},
"node_modules/pkg-dir": {
- "version": "2.0.0",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "find-up": "^2.1.0"
+ "find-up": "^4.0.0"
},
"engines": {
- "node": ">=4"
+ "node": ">=8"
}
},
- "node_modules/pkginfo": {
- "version": "0.4.1",
- "license": "MIT",
+ "node_modules/pkg-dir/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
"engines": {
- "node": ">= 0.4.0"
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true,
+ "engines": {
+ "node": ">=8"
}
},
"node_modules/please-upgrade-node": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"semver-compare": "^1.0.0"
}
},
"node_modules/pluralize": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/posix-character-classes": {
"version": "0.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz",
+ "integrity": "sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/postcss": {
- "version": "8.3.9",
+ "version": "8.4.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"dev": true,
- "license": "MIT",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ }
+ ],
"dependencies": {
- "nanoid": "^3.1.28",
- "picocolors": "^0.2.1",
- "source-map-js": "^0.6.2"
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
},
"engines": {
"node": "^10 || ^12 || >=14"
- },
- "funding": {
- "type": "opencollective",
- "url": "https://opencollective.com/postcss/"
- }
- },
- "node_modules/postcss/node_modules/picocolors": {
- "version": "0.2.1",
- "dev": true,
- "license": "ISC"
- },
- "node_modules/postmsg-rpc": {
- "version": "2.4.0",
- "license": "MIT",
- "dependencies": {
- "shortid": "^2.2.8"
}
},
"node_modules/prelude-ls": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 0.8.0"
}
},
"node_modules/prettyjson": {
- "version": "1.2.1",
- "license": "MIT",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz",
+ "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==",
"dependencies": {
- "colors": "^1.1.2",
+ "colors": "1.4.0",
"minimist": "^1.2.0"
},
"bin": {
"prettyjson": "bin/prettyjson"
}
},
+ "node_modules/prettyjson/node_modules/colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
"node_modules/process-nextick-args": {
"version": "2.0.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
+ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
},
"node_modules/progress": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/promise-inflight": {
"version": "1.0.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
+ "dev": true
},
"node_modules/promise-retry": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
"dev": true,
- "license": "MIT",
"dependencies": {
"err-code": "^2.0.2",
"retry": "^0.12.0"
@@ -10716,11 +11489,14 @@
},
"node_modules/promise-retry/node_modules/err-code": {
"version": "2.0.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
+ "dev": true
},
"node_modules/prompt": {
"version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz",
+ "integrity": "sha512-jDK5yEbAakJmNm+260gZG1+PuzX3jT5Jy0VZAUGrrW9RQ1JEWEDEVNnhO70mL3+U5r6bSJo02xsE34wOS/LnrA==",
"dependencies": {
"pkginfo": "0.x.x",
"read": "1.0.x",
@@ -10732,9 +11508,48 @@
"node": ">= 0.6.6"
}
},
+ "node_modules/prompt/node_modules/async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
+ },
+ "node_modules/prompt/node_modules/colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw==",
+ "engines": {
+ "node": ">=0.1.90"
+ }
+ },
+ "node_modules/prompt/node_modules/pkginfo": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+ "integrity": "sha512-yO5feByMzAp96LtP58wvPKSbaKAi/1C4kV9XpTctr6EepnP6F33RBNOiVrdz9BrPA98U2BMFsTNHo44TWcbQ2A==",
+ "engines": {
+ "node": ">= 0.4.0"
+ }
+ },
+ "node_modules/prompt/node_modules/winston": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz",
+ "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=",
+ "dependencies": {
+ "async": "0.2.x",
+ "colors": "0.6.x",
+ "cycle": "1.0.x",
+ "eyes": "0.1.x",
+ "isstream": "0.1.x",
+ "pkginfo": "0.3.x",
+ "stack-trace": "0.0.x"
+ },
+ "engines": {
+ "node": ">= 0.6.0"
+ }
+ },
"node_modules/proxy-addr": {
"version": "2.0.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"dependencies": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
@@ -10745,7 +11560,8 @@
},
"node_modules/ps-tree": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
+ "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
"dependencies": {
"event-stream": "=3.3.4"
},
@@ -10758,13 +11574,15 @@
},
"node_modules/psl": {
"version": "1.8.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
+ "dev": true
},
"node_modules/pump": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
- "license": "MIT",
"dependencies": {
"end-of-stream": "^1.1.0",
"once": "^1.3.1"
@@ -10772,38 +11590,31 @@
},
"node_modules/punycode": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==",
"engines": {
"node": ">=6"
}
},
"node_modules/qs": {
- "version": "6.7.0",
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">=0.6"
- }
- },
- "node_modules/query-string": {
- "version": "7.0.1",
- "license": "MIT",
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
"dependencies": {
- "decode-uri-component": "^0.2.0",
- "filter-obj": "^1.1.0",
- "split-on-first": "^1.0.0",
- "strict-uri-encode": "^2.0.0"
+ "side-channel": "^1.0.4"
},
"engines": {
- "node": ">=6"
+ "node": ">=0.6"
},
"funding": {
- "url": "https://github.com/sponsors/sindresorhus"
+ "url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/quicktype": {
- "version": "15.0.260",
+ "version": "15.0.261",
+ "resolved": "https://registry.npmjs.org/quicktype/-/quicktype-15.0.261.tgz",
+ "integrity": "sha512-y2Se/GFGSeFNfON7X0MEJO8K+Lm23hWEZs5UMP9dVy3ShSYng6HTVw1YmqreUwGCLRGn4jD9TjNB1oqyaT3NBw==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"@mark.probst/typescript-json-schema": "~0.32.0",
"@mark.probst/unicode-properties": "~1.1.0",
@@ -10816,7 +11627,7 @@
"is-url": "^1.2.4",
"isomorphic-fetch": "^2.2.1",
"js-base64": "^2.4.3",
- "lodash": "^4.17.19",
+ "lodash": "^4.17.21",
"moment": "^2.22.1",
"node-fetch": "^2.6.1",
"pako": "^1.0.6",
@@ -10825,7 +11636,7 @@
"stream-json": "1.1.3",
"string-to-stream": "^1.1.0",
"typescript": "~3.2.1",
- "urijs": "^1.19.4",
+ "urijs": "^1.19.6",
"uuid": "^3.2.1",
"wordwrap": "^1.0.0",
"yaml": "^1.5.0"
@@ -10834,31 +11645,23 @@
"quicktype": "dist/cli/index.js"
}
},
- "node_modules/quicktype/node_modules/node-fetch": {
- "version": "2.6.6",
- "dev": true,
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
- }
- },
- "node_modules/quicktype/node_modules/pako": {
- "version": "1.0.11",
- "dev": true,
- "license": "(MIT AND Zlib)"
+ "node_modules/quicktype/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/quicktype/node_modules/process-nextick-args": {
"version": "1.0.7",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==",
+ "dev": true
},
"node_modules/quicktype/node_modules/readable-stream": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz",
+ "integrity": "sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -10871,21 +11674,24 @@
},
"node_modules/quicktype/node_modules/string_decoder": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/quicktype/node_modules/wordwrap": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
+ "dev": true
},
"node_modules/quote-stream": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz",
+ "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer-equal": "0.0.1",
"minimist": "^1.1.3",
@@ -10897,24 +11703,27 @@
},
"node_modules/randombytes": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"dependencies": {
"safe-buffer": "^5.1.0"
}
},
"node_modules/range-parser": {
"version": "1.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
"engines": {
"node": ">= 0.6"
}
},
"node_modules/raw-body": {
- "version": "2.4.0",
- "license": "MIT",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"dependencies": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
},
@@ -10924,7 +11733,8 @@
},
"node_modules/react": {
"version": "17.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -10935,7 +11745,8 @@
},
"node_modules/react-dom": {
"version": "17.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -10947,7 +11758,8 @@
},
"node_modules/react-merge-refs": {
"version": "1.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
+ "integrity": "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==",
"funding": {
"type": "github",
"url": "https://github.com/sponsors/gregberge"
@@ -10955,7 +11767,8 @@
},
"node_modules/react-reconciler": {
"version": "0.26.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.26.2.tgz",
+ "integrity": "sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -10970,21 +11783,24 @@
},
"node_modules/react-refresh": {
"version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz",
+ "integrity": "sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/react-three-fiber": {
"version": "0.0.0-deprecated",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/react-three-fiber/-/react-three-fiber-0.0.0-deprecated.tgz",
+ "integrity": "sha512-EblIqTAsIpkYeM8bZtC4lcpTE0A2zCEGipFB52RgcQq/q+0oryrk7Sxt+sqhIjUu6xMNEVywV8dr74lz5yWO6A=="
},
"node_modules/react-use-measure": {
- "version": "2.0.4",
- "license": "MIT",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz",
+ "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==",
"dependencies": {
- "debounce": "^1.2.0"
+ "debounce": "^1.2.1"
},
"peerDependencies": {
"react": ">=16.13",
@@ -10993,7 +11809,8 @@
},
"node_modules/read": {
"version": "1.0.7",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+ "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==",
"dependencies": {
"mute-stream": "~0.0.4"
},
@@ -11003,8 +11820,9 @@
},
"node_modules/read-package-json-fast": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz",
+ "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"json-parse-even-better-errors": "^2.3.0",
"npm-normalize-package-bin": "^1.0.1"
@@ -11015,7 +11833,8 @@
},
"node_modules/readable-stream": {
"version": "3.6.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"dependencies": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -11027,7 +11846,8 @@
},
"node_modules/readdirp": {
"version": "2.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
"dependencies": {
"graceful-fs": "^4.1.11",
"micromatch": "^3.1.10",
@@ -11037,9 +11857,15 @@
"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=="
+ },
"node_modules/readdirp/node_modules/readable-stream": {
"version": "2.3.7",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -11052,28 +11878,32 @@
},
"node_modules/readdirp/node_modules/string_decoder": {
"version": "1.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
+ "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/reduce-flatten": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
+ "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/regenerate": {
"version": "1.4.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
+ "dev": true
},
"node_modules/regenerate-unicode-properties": {
- "version": "9.0.0",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz",
+ "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"regenerate": "^1.4.2"
},
@@ -11083,19 +11913,22 @@
},
"node_modules/regenerator-runtime": {
"version": "0.13.9",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"node_modules/regenerator-transform": {
- "version": "0.14.5",
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
+ "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.8.4"
}
},
"node_modules/regex-not": {
"version": "1.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"dependencies": {
"extend-shallow": "^3.0.2",
"safe-regex": "^1.1.0"
@@ -11106,7 +11939,8 @@
},
"node_modules/regex-not/node_modules/extend-shallow": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -11117,7 +11951,8 @@
},
"node_modules/regex-not/node_modules/is-extendable": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -11125,10 +11960,27 @@
"node": ">=0.10.0"
}
},
+ "node_modules/regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "dependencies": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/regexpp": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
},
@@ -11137,14 +11989,15 @@
}
},
"node_modules/regexpu-core": {
- "version": "4.8.0",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz",
+ "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^9.0.0",
- "regjsgen": "^0.5.2",
- "regjsparser": "^0.7.0",
+ "regenerate-unicode-properties": "^10.0.1",
+ "regjsgen": "^0.6.0",
+ "regjsparser": "^0.8.2",
"unicode-match-property-ecmascript": "^2.0.0",
"unicode-match-property-value-ecmascript": "^2.0.0"
},
@@ -11153,14 +12006,16 @@
}
},
"node_modules/regjsgen": {
- "version": "0.5.2",
- "dev": true,
- "license": "MIT"
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz",
+ "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==",
+ "dev": true
},
"node_modules/regjsparser": {
- "version": "0.7.0",
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz",
+ "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"jsesc": "~0.5.0"
},
@@ -11170,6 +12025,8 @@
},
"node_modules/regjsparser/node_modules/jsesc": {
"version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
"dev": true,
"bin": {
"jsesc": "bin/jsesc"
@@ -11177,26 +12034,31 @@
},
"node_modules/remove-trailing-separator": {
"version": "1.1.0",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
+ "integrity": "sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw=="
},
"node_modules/repeat-element": {
"version": "1.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz",
+ "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/repeat-string": {
"version": "1.6.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==",
"engines": {
"node": ">=0.10"
}
},
"node_modules/request": {
"version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
+ "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"aws-sign2": "~0.7.0",
"aws4": "^1.8.0",
@@ -11225,42 +12087,52 @@
},
"node_modules/request/node_modules/qs": {
"version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=0.6"
}
},
"node_modules/require-directory": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/require-from-string": {
"version": "2.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/require-main-filename": {
"version": "1.0.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==",
+ "dev": true
},
"node_modules/resize-observer-polyfill": {
"version": "1.5.1",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"node_modules/resolve": {
- "version": "1.20.0",
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
+ "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
+ "is-core-module": "^2.8.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -11268,20 +12140,24 @@
},
"node_modules/resolve-from": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/resolve-url": {
"version": "0.2.1",
- "license": "MIT"
+ "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"
},
"node_modules/restore-cursor": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
@@ -11290,44 +12166,42 @@
"node": ">=8"
}
},
- "node_modules/resumer": {
- "version": "0.0.0",
- "license": "MIT",
- "dependencies": {
- "through": "~2.3.4"
- }
- },
"node_modules/ret": {
"version": "0.1.15",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==",
"engines": {
"node": ">=0.12"
}
},
"node_modules/retry": {
"version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4"
}
},
"node_modules/revalidator": {
"version": "0.1.8",
- "license": "Apache 2.0",
+ "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz",
+ "integrity": "sha512-xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/rfdc": {
"version": "1.3.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
+ "dev": true
},
"node_modules/rimraf": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"glob": "^7.1.3"
},
@@ -11339,9 +12213,10 @@
}
},
"node_modules/rollup": {
- "version": "2.58.0",
+ "version": "2.75.6",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz",
+ "integrity": "sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==",
"dev": true,
- "license": "MIT",
"bin": {
"rollup": "dist/bin/rollup"
},
@@ -11354,8 +12229,9 @@
},
"node_modules/rollup-plugin-filesize": {
"version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-9.1.2.tgz",
+ "integrity": "sha512-m2fE9hFaKgWKisJzyWXctOFKlgMRelo/58HgeC0lXUK/qykxiqkr6bsrotlvo2bvrwPsjgT7scNdQSr6qtl37A==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/runtime": "^7.13.8",
"boxen": "^5.0.0",
@@ -11370,55 +12246,20 @@
"node": ">=10.0.0"
}
},
- "node_modules/rollup-plugin-filesize/node_modules/acorn": {
- "version": "8.7.0",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
- "node_modules/rollup-plugin-filesize/node_modules/source-map": {
- "version": "0.7.3",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/rollup-plugin-filesize/node_modules/terser": {
- "version": "5.10.0",
+ "node_modules/rollup-plugin-filesize/node_modules/colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true,
- "license": "BSD-2-Clause",
- "dependencies": {
- "commander": "^2.20.0",
- "source-map": "~0.7.2",
- "source-map-support": "~0.5.20"
- },
- "bin": {
- "terser": "bin/terser"
- },
"engines": {
- "node": ">=10"
- },
- "peerDependencies": {
- "acorn": "^8.5.0"
- },
- "peerDependenciesMeta": {
- "acorn": {
- "optional": true
- }
+ "node": ">=0.1.90"
}
},
"node_modules/rollup-plugin-terser": {
"version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
+ "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@babel/code-frame": "^7.10.4",
"jest-worker": "^26.2.1",
@@ -11429,129 +12270,154 @@
"rollup": "^2.0.0"
}
},
- "node_modules/rollup-plugin-terser/node_modules/acorn": {
- "version": "8.7.0",
- "dev": true,
- "license": "MIT",
- "optional": true,
- "peer": true,
- "bin": {
- "acorn": "bin/acorn"
- },
- "engines": {
- "node": ">=0.4.0"
- }
- },
"node_modules/rollup-plugin-terser/node_modules/serialize-javascript": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"randombytes": "^2.1.0"
}
},
- "node_modules/rollup-plugin-terser/node_modules/source-map": {
- "version": "0.7.3",
- "dev": true,
- "license": "BSD-3-Clause",
- "engines": {
- "node": ">= 8"
- }
- },
- "node_modules/rollup-plugin-terser/node_modules/terser": {
- "version": "5.10.0",
+ "node_modules/rollup-plugin-visualizer": {
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.6.0.tgz",
+ "integrity": "sha512-CKcc8GTUZjC+LsMytU8ocRr/cGZIfMR7+mdy4YnlyetlmIl/dM8BMnOEpD4JPIGt+ZVW7Db9ZtSsbgyeBH3uTA==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
- "commander": "^2.20.0",
- "source-map": "~0.7.2",
- "source-map-support": "~0.5.20"
+ "nanoid": "^3.1.32",
+ "open": "^8.4.0",
+ "source-map": "^0.7.3",
+ "yargs": "^17.3.1"
},
"bin": {
- "terser": "bin/terser"
+ "rollup-plugin-visualizer": "dist/bin/cli.js"
},
"engines": {
- "node": ">=10"
+ "node": ">=12"
},
"peerDependencies": {
- "acorn": "^8.5.0"
- },
- "peerDependenciesMeta": {
- "acorn": {
- "optional": true
- }
+ "rollup": "^2.0.0"
}
},
- "node_modules/rollup-plugin-visualizer": {
- "version": "5.5.2",
+ "node_modules/rollup-plugin-visualizer/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,
- "license": "MIT",
"dependencies": {
- "nanoid": "^3.1.22",
- "open": "^7.4.2",
- "source-map": "^0.7.3",
- "yargs": "^16.2.0"
- },
- "bin": {
- "rollup-plugin-visualizer": "dist/bin/cli.js"
- },
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "node_modules/rollup-plugin-visualizer/node_modules/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": ">=10.16"
- },
- "peerDependencies": {
- "rollup": "^2.0.0"
+ "node": "6.* || 8.* || >= 10.*"
}
},
"node_modules/rollup-plugin-visualizer/node_modules/source-map": {
- "version": "0.7.3",
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">= 8"
}
},
- "node_modules/rpc-utils": {
- "version": "0.4.0",
- "license": "(Apache-2.0 OR MIT)",
+ "node_modules/rollup-plugin-visualizer/node_modules/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"
+ }
+ },
+ "node_modules/rollup-plugin-visualizer/node_modules/yargs": {
+ "version": "17.5.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
+ "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
+ "dev": true,
"dependencies": {
- "nanoid": "^3.1.21"
+ "cliui": "^7.0.2",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.0.0"
},
"engines": {
"node": ">=12"
}
},
- "node_modules/rxjs": {
- "version": "6.6.7",
- "license": "Apache-2.0",
- "dependencies": {
- "tslib": "^1.9.0"
- },
+ "node_modules/rollup-plugin-visualizer/node_modules/yargs-parser": {
+ "version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
+ "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
+ "dev": true,
"engines": {
- "npm": ">=2.0.0"
+ "node": ">=12"
}
},
- "node_modules/rxjs/node_modules/tslib": {
- "version": "1.14.1",
- "license": "0BSD"
+ "node_modules/rollup/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/rxjs": {
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz",
+ "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==",
+ "dev": true,
+ "dependencies": {
+ "tslib": "^2.1.0"
+ }
},
"node_modules/safe-buffer": {
"version": "5.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/safe-regex": {
"version": "1.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
"dependencies": {
"ret": "~0.1.10"
}
},
+ "node_modules/safe-stable-stringify": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz",
+ "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg==",
+ "engines": {
+ "node": ">=10"
+ }
+ },
"node_modules/safer-buffer": {
"version": "2.1.2",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/scheduler": {
"version": "0.20.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
"dependencies": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -11564,46 +12430,54 @@
},
"node_modules/secure-compare": {
"version": "3.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
+ "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==",
+ "dev": true
},
"node_modules/selfsigned": {
- "version": "1.10.14",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz",
+ "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "node-forge": "^0.10.0"
+ "node-forge": "^1"
+ },
+ "engines": {
+ "node": ">=10"
}
},
"node_modules/semver": {
"version": "6.3.0",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
"bin": {
"semver": "bin/semver.js"
}
},
"node_modules/semver-compare": {
"version": "1.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
+ "dev": true
},
"node_modules/send": {
- "version": "0.17.1",
- "license": "MIT",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"dependencies": {
"debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "~1.7.2",
+ "http-errors": "2.0.0",
"mime": "1.6.0",
- "ms": "2.1.1",
- "on-finished": "~2.3.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
"range-parser": "~1.2.1",
- "statuses": "~1.5.0"
+ "statuses": "2.0.1"
},
"engines": {
"node": ">= 0.8.0"
@@ -11611,39 +12485,35 @@
},
"node_modules/send/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/send/node_modules/debug/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/send/node_modules/ms": {
- "version": "2.1.1",
- "license": "MIT"
- },
- "node_modules/sentence-case": {
- "version": "3.0.4",
- "license": "MIT",
- "dependencies": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3",
- "upper-case-first": "^2.0.2"
- }
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"node_modules/serialize-javascript": {
"version": "6.0.0",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
"dependencies": {
"randombytes": "^2.1.0"
}
},
"node_modules/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,
- "license": "MIT",
"dependencies": {
"accepts": "~1.3.4",
"batch": "0.6.1",
@@ -11659,16 +12529,27 @@
},
"node_modules/serve-index/node_modules/debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ms": "2.0.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,
- "license": "MIT",
"dependencies": {
"depd": "~1.1.2",
"inherits": "2.0.3",
@@ -11681,27 +12562,40 @@
},
"node_modules/serve-index/node_modules/inherits": {
"version": "2.0.3",
- "dev": true,
- "license": "ISC"
+ "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/ms": {
"version": "2.0.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
+ "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/serve-index/node_modules/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,
- "license": "ISC"
+ "engines": {
+ "node": ">= 0.6"
+ }
},
"node_modules/serve-static": {
- "version": "1.14.1",
- "license": "MIT",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"dependencies": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.17.1"
+ "send": "0.18.0"
},
"engines": {
"node": ">= 0.8.0"
@@ -11709,42 +12603,46 @@
},
"node_modules/server-destroy": {
"version": "1.0.1",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
+ "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==",
+ "dev": true
},
"node_modules/servez": {
- "version": "1.12.0",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/servez/-/servez-1.14.1.tgz",
+ "integrity": "sha512-p0NntkNbUfltQMM19fRXTR/PVUCZzhfXobJ0THzldJaAFoEAMH1e+GC7iKjQebszhQRhvq2tPT8xaJhqt/pNjQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-colors": "^4.1.1",
"color-support": "^1.1.3",
"optionator": "^0.8.2",
- "servez-lib": "^2.4.0"
+ "servez-lib": "^2.6.0"
},
"bin": {
"servez": "bin/servez"
}
},
"node_modules/servez-lib": {
- "version": "2.4.0",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/servez-lib/-/servez-lib-2.6.0.tgz",
+ "integrity": "sha512-4XfLkK8MUWEkWYzlDRPwvZ5aABNEkc8ryrn44IP3eRG132d17TMpSkJ00Zv+61L0kzO5Crv0ijF0xaX4DqfQHg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"basic-auth": "^2.0.1",
"cors": "^2.8.5",
- "debug": "^4.1.1",
- "express": "^4.17.1",
+ "debug": "^4.3.4",
+ "express": "^4.17.3",
"secure-compare": "^3.0.1",
- "selfsigned": "^1.10.8",
+ "selfsigned": "^2.0.1",
"serve-index": "^1.9.1",
"server-destroy": "^1.0.1"
}
},
"node_modules/servez/node_modules/levn": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
@@ -11755,8 +12653,9 @@
},
"node_modules/servez/node_modules/optionator": {
"version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.6",
@@ -11771,6 +12670,8 @@
},
"node_modules/servez/node_modules/prelude-ls": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
"dev": true,
"engines": {
"node": ">= 0.8.0"
@@ -11778,8 +12679,9 @@
},
"node_modules/servez/node_modules/type-check": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "~1.1.2"
},
@@ -11789,12 +12691,14 @@
},
"node_modules/set-blocking": {
"version": "2.0.0",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
+ "dev": true
},
"node_modules/set-value": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz",
+ "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==",
"dependencies": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -11806,18 +12710,21 @@
}
},
"node_modules/setprototypeof": {
- "version": "1.1.1",
- "license": "ISC"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/shallow-copy": {
"version": "0.0.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
+ "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==",
+ "dev": true
},
"node_modules/shebang-command": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"shebang-regex": "^3.0.0"
},
@@ -11827,45 +12734,34 @@
},
"node_modules/shebang-regex": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
- "node_modules/shortid": {
- "version": "2.2.16",
- "license": "MIT",
- "dependencies": {
- "nanoid": "^2.1.0"
- }
- },
- "node_modules/shortid/node_modules/nanoid": {
- "version": "2.1.11",
- "license": "MIT"
- },
"node_modules/shush": {
- "version": "1.0.0",
- "license": "MIT",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/shush/-/shush-1.0.1.tgz",
+ "integrity": "sha512-baDDBPaPcFwVeQNfj1lYkE/NkqQr1WkXUlOePHnA5I8hw9Fz0Tu72ZC0XENeV4tM9tesaGA/Wi2mW07EOeKRuQ==",
"dependencies": {
- "caller": "~0.0.1",
- "strip-json-comments": "~0.1.1"
+ "caller": "~1.0.1",
+ "strip-json-comments": "~2.0.1"
}
},
"node_modules/shush/node_modules/strip-json-comments": {
- "version": "0.1.3",
- "license": "MIT",
- "bin": {
- "strip-json-comments": "cli.js"
- },
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
"engines": {
- "node": ">=0.8.0"
+ "node": ">=0.10.0"
}
},
"node_modules/side-channel": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"dependencies": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
@@ -11876,13 +12772,23 @@
}
},
"node_modules/signal-exit": {
- "version": "3.0.5",
- "license": "ISC"
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ },
+ "node_modules/simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "dependencies": {
+ "is-arrayish": "^0.3.1"
+ }
},
"node_modules/slice-ansi": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.0.0",
"astral-regex": "^2.0.0",
@@ -11897,8 +12803,9 @@
},
"node_modules/slice-ansi/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -11911,8 +12818,9 @@
},
"node_modules/slice-ansi/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -11922,13 +12830,15 @@
},
"node_modules/slice-ansi/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"node_modules/smart-buffer": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 6.0.0",
"npm": ">= 3.0.0"
@@ -11936,19 +12846,13 @@
},
"node_modules/smile2emoji": {
"version": "1.1.6",
- "license": "MIT"
- },
- "node_modules/snake-case": {
- "version": "3.0.4",
- "license": "MIT",
- "dependencies": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
+ "resolved": "https://registry.npmjs.org/smile2emoji/-/smile2emoji-1.1.6.tgz",
+ "integrity": "sha512-l5RqlYuqVDUayBSs4tGjvmIrnnSzQZYHyxDdKrf50a8kPxhYritYH40f9AQ4UVR3/e9JZZT8PqOuD0oKhE2Psg=="
},
"node_modules/snapdragon": {
"version": "0.8.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"dependencies": {
"base": "^0.11.1",
"debug": "^2.2.0",
@@ -11965,7 +12869,8 @@
},
"node_modules/snapdragon-node": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz",
+ "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==",
"dependencies": {
"define-property": "^1.0.0",
"isobject": "^3.0.0",
@@ -11977,7 +12882,8 @@
},
"node_modules/snapdragon-node/node_modules/define-property": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz",
+ "integrity": "sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==",
"dependencies": {
"is-descriptor": "^1.0.0"
},
@@ -11987,7 +12893,8 @@
},
"node_modules/snapdragon-util": {
"version": "3.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
"dependencies": {
"kind-of": "^3.2.0"
},
@@ -11997,14 +12904,16 @@
},
"node_modules/snapdragon/node_modules/debug": {
"version": "2.6.9",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dependencies": {
"ms": "2.0.0"
}
},
"node_modules/snapdragon/node_modules/define-property": {
"version": "0.2.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dependencies": {
"is-descriptor": "^0.1.0"
},
@@ -12014,7 +12923,8 @@
},
"node_modules/snapdragon/node_modules/is-accessor-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -12024,7 +12934,8 @@
},
"node_modules/snapdragon/node_modules/is-data-descriptor": {
"version": "0.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -12034,7 +12945,8 @@
},
"node_modules/snapdragon/node_modules/is-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dependencies": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -12046,22 +12958,25 @@
},
"node_modules/snapdragon/node_modules/is-descriptor/node_modules/kind-of": {
"version": "5.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/snapdragon/node_modules/ms": {
"version": "2.0.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/socks": {
- "version": "2.6.1",
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
+ "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ip": "^1.1.5",
- "smart-buffer": "^4.1.0"
+ "smart-buffer": "^4.2.0"
},
"engines": {
"node": ">= 10.13.0",
@@ -12069,13 +12984,14 @@
}
},
"node_modules/socks-proxy-agent": {
- "version": "6.1.1",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
+ "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"agent-base": "^6.0.2",
- "debug": "^4.3.1",
- "socks": "^2.6.1"
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
},
"engines": {
"node": ">= 10"
@@ -12083,22 +12999,26 @@
},
"node_modules/source-map": {
"version": "0.5.7",
- "license": "BSD-3-Clause",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-js": {
- "version": "0.6.2",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-resolve": {
"version": "0.5.3",
- "license": "MIT",
+ "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",
"dependencies": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0",
@@ -12109,8 +13029,9 @@
},
"node_modules/source-map-support": {
"version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"buffer-from": "^1.0.0",
"source-map": "^0.6.0"
@@ -12118,45 +13039,29 @@
},
"node_modules/source-map-support/node_modules/source-map": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
- "license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/source-map-url": {
"version": "0.4.1",
- "license": "MIT"
+ "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"
},
"node_modules/spawn-command": {
"version": "0.0.2-1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/spectorjs": {
- "version": "0.9.27",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/split": {
- "version": "0.2.10",
- "dependencies": {
- "through": "2"
- },
- "engines": {
- "node": "*"
- }
- },
- "node_modules/split-on-first": {
- "version": "1.1.0",
- "license": "MIT",
- "engines": {
- "node": ">=6"
- }
+ "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-string": {
"version": "3.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz",
+ "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==",
"dependencies": {
"extend-shallow": "^3.0.0"
},
@@ -12166,7 +13071,8 @@
},
"node_modules/split-string/node_modules/extend-shallow": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -12177,7 +13083,8 @@
},
"node_modules/split-string/node_modules/is-extendable": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -12187,13 +13094,15 @@
},
"node_modules/sprintf-js": {
"version": "1.0.3",
- "dev": true,
- "license": "BSD-3-Clause"
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "dev": true
},
"node_modules/sshpk": {
"version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
+ "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"asn1": "~0.2.3",
"assert-plus": "^1.0.0",
@@ -12216,8 +13125,9 @@
},
"node_modules/ssri": {
"version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"minipass": "^3.1.1"
},
@@ -12227,23 +13137,26 @@
},
"node_modules/stack-trace": {
"version": "0.0.10",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==",
"engines": {
"node": "*"
}
},
"node_modules/static-eval": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz",
+ "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escodegen": "^1.11.1"
}
},
"node_modules/static-eval/node_modules/escodegen": {
"version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"esprima": "^4.0.1",
"estraverse": "^4.2.0",
@@ -12263,8 +13176,9 @@
},
"node_modules/static-eval/node_modules/levn": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "~1.1.2",
"type-check": "~0.3.2"
@@ -12275,8 +13189,9 @@
},
"node_modules/static-eval/node_modules/optionator": {
"version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"deep-is": "~0.1.3",
"fast-levenshtein": "~2.0.6",
@@ -12291,6 +13206,8 @@
},
"node_modules/static-eval/node_modules/prelude-ls": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
"dev": true,
"engines": {
"node": ">= 0.8.0"
@@ -12298,8 +13215,9 @@
},
"node_modules/static-eval/node_modules/source-map": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
- "license": "BSD-3-Clause",
"optional": true,
"engines": {
"node": ">=0.10.0"
@@ -12307,8 +13225,9 @@
},
"node_modules/static-eval/node_modules/type-check": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "~1.1.2"
},
@@ -12318,7 +13237,8 @@
},
"node_modules/static-extend": {
"version": "0.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
"dependencies": {
"define-property": "^0.2.5",
"object-copy": "^0.1.0"
@@ -12329,7 +13249,8 @@
},
"node_modules/static-extend/node_modules/define-property": {
"version": "0.2.5",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"dependencies": {
"is-descriptor": "^0.1.0"
},
@@ -12339,7 +13260,8 @@
},
"node_modules/static-extend/node_modules/is-accessor-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz",
+ "integrity": "sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -12349,7 +13271,8 @@
},
"node_modules/static-extend/node_modules/is-data-descriptor": {
"version": "0.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz",
+ "integrity": "sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -12359,7 +13282,8 @@
},
"node_modules/static-extend/node_modules/is-descriptor": {
"version": "0.1.6",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"dependencies": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -12371,15 +13295,17 @@
},
"node_modules/static-extend/node_modules/is-descriptor/node_modules/kind-of": {
"version": "5.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/static-module": {
"version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz",
+ "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"concat-stream": "~1.6.0",
"convert-source-map": "^1.5.1",
@@ -12397,15 +13323,23 @@
"through2": "~2.0.3"
}
},
+ "node_modules/static-module/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/static-module/node_modules/object-inspect": {
"version": "1.4.1",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz",
+ "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==",
+ "dev": true
},
"node_modules/static-module/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,
- "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -12418,59 +13352,61 @@
},
"node_modules/static-module/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,
- "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/stats.js": {
"version": "0.17.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
+ "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
},
"node_modules/statuses": {
- "version": "1.5.0",
- "license": "MIT",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
"engines": {
- "node": ">= 0.6"
+ "node": ">= 0.8"
}
},
"node_modules/stream-chain": {
- "version": "2.2.4",
- "dev": true,
- "license": "BSD-3-Clause"
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz",
+ "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==",
+ "dev": true
},
"node_modules/stream-combiner": {
"version": "0.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
"dependencies": {
"duplexer": "~0.1.1"
}
},
"node_modules/stream-json": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.1.3.tgz",
+ "integrity": "sha512-y+ChhCov2A5nDqC2aZ6HKXs3OvDlvAp0Ps3BF1P/Iv8tUZJQQsMVaSzk0WryVTVoGITKv01UYahCXMpAs7I0lQ==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"stream-chain": "^2.0.3"
}
},
- "node_modules/strict-uri-encode": {
- "version": "2.0.0",
- "license": "MIT",
- "engines": {
- "node": ">=4"
- }
- },
"node_modules/string_decoder": {
"version": "1.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"dependencies": {
"safe-buffer": "~5.2.0"
}
},
"node_modules/string_decoder/node_modules/safe-buffer": {
"version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
"funding": [
{
"type": "github",
@@ -12484,30 +13420,38 @@
"type": "consulting",
"url": "https://feross.org/support"
}
- ],
- "license": "MIT"
+ ]
},
"node_modules/string-argv": {
"version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.6.19"
}
},
"node_modules/string-to-stream": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz",
+ "integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"inherits": "^2.0.1",
"readable-stream": "^2.1.0"
}
},
+ "node_modules/string-to-stream/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/string-to-stream/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,
- "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -12520,15 +13464,17 @@
},
"node_modules/string-to-stream/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,
- "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/string-width": {
"version": "4.2.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
"dependencies": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -12539,24 +13485,26 @@
}
},
"node_modules/string.prototype.trimend": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
},
"node_modules/string.prototype.trimstart": {
- "version": "1.0.4",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"dependencies": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
},
"funding": {
"url": "https://github.com/sponsors/ljharb"
@@ -12564,8 +13512,9 @@
},
"node_modules/stringify-object": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
"dev": true,
- "license": "BSD-2-Clause",
"dependencies": {
"get-own-enumerable-property-symbols": "^3.0.0",
"is-obj": "^1.0.1",
@@ -12577,7 +13526,8 @@
},
"node_modules/strip-ansi": {
"version": "6.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"dependencies": {
"ansi-regex": "^5.0.1"
},
@@ -12587,31 +13537,35 @@
},
"node_modules/strip-bom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/strip-eof": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/strip-final-newline": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=6"
}
},
"node_modules/strip-json-comments": {
"version": "3.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
"engines": {
"node": ">=8"
},
@@ -12621,8 +13575,9 @@
},
"node_modules/strip-outer": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
+ "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.2"
},
@@ -12632,7 +13587,8 @@
},
"node_modules/supports-color": {
"version": "5.5.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dependencies": {
"has-flag": "^3.0.0"
},
@@ -12640,13 +13596,25 @@
"node": ">=4"
}
},
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true,
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/table": {
- "version": "6.7.2",
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
+ "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"ajv": "^8.0.1",
- "lodash.clonedeep": "^4.5.0",
"lodash.truncate": "^4.4.2",
"slice-ansi": "^4.0.0",
"string-width": "^4.2.3",
@@ -12658,8 +13626,9 @@
},
"node_modules/table-layout": {
"version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz",
+ "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-back": "^2.0.0",
"deep-extend": "~0.6.0",
@@ -12671,25 +13640,11 @@
"node": ">=4.0.0"
}
},
- "node_modules/tape": {
- "version": "2.3.3",
- "license": "MIT",
- "dependencies": {
- "deep-equal": "~0.1.0",
- "defined": "~0.0.0",
- "inherits": "~2.0.1",
- "jsonify": "~0.0.0",
- "resumer": "~0.0.0",
- "through": "~2.3.4"
- },
- "bin": {
- "tape": "bin/tape"
- }
- },
"node_modules/tar": {
"version": "6.1.11",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
+ "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
"dev": true,
- "license": "ISC",
"dependencies": {
"chownr": "^2.0.0",
"fs-minipass": "^2.0.0",
@@ -12704,8 +13659,9 @@
},
"node_modules/tar/node_modules/mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true,
- "license": "MIT",
"bin": {
"mkdirp": "bin/cmd.js"
},
@@ -12713,10 +13669,41 @@
"node": ">=10"
}
},
+ "node_modules/terser": {
+ "version": "5.14.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz",
+ "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==",
+ "dev": true,
+ "dependencies": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "bin": {
+ "terser": "bin/terser"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/terser/node_modules/acorn": {
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
+ "dev": true,
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/test-value": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
+ "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==",
"dev": true,
- "license": "MIT",
"dependencies": {
"array-back": "^1.0.3",
"typical": "^2.6.0"
@@ -12727,8 +13714,9 @@
},
"node_modules/test-value/node_modules/array-back": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
+ "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"typical": "^2.6.0"
},
@@ -12736,10 +13724,16 @@
"node": ">=0.12.0"
}
},
+ "node_modules/text-hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
+ },
"node_modules/text-table": {
"version": "0.2.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
+ "dev": true
},
"node_modules/three": {
"resolved": "packages/three",
@@ -12747,21 +13741,30 @@
},
"node_modules/through": {
"version": "2.3.8",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
},
"node_modules/through2": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"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,
- "license": "MIT",
"dependencies": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -12774,27 +13777,31 @@
},
"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,
- "license": "MIT",
"dependencies": {
"safe-buffer": "~5.1.0"
}
},
"node_modules/tiny-inflate": {
"version": "1.0.3",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
+ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
+ "dev": true
},
"node_modules/to-fast-properties": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==",
"engines": {
"node": ">=4"
}
},
"node_modules/to-object-path": {
"version": "0.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz",
+ "integrity": "sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==",
"dependencies": {
"kind-of": "^3.0.2"
},
@@ -12804,7 +13811,8 @@
},
"node_modules/to-regex": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"dependencies": {
"define-property": "^2.0.2",
"extend-shallow": "^3.0.2",
@@ -12817,7 +13825,8 @@
},
"node_modules/to-regex-range": {
"version": "2.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz",
+ "integrity": "sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==",
"dependencies": {
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
@@ -12828,7 +13837,8 @@
},
"node_modules/to-regex/node_modules/extend-shallow": {
"version": "3.0.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz",
+ "integrity": "sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==",
"dependencies": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -12839,7 +13849,8 @@
},
"node_modules/to-regex/node_modules/is-extendable": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz",
+ "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==",
"dependencies": {
"is-plain-object": "^2.0.4"
},
@@ -12848,16 +13859,18 @@
}
},
"node_modules/toidentifier": {
- "version": "1.0.0",
- "license": "MIT",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
"engines": {
"node": ">=0.6"
}
},
"node_modules/tough-cookie": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"dev": true,
- "license": "BSD-3-Clause",
"dependencies": {
"psl": "^1.1.28",
"punycode": "^2.1.1"
@@ -12868,20 +13881,23 @@
},
"node_modules/tr46": {
"version": "0.0.3",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/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,
- "license": "MIT",
"bin": {
"tree-kill": "cli.js"
}
},
"node_modules/trim-repeated": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"escape-string-regexp": "^1.0.2"
},
@@ -12889,9 +13905,15 @@
"node": ">=0.10.0"
}
},
+ "node_modules/triple-beam": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
+ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
+ },
"node_modules/troika-three-text": {
"version": "0.43.1-alpha.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.43.1-alpha.0.tgz",
+ "integrity": "sha512-bayeycChrNM4HgpN6Y0GkuL1Ib9eCf0SOMfT0SH0msML5qpICjEdvTSqJUJYdmbv59gJlfAJ2bsnQrkr3IgyZw==",
"dependencies": {
"bidi-js": "^1.0.2",
"troika-three-utils": "^0.43.0",
@@ -12901,32 +13923,36 @@
"three": ">=0.103.0"
}
},
- "node_modules/troika-three-text/node_modules/troika-three-utils": {
+ "node_modules/troika-three-utils": {
"version": "0.43.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.43.0.tgz",
+ "integrity": "sha512-UVc4jOob1VjrX0awA0dHxmHZ8yvgq8W/kmtihMnMeObm0HNOobPKAWm/N6o34/k/FPgOtUMDHYgkw+TG2RNouA==",
"peerDependencies": {
"three": ">=0.103.0"
}
},
"node_modules/troika-worker-utils": {
"version": "0.43.0",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.43.0.tgz",
+ "integrity": "sha512-8YXWwfviJ1N/9+nuE5dT9RFttmDsIF8CP7d6rRsBBhH55il3fBqpFSuzTlOcdgC1yq8Hmhi6GgIl6eK4Zt+hTw=="
},
"node_modules/tsconfig-paths": {
- "version": "3.11.0",
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
+ "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
"dev": true,
- "license": "MIT",
"dependencies": {
"@types/json5": "^0.0.29",
"json5": "^1.0.1",
- "minimist": "^1.2.0",
+ "minimist": "^1.2.6",
"strip-bom": "^3.0.0"
}
},
"node_modules/tsconfig-paths/node_modules/json5": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
- "license": "MIT",
"dependencies": {
"minimist": "^1.2.0"
},
@@ -12935,13 +13961,16 @@
}
},
"node_modules/tslib": {
- "version": "2.3.1",
- "license": "0BSD"
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "dev": true
},
"node_modules/tunnel-agent": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"dev": true,
- "license": "Apache-2.0",
"dependencies": {
"safe-buffer": "^5.0.1"
},
@@ -12951,13 +13980,15 @@
},
"node_modules/tweetnacl": {
"version": "0.14.5",
- "dev": true,
- "license": "Unlicense"
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
+ "dev": true
},
"node_modules/type-check": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
- "license": "MIT",
"dependencies": {
"prelude-ls": "^1.2.1"
},
@@ -12967,8 +13998,9 @@
},
"node_modules/type-fest": {
"version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true,
- "license": "(MIT OR CC0-1.0)",
"engines": {
"node": ">=10"
},
@@ -12978,7 +14010,8 @@
},
"node_modules/type-is": {
"version": "1.6.18",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
@@ -12989,13 +14022,15 @@
},
"node_modules/typedarray": {
"version": "0.0.6",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
+ "dev": true
},
"node_modules/typescript": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
+ "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
"dev": true,
- "license": "Apache-2.0",
"bin": {
"tsc": "bin/tsc",
"tsserver": "bin/tsserver"
@@ -13004,30 +14039,20 @@
"node": ">=4.2.0"
}
},
- "node_modules/typescript-memoize": {
- "version": "1.0.1",
- "license": "MIT"
- },
"node_modules/typical": {
"version": "2.6.1",
- "dev": true,
- "license": "MIT"
- },
- "node_modules/uint8arrays": {
- "version": "2.1.10",
- "license": "MIT",
- "dependencies": {
- "multiformats": "^9.4.2"
- }
+ "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
+ "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==",
+ "dev": true
},
"node_modules/unbox-primitive": {
- "version": "1.0.1",
- "dev": true,
- "license": "MIT",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"dependencies": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
"which-boxed-primitive": "^1.0.2"
},
"funding": {
@@ -13036,16 +14061,18 @@
},
"node_modules/unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/unicode-match-property-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"unicode-canonical-property-names-ecmascript": "^2.0.0",
"unicode-property-aliases-ecmascript": "^2.0.0"
@@ -13056,24 +14083,27 @@
},
"node_modules/unicode-match-property-value-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/unicode-property-aliases-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=4"
}
},
"node_modules/unicode-trie": {
"version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz",
+ "integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==",
"dev": true,
- "license": "MIT",
"dependencies": {
"pako": "^0.2.5",
"tiny-inflate": "^1.0.0"
@@ -13081,12 +14111,14 @@
},
"node_modules/unicode-trie/node_modules/pako": {
"version": "0.2.9",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
+ "dev": true
},
"node_modules/union-value": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz",
+ "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==",
"dependencies": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
@@ -13099,23 +14131,26 @@
},
"node_modules/unique-filename": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
"dev": true,
- "license": "ISC",
"dependencies": {
"unique-slug": "^2.0.0"
}
},
"node_modules/unique-slug": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
"dev": true,
- "license": "ISC",
"dependencies": {
"imurmurhash": "^0.1.4"
}
},
"node_modules/unique-string": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
"dependencies": {
"crypto-random-string": "^1.0.0"
},
@@ -13125,29 +14160,33 @@
},
"node_modules/universalify": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">= 4.0.0"
}
},
"node_modules/unix-path": {
"version": "0.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/unix-path/-/unix-path-0.2.0.tgz",
+ "integrity": "sha512-x8ccHoiBE8Ykw4mpAqS49vXxaQrovLCyTunbhJgNhtDOpmIdlwnQuA8bHTnQWo+i64gJ4cIwOSn/ZVNAyaiBDQ==",
"engines": {
"node": ">=6"
}
},
"node_modules/unpipe": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/unset-value": {
"version": "1.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
"dependencies": {
"has-value": "^0.3.1",
"isobject": "^3.0.0"
@@ -13158,7 +14197,8 @@
},
"node_modules/unset-value/node_modules/has-value": {
"version": "0.3.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
"dependencies": {
"get-value": "^2.0.3",
"has-values": "^0.1.4",
@@ -13170,7 +14210,8 @@
},
"node_modules/unset-value/node_modules/has-value/node_modules/isobject": {
"version": "2.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
"dependencies": {
"isarray": "1.0.0"
},
@@ -13180,59 +14221,59 @@
},
"node_modules/unset-value/node_modules/has-values": {
"version": "0.1.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
"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=="
+ },
"node_modules/upath": {
"version": "1.2.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==",
"engines": {
"node": ">=4",
"yarn": "*"
}
},
- "node_modules/upper-case": {
- "version": "2.0.2",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.3"
- }
- },
- "node_modules/upper-case-first": {
- "version": "2.0.2",
- "license": "MIT",
- "dependencies": {
- "tslib": "^2.0.3"
- }
- },
"node_modules/uri-js": {
"version": "4.4.1",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
"dependencies": {
"punycode": "^2.1.0"
}
},
"node_modules/urijs": {
- "version": "1.19.7",
- "dev": true,
- "license": "MIT"
+ "version": "1.19.11",
+ "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz",
+ "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==",
+ "dev": true
},
"node_modules/urix": {
"version": "0.1.0",
- "license": "MIT"
+ "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"
},
"node_modules/use": {
"version": "3.1.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/use-asset": {
"version": "1.0.4",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/use-asset/-/use-asset-1.0.4.tgz",
+ "integrity": "sha512-7/hqDrWa0iMnCoET9W1T07EmD4Eg/Wmoj/X8TGBc++ECRK4m5yTsjP4O6s0yagbxfqIOuUkIxe2/sA+VR2GxZA==",
"dependencies": {
"fast-deep-equal": "^3.1.3"
},
@@ -13240,23 +14281,15 @@
"react": ">=17.0"
}
},
- "node_modules/util": {
- "version": "0.11.1",
- "license": "MIT",
- "dependencies": {
- "inherits": "2.0.3"
- }
- },
"node_modules/util-deprecate": {
"version": "1.0.2",
- "license": "MIT"
- },
- "node_modules/util/node_modules/inherits": {
- "version": "2.0.3",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"node_modules/utile": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz",
+ "integrity": "sha512-ltfvuCJNa/JFOhKBBiQ9qDyyFwLstoMMO1ru0Yg/Mcl8dp1Z3IBaL7n+5dHpyma+d3lCogkgBQnWKtGxzNyqhg==",
"dependencies": {
"async": "~0.2.9",
"deep-equal": "*",
@@ -13270,11 +14303,14 @@
}
},
"node_modules/utile/node_modules/async": {
- "version": "0.2.10"
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
},
"node_modules/utile/node_modules/rimraf": {
"version": "2.7.1",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dependencies": {
"glob": "^7.1.3"
},
@@ -13284,57 +14320,61 @@
},
"node_modules/utility-types": {
"version": "3.10.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+ "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==",
"engines": {
"node": ">= 4"
}
},
"node_modules/utils-merge": {
"version": "1.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
"engines": {
"node": ">= 0.4.0"
}
},
"node_modules/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,
- "license": "MIT",
"bin": {
"uuid": "bin/uuid"
}
},
"node_modules/v8-compile-cache": {
"version": "2.3.0",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
+ "dev": true
},
"node_modules/validate-npm-package-name": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
"dev": true,
- "license": "ISC",
"dependencies": {
"builtins": "^1.0.3"
}
},
- "node_modules/varint": {
- "version": "6.0.0",
- "license": "MIT"
- },
"node_modules/vary": {
"version": "1.1.2",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
"engines": {
"node": ">= 0.8"
}
},
"node_modules/verror": {
"version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"dev": true,
"engines": [
"node >=0.6.0"
],
- "license": "MIT",
"dependencies": {
"assert-plus": "^1.0.0",
"core-util-is": "1.0.2",
@@ -13343,18 +14383,20 @@
},
"node_modules/verror/node_modules/core-util-is": {
"version": "1.0.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
+ "dev": true
},
"node_modules/vite": {
- "version": "2.6.10",
+ "version": "2.9.12",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.12.tgz",
+ "integrity": "sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew==",
"dev": true,
- "license": "MIT",
"dependencies": {
- "esbuild": "^0.13.2",
- "postcss": "^8.3.8",
- "resolve": "^1.20.0",
- "rollup": "^2.57.0"
+ "esbuild": "^0.14.27",
+ "postcss": "^8.4.13",
+ "resolve": "^1.22.0",
+ "rollup": "^2.59.0"
},
"bin": {
"vite": "bin/vite.js"
@@ -13382,30 +14424,41 @@
}
}
},
- "node_modules/vlq": {
- "version": "0.2.3",
+ "node_modules/vite/node_modules/fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
"dev": true,
- "license": "MIT"
- },
- "node_modules/web-streams-polyfill": {
- "version": "3.2.0",
- "license": "MIT",
+ "hasInstallScript": true,
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
"engines": {
- "node": ">= 8"
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
}
},
+ "node_modules/vlq": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
+ "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
+ "dev": true
+ },
"node_modules/webidl-conversions": {
"version": "3.0.1",
- "license": "BSD-2-Clause"
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
},
"node_modules/webm-writer": {
"version": "1.0.0",
- "license": "WTFPL"
+ "resolved": "https://registry.npmjs.org/webm-writer/-/webm-writer-1.0.0.tgz",
+ "integrity": "sha512-xafP4mzUqht03HBXP0Ov2YGsxfD08uncad9fQeshYwQXrcP6Z/4uxd1IUaGKqKigFPAgaD9xb6JEKA8SXLQMLA=="
},
"node_modules/whatwg-fetch": {
"version": "3.6.2",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
+ "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==",
+ "dev": true
},
"node_modules/whatwg-mimetype": {
"version": "3.0.0",
@@ -13417,7 +14470,8 @@
},
"node_modules/whatwg-url": {
"version": "5.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
"dependencies": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -13425,7 +14479,8 @@
},
"node_modules/which": {
"version": "2.0.2",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dependencies": {
"isexe": "^2.0.0"
},
@@ -13438,8 +14493,8 @@
},
"node_modules/which-boxed-primitive": {
"version": "1.0.2",
- "dev": true,
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
"dependencies": {
"is-bigint": "^1.0.1",
"is-boolean-object": "^1.1.0",
@@ -13451,23 +14506,59 @@
"url": "https://github.com/sponsors/ljharb"
}
},
+ "node_modules/which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "dependencies": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
"node_modules/which-module": {
"version": "2.0.0",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
+ "dev": true
+ },
+ "node_modules/which-typed-array": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz",
+ "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==",
+ "dependencies": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
},
"node_modules/wide-align": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dev": true,
- "license": "ISC",
"dependencies": {
"string-width": "^1.0.2 || 2 || 3 || 4"
}
},
"node_modules/widest-line": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
"dev": true,
- "license": "MIT",
"dependencies": {
"string-width": "^4.0.0"
},
@@ -13476,55 +14567,65 @@
}
},
"node_modules/winston": {
- "version": "0.8.3",
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.7.2.tgz",
+ "integrity": "sha512-QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng==",
"dependencies": {
- "async": "0.2.x",
- "colors": "0.6.x",
- "cycle": "1.0.x",
- "eyes": "0.1.x",
- "isstream": "0.1.x",
- "pkginfo": "0.3.x",
- "stack-trace": "0.0.x"
+ "@dabh/diagnostics": "^2.0.2",
+ "async": "^3.2.3",
+ "is-stream": "^2.0.0",
+ "logform": "^2.4.0",
+ "one-time": "^1.0.0",
+ "readable-stream": "^3.4.0",
+ "safe-stable-stringify": "^2.3.1",
+ "stack-trace": "0.0.x",
+ "triple-beam": "^1.3.0",
+ "winston-transport": "^4.5.0"
},
"engines": {
- "node": ">= 0.6.0"
+ "node": ">= 12.0.0"
}
},
- "node_modules/winston/node_modules/async": {
- "version": "0.2.10"
- },
- "node_modules/winston/node_modules/colors": {
- "version": "0.6.2",
+ "node_modules/winston-transport": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz",
+ "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==",
+ "dependencies": {
+ "logform": "^2.3.2",
+ "readable-stream": "^3.6.0",
+ "triple-beam": "^1.3.0"
+ },
"engines": {
- "node": ">=0.1.90"
+ "node": ">= 6.4.0"
}
},
- "node_modules/winston/node_modules/pkginfo": {
- "version": "0.3.1",
- "license": "MIT",
- "engines": {
- "node": ">= 0.4.0"
- }
+ "node_modules/winston/node_modules/async": {
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
},
"node_modules/word-wrap": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.10.0"
}
},
"node_modules/wordwrap": {
"version": "0.0.3",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
"engines": {
"node": ">=0.4.0"
}
},
"node_modules/wordwrapjs": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
+ "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
"dev": true,
- "license": "MIT",
"dependencies": {
"reduce-flatten": "^1.0.1",
"typical": "^2.6.1"
@@ -13534,12 +14635,14 @@
}
},
"node_modules/workerpool": {
- "version": "6.1.5",
- "license": "Apache-2.0"
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
+ "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A=="
},
"node_modules/wrap-ansi": {
"version": "7.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
"dependencies": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -13554,7 +14657,8 @@
},
"node_modules/wrap-ansi/node_modules/ansi-styles": {
"version": "4.3.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -13567,7 +14671,8 @@
},
"node_modules/wrap-ansi/node_modules/color-convert": {
"version": "2.0.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -13577,15 +14682,18 @@
},
"node_modules/wrap-ansi/node_modules/color-name": {
"version": "1.1.4",
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"node_modules/wrappy": {
"version": "1.0.2",
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"node_modules/write-file-atomic": {
"version": "2.4.3",
- "license": "ISC",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
"dependencies": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
@@ -13593,10 +14701,11 @@
}
},
"node_modules/ws": {
- "version": "8.2.3",
- "license": "MIT",
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
"engines": {
- "node": ">=10.0.0"
+ "node": ">=8.3.0"
},
"peerDependencies": {
"bufferutil": "^4.0.1",
@@ -13617,72 +14726,84 @@
},
"node_modules/xdg-basedir": {
"version": "3.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=",
"engines": {
"node": ">=4"
}
},
"node_modules/xhr2": {
"version": "0.2.1",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz",
+ "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==",
"engines": {
"node": ">= 6"
}
},
"node_modules/xtend": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true,
- "license": "MIT",
"engines": {
"node": ">=0.4"
}
},
"node_modules/y18n": {
- "version": "5.0.8",
- "license": "ISC",
- "engines": {
- "node": ">=10"
- }
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "dev": true
},
"node_modules/yallist": {
"version": "4.0.0",
- "dev": true,
- "license": "ISC"
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
+ "dev": true
},
"node_modules/yaml": {
"version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true,
- "license": "ISC",
"engines": {
"node": ">= 6"
}
},
"node_modules/yargs": {
- "version": "16.2.0",
- "license": "MIT",
+ "version": "12.0.5",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
+ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+ "dev": true,
"dependencies": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
+ "cliui": "^4.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^3.0.0",
"require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
- },
- "engines": {
- "node": ">=10"
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1 || ^4.0.0",
+ "yargs-parser": "^11.1.1"
}
},
"node_modules/yargs-parser": {
- "version": "20.2.4",
- "license": "ISC",
- "engines": {
- "node": ">=10"
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
+ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+ "dev": true,
+ "dependencies": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
}
},
"node_modules/yargs-unparser": {
"version": "2.0.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
"dependencies": {
"camelcase": "^6.0.0",
"decamelize": "^4.0.0",
@@ -13693,9 +14814,136 @@
"node": ">=10"
}
},
+ "node_modules/yargs-unparser/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yargs-unparser/node_modules/decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yargs/node_modules/ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yargs/node_modules/find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "dependencies": {
+ "locate-path": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true,
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yargs/node_modules/locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "dependencies": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/yargs/node_modules/p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "dependencies": {
+ "p-limit": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "dependencies": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/yargs/node_modules/strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "dev": true,
+ "dependencies": {
+ "ansi-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/yocto-queue": {
"version": "0.1.0",
- "license": "MIT",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
"engines": {
"node": ">=10"
},
@@ -13708,8 +14956,9 @@
"link": true
},
"node_modules/zustand": {
- "version": "3.5.14",
- "license": "MIT",
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
+ "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
"engines": {
"node": ">=12.7.0"
},
@@ -13762,8 +15011,9 @@
},
"packages/three/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
},
@@ -13776,8 +15026,9 @@
},
"packages/three/node_modules/chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
- "license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -13791,8 +15042,9 @@
},
"packages/three/node_modules/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,
- "license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
},
@@ -13802,21 +15054,24 @@
},
"packages/three/node_modules/color-name": {
"version": "1.1.4",
- "dev": true,
- "license": "MIT"
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "dev": true
},
"packages/three/node_modules/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,
- "license": "MIT",
"engines": {
"node": ">=8"
}
},
"packages/three/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,
- "license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
},
@@ -13835,19 +15090,14 @@
"mime-types": "^2.1.32",
"node-fetch": "^2.6.1",
"pako": "^2.0.4",
- "unix-path": "^0.2.0"
- }
- },
- "packages/totum/node_modules/node-fetch": {
- "version": "2.6.6",
- "license": "MIT",
- "dependencies": {
- "whatwg-url": "^5.0.0"
- },
- "engines": {
- "node": "4.x || >=6.0.0"
+ "unix-path": "^0.2.0"
}
},
+ "packages/totum/node_modules/pako": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz",
+ "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg=="
+ },
"packages/wsrtc": {
"version": "0.0.6",
"license": "ISC",
@@ -13862,11 +15112,32 @@
},
"packages/wsrtc/node_modules/dotenv": {
"version": "10.0.0",
- "license": "BSD-2-Clause",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q==",
"engines": {
"node": ">=10"
}
},
+ "packages/wsrtc/node_modules/ws": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz",
+ "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==",
+ "engines": {
+ "node": ">=10.0.0"
+ },
+ "peerDependencies": {
+ "bufferutil": "^4.0.1",
+ "utf-8-validate": "^5.0.2"
+ },
+ "peerDependenciesMeta": {
+ "bufferutil": {
+ "optional": true
+ },
+ "utf-8-validate": {
+ "optional": true
+ }
+ }
+ },
"packages/zjs": {
"version": "0.0.1",
"license": "ISC",
@@ -13877,71 +15148,54 @@
}
},
"dependencies": {
- "@3id/common": {
- "version": "0.2.1",
- "requires": {
- "errors-utils": "^0.1.0",
- "uint8arrays": "^2.1.5"
- }
- },
- "@3id/connect": {
- "version": "0.2.5",
- "requires": {
- "@3id/common": "^0.2.1",
- "@3id/connect-display": "^0.2.1",
- "@3id/window-auth-provider": "^0.2.5",
- "@ceramicnetwork/blockchain-utils-linking": "^1.2.0",
- "postmsg-rpc": "^2.4.0",
- "rpc-utils": "^0.4.0",
- "rxjs": "^6.6.6"
- }
- },
- "@3id/connect-display": {
- "version": "0.2.1",
- "requires": {
- "@ceramicnetwork/rpc-window": "^0.1.1",
- "@ceramicnetwork/transport-postmessage": "^0.3.0",
- "rxjs": "^6.6.6"
- }
- },
- "@3id/window-auth-provider": {
- "version": "0.2.5",
+ "@ampproject/remapping": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
+ "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
"requires": {
- "@ceramicnetwork/rpc-window": "^0.1.1",
- "caip": "^0.9.2"
+ "@jridgewell/gen-mapping": "^0.1.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
}
},
"@babel/code-frame": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
+ "integrity": "sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==",
"requires": {
"@babel/highlight": "^7.16.7"
}
},
"@babel/compat-data": {
- "version": "7.16.8"
+ "version": "7.17.10",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.17.10.tgz",
+ "integrity": "sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw=="
},
"@babel/core": {
- "version": "7.15.8",
- "requires": {
- "@babel/code-frame": "^7.15.8",
- "@babel/generator": "^7.15.8",
- "@babel/helper-compilation-targets": "^7.15.4",
- "@babel/helper-module-transforms": "^7.15.8",
- "@babel/helpers": "^7.15.4",
- "@babel/parser": "^7.15.8",
- "@babel/template": "^7.15.4",
- "@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.6",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz",
+ "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==",
+ "requires": {
+ "@ampproject/remapping": "^2.1.0",
+ "@babel/code-frame": "^7.16.7",
+ "@babel/generator": "^7.18.2",
+ "@babel/helper-compilation-targets": "^7.18.2",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helpers": "^7.18.2",
+ "@babel/parser": "^7.18.0",
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2",
"convert-source-map": "^1.7.0",
"debug": "^4.1.0",
"gensync": "^1.0.0-beta.2",
- "json5": "^2.1.2",
- "semver": "^6.3.0",
- "source-map": "^0.5.0"
+ "json5": "^2.2.1",
+ "semver": "^6.3.0"
}
},
"@babel/eslint-parser": {
- "version": "7.16.5",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz",
+ "integrity": "sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==",
"dev": true,
"requires": {
"eslint-scope": "^5.1.1",
@@ -13950,21 +15204,39 @@
}
},
"@babel/generator": {
- "version": "7.16.8",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.2.tgz",
+ "integrity": "sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==",
"requires": {
- "@babel/types": "^7.16.8",
- "jsesc": "^2.5.1",
- "source-map": "^0.5.0"
+ "@babel/types": "^7.18.2",
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "jsesc": "^2.5.1"
+ },
+ "dependencies": {
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
+ "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==",
+ "requires": {
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
+ }
+ }
}
},
"@babel/helper-annotate-as-pure": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz",
+ "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==",
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-builder-binary-assignment-operator-visitor": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz",
+ "integrity": "sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==",
"dev": true,
"requires": {
"@babel/helper-explode-assignable-expression": "^7.16.7",
@@ -13972,37 +15244,45 @@
}
},
"@babel/helper-compilation-targets": {
- "version": "7.16.7",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz",
+ "integrity": "sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==",
"requires": {
- "@babel/compat-data": "^7.16.4",
+ "@babel/compat-data": "^7.17.10",
"@babel/helper-validator-option": "^7.16.7",
- "browserslist": "^4.17.5",
+ "browserslist": "^4.20.2",
"semver": "^6.3.0"
}
},
"@babel/helper-create-class-features-plugin": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz",
+ "integrity": "sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
"@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
- "@babel/helper-member-expression-to-functions": "^7.16.7",
+ "@babel/helper-function-name": "^7.17.9",
+ "@babel/helper-member-expression-to-functions": "^7.17.7",
"@babel/helper-optimise-call-expression": "^7.16.7",
"@babel/helper-replace-supers": "^7.16.7",
"@babel/helper-split-export-declaration": "^7.16.7"
}
},
"@babel/helper-create-regexp-features-plugin": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz",
+ "integrity": "sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "regexpu-core": "^4.7.1"
+ "regexpu-core": "^5.0.1"
}
},
"@babel/helper-define-polyfill-provider": {
- "version": "0.3.0",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz",
+ "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==",
"dev": true,
"requires": {
"@babel/helper-compilation-targets": "^7.13.0",
@@ -14016,76 +15296,86 @@
}
},
"@babel/helper-environment-visitor": {
- "version": "7.16.7",
- "requires": {
- "@babel/types": "^7.16.7"
- }
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz",
+ "integrity": "sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ=="
},
"@babel/helper-explode-assignable-expression": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz",
+ "integrity": "sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==",
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-function-name": {
- "version": "7.16.7",
+ "version": "7.17.9",
+ "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz",
+ "integrity": "sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==",
"requires": {
- "@babel/helper-get-function-arity": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/types": "^7.16.7"
- }
- },
- "@babel/helper-get-function-arity": {
- "version": "7.16.7",
- "requires": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.17.0"
}
},
"@babel/helper-hoist-variables": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz",
+ "integrity": "sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==",
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-member-expression-to-functions": {
- "version": "7.16.7",
+ "version": "7.17.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz",
+ "integrity": "sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==",
"dev": true,
"requires": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.17.0"
}
},
"@babel/helper-module-imports": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz",
+ "integrity": "sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==",
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-module-transforms": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz",
+ "integrity": "sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==",
"requires": {
"@babel/helper-environment-visitor": "^7.16.7",
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-simple-access": "^7.16.7",
+ "@babel/helper-simple-access": "^7.17.7",
"@babel/helper-split-export-declaration": "^7.16.7",
"@babel/helper-validator-identifier": "^7.16.7",
"@babel/template": "^7.16.7",
- "@babel/traverse": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/traverse": "^7.18.0",
+ "@babel/types": "^7.18.0"
}
},
"@babel/helper-optimise-call-expression": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz",
+ "integrity": "sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==",
"dev": true,
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-plugin-utils": {
- "version": "7.16.7"
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz",
+ "integrity": "sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA=="
},
"@babel/helper-remap-async-to-generator": {
"version": "7.16.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz",
+ "integrity": "sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
@@ -14094,24 +15384,30 @@
}
},
"@babel/helper-replace-supers": {
- "version": "7.16.7",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz",
+ "integrity": "sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==",
"dev": true,
"requires": {
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-member-expression-to-functions": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-member-expression-to-functions": "^7.17.7",
"@babel/helper-optimise-call-expression": "^7.16.7",
- "@babel/traverse": "^7.16.7",
- "@babel/types": "^7.16.7"
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2"
}
},
"@babel/helper-simple-access": {
- "version": "7.16.7",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz",
+ "integrity": "sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==",
"requires": {
- "@babel/types": "^7.16.7"
+ "@babel/types": "^7.18.2"
}
},
"@babel/helper-skip-transparent-expression-wrappers": {
"version": "7.16.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz",
+ "integrity": "sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==",
"dev": true,
"requires": {
"@babel/types": "^7.16.0"
@@ -14119,18 +15415,26 @@
},
"@babel/helper-split-export-declaration": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz",
+ "integrity": "sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==",
"requires": {
"@babel/types": "^7.16.7"
}
},
"@babel/helper-validator-identifier": {
- "version": "7.16.7"
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz",
+ "integrity": "sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw=="
},
"@babel/helper-validator-option": {
- "version": "7.16.7"
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz",
+ "integrity": "sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ=="
},
"@babel/helper-wrap-function": {
"version": "7.16.8",
+ "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz",
+ "integrity": "sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==",
"dev": true,
"requires": {
"@babel/helper-function-name": "^7.16.7",
@@ -14140,15 +15444,19 @@
}
},
"@babel/helpers": {
- "version": "7.15.4",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.2.tgz",
+ "integrity": "sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==",
"requires": {
- "@babel/template": "^7.15.4",
- "@babel/traverse": "^7.15.4",
- "@babel/types": "^7.15.4"
+ "@babel/template": "^7.16.7",
+ "@babel/traverse": "^7.18.2",
+ "@babel/types": "^7.18.2"
}
},
"@babel/highlight": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.17.12.tgz",
+ "integrity": "sha512-7yykMVF3hfZY2jsHZEEgLc+3x4o1O+fYyULu11GynEUQNwB6lua+IIQn1FiJxNucd5UlyJryrwsOh8PL9Sn8Qg==",
"requires": {
"@babel/helper-validator-identifier": "^7.16.7",
"chalk": "^2.0.0",
@@ -14156,52 +15464,66 @@
}
},
"@babel/parser": {
- "version": "7.16.8"
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.4.tgz",
+ "integrity": "sha512-FDge0dFazETFcxGw/EXzOkN8uJp0PC7Qbm+Pe9T+av2zlBpOgunFHkQPPn+eRuClU73JF+98D531UgayY89tow=="
},
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz",
+ "integrity": "sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz",
+ "integrity": "sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
- "@babel/plugin-proposal-optional-chaining": "^7.16.7"
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12"
}
},
"@babel/plugin-proposal-async-generator-functions": {
- "version": "7.16.8",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz",
+ "integrity": "sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-remap-async-to-generator": "^7.16.8",
"@babel/plugin-syntax-async-generators": "^7.8.4"
}
},
"@babel/plugin-proposal-class-properties": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz",
+ "integrity": "sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-proposal-class-static-block": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz",
+ "integrity": "sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-create-class-features-plugin": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-class-static-block": "^7.14.5"
}
},
"@babel/plugin-proposal-dynamic-import": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz",
+ "integrity": "sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7",
@@ -14209,39 +15531,49 @@
}
},
"@babel/plugin-proposal-export-namespace-from": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz",
+ "integrity": "sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3"
}
},
"@babel/plugin-proposal-json-strings": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz",
+ "integrity": "sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-json-strings": "^7.8.3"
}
},
"@babel/plugin-proposal-logical-assignment-operators": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz",
+ "integrity": "sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4"
}
},
"@babel/plugin-proposal-nullish-coalescing-operator": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz",
+ "integrity": "sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3"
}
},
"@babel/plugin-proposal-numeric-separator": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz",
+ "integrity": "sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7",
@@ -14249,18 +15581,22 @@
}
},
"@babel/plugin-proposal-object-rest-spread": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz",
+ "integrity": "sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.16.4",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/compat-data": "^7.17.10",
+ "@babel/helper-compilation-targets": "^7.17.10",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-object-rest-spread": "^7.8.3",
- "@babel/plugin-transform-parameters": "^7.16.7"
+ "@babel/plugin-transform-parameters": "^7.17.12"
}
},
"@babel/plugin-proposal-optional-catch-binding": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz",
+ "integrity": "sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7",
@@ -14268,42 +15604,52 @@
}
},
"@babel/plugin-proposal-optional-chaining": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz",
+ "integrity": "sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0",
"@babel/plugin-syntax-optional-chaining": "^7.8.3"
}
},
"@babel/plugin-proposal-private-methods": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz",
+ "integrity": "sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==",
"dev": true,
"requires": {
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-proposal-private-property-in-object": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz",
+ "integrity": "sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-create-class-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-create-class-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5"
}
},
"@babel/plugin-proposal-unicode-property-regex": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz",
+ "integrity": "sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-syntax-async-generators": {
"version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
@@ -14311,6 +15657,8 @@
},
"@babel/plugin-syntax-class-properties": {
"version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.12.13"
@@ -14318,6 +15666,8 @@
},
"@babel/plugin-syntax-class-static-block": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
@@ -14325,6 +15675,8 @@
},
"@babel/plugin-syntax-dynamic-import": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz",
+ "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
@@ -14332,26 +15684,43 @@
},
"@babel/plugin-syntax-export-namespace-from": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz",
+ "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.3"
}
},
+ "@babel/plugin-syntax-import-assertions": {
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz",
+ "integrity": "sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==",
+ "dev": true,
+ "requires": {
+ "@babel/helper-plugin-utils": "^7.17.12"
+ }
+ },
"@babel/plugin-syntax-json-strings": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
}
},
"@babel/plugin-syntax-jsx": {
- "version": "7.14.5",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz",
+ "integrity": "sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-syntax-logical-assignment-operators": {
"version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
@@ -14359,6 +15728,8 @@
},
"@babel/plugin-syntax-nullish-coalescing-operator": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
@@ -14366,6 +15737,8 @@
},
"@babel/plugin-syntax-numeric-separator": {
"version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
@@ -14373,6 +15746,8 @@
},
"@babel/plugin-syntax-object-rest-spread": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
@@ -14380,6 +15755,8 @@
},
"@babel/plugin-syntax-optional-catch-binding": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
@@ -14387,6 +15764,8 @@
},
"@babel/plugin-syntax-optional-chaining": {
"version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.8.0"
@@ -14394,6 +15773,8 @@
},
"@babel/plugin-syntax-private-property-in-object": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
@@ -14401,71 +15782,89 @@
},
"@babel/plugin-syntax-top-level-await": {
"version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.14.5"
}
},
"@babel/plugin-transform-arrow-functions": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz",
+ "integrity": "sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-async-to-generator": {
- "version": "7.16.8",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz",
+ "integrity": "sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-remap-async-to-generator": "^7.16.8"
}
},
"@babel/plugin-transform-block-scoped-functions": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz",
+ "integrity": "sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-block-scoping": {
- "version": "7.16.7",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.4.tgz",
+ "integrity": "sha512-+Hq10ye+jlvLEogSOtq4mKvtk7qwcUQ1f0Mrueai866C82f844Yom2cttfJdMdqRLTxWpsbfbkIkOIfovyUQXw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-classes": {
- "version": "7.16.7",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.4.tgz",
+ "integrity": "sha512-e42NSG2mlKWgxKUAD9EJJSkZxR67+wZqzNxLSpc51T8tRU5SLFHsPmgYR5yr7sdgX4u+iHA1C5VafJ6AyImV3A==",
"dev": true,
"requires": {
"@babel/helper-annotate-as-pure": "^7.16.7",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-function-name": "^7.17.9",
"@babel/helper-optimise-call-expression": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-replace-supers": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-replace-supers": "^7.18.2",
"@babel/helper-split-export-declaration": "^7.16.7",
"globals": "^11.1.0"
}
},
"@babel/plugin-transform-computed-properties": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz",
+ "integrity": "sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-destructuring": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz",
+ "integrity": "sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-dotall-regex": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz",
+ "integrity": "sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==",
"dev": true,
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.16.7",
@@ -14473,14 +15872,18 @@
}
},
"@babel/plugin-transform-duplicate-keys": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz",
+ "integrity": "sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-exponentiation-operator": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz",
+ "integrity": "sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==",
"dev": true,
"requires": {
"@babel/helper-builder-binary-assignment-operator-visitor": "^7.16.7",
@@ -14488,14 +15891,18 @@
}
},
"@babel/plugin-transform-for-of": {
- "version": "7.16.7",
+ "version": "7.18.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz",
+ "integrity": "sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-function-name": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz",
+ "integrity": "sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==",
"dev": true,
"requires": {
"@babel/helper-compilation-targets": "^7.16.7",
@@ -14504,73 +15911,92 @@
}
},
"@babel/plugin-transform-literals": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz",
+ "integrity": "sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-member-expression-literals": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz",
+ "integrity": "sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-modules-amd": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz",
+ "integrity": "sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-commonjs": {
- "version": "7.16.8",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz",
+ "integrity": "sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
- "@babel/helper-simple-access": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-simple-access": "^7.18.2",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-systemjs": {
- "version": "7.16.7",
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.4.tgz",
+ "integrity": "sha512-lH2UaQaHVOAeYrUUuZ8i38o76J/FnO8vu21OE+tD1MyP9lxdZoSfz+pDbWkq46GogUrdrMz3tiz/FYGB+bVThg==",
"dev": true,
"requires": {
"@babel/helper-hoist-variables": "^7.16.7",
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-identifier": "^7.16.7",
"babel-plugin-dynamic-import-node": "^2.3.3"
}
},
"@babel/plugin-transform-modules-umd": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz",
+ "integrity": "sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==",
"dev": true,
"requires": {
- "@babel/helper-module-transforms": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-module-transforms": "^7.18.0",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-named-capturing-groups-regex": {
- "version": "7.16.8",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz",
+ "integrity": "sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==",
"dev": true,
"requires": {
- "@babel/helper-create-regexp-features-plugin": "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin": "^7.17.12",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-new-target": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz",
+ "integrity": "sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-object-super": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz",
+ "integrity": "sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7",
@@ -14578,114 +16004,147 @@
}
},
"@babel/plugin-transform-parameters": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz",
+ "integrity": "sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-property-literals": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz",
+ "integrity": "sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-react-display-name": {
- "version": "7.15.1",
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz",
+ "integrity": "sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==",
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-react-jsx": {
- "version": "7.14.9",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz",
+ "integrity": "sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-module-imports": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/plugin-syntax-jsx": "^7.14.5",
- "@babel/types": "^7.14.9"
+ "@babel/helper-annotate-as-pure": "^7.16.7",
+ "@babel/helper-module-imports": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/plugin-syntax-jsx": "^7.17.12",
+ "@babel/types": "^7.17.12"
}
},
"@babel/plugin-transform-react-jsx-development": {
- "version": "7.14.5",
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz",
+ "integrity": "sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==",
"requires": {
- "@babel/plugin-transform-react-jsx": "^7.14.5"
+ "@babel/plugin-transform-react-jsx": "^7.16.7"
}
},
"@babel/plugin-transform-react-jsx-self": {
- "version": "7.14.9",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.17.12.tgz",
+ "integrity": "sha512-7S9G2B44EnYOx74mue02t1uD8ckWZ/ee6Uz/qfdzc35uWHX5NgRy9i+iJSb2LFRgMd+QV9zNcStQaazzzZ3n3Q==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-react-jsx-source": {
- "version": "7.14.5",
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.16.7.tgz",
+ "integrity": "sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-react-pure-annotations": {
- "version": "7.14.5",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.0.tgz",
+ "integrity": "sha512-6+0IK6ouvqDn9bmEG7mEyF/pwlJXVj5lwydybpyyH3D0A7Hftk+NCTdYjnLNZksn261xaOV5ksmp20pQEmc2RQ==",
"requires": {
- "@babel/helper-annotate-as-pure": "^7.14.5",
- "@babel/helper-plugin-utils": "^7.14.5"
+ "@babel/helper-annotate-as-pure": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-regenerator": {
- "version": "7.16.7",
+ "version": "7.18.0",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz",
+ "integrity": "sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==",
"dev": true,
"requires": {
- "regenerator-transform": "^0.14.2"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "regenerator-transform": "^0.15.0"
}
},
"@babel/plugin-transform-reserved-words": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz",
+ "integrity": "sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-shorthand-properties": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz",
+ "integrity": "sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-spread": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz",
+ "integrity": "sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-skip-transparent-expression-wrappers": "^7.16.0"
}
},
"@babel/plugin-transform-sticky-regex": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz",
+ "integrity": "sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
}
},
"@babel/plugin-transform-template-literals": {
- "version": "7.16.7",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz",
+ "integrity": "sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-typeof-symbol": {
- "version": "7.16.7",
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz",
+ "integrity": "sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==",
"dev": true,
"requires": {
- "@babel/helper-plugin-utils": "^7.16.7"
+ "@babel/helper-plugin-utils": "^7.17.12"
}
},
"@babel/plugin-transform-unicode-escapes": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz",
+ "integrity": "sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==",
"dev": true,
"requires": {
"@babel/helper-plugin-utils": "^7.16.7"
@@ -14693,6 +16152,8 @@
},
"@babel/plugin-transform-unicode-regex": {
"version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz",
+ "integrity": "sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==",
"dev": true,
"requires": {
"@babel/helper-create-regexp-features-plugin": "^7.16.7",
@@ -14700,35 +16161,38 @@
}
},
"@babel/preset-env": {
- "version": "7.16.8",
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.18.2.tgz",
+ "integrity": "sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==",
"dev": true,
"requires": {
- "@babel/compat-data": "^7.16.8",
- "@babel/helper-compilation-targets": "^7.16.7",
- "@babel/helper-plugin-utils": "^7.16.7",
+ "@babel/compat-data": "^7.17.10",
+ "@babel/helper-compilation-targets": "^7.18.2",
+ "@babel/helper-plugin-utils": "^7.17.12",
"@babel/helper-validator-option": "^7.16.7",
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7",
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7",
- "@babel/plugin-proposal-async-generator-functions": "^7.16.8",
- "@babel/plugin-proposal-class-properties": "^7.16.7",
- "@babel/plugin-proposal-class-static-block": "^7.16.7",
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.17.12",
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.17.12",
+ "@babel/plugin-proposal-async-generator-functions": "^7.17.12",
+ "@babel/plugin-proposal-class-properties": "^7.17.12",
+ "@babel/plugin-proposal-class-static-block": "^7.18.0",
"@babel/plugin-proposal-dynamic-import": "^7.16.7",
- "@babel/plugin-proposal-export-namespace-from": "^7.16.7",
- "@babel/plugin-proposal-json-strings": "^7.16.7",
- "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7",
- "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7",
+ "@babel/plugin-proposal-export-namespace-from": "^7.17.12",
+ "@babel/plugin-proposal-json-strings": "^7.17.12",
+ "@babel/plugin-proposal-logical-assignment-operators": "^7.17.12",
+ "@babel/plugin-proposal-nullish-coalescing-operator": "^7.17.12",
"@babel/plugin-proposal-numeric-separator": "^7.16.7",
- "@babel/plugin-proposal-object-rest-spread": "^7.16.7",
+ "@babel/plugin-proposal-object-rest-spread": "^7.18.0",
"@babel/plugin-proposal-optional-catch-binding": "^7.16.7",
- "@babel/plugin-proposal-optional-chaining": "^7.16.7",
- "@babel/plugin-proposal-private-methods": "^7.16.7",
- "@babel/plugin-proposal-private-property-in-object": "^7.16.7",
- "@babel/plugin-proposal-unicode-property-regex": "^7.16.7",
+ "@babel/plugin-proposal-optional-chaining": "^7.17.12",
+ "@babel/plugin-proposal-private-methods": "^7.17.12",
+ "@babel/plugin-proposal-private-property-in-object": "^7.17.12",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.17.12",
"@babel/plugin-syntax-async-generators": "^7.8.4",
"@babel/plugin-syntax-class-properties": "^7.12.13",
"@babel/plugin-syntax-class-static-block": "^7.14.5",
"@babel/plugin-syntax-dynamic-import": "^7.8.3",
"@babel/plugin-syntax-export-namespace-from": "^7.8.3",
+ "@babel/plugin-syntax-import-assertions": "^7.17.12",
"@babel/plugin-syntax-json-strings": "^7.8.3",
"@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
"@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
@@ -14738,255 +16202,136 @@
"@babel/plugin-syntax-optional-chaining": "^7.8.3",
"@babel/plugin-syntax-private-property-in-object": "^7.14.5",
"@babel/plugin-syntax-top-level-await": "^7.14.5",
- "@babel/plugin-transform-arrow-functions": "^7.16.7",
- "@babel/plugin-transform-async-to-generator": "^7.16.8",
+ "@babel/plugin-transform-arrow-functions": "^7.17.12",
+ "@babel/plugin-transform-async-to-generator": "^7.17.12",
"@babel/plugin-transform-block-scoped-functions": "^7.16.7",
- "@babel/plugin-transform-block-scoping": "^7.16.7",
- "@babel/plugin-transform-classes": "^7.16.7",
- "@babel/plugin-transform-computed-properties": "^7.16.7",
- "@babel/plugin-transform-destructuring": "^7.16.7",
+ "@babel/plugin-transform-block-scoping": "^7.17.12",
+ "@babel/plugin-transform-classes": "^7.17.12",
+ "@babel/plugin-transform-computed-properties": "^7.17.12",
+ "@babel/plugin-transform-destructuring": "^7.18.0",
"@babel/plugin-transform-dotall-regex": "^7.16.7",
- "@babel/plugin-transform-duplicate-keys": "^7.16.7",
+ "@babel/plugin-transform-duplicate-keys": "^7.17.12",
"@babel/plugin-transform-exponentiation-operator": "^7.16.7",
- "@babel/plugin-transform-for-of": "^7.16.7",
+ "@babel/plugin-transform-for-of": "^7.18.1",
"@babel/plugin-transform-function-name": "^7.16.7",
- "@babel/plugin-transform-literals": "^7.16.7",
+ "@babel/plugin-transform-literals": "^7.17.12",
"@babel/plugin-transform-member-expression-literals": "^7.16.7",
- "@babel/plugin-transform-modules-amd": "^7.16.7",
- "@babel/plugin-transform-modules-commonjs": "^7.16.8",
- "@babel/plugin-transform-modules-systemjs": "^7.16.7",
- "@babel/plugin-transform-modules-umd": "^7.16.7",
- "@babel/plugin-transform-named-capturing-groups-regex": "^7.16.8",
- "@babel/plugin-transform-new-target": "^7.16.7",
+ "@babel/plugin-transform-modules-amd": "^7.18.0",
+ "@babel/plugin-transform-modules-commonjs": "^7.18.2",
+ "@babel/plugin-transform-modules-systemjs": "^7.18.0",
+ "@babel/plugin-transform-modules-umd": "^7.18.0",
+ "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.12",
+ "@babel/plugin-transform-new-target": "^7.17.12",
"@babel/plugin-transform-object-super": "^7.16.7",
- "@babel/plugin-transform-parameters": "^7.16.7",
+ "@babel/plugin-transform-parameters": "^7.17.12",
"@babel/plugin-transform-property-literals": "^7.16.7",
- "@babel/plugin-transform-regenerator": "^7.16.7",
- "@babel/plugin-transform-reserved-words": "^7.16.7",
+ "@babel/plugin-transform-regenerator": "^7.18.0",
+ "@babel/plugin-transform-reserved-words": "^7.17.12",
"@babel/plugin-transform-shorthand-properties": "^7.16.7",
- "@babel/plugin-transform-spread": "^7.16.7",
+ "@babel/plugin-transform-spread": "^7.17.12",
"@babel/plugin-transform-sticky-regex": "^7.16.7",
- "@babel/plugin-transform-template-literals": "^7.16.7",
- "@babel/plugin-transform-typeof-symbol": "^7.16.7",
+ "@babel/plugin-transform-template-literals": "^7.18.2",
+ "@babel/plugin-transform-typeof-symbol": "^7.17.12",
"@babel/plugin-transform-unicode-escapes": "^7.16.7",
"@babel/plugin-transform-unicode-regex": "^7.16.7",
"@babel/preset-modules": "^0.1.5",
- "@babel/types": "^7.16.8",
+ "@babel/types": "^7.18.2",
"babel-plugin-polyfill-corejs2": "^0.3.0",
"babel-plugin-polyfill-corejs3": "^0.5.0",
"babel-plugin-polyfill-regenerator": "^0.3.0",
- "core-js-compat": "^3.20.2",
+ "core-js-compat": "^3.22.1",
"semver": "^6.3.0"
}
},
- "@babel/preset-modules": {
- "version": "0.1.5",
- "dev": true,
- "requires": {
- "@babel/helper-plugin-utils": "^7.0.0",
- "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
- "@babel/plugin-transform-dotall-regex": "^7.4.4",
- "@babel/types": "^7.4.4",
- "esutils": "^2.0.2"
- }
- },
- "@babel/preset-react": {
- "version": "7.14.5",
- "requires": {
- "@babel/helper-plugin-utils": "^7.14.5",
- "@babel/helper-validator-option": "^7.14.5",
- "@babel/plugin-transform-react-display-name": "^7.14.5",
- "@babel/plugin-transform-react-jsx": "^7.14.5",
- "@babel/plugin-transform-react-jsx-development": "^7.14.5",
- "@babel/plugin-transform-react-pure-annotations": "^7.14.5"
- }
- },
- "@babel/runtime": {
- "version": "7.15.4",
- "requires": {
- "regenerator-runtime": "^0.13.4"
- }
- },
- "@babel/template": {
- "version": "7.16.7",
- "requires": {
- "@babel/code-frame": "^7.16.7",
- "@babel/parser": "^7.16.7",
- "@babel/types": "^7.16.7"
- }
- },
- "@babel/traverse": {
- "version": "7.16.8",
- "requires": {
- "@babel/code-frame": "^7.16.7",
- "@babel/generator": "^7.16.8",
- "@babel/helper-environment-visitor": "^7.16.7",
- "@babel/helper-function-name": "^7.16.7",
- "@babel/helper-hoist-variables": "^7.16.7",
- "@babel/helper-split-export-declaration": "^7.16.7",
- "@babel/parser": "^7.16.8",
- "@babel/types": "^7.16.8",
- "debug": "^4.1.0",
- "globals": "^11.1.0"
- }
- },
- "@babel/types": {
- "version": "7.16.8",
- "requires": {
- "@babel/helper-validator-identifier": "^7.16.7",
- "to-fast-properties": "^2.0.0"
- }
- },
- "@ceramicnetwork/3id-did-resolver": {
- "version": "1.4.4",
- "requires": {
- "@ceramicnetwork/common": "^1.6.0",
- "@ceramicnetwork/stream-tile": "^1.3.2",
- "@ceramicnetwork/streamid": "^1.3.0",
- "cids": "~1.1.6",
- "cross-fetch": "^3.1.4",
- "lru_map": "^0.4.1",
- "uint8arrays": "^2.0.5"
- }
- },
- "@ceramicnetwork/blockchain-utils-linking": {
- "version": "1.2.1",
- "requires": {
- "@stablelib/sha256": "^1.0.0",
- "caip": "~0.9.2",
- "uint8arrays": "^2.0.5"
- }
- },
- "@ceramicnetwork/common": {
- "version": "1.6.0",
- "requires": {
- "@ceramicnetwork/streamid": "^1.3.0",
- "@overnightjs/logger": "^1.2.0",
- "cids": "~1.1.6",
- "cross-fetch": "^3.1.4",
- "flat": "^5.0.2",
- "lodash.clonedeep": "^4.5.0",
- "logfmt": "^1.3.2",
- "rxjs": "^7.0.0",
- "uint8arrays": "^2.0.5"
- },
- "dependencies": {
- "rxjs": {
- "version": "7.4.0",
- "requires": {
- "tslib": "~2.1.0"
- }
- },
- "tslib": {
- "version": "2.1.0"
- }
- }
- },
- "@ceramicnetwork/http-client": {
- "version": "1.4.0",
- "requires": {
- "@ceramicnetwork/common": "^1.6.0",
- "@ceramicnetwork/stream-caip10-link": "^1.1.6",
- "@ceramicnetwork/stream-tile": "^1.3.2",
- "@ceramicnetwork/streamid": "^1.3.0",
- "query-string": "7.0.1",
- "rxjs": "^7.0.0"
- },
- "dependencies": {
- "rxjs": {
- "version": "7.4.0",
- "requires": {
- "tslib": "~2.1.0"
- }
- },
- "tslib": {
- "version": "2.1.0"
- }
- }
- },
- "@ceramicnetwork/rpc-postmessage": {
- "version": "0.4.1",
- "requires": {
- "@ceramicnetwork/rpc-transport": "^0.3.0",
- "@ceramicnetwork/transport-postmessage": "^0.3.0",
- "@ceramicnetwork/transport-subject": "^0.3.0",
- "rpc-utils": "^0.4.0",
- "rxjs": "^6.6.6"
- }
- },
- "@ceramicnetwork/rpc-transport": {
- "version": "0.3.1",
+ "@babel/preset-modules": {
+ "version": "0.1.5",
+ "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz",
+ "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==",
+ "dev": true,
"requires": {
- "@ceramicnetwork/transport-subject": "^0.3.0",
- "rpc-utils": "^0.4.0",
- "rxjs": "^6.6.6"
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@babel/plugin-proposal-unicode-property-regex": "^7.4.4",
+ "@babel/plugin-transform-dotall-regex": "^7.4.4",
+ "@babel/types": "^7.4.4",
+ "esutils": "^2.0.2"
}
},
- "@ceramicnetwork/rpc-window": {
- "version": "0.1.1",
+ "@babel/preset-react": {
+ "version": "7.17.12",
+ "resolved": "https://registry.npmjs.org/@babel/preset-react/-/preset-react-7.17.12.tgz",
+ "integrity": "sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==",
"requires": {
- "@ceramicnetwork/rpc-postmessage": "^0.4.0",
- "@ceramicnetwork/transport-postmessage": "^0.3.0",
- "rpc-utils": "^0.4.0"
+ "@babel/helper-plugin-utils": "^7.17.12",
+ "@babel/helper-validator-option": "^7.16.7",
+ "@babel/plugin-transform-react-display-name": "^7.16.7",
+ "@babel/plugin-transform-react-jsx": "^7.17.12",
+ "@babel/plugin-transform-react-jsx-development": "^7.16.7",
+ "@babel/plugin-transform-react-pure-annotations": "^7.16.7"
}
},
- "@ceramicnetwork/stream-caip10-link": {
- "version": "1.1.6",
+ "@babel/runtime": {
+ "version": "7.18.3",
+ "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.18.3.tgz",
+ "integrity": "sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==",
"requires": {
- "@ceramicnetwork/common": "^1.6.0",
- "@ceramicnetwork/streamid": "^1.3.0",
- "caip": "~0.9.2"
+ "regenerator-runtime": "^0.13.4"
}
},
- "@ceramicnetwork/stream-tile": {
- "version": "1.3.2",
+ "@babel/template": {
+ "version": "7.16.7",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz",
+ "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==",
"requires": {
- "@ceramicnetwork/common": "^1.6.0",
- "@ceramicnetwork/streamid": "^1.3.0",
- "@stablelib/random": "^1.0.0",
- "fast-json-patch": "^2.2.1",
- "uint8arrays": "^2.0.5"
+ "@babel/code-frame": "^7.16.7",
+ "@babel/parser": "^7.16.7",
+ "@babel/types": "^7.16.7"
}
},
- "@ceramicnetwork/streamid": {
- "version": "1.3.0",
+ "@babel/traverse": {
+ "version": "7.18.2",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.2.tgz",
+ "integrity": "sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==",
"requires": {
- "cids": "~1.1.6",
- "ipld-dag-cbor": "^0.17.0",
- "multibase": "~4.0.2",
- "typescript-memoize": "^1.0.0-alpha.4",
- "uint8arrays": "^2.0.5",
- "varint": "^6.0.0"
+ "@babel/code-frame": "^7.16.7",
+ "@babel/generator": "^7.18.2",
+ "@babel/helper-environment-visitor": "^7.18.2",
+ "@babel/helper-function-name": "^7.17.9",
+ "@babel/helper-hoist-variables": "^7.16.7",
+ "@babel/helper-split-export-declaration": "^7.16.7",
+ "@babel/parser": "^7.18.0",
+ "@babel/types": "^7.18.2",
+ "debug": "^4.1.0",
+ "globals": "^11.1.0"
}
},
- "@ceramicnetwork/transport-postmessage": {
- "version": "0.3.0",
+ "@babel/types": {
+ "version": "7.18.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.4.tgz",
+ "integrity": "sha512-ThN1mBcMq5pG/Vm2IcBmPPfyPXbd8S02rS+OBIDENdufvqC7Z/jHPCv9IcP01277aKtDI8g/2XysBN4hA8niiw==",
"requires": {
- "@ceramicnetwork/transport-subject": "^0.3.0",
- "rxjs": "^6.6.6"
+ "@babel/helper-validator-identifier": "^7.16.7",
+ "to-fast-properties": "^2.0.0"
}
},
- "@ceramicnetwork/transport-subject": {
- "version": "0.3.0",
- "requires": {
- "rxjs": "^6.6.6"
- }
+ "@colors/colors": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz",
+ "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ=="
},
- "@ceramicstudio/idx": {
- "version": "0.12.2",
+ "@dabh/diagnostics": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz",
+ "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==",
"requires": {
- "@ceramicnetwork/stream-caip10-link": "^1.0.0",
- "@ceramicnetwork/stream-tile": "^1.0.0",
- "@ceramicstudio/idx-constants": "^1.0.0",
- "caip": "^0.9.2",
- "cross-fetch": "^3.1.4"
+ "colorspace": "1.1.x",
+ "enabled": "2.0.x",
+ "kuler": "^2.0.0"
}
},
- "@ceramicstudio/idx-constants": {
- "version": "1.0.0"
- },
"@eslint/eslintrc": {
"version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-0.4.3.tgz",
+ "integrity": "sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw==",
"dev": true,
"requires": {
"ajv": "^6.12.4",
@@ -15002,6 +16347,8 @@
"dependencies": {
"ajv": {
"version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -15011,7 +16358,9 @@
}
},
"globals": {
- "version": "13.11.0",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -15019,89 +16368,91 @@
},
"json-schema-traverse": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
}
}
},
"@ethersproject/abi": {
- "version": "5.6.1",
- "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.1.tgz",
- "integrity": "sha512-0cqssYh6FXjlwKWBmLm3+zH2BNARoS5u/hxbz+LpQmcDB3w0W553h2btWui1/uZp2GBM/SI3KniTuMcYyHpA5w==",
- "requires": {
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
- "@ethersproject/hash": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.6.3.tgz",
+ "integrity": "sha512-CxKTdoZY4zDJLWXG6HzNH6znWK0M79WzzxHegDoecE3+K32pzfHOzuXg2/oGSTecZynFgpkjYXNPOqXVJlqClw==",
+ "requires": {
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/abstract-provider": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.0.tgz",
- "integrity": "sha512-oPMFlKLN+g+y7a79cLK3WiLcjWFnZQtXWgnLAbHZcN3s7L4v90UHpTOrLk+m3yr0gt+/h9STTM6zrr7PM8uoRw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.6.1.tgz",
+ "integrity": "sha512-BxlIgogYJtp1FS8Muvj8YfdClk3unZH0vRMVX791Z9INBNT/kuACZ9GzaY1Y4yFq+YSy6/w4gzj3HCRKrK9hsQ==",
"requires": {
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/networks": "^5.6.0",
+ "@ethersproject/networks": "^5.6.3",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
- "@ethersproject/web": "^5.6.0"
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/web": "^5.6.1"
}
},
"@ethersproject/abstract-signer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.0.tgz",
- "integrity": "sha512-WOqnG0NJKtI8n0wWZPReHtaLkDByPL67tn4nBaDAhmVq8sjHTPbCdz4DRhVu/cfTOvfy9w3iq5QZ7BX7zw56BQ==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.6.2.tgz",
+ "integrity": "sha512-n1r6lttFBG0t2vNiI3HoWaS/KdOt8xyDjzlP2cuevlWLG6EX0OwcKLyG/Kp/cuwNxdy/ous+R/DEMdTUwWQIjQ==",
"requires": {
- "@ethersproject/abstract-provider": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0"
}
},
"@ethersproject/address": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.0.tgz",
- "integrity": "sha512-6nvhYXjbXsHPS+30sHZ+U4VMagFC/9zAk6Gd/h3S21YW4+yfb0WfRtaAIZ4kfM4rrVwqiy284LP0GtL5HXGLxQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.6.1.tgz",
+ "integrity": "sha512-uOgF0kS5MJv9ZvCz7x6T2EXJSzotiybApn4XlOgoTX0xdtyVIJ7pF+6cGPxiEq/dpBiTfMiw7Yc81JcwhSYA0Q==",
"requires": {
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/rlp": "^5.6.0"
+ "@ethersproject/rlp": "^5.6.1"
}
},
"@ethersproject/base64": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.0.tgz",
- "integrity": "sha512-2Neq8wxJ9xHxCF9TUgmKeSh9BXJ6OAxWfeGWvbauPh8FuHEjamgHilllx8KkSd5ErxyHIX7Xv3Fkcud2kY9ezw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.6.1.tgz",
+ "integrity": "sha512-qB76rjop6a0RIYYMiB4Eh/8n+Hxu2NIZm8S/Q7kNo5pmZfXhHGHmS4MinUainiBC54SCyRnwzL+KZjj8zbsSsw==",
"requires": {
- "@ethersproject/bytes": "^5.6.0"
+ "@ethersproject/bytes": "^5.6.1"
}
},
"@ethersproject/basex": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.0.tgz",
- "integrity": "sha512-qN4T+hQd/Md32MoJpc69rOwLYRUXwjTlhHDIeUkUmiN/JyWkkLLMoG0TqvSQKNqZOMgN5stbUYN6ILC+eD7MEQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.6.1.tgz",
+ "integrity": "sha512-a52MkVz4vuBXR06nvflPMotld1FJWSj2QT0985v7P/emPZO00PucFAkbcmq2vpVU7Ts7umKiSI6SppiLykVWsA==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/properties": "^5.6.0"
}
},
"@ethersproject/bignumber": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.0.tgz",
- "integrity": "sha512-VziMaXIUHQlHJmkv1dlcd6GY2PmT0khtAqaMctCIDogxkrarMzA9L94KN1NeXqqOfFD6r0sJT3vCTOFSmZ07DA==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.6.2.tgz",
+ "integrity": "sha512-v7+EEUbhGqT3XJ9LMPsKvXYHFc8eHxTowFCG/HgJErmq4XHJ2WR7aeyICg3uTOAQ7Icn0GFHAohXEhxQHq4Ubw==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "bn.js": "^4.11.9"
+ "bn.js": "^5.2.1"
}
},
"@ethersproject/bytes": {
@@ -15113,90 +16464,90 @@
}
},
"@ethersproject/constants": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.0.tgz",
- "integrity": "sha512-SrdaJx2bK0WQl23nSpV/b1aq293Lh0sUaZT/yYKPDKn4tlAbkH96SPJwIhwSwTsoQQZxuh1jnqsKwyymoiBdWA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.6.1.tgz",
+ "integrity": "sha512-QSq9WVnZbxXYFftrjSjZDUshp6/eKp6qrtdBtUCm0QxCV5z1fG/w3kdlcsjMCQuQHUnAclKoK7XpXMezhRDOLg==",
"requires": {
- "@ethersproject/bignumber": "^5.6.0"
+ "@ethersproject/bignumber": "^5.6.2"
}
},
"@ethersproject/contracts": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.0.tgz",
- "integrity": "sha512-74Ge7iqTDom0NX+mux8KbRUeJgu1eHZ3iv6utv++sLJG80FVuU9HnHeKVPfjd9s3woFhaFoQGf3B3iH/FrQmgw==",
- "requires": {
- "@ethersproject/abi": "^5.6.0",
- "@ethersproject/abstract-provider": "^5.6.0",
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.6.2.tgz",
+ "integrity": "sha512-hguUA57BIKi6WY0kHvZp6PwPlWF87MCeB4B7Z7AbUpTxfFXFdn/3b0GmjZPagIHS+3yhcBJDnuEfU4Xz+Ks/8g==",
+ "requires": {
+ "@ethersproject/abi": "^5.6.3",
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0"
+ "@ethersproject/transactions": "^5.6.2"
}
},
"@ethersproject/hash": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.0.tgz",
- "integrity": "sha512-fFd+k9gtczqlr0/BruWLAu7UAOas1uRRJvOR84uDf4lNZ+bTkGl366qvniUZHKtlqxBRU65MkOobkmvmpHU+jA==",
- "requires": {
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.6.1.tgz",
+ "integrity": "sha512-L1xAHurbaxG8VVul4ankNX5HgQ8PNCTrnVXEiFnE9xoRnaUcgfD12tZINtDinSllxPLCtGwguQxJ5E6keE84pA==",
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/hdnode": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.0.tgz",
- "integrity": "sha512-61g3Jp3nwDqJcL/p4nugSyLrpl/+ChXIOtCEM8UDmWeB3JCAt5FoLdOMXQc3WWkc0oM2C0aAn6GFqqMcS/mHTw==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.6.2.tgz",
+ "integrity": "sha512-tERxW8Ccf9CxW2db3WsN01Qao3wFeRsfYY9TCuhmG0xNpl2IO8wgXU3HtWIZ49gUWPggRy4Yg5axU0ACaEKf1Q==",
"requires": {
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/basex": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/basex": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/pbkdf2": "^5.6.0",
+ "@ethersproject/pbkdf2": "^5.6.1",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/sha2": "^5.6.0",
- "@ethersproject/signing-key": "^5.6.0",
- "@ethersproject/strings": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
- "@ethersproject/wordlists": "^5.6.0"
+ "@ethersproject/sha2": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/wordlists": "^5.6.1"
}
},
"@ethersproject/json-wallets": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.0.tgz",
- "integrity": "sha512-fmh86jViB9r0ibWXTQipxpAGMiuxoqUf78oqJDlCAJXgnJF024hOOX7qVgqsjtbeoxmcLwpPsXNU0WEe/16qPQ==",
- "requires": {
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/hdnode": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.6.1.tgz",
+ "integrity": "sha512-KfyJ6Zwz3kGeX25nLihPwZYlDqamO6pfGKNnVMWWfEVVp42lTfCZVXXy5Ie8IZTN0HKwAngpIPi7gk4IJzgmqQ==",
+ "requires": {
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hdnode": "^5.6.2",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/pbkdf2": "^5.6.0",
+ "@ethersproject/pbkdf2": "^5.6.1",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/random": "^5.6.0",
- "@ethersproject/strings": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
"aes-js": "3.0.0",
"scrypt-js": "3.0.1"
}
},
"@ethersproject/keccak256": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.0.tgz",
- "integrity": "sha512-tk56BJ96mdj/ksi7HWZVWGjCq0WVl/QvfhFQNeL8fxhBlGoP+L80uDCiQcpJPd+2XxkivS3lwRm3E0CXTfol0w==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.6.1.tgz",
+ "integrity": "sha512-bB7DQHCTRDooZZdL3lk9wpL0+XuG3XLGHLh3cePnybsO3V0rdCAOQGpn/0R3aODmnTOOkCATJiD2hnL+5bwthA==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"js-sha3": "0.8.0"
}
},
@@ -15206,20 +16557,20 @@
"integrity": "sha512-BiBWllUROH9w+P21RzoxJKzqoqpkyM1pRnEKG69bulE9TSQD8SAIvTQqIMZmmCO8pUNkgLP1wndX1gKghSpBmg=="
},
"@ethersproject/networks": {
- "version": "5.6.2",
- "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.2.tgz",
- "integrity": "sha512-9uEzaJY7j5wpYGTojGp8U89mSsgQLc40PCMJLMCnFXTs7nhBveZ0t7dbqWUNrepWTszDbFkYD6WlL8DKx5huHA==",
+ "version": "5.6.3",
+ "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.6.3.tgz",
+ "integrity": "sha512-QZxRH7cA5Ut9TbXwZFiCyuPchdWi87ZtVNHWZd0R6YFgYtes2jQ3+bsslJ0WdyDe0i6QumqtoYqvY3rrQFRZOQ==",
"requires": {
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/pbkdf2": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.0.tgz",
- "integrity": "sha512-Wu1AxTgJo3T3H6MIu/eejLFok9TYoSdgwRr5oGY1LTLfmGesDoSx05pemsbrPT2gG4cQME+baTSCp5sEo2erZQ==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.6.1.tgz",
+ "integrity": "sha512-k4gRQ+D93zDRPNUfmduNKq065uadC2YjMP/CqwwX5qG6R05f47boq6pLZtV/RnC4NZAYOPH1Cyo54q0c9sshRQ==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/sha2": "^5.6.0"
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/sha2": "^5.6.1"
}
},
"@ethersproject/properties": {
@@ -15231,224 +16582,251 @@
}
},
"@ethersproject/providers": {
- "version": "5.6.4",
- "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.4.tgz",
- "integrity": "sha512-WAdknnaZ52hpHV3qPiJmKx401BLpup47h36Axxgre9zT+doa/4GC/Ne48ICPxTm0BqndpToHjpLP1ZnaxyE+vw==",
- "requires": {
- "@ethersproject/abstract-provider": "^5.6.0",
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/basex": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
- "@ethersproject/hash": "^5.6.0",
+ "version": "5.6.8",
+ "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.6.8.tgz",
+ "integrity": "sha512-Wf+CseT/iOJjrGtAOf3ck9zS7AgPmr2fZ3N97r4+YXN3mBePTG2/bJ8DApl9mVwYL+RpYbNxMEkEp4mPGdwG/w==",
+ "requires": {
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/base64": "^5.6.1",
+ "@ethersproject/basex": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/networks": "^5.6.0",
+ "@ethersproject/networks": "^5.6.3",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/random": "^5.6.0",
- "@ethersproject/rlp": "^5.6.0",
- "@ethersproject/sha2": "^5.6.0",
- "@ethersproject/strings": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
- "@ethersproject/web": "^5.6.0",
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/rlp": "^5.6.1",
+ "@ethersproject/sha2": "^5.6.1",
+ "@ethersproject/strings": "^5.6.1",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/web": "^5.6.1",
"bech32": "1.1.4",
"ws": "7.4.6"
- },
- "dependencies": {
- "ws": {
- "version": "7.4.6",
- "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
- "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
- "requires": {}
- }
}
},
"@ethersproject/random": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.0.tgz",
- "integrity": "sha512-si0PLcLjq+NG/XHSZz90asNf+YfKEqJGVdxoEkSukzbnBgC8rydbgbUgBbBGLeHN4kAJwUFEKsu3sCXT93YMsw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.6.1.tgz",
+ "integrity": "sha512-/wtPNHwbmng+5yi3fkipA8YBT59DdkGRoC2vWk09Dci/q5DlgnMkhIycjHlavrvrjJBkFjO/ueLyT+aUDfc4lA==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/rlp": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.0.tgz",
- "integrity": "sha512-dz9WR1xpcTL+9DtOT/aDO+YyxSSdO8YIS0jyZwHHSlAmnxA6cKU3TrTd4Xc/bHayctxTgGLYNuVVoiXE4tTq1g==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.6.1.tgz",
+ "integrity": "sha512-uYjmcZx+DKlFUk7a5/W9aQVaoEC7+1MOBgNtvNg13+RnuUwT4F0zTovC0tmay5SmRslb29V1B7Y5KCri46WhuQ==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/sha2": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.0.tgz",
- "integrity": "sha512-1tNWCPFLu1n3JM9t4/kytz35DkuF9MxqkGGEHNauEbaARdm2fafnOyw1s0tIQDPKF/7bkP1u3dbrmjpn5CelyA==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.6.1.tgz",
+ "integrity": "sha512-5K2GyqcW7G4Yo3uenHegbXRPDgARpWUiXc6RiF7b6i/HXUoWlb7uCARh7BAHg7/qT/Q5ydofNwiZcim9qpjB6g==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"hash.js": "1.1.7"
}
},
"@ethersproject/signing-key": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.0.tgz",
- "integrity": "sha512-S+njkhowmLeUu/r7ir8n78OUKx63kBdMCPssePS89So1TH4hZqnWFsThEd/GiXYp9qMxVrydf7KdM9MTGPFukA==",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.6.2.tgz",
+ "integrity": "sha512-jVbu0RuP7EFpw82vHcL+GP35+KaNruVAZM90GxgQnGqB6crhBqW/ozBfFvdeImtmb4qPko0uxXjn8l9jpn0cwQ==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "bn.js": "^4.11.9",
+ "bn.js": "^5.2.1",
"elliptic": "6.5.4",
"hash.js": "1.1.7"
}
},
"@ethersproject/solidity": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.0.tgz",
- "integrity": "sha512-YwF52vTNd50kjDzqKaoNNbC/r9kMDPq3YzDWmsjFTRBcIF1y4JCQJ8gB30wsTfHbaxgxelI5BfxQSxD/PbJOww==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.6.1.tgz",
+ "integrity": "sha512-KWqVLkUUoLBfL1iwdzUVlkNqAUIFMpbbeH0rgCfKmJp0vFtY4AsaN91gHKo9ZZLkC4UOm3cI3BmMV4N53BOq4g==",
"requires": {
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
- "@ethersproject/sha2": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/sha2": "^5.6.1",
+ "@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/strings": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.0.tgz",
- "integrity": "sha512-uv10vTtLTZqrJuqBZR862ZQjTIa724wGPWQqZrofaPI/kUsf53TBG0I0D+hQ1qyNtllbNzaW+PDPHHUI6/65Mg==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.6.1.tgz",
+ "integrity": "sha512-2X1Lgk6Jyfg26MUnsHiT456U9ijxKUybz8IM1Vih+NJxYtXhmvKBcHOmvGqpFSVJ0nQ4ZCoIViR8XlRw1v/+Cw==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/transactions": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.0.tgz",
- "integrity": "sha512-4HX+VOhNjXHZyGzER6E/LVI2i6lf9ejYeWD6l4g50AdmimyuStKc39kvKf1bXWQMg7QNVh+uC7dYwtaZ02IXeg==",
- "requires": {
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.6.2.tgz",
+ "integrity": "sha512-BuV63IRPHmJvthNkkt9G70Ullx6AcM+SDc+a8Aw/8Yew6YwT51TcBKEp1P4oOQ/bP25I18JJr7rcFRgFtU9B2Q==",
+ "requires": {
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/constants": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/rlp": "^5.6.0",
- "@ethersproject/signing-key": "^5.6.0"
+ "@ethersproject/rlp": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2"
}
},
"@ethersproject/units": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.0.tgz",
- "integrity": "sha512-tig9x0Qmh8qbo1w8/6tmtyrm/QQRviBh389EQ+d8fP4wDsBrJBf08oZfoiz1/uenKK9M78yAP4PoR7SsVoTjsw==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.6.1.tgz",
+ "integrity": "sha512-rEfSEvMQ7obcx3KWD5EWWx77gqv54K6BKiZzKxkQJqtpriVsICrktIQmKl8ReNToPeIYPnFHpXvKpi068YFZXw==",
"requires": {
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/constants": "^5.6.0",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/constants": "^5.6.1",
"@ethersproject/logger": "^5.6.0"
}
},
"@ethersproject/wallet": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.0.tgz",
- "integrity": "sha512-qMlSdOSTyp0MBeE+r7SUhr1jjDlC1zAXB8VD84hCnpijPQiSNbxr6GdiLXxpUs8UKzkDiNYYC5DRI3MZr+n+tg==",
- "requires": {
- "@ethersproject/abstract-provider": "^5.6.0",
- "@ethersproject/abstract-signer": "^5.6.0",
- "@ethersproject/address": "^5.6.0",
- "@ethersproject/bignumber": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/hash": "^5.6.0",
- "@ethersproject/hdnode": "^5.6.0",
- "@ethersproject/json-wallets": "^5.6.0",
- "@ethersproject/keccak256": "^5.6.0",
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.6.2.tgz",
+ "integrity": "sha512-lrgh0FDQPuOnHcF80Q3gHYsSUODp6aJLAdDmDV0xKCN/T7D99ta1jGVhulg3PY8wiXEngD0DfM0I2XKXlrqJfg==",
+ "requires": {
+ "@ethersproject/abstract-provider": "^5.6.1",
+ "@ethersproject/abstract-signer": "^5.6.2",
+ "@ethersproject/address": "^5.6.1",
+ "@ethersproject/bignumber": "^5.6.2",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
+ "@ethersproject/hdnode": "^5.6.2",
+ "@ethersproject/json-wallets": "^5.6.1",
+ "@ethersproject/keccak256": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/random": "^5.6.0",
- "@ethersproject/signing-key": "^5.6.0",
- "@ethersproject/transactions": "^5.6.0",
- "@ethersproject/wordlists": "^5.6.0"
+ "@ethersproject/random": "^5.6.1",
+ "@ethersproject/signing-key": "^5.6.2",
+ "@ethersproject/transactions": "^5.6.2",
+ "@ethersproject/wordlists": "^5.6.1"
}
},
"@ethersproject/web": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.0.tgz",
- "integrity": "sha512-G/XHj0hV1FxI2teHRfCGvfBUHFmU+YOSbCxlAMqJklxSa7QMiHFQfAxvwY2PFqgvdkxEKwRNr/eCjfAPEm2Ctg==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.6.1.tgz",
+ "integrity": "sha512-/vSyzaQlNXkO1WV+RneYKqCJwualcUdx/Z3gseVovZP0wIlOFcCE1hkRhKBH8ImKbGQbMl9EAAyJFrJu7V0aqA==",
"requires": {
- "@ethersproject/base64": "^5.6.0",
- "@ethersproject/bytes": "^5.6.0",
+ "@ethersproject/base64": "^5.6.1",
+ "@ethersproject/bytes": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/strings": "^5.6.1"
}
},
"@ethersproject/wordlists": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.0.tgz",
- "integrity": "sha512-q0bxNBfIX3fUuAo9OmjlEYxP40IB8ABgb7HjEZCL5IKubzV3j30CWi2rqQbjTS2HfoyQbfINoKcTVWP4ejwR7Q==",
+ "version": "5.6.1",
+ "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.6.1.tgz",
+ "integrity": "sha512-wiPRgBpNbNwCQFoCr8bcWO8o5I810cqO6mkdtKfLKFlLxeCWcnzDi4Alu8iyNzlhYuS9npCwivMbRWF19dyblw==",
"requires": {
- "@ethersproject/bytes": "^5.6.0",
- "@ethersproject/hash": "^5.6.0",
+ "@ethersproject/bytes": "^5.6.1",
+ "@ethersproject/hash": "^5.6.1",
"@ethersproject/logger": "^5.6.0",
"@ethersproject/properties": "^5.6.0",
- "@ethersproject/strings": "^5.6.0"
+ "@ethersproject/strings": "^5.6.1"
}
},
"@gar/promisify": {
- "version": "1.1.2",
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz",
+ "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==",
"dev": true
},
- "@glazed/constants": {
- "version": "0.1.1"
+ "@humanwhocodes/config-array": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz",
+ "integrity": "sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg==",
+ "dev": true,
+ "requires": {
+ "@humanwhocodes/object-schema": "^1.2.0",
+ "debug": "^4.1.1",
+ "minimatch": "^3.0.4"
+ }
},
- "@glazed/devtools": {
- "version": "0.1.3",
+ "@humanwhocodes/object-schema": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz",
+ "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==",
+ "dev": true
+ },
+ "@jridgewell/gen-mapping": {
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
+ "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
"requires": {
- "@ceramicnetwork/common": "^1.3.0",
- "@ceramicnetwork/stream-tile": "^1.2.0",
- "@ceramicnetwork/streamid": "^1.1.2",
- "@glazed/constants": "^0.1.1",
- "@glazed/did-datastore-model": "^0.1.1",
- "ajv": "^8.6.2",
- "ajv-formats": "^2.1.1",
- "change-case": "^4.1.2",
- "cids": "^1.1.8",
- "fast-deep-equal": "^3.1.3",
- "uint8arrays": "^3.0.0"
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "@jridgewell/resolve-uri": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.7.tgz",
+ "integrity": "sha512-8cXDaBBHOr2pQ7j77Y6Vp5VDT2sIqWyWQ56TjEq4ih/a4iST3dItRe8Q9fp0rrIl9DoKhWQtUQz/YpOxLkXbNA=="
+ },
+ "@jridgewell/set-array": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.1.tgz",
+ "integrity": "sha512-Ct5MqZkLGEXTVmQYbGtx9SVqD2fqwvdubdps5D3djjAkgkKwT918VNOz65pEHFaYTeWcukmJmH5SwsA9Tn2ObQ=="
+ },
+ "@jridgewell/source-map": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz",
+ "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/gen-mapping": "^0.3.0",
+ "@jridgewell/trace-mapping": "^0.3.9"
},
"dependencies": {
- "uint8arrays": {
- "version": "3.0.0",
+ "@jridgewell/gen-mapping": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz",
+ "integrity": "sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==",
+ "dev": true,
"requires": {
- "multiformats": "^9.4.2"
+ "@jridgewell/set-array": "^1.0.0",
+ "@jridgewell/sourcemap-codec": "^1.4.10",
+ "@jridgewell/trace-mapping": "^0.3.9"
}
}
}
},
- "@glazed/did-datastore-model": {
- "version": "0.1.1"
+ "@jridgewell/sourcemap-codec": {
+ "version": "1.4.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.13.tgz",
+ "integrity": "sha512-GryiOJmNcWbovBxTfZSF71V/mXbgcV3MewDe3kIMCLyIh5e7SKAeUZs+rMnJ8jkMolZ/4/VsdBmMrw3l+VdZ3w=="
},
- "@humanwhocodes/config-array": {
- "version": "0.5.0",
- "dev": true,
+ "@jridgewell/trace-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.13.tgz",
+ "integrity": "sha512-o1xbKhp9qnIAoHJSWd6KlCZfqslL4valSF81H8ImioOAxluWYWOpWkpyktY2vnt4tbrX9XYaxovq6cgowaJp2w==",
"requires": {
- "@humanwhocodes/object-schema": "^1.2.0",
- "debug": "^4.1.1",
- "minimatch": "^3.0.4"
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
}
},
- "@humanwhocodes/object-schema": {
- "version": "1.2.0",
- "dev": true
- },
"@mark.probst/typescript-json-schema": {
"version": "0.32.0",
+ "resolved": "https://registry.npmjs.org/@mark.probst/typescript-json-schema/-/typescript-json-schema-0.32.0.tgz",
+ "integrity": "sha512-OoD+5D7Mka80FIcmvPyuAKV7g5Of5S04R74S4DTAG8pr9REDWySUh9pOloro7SNFwWt/+2f90wyP+DtGHykVfg==",
"dev": true,
"requires": {
"glob": "~7.1.3",
@@ -15457,40 +16835,10 @@
"yargs": "^12.0.5"
},
"dependencies": {
- "ansi-regex": {
- "version": "3.0.0",
- "dev": true
- },
- "camelcase": {
- "version": "5.3.1",
- "dev": true
- },
- "cliui": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "string-width": "^2.1.1",
- "strip-ansi": "^4.0.0",
- "wrap-ansi": "^2.0.0"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "dev": true
- },
- "find-up": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "locate-path": "^3.0.0"
- }
- },
- "get-caller-file": {
- "version": "1.0.3",
- "dev": true
- },
"glob": {
"version": "7.1.7",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz",
+ "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -15500,134 +16848,23 @@
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
- },
- "is-fullwidth-code-point": {
- "version": "2.0.0",
- "dev": true
- },
- "locate-path": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "p-locate": "^3.0.0",
- "path-exists": "^3.0.0"
- }
- },
- "p-limit": {
- "version": "2.3.0",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "3.0.0",
- "dev": true,
- "requires": {
- "p-limit": "^2.0.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "dev": true
- },
- "string-width": {
- "version": "2.1.1",
- "dev": true,
- "requires": {
- "is-fullwidth-code-point": "^2.0.0",
- "strip-ansi": "^4.0.0"
- }
- },
- "strip-ansi": {
- "version": "4.0.0",
- "dev": true,
- "requires": {
- "ansi-regex": "^3.0.0"
- }
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "dev": true,
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- },
- "dependencies": {
- "ansi-regex": {
- "version": "2.1.1",
- "dev": true
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "dev": true,
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "dev": true,
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "strip-ansi": {
- "version": "3.0.1",
- "dev": true,
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- }
- }
- },
- "y18n": {
- "version": "4.0.3",
- "dev": true
- },
- "yargs": {
- "version": "12.0.5",
- "dev": true,
- "requires": {
- "cliui": "^4.0.0",
- "decamelize": "^1.2.0",
- "find-up": "^3.0.0",
- "get-caller-file": "^1.0.1",
- "os-locale": "^3.0.0",
- "require-directory": "^2.1.1",
- "require-main-filename": "^1.0.1",
- "set-blocking": "^2.0.0",
- "string-width": "^2.0.0",
- "which-module": "^2.0.0",
- "y18n": "^3.2.1 || ^4.0.0",
- "yargs-parser": "^11.1.1"
- }
- },
- "yargs-parser": {
- "version": "11.1.1",
- "dev": true,
- "requires": {
- "camelcase": "^5.0.0",
- "decamelize": "^1.2.0"
- }
}
}
},
"@mark.probst/unicode-properties": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@mark.probst/unicode-properties/-/unicode-properties-1.1.0.tgz",
+ "integrity": "sha512-7AQsO0hMmpqDledV7AhBuSYqYPFsKP9PaltMecX9nlnsyFxqtsqUg9/pvB2L/jxvskrDrNkdKYz2KTbQznCtng==",
"dev": true,
"requires": {
"brfs": "^1.4.0",
"unicode-trie": "^0.3.0"
}
},
- "@multiformats/base-x": {
- "version": "4.0.1"
- },
"@npmcli/fs": {
- "version": "1.1.0",
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz",
+ "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==",
"dev": true,
"requires": {
"@gar/promisify": "^1.0.1",
@@ -15635,7 +16872,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -15645,6 +16884,8 @@
},
"@npmcli/git": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz",
+ "integrity": "sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw==",
"dev": true,
"requires": {
"@npmcli/promise-spawn": "^1.3.2",
@@ -15659,10 +16900,14 @@
"dependencies": {
"mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
},
"semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -15672,6 +16917,8 @@
},
"@npmcli/installed-package-contents": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz",
+ "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==",
"dev": true,
"requires": {
"npm-bundled": "^1.1.1",
@@ -15680,6 +16927,8 @@
},
"@npmcli/move-file": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz",
+ "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==",
"dev": true,
"requires": {
"mkdirp": "^1.0.4",
@@ -15688,16 +16937,22 @@
"dependencies": {
"mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
}
}
},
"@npmcli/node-gyp": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz",
+ "integrity": "sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA==",
"dev": true
},
"@npmcli/promise-spawn": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz",
+ "integrity": "sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg==",
"dev": true,
"requires": {
"infer-owner": "^1.0.4"
@@ -15705,6 +16960,8 @@
},
"@npmcli/run-script": {
"version": "1.8.6",
+ "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-1.8.6.tgz",
+ "integrity": "sha512-e42bVZnC6VluBZBAFEr3YrdqSspG3bgilyg4nSLBJ7TRGNCzxHa92XAHxQBLYg0BmgwO4b2mf3h/l5EkEWRn3g==",
"dev": true,
"requires": {
"@npmcli/node-gyp": "^1.0.2",
@@ -15713,13 +16970,6 @@
"read-package-json-fast": "^2.0.1"
}
},
- "@overnightjs/logger": {
- "version": "1.2.1",
- "requires": {
- "colors": "^1.3.3",
- "util": "^0.11.1"
- }
- },
"@pixiv/three-vrm": {
"version": "file:packages/three-vrm",
"requires": {
@@ -15730,13 +16980,16 @@
}
},
"@react-three/fiber": {
- "version": "7.0.17",
+ "version": "7.0.29",
+ "resolved": "https://registry.npmjs.org/@react-three/fiber/-/fiber-7.0.29.tgz",
+ "integrity": "sha512-TE+/iaGrjluGsPwN2RkLXxKD4ak+unsh0YKIFKGcuAOW9jYcAyMGKAtgFO8MS7/HNCrZZQQSg23sJ8IPgtdkDg==",
"requires": {
"@babel/runtime": "^7.13.10",
+ "@types/react-reconciler": "^0.26.2",
"react-merge-refs": "^1.1.0",
"react-reconciler": "^0.26.2",
"react-three-fiber": "0.0.0-deprecated",
- "react-use-measure": "^2.0.4",
+ "react-use-measure": "^2.1.1",
"resize-observer-polyfill": "^1.5.1",
"scheduler": "^0.20.2",
"use-asset": "^1.0.4",
@@ -15745,7 +16998,9 @@
}
},
"@rollup/plugin-babel": {
- "version": "5.3.0",
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz",
+ "integrity": "sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==",
"dev": true,
"requires": {
"@babel/helper-module-imports": "^7.10.4",
@@ -15754,6 +17009,8 @@
"dependencies": {
"@rollup/pluginutils": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
"dev": true,
"requires": {
"@types/estree": "0.0.39",
@@ -15763,24 +17020,30 @@
},
"estree-walker": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
"dev": true
}
}
},
"@rollup/plugin-node-resolve": {
- "version": "13.1.3",
+ "version": "13.3.0",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz",
+ "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==",
"dev": true,
"requires": {
"@rollup/pluginutils": "^3.1.0",
"@types/resolve": "1.17.1",
- "builtin-modules": "^3.1.0",
"deepmerge": "^4.2.2",
+ "is-builtin-module": "^3.1.0",
"is-module": "^1.0.0",
"resolve": "^1.19.0"
},
"dependencies": {
"@rollup/pluginutils": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz",
+ "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==",
"dev": true,
"requires": {
"@types/estree": "0.0.39",
@@ -15790,12 +17053,16 @@
},
"estree-walker": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz",
+ "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==",
"dev": true
}
}
},
"@rollup/pluginutils": {
- "version": "4.1.1",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-4.2.1.tgz",
+ "integrity": "sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==",
"dev": true,
"requires": {
"estree-walker": "^2.0.1",
@@ -15803,156 +17070,92 @@
}
},
"@shaderfrog/glsl-parser": {
- "version": "0.1.20"
- },
- "@stablelib/aead": {
- "version": "1.0.1"
- },
- "@stablelib/binary": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/int": "^1.0.1"
- }
- },
- "@stablelib/bytes": {
- "version": "1.0.1"
- },
- "@stablelib/chacha": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/chacha20poly1305": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/aead": "^1.0.1",
- "@stablelib/binary": "^1.0.1",
- "@stablelib/chacha": "^1.0.1",
- "@stablelib/constant-time": "^1.0.1",
- "@stablelib/poly1305": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/constant-time": {
- "version": "1.0.1"
- },
- "@stablelib/ed25519": {
- "version": "1.0.2",
- "requires": {
- "@stablelib/random": "^1.0.1",
- "@stablelib/sha512": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/hash": {
- "version": "1.0.1"
- },
- "@stablelib/int": {
- "version": "1.0.1"
- },
- "@stablelib/keyagreement": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/bytes": "^1.0.1"
- }
- },
- "@stablelib/poly1305": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/constant-time": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/random": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/sha256": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/hash": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/sha512": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/hash": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/wipe": {
- "version": "1.0.1"
- },
- "@stablelib/x25519": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/keyagreement": "^1.0.1",
- "@stablelib/random": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/xchacha20": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/binary": "^1.0.1",
- "@stablelib/chacha": "^1.0.1",
- "@stablelib/wipe": "^1.0.1"
- }
- },
- "@stablelib/xchacha20poly1305": {
- "version": "1.0.1",
- "requires": {
- "@stablelib/aead": "^1.0.1",
- "@stablelib/chacha20poly1305": "^1.0.1",
- "@stablelib/constant-time": "^1.0.1",
- "@stablelib/wipe": "^1.0.1",
- "@stablelib/xchacha20": "^1.0.1"
- }
+ "version": "0.1.23",
+ "resolved": "https://registry.npmjs.org/@shaderfrog/glsl-parser/-/glsl-parser-0.1.23.tgz",
+ "integrity": "sha512-VPXA4Wm1FYtwq+Nu3yCpyFTuI40Vy3rAulLBXfVxpHH6ads4NGd9OCwufSEY6nasfCV2jZjguLWRN9zA2J1dqQ=="
},
"@tootallnate/once": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz",
+ "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
"dev": true
},
"@types/estree": {
"version": "0.0.39",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz",
+ "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==",
"dev": true
},
"@types/json5": {
"version": "0.0.29",
+ "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
+ "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==",
"dev": true
},
"@types/node": {
- "version": "17.0.8",
+ "version": "17.0.42",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.42.tgz",
+ "integrity": "sha512-Q5BPGyGKcvQgAMbsr7qEGN/kIPN6zZecYYABeTDBizOsau+2NMdSVTar9UQw21A2+JyA2KRNDYaYrPB0Rpk2oQ==",
"dev": true
},
"@types/parse-json": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz",
+ "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==",
"dev": true
},
+ "@types/prop-types": {
+ "version": "15.7.5",
+ "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.5.tgz",
+ "integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w=="
+ },
+ "@types/react": {
+ "version": "18.0.12",
+ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.0.12.tgz",
+ "integrity": "sha512-duF1OTASSBQtcigUvhuiTB1Ya3OvSy+xORCiEf20H0P0lzx+/KeVsA99U5UjLXSbyo1DRJDlLKqTeM1ngosqtg==",
+ "requires": {
+ "@types/prop-types": "*",
+ "@types/scheduler": "*",
+ "csstype": "^3.0.2"
+ }
+ },
+ "@types/react-reconciler": {
+ "version": "0.26.7",
+ "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.26.7.tgz",
+ "integrity": "sha512-mBDYl8x+oyPX/VBb3E638N0B7xG+SPk/EAMcVPeexqus/5aTpTphQi0curhhshOqRrc9t6OPoJfEUkbymse/lQ==",
+ "requires": {
+ "@types/react": "*"
+ }
+ },
"@types/resolve": {
"version": "1.17.1",
+ "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz",
+ "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==",
"dev": true,
"requires": {
"@types/node": "*"
}
},
+ "@types/scheduler": {
+ "version": "0.16.2",
+ "resolved": "https://registry.npmjs.org/@types/scheduler/-/scheduler-0.16.2.tgz",
+ "integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew=="
+ },
"@types/three": {
"version": "0.132.2",
+ "resolved": "https://registry.npmjs.org/@types/three/-/three-0.132.2.tgz",
+ "integrity": "sha512-DpaP0sObpHvKX8zdfCqyTK526N8lQ86Qstp6MnQJ3jNYie7Bv9AMRTALuoIH8dgVZ62z9twuNvEarWHXOZwmSw==",
"dev": true
},
"@ungap/promise-all-settled": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz",
+ "integrity": "sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q=="
},
"@vitejs/plugin-react-refresh": {
"version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-refresh/-/plugin-react-refresh-1.3.6.tgz",
+ "integrity": "sha512-iNR/UqhUOmFFxiezt0em9CgmiJBdWR+5jGxB2FihaoJfqGt76kiwaKoVOJVU5NYcDWMdN06LbyN2VIGIoYdsEA==",
"dev": true,
"requires": {
"@babel/core": "^7.14.8",
@@ -15969,47 +17172,69 @@
},
"abbrev": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
+ "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
"dev": true
},
"accepts": {
- "version": "1.3.7",
+ "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==",
"requires": {
- "mime-types": "~2.1.24",
- "negotiator": "0.6.2"
+ "mime-types": "~2.1.34",
+ "negotiator": "0.6.3"
}
},
"acorn": {
"version": "7.4.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
+ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
"dev": true
},
"acorn-jsx": {
"version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
"requires": {}
},
"aes-js": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz",
- "integrity": "sha1-4h3xCtbCBTKVvLuNq0Cwnb6ofk0="
+ "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw=="
},
"agent-base": {
"version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz",
+ "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==",
"dev": true,
"requires": {
"debug": "4"
}
},
"agentkeepalive": {
- "version": "4.2.0",
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz",
+ "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==",
"dev": true,
"requires": {
"debug": "^4.1.0",
"depd": "^1.1.2",
"humanize-ms": "^1.2.1"
+ },
+ "dependencies": {
+ "depd": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
+ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==",
+ "dev": true
+ }
}
},
"aggregate-error": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz",
+ "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==",
"dev": true,
"requires": {
"clean-stack": "^2.0.0",
@@ -16017,7 +17242,10 @@
}
},
"ajv": {
- "version": "8.6.3",
+ "version": "8.11.0",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz",
+ "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==",
+ "dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
"json-schema-traverse": "^1.0.0",
@@ -16025,27 +17253,30 @@
"uri-js": "^4.2.2"
}
},
- "ajv-formats": {
- "version": "2.1.1",
- "requires": {
- "ajv": "^8.0.0"
- }
- },
"alea": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/alea/-/alea-1.0.1.tgz",
+ "integrity": "sha512-QU+wv+ziDXaMxRdsQg/aH7sVfWdhKps5YP97IIwFkHCsbDZA3k87JXoZ5/iuemf4ntytzIWeScrRpae8+lDrXA=="
},
"ansi-align": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.1.tgz",
+ "integrity": "sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==",
"dev": true,
"requires": {
"string-width": "^4.1.0"
}
},
"ansi-colors": {
- "version": "4.1.1"
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz",
+ "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==",
+ "dev": true
},
"ansi-escapes": {
"version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
"dev": true,
"requires": {
"type-fest": "^0.21.3"
@@ -16053,21 +17284,29 @@
"dependencies": {
"type-fest": {
"version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
"dev": true
}
}
},
"ansi-regex": {
- "version": "5.0.1"
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
},
"ansi-styles": {
"version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"requires": {
"color-convert": "^1.9.0"
}
},
"anymatch": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz",
+ "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==",
"requires": {
"micromatch": "^3.1.4",
"normalize-path": "^2.1.1"
@@ -16075,6 +17314,8 @@
"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==",
"requires": {
"remove-trailing-separator": "^1.0.1"
}
@@ -16083,18 +17324,30 @@
},
"aproba": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
+ "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==",
"dev": true
},
"are-we-there-yet": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz",
+ "integrity": "sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g==",
"dev": true,
"requires": {
"delegates": "^1.0.0",
"readable-stream": "^2.0.6"
},
"dependencies": {
+ "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.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -16108,6 +17361,8 @@
},
"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"
@@ -16117,43 +17372,59 @@
},
"argparse": {
"version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
"dev": true,
"requires": {
"sprintf-js": "~1.0.2"
}
},
"arr-diff": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz",
+ "integrity": "sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA=="
},
"arr-flatten": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz",
+ "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg=="
},
"arr-union": {
- "version": "3.1.0"
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz",
+ "integrity": "sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q=="
},
"array-back": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz",
+ "integrity": "sha512-eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw==",
"dev": true,
"requires": {
"typical": "^2.6.1"
}
},
"array-flatten": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
+ "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg=="
},
"array-includes": {
- "version": "3.1.4",
+ "version": "3.1.5",
+ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz",
+ "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3",
- "es-abstract": "^1.19.1",
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5",
"get-intrinsic": "^1.1.1",
"is-string": "^1.0.7"
}
},
"array-union": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz",
+ "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==",
"dev": true,
"requires": {
"array-uniq": "^1.0.1"
@@ -16161,22 +17432,31 @@
},
"array-uniq": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz",
+ "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==",
"dev": true
},
"array-unique": {
- "version": "0.3.2"
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz",
+ "integrity": "sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ=="
},
"array.prototype.flat": {
- "version": "1.2.5",
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz",
+ "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
"define-properties": "^1.1.3",
- "es-abstract": "^1.19.0"
+ "es-abstract": "^1.19.2",
+ "es-shim-unscopables": "^1.0.0"
}
},
"asn1": {
"version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz",
+ "integrity": "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==",
"dev": true,
"requires": {
"safer-buffer": "~2.1.0"
@@ -16184,78 +17464,115 @@
},
"assert-plus": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
+ "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==",
"dev": true
},
"assign-symbols": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz",
+ "integrity": "sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw=="
},
"astral-regex": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
"dev": true
},
"async": {
- "version": "1.5.2"
+ "version": "1.5.2",
+ "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
+ "integrity": "sha512-nSVgobk4rv61R9PUSDtYt7mPVB2olxNR5RWJcAsH676/ef11bUZwvu7+RGYrYauVdDPcO519v68wRhXQtxsV9w=="
},
"async-each": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz",
+ "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
},
"asynckit": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
+ "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==",
"dev": true
},
"atob": {
- "version": "2.1.2"
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz",
+ "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg=="
+ },
+ "available-typed-arrays": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz",
+ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw=="
},
"aws-sign2": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
+ "integrity": "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA==",
"dev": true
},
"aws4": {
"version": "1.11.0",
+ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz",
+ "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
"dev": true
},
"axios": {
"version": "0.21.4",
+ "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz",
+ "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==",
"requires": {
"follow-redirects": "^1.14.0"
}
},
"babel-plugin-dynamic-import-node": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz",
+ "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==",
"dev": true,
"requires": {
"object.assign": "^4.1.0"
}
},
"babel-plugin-polyfill-corejs2": {
- "version": "0.3.0",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz",
+ "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==",
"dev": true,
"requires": {
"@babel/compat-data": "^7.13.11",
- "@babel/helper-define-polyfill-provider": "^0.3.0",
+ "@babel/helper-define-polyfill-provider": "^0.3.1",
"semver": "^6.1.1"
}
},
"babel-plugin-polyfill-corejs3": {
- "version": "0.5.0",
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz",
+ "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==",
"dev": true,
"requires": {
- "@babel/helper-define-polyfill-provider": "^0.3.0",
- "core-js-compat": "^3.20.0"
+ "@babel/helper-define-polyfill-provider": "^0.3.1",
+ "core-js-compat": "^3.21.0"
}
},
"babel-plugin-polyfill-regenerator": {
- "version": "0.3.0",
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz",
+ "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==",
"dev": true,
"requires": {
- "@babel/helper-define-polyfill-provider": "^0.3.0"
+ "@babel/helper-define-polyfill-provider": "^0.3.1"
}
},
"balanced-match": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"base": {
"version": "0.11.2",
+ "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz",
+ "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==",
"requires": {
"cache-base": "^1.0.1",
"class-utils": "^0.3.5",
@@ -16268,17 +17585,18 @@
"dependencies": {
"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==",
"requires": {
"is-descriptor": "^1.0.0"
}
}
}
},
- "base64-js": {
- "version": "1.5.1"
- },
"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,
"requires": {
"safe-buffer": "5.1.2"
@@ -16286,10 +17604,14 @@
},
"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
},
"bcrypt-pbkdf": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
+ "integrity": "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==",
"dev": true,
"requires": {
"tweetnacl": "^0.14.3"
@@ -16302,50 +17624,69 @@
},
"bidi-js": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/bidi-js/-/bidi-js-1.0.2.tgz",
+ "integrity": "sha512-rzSy/k7WdX5zOyeHHCOixGXbCHkyogkxPKL2r8QtzHmVQDiWCXUWa18bLdMWT9CYMLOYTjWpTHawuev2ouYJVw==",
"requires": {
"require-from-string": "^2.0.2"
}
},
- "bignumber.js": {
- "version": "9.0.1"
- },
"binary-extensions": {
- "version": "1.13.1"
+ "version": "1.13.1",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz",
+ "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw=="
},
- "blakejs": {
- "version": "1.1.1"
+ "bindings": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz",
+ "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==",
+ "optional": true,
+ "requires": {
+ "file-uri-to-path": "1.0.0"
+ }
},
"bn.js": {
- "version": "4.12.0"
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz",
+ "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ=="
},
"body-parser": {
- "version": "1.19.0",
+ "version": "1.20.0",
+ "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz",
+ "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==",
"requires": {
- "bytes": "3.1.0",
+ "bytes": "3.1.2",
"content-type": "~1.0.4",
"debug": "2.6.9",
- "depd": "~1.1.2",
- "http-errors": "1.7.2",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
- "on-finished": "~2.3.0",
- "qs": "6.7.0",
- "raw-body": "2.4.0",
- "type-is": "~1.6.17"
+ "on-finished": "2.4.1",
+ "qs": "6.10.3",
+ "raw-body": "2.5.1",
+ "type-is": "~1.6.18",
+ "unpipe": "1.0.0"
},
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"boxen": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/boxen/-/boxen-5.1.2.tgz",
+ "integrity": "sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==",
"dev": true,
"requires": {
"ansi-align": "^3.0.0",
@@ -16360,13 +17701,23 @@
"dependencies": {
"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,
"requires": {
"color-convert": "^2.0.1"
}
},
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "dev": true
+ },
"chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -16375,6 +17726,8 @@
},
"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,
"requires": {
"color-name": "~1.1.4"
@@ -16382,14 +17735,20 @@
},
"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
},
"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
},
"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"
@@ -16399,6 +17758,8 @@
},
"brace-expansion": {
"version": "1.1.11",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
+ "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@@ -16406,6 +17767,8 @@
},
"braces": {
"version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz",
+ "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==",
"requires": {
"arr-flatten": "^1.1.0",
"array-unique": "^0.3.2",
@@ -16421,6 +17784,8 @@
},
"brfs": {
"version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/brfs/-/brfs-1.6.1.tgz",
+ "integrity": "sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ==",
"dev": true,
"requires": {
"quote-stream": "^1.0.1",
@@ -16431,6 +17796,8 @@
},
"broadway": {
"version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/broadway/-/broadway-0.3.6.tgz",
+ "integrity": "sha512-zivf7KWx8ftTEsXaKfmve6wdSfbDJ6NLXwhwWN4Q1z5+/nsHWALP952KV9jJbJGwjZHEMZABHyuKqEAh3wb2kw==",
"requires": {
"cliff": "0.1.9",
"eventemitter2": "0.4.14",
@@ -16440,10 +17807,14 @@
},
"dependencies": {
"async": {
- "version": "0.2.10"
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
},
"cliff": {
"version": "0.1.9",
+ "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.9.tgz",
+ "integrity": "sha512-2EECQDk23AtYy9WTUDS0UwdlyGJe62IatdR9dOfG/T3+VIoC6/SA5AnYJWGTjXjweTYL360HEGu4DchCeee4Ng==",
"requires": {
"colors": "0.x.x",
"eyes": "0.1.x",
@@ -16451,16 +17822,24 @@
}
},
"colors": {
- "version": "0.6.2"
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw=="
},
"eventemitter2": {
- "version": "0.4.14"
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ=="
},
"pkginfo": {
- "version": "0.3.1"
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+ "integrity": "sha512-yO5feByMzAp96LtP58wvPKSbaKAi/1C4kV9XpTctr6EepnP6F33RBNOiVrdz9BrPA98U2BMFsTNHo44TWcbQ2A=="
},
"winston": {
"version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.0.tgz",
+ "integrity": "sha1-YdCDD6aZcGISIGsKK1ymmpMENmg=",
"requires": {
"async": "0.2.x",
"colors": "0.6.x",
@@ -16473,10 +17852,14 @@
}
},
"brorand": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w=="
},
"brotli-size": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/brotli-size/-/brotli-size-4.0.0.tgz",
+ "integrity": "sha512-uA9fOtlTRC0iqKfzff1W34DXUA3GyVqbUaeo3Rw3d4gd1eavKVCETXrn3NzO74W+UVkG3UHu8WxUi+XvKI/huA==",
"dev": true,
"requires": {
"duplexer": "0.1.1"
@@ -16484,48 +17867,68 @@
"dependencies": {
"duplexer": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz",
+ "integrity": "sha512-sxNZ+ljy+RA1maXoUReeqBBpBC6RLKmg5ewzV+x+mSETmWNoKdZN6vcQjpFROemza23hGFskJtFNoUWUaQ+R4Q==",
"dev": true
}
}
},
"browser-or-node": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/browser-or-node/-/browser-or-node-1.3.0.tgz",
+ "integrity": "sha512-0F2z/VSnLbmEeBcUrSuDH5l0HxTXdQQzLjkmBR4cYfvg1zJrKSlmIZFqyFR8oX0NrwPhy3c3HQ6i3OxMbew4Tg==",
"dev": true
},
"browser-stdout": {
- "version": "1.3.1"
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
+ "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw=="
},
"browserslist": {
- "version": "4.19.1",
+ "version": "4.20.4",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.4.tgz",
+ "integrity": "sha512-ok1d+1WpnU24XYN7oC3QWgTyMhY/avPJ/r9T00xxvUOIparA/gc+UPUMaod3i+G6s+nI2nUb9xZ5k794uIwShw==",
"requires": {
- "caniuse-lite": "^1.0.30001286",
- "electron-to-chromium": "^1.4.17",
+ "caniuse-lite": "^1.0.30001349",
+ "electron-to-chromium": "^1.4.147",
"escalade": "^3.1.1",
- "node-releases": "^2.0.1",
+ "node-releases": "^2.0.5",
"picocolors": "^1.0.0"
}
},
"buffer-equal": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/buffer-equal/-/buffer-equal-0.0.1.tgz",
+ "integrity": "sha512-RgSV6InVQ9ODPdLWJ5UAqBqJBOg370Nz6ZQtRzpt6nUjc8v0St97uJ4PYC6NztqIScrAXafKM3mZPMygSe1ggA==",
"dev": true
},
"buffer-from": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
"dev": true
},
"builtin-modules": {
- "version": "3.2.0",
+ "version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz",
+ "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==",
"dev": true
},
"builtins": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz",
+ "integrity": "sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ==",
"dev": true
},
"bytes": {
- "version": "3.1.0"
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
+ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg=="
},
"cacache": {
"version": "15.3.0",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz",
+ "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==",
"dev": true,
"requires": {
"@npmcli/fs": "^1.0.0",
@@ -16550,12 +17953,16 @@
"dependencies": {
"mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
}
}
},
"cache-base": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz",
+ "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==",
"requires": {
"collection-visit": "^1.0.0",
"component-emitter": "^1.2.1",
@@ -16568,82 +17975,57 @@
"unset-value": "^1.0.0"
}
},
- "caip": {
- "version": "0.9.2"
- },
"call-bind": {
"version": "1.0.2",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz",
+ "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==",
"requires": {
"function-bind": "^1.1.1",
"get-intrinsic": "^1.0.2"
}
},
"caller": {
- "version": "0.0.1",
- "requires": {
- "tape": "~2.3.2"
- }
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/caller/-/caller-1.0.1.tgz",
+ "integrity": "sha512-tfj+ErW/0SbOyfoXriRtdjCMTwrZAvLXj2jHqlh8YCcgoZVzUI22E/JJLxbiuZqDs0Ke7BuRrHTVuxm3EwYbJQ=="
},
"callsites": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
"dev": true
},
- "camel-case": {
- "version": "4.1.2",
- "requires": {
- "pascal-case": "^3.1.2",
- "tslib": "^2.0.3"
- }
- },
"camelcase": {
- "version": "6.2.1"
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "dev": true
},
"caniuse-lite": {
- "version": "1.0.30001299"
- },
- "canonicalize": {
- "version": "1.0.5"
- },
- "capital-case": {
- "version": "1.0.4",
- "requires": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3",
- "upper-case-first": "^2.0.2"
- }
+ "version": "1.0.30001352",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001352.tgz",
+ "integrity": "sha512-GUgH8w6YergqPQDGWhJGt8GDRnY0L/iJVQcU3eJ46GYf52R8tk0Wxp0PymuFVZboJYXGiCqwozAYZNRjVj6IcA=="
},
"caseless": {
"version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
+ "integrity": "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw==",
"dev": true
},
"chalk": {
"version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
- "change-case": {
- "version": "4.1.2",
- "requires": {
- "camel-case": "^4.1.2",
- "capital-case": "^1.0.4",
- "constant-case": "^3.0.4",
- "dot-case": "^3.0.4",
- "header-case": "^2.0.4",
- "no-case": "^3.0.4",
- "param-case": "^3.0.4",
- "pascal-case": "^3.1.2",
- "path-case": "^3.0.4",
- "sentence-case": "^3.0.4",
- "snake-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"chokidar": {
"version": "2.1.8",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz",
+ "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==",
"requires": {
"anymatch": "^2.0.0",
"async-each": "^1.0.1",
@@ -16661,6 +18043,8 @@
"dependencies": {
"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==",
"requires": {
"is-glob": "^3.1.0",
"path-dirname": "^1.0.0"
@@ -16668,6 +18052,8 @@
"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==",
"requires": {
"is-extglob": "^2.1.0"
}
@@ -16678,27 +18064,14 @@
},
"chownr": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
+ "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==",
"dev": true
},
- "cids": {
- "version": "1.1.9",
- "requires": {
- "multibase": "^4.0.1",
- "multicodec": "^3.0.1",
- "multihashes": "^4.0.1",
- "uint8arrays": "^3.0.0"
- },
- "dependencies": {
- "uint8arrays": {
- "version": "3.0.0",
- "requires": {
- "multiformats": "^9.4.2"
- }
- }
- }
- },
"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==",
"requires": {
"arr-union": "^3.1.0",
"define-property": "^0.2.5",
@@ -16708,24 +18081,32 @@
"dependencies": {
"define-property": {
"version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"requires": {
"is-descriptor": "^0.1.0"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"is-descriptor": {
"version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"requires": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -16733,25 +18114,35 @@
},
"dependencies": {
"kind-of": {
- "version": "5.1.0"
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
}
}
}
}
},
"classnames": {
- "version": "2.3.1"
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.3.1.tgz",
+ "integrity": "sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA=="
},
"clean-stack": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz",
+ "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
"dev": true
},
"cli-boxes": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz",
+ "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==",
"dev": true
},
"cli-cursor": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
+ "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
"dev": true,
"requires": {
"restore-cursor": "^3.1.0"
@@ -16759,6 +18150,8 @@
},
"cli-truncate": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz",
+ "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==",
"dev": true,
"requires": {
"slice-ansi": "^3.0.0",
@@ -16767,6 +18160,8 @@
"dependencies": {
"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,
"requires": {
"color-convert": "^2.0.1"
@@ -16774,6 +18169,8 @@
},
"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,
"requires": {
"color-name": "~1.1.4"
@@ -16781,10 +18178,14 @@
},
"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
},
"slice-ansi": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz",
+ "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
@@ -16796,65 +18197,225 @@
},
"cliff": {
"version": "0.1.10",
+ "resolved": "https://registry.npmjs.org/cliff/-/cliff-0.1.10.tgz",
+ "integrity": "sha512-roZWcC2Cxo/kKjRXw7YUpVNtxJccbvcl7VzTjUYgLQk6Ot0R8bm2netbhSZYWWNrKlOO/7HD6GXHl8dtzE6SiQ==",
"requires": {
"colors": "~1.0.3",
"eyes": "~0.1.8",
"winston": "0.8.x"
},
"dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
+ },
"colors": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz",
+ "integrity": "sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw=="
+ },
+ "pkginfo": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+ "integrity": "sha512-yO5feByMzAp96LtP58wvPKSbaKAi/1C4kV9XpTctr6EepnP6F33RBNOiVrdz9BrPA98U2BMFsTNHo44TWcbQ2A=="
+ },
+ "winston": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz",
+ "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=",
+ "requires": {
+ "async": "0.2.x",
+ "colors": "0.6.x",
+ "cycle": "1.0.x",
+ "eyes": "0.1.x",
+ "isstream": "0.1.x",
+ "pkginfo": "0.3.x",
+ "stack-trace": "0.0.x"
+ },
+ "dependencies": {
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw=="
+ }
+ }
+ }
+ }
+ },
+ "cliui": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz",
+ "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==",
+ "dev": true,
+ "requires": {
+ "string-width": "^2.1.1",
+ "strip-ansi": "^4.0.0",
+ "wrap-ansi": "^2.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ },
+ "wrap-ansi": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
+ "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
+ "dev": true,
+ "requires": {
+ "string-width": "^1.0.1",
+ "strip-ansi": "^3.0.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
+ "dev": true
+ },
+ "is-fullwidth-code-point": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
+ "dev": true,
+ "requires": {
+ "number-is-nan": "^1.0.0"
+ }
+ },
+ "string-width": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
+ "dev": true,
+ "requires": {
+ "code-point-at": "^1.0.0",
+ "is-fullwidth-code-point": "^1.0.0",
+ "strip-ansi": "^3.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^2.0.0"
+ }
+ }
+ }
}
}
},
- "cliui": {
- "version": "7.0.4",
- "requires": {
- "string-width": "^4.2.0",
- "strip-ansi": "^6.0.0",
- "wrap-ansi": "^7.0.0"
- }
- },
"clone": {
- "version": "2.1.2"
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz",
+ "integrity": "sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w=="
},
"code-point-at": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
+ "integrity": "sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA==",
"dev": true
},
"collection-utils": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/collection-utils/-/collection-utils-1.0.1.tgz",
+ "integrity": "sha512-LA2YTIlR7biSpXkKYwwuzGjwL5rjWEZVOSnvdUc7gObvWe4WkjxOpfrdhoP7Hs09YWDVfg0Mal9BpAqLfVEzQg==",
"dev": true
},
"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==",
"requires": {
"map-visit": "^1.0.0",
"object-visit": "^1.0.0"
}
},
+ "color": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz",
+ "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==",
+ "requires": {
+ "color-convert": "^1.9.3",
+ "color-string": "^1.6.0"
+ }
+ },
"color-convert": {
"version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
- "version": "1.1.3"
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "color-string": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz",
+ "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==",
+ "requires": {
+ "color-name": "^1.0.0",
+ "simple-swizzle": "^0.2.2"
+ }
},
"color-support": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz",
+ "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==",
"dev": true
},
"colorette": {
- "version": "2.0.16",
+ "version": "2.0.17",
+ "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.17.tgz",
+ "integrity": "sha512-hJo+3Bkn0NCHybn9Tu35fIeoOKGOk5OCC32y4Hz2It+qlCO2Q3DeQ1hRn/tDDMQKRYUEzqsl7jbF6dYKjlE60g==",
"dev": true
},
- "colors": {
- "version": "1.4.0"
+ "colorspace": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz",
+ "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==",
+ "requires": {
+ "color": "^3.1.3",
+ "text-hex": "1.0.x"
+ }
},
"combined-stream": {
"version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
+ "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
"dev": true,
"requires": {
"delayed-stream": "~1.0.0"
@@ -16862,6 +18423,8 @@
},
"command-line-args": {
"version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-4.0.7.tgz",
+ "integrity": "sha512-aUdPvQRAyBvQd2n7jXcsMDz68ckBJELXNzBybCHOibUWEg0mWTnaYCSRU8h9R+aNRSvDihJtssSRCiDRpLaezA==",
"dev": true,
"requires": {
"array-back": "^2.0.0",
@@ -16871,6 +18434,8 @@
},
"command-line-usage": {
"version": "5.0.5",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz",
+ "integrity": "sha512-d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA==",
"dev": true,
"requires": {
"array-back": "^2.0.0",
@@ -16880,20 +18445,31 @@
}
},
"commander": {
- "version": "2.20.3"
+ "version": "2.20.3",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz",
+ "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==",
+ "dev": true
},
"commondir": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz",
+ "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==",
"dev": true
},
"component-emitter": {
- "version": "1.3.0"
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz",
+ "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg=="
},
"concat-map": {
- "version": "0.0.1"
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"concat-stream": {
"version": "1.6.2",
+ "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
+ "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -16902,8 +18478,16 @@
"typedarray": "^0.0.6"
},
"dependencies": {
+ "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.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -16917,6 +18501,8 @@
},
"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"
@@ -16926,6 +18512,8 @@
},
"concurrently": {
"version": "6.5.1",
+ "resolved": "https://registry.npmjs.org/concurrently/-/concurrently-6.5.1.tgz",
+ "integrity": "sha512-FlSwNpGjWQfRwPLXvJ/OgysbBxPkWpiVjy1042b0U7on7S7qwwMIILRj7WTN1mTgqa582bG6NFuScOoh6Zgdag==",
"dev": true,
"requires": {
"chalk": "^4.1.0",
@@ -16940,6 +18528,8 @@
"dependencies": {
"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,
"requires": {
"color-convert": "^2.0.1"
@@ -16947,6 +18537,8 @@
},
"chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -16955,6 +18547,8 @@
"dependencies": {
"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"
@@ -16962,8 +18556,21 @@
}
}
},
+ "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"
+ }
+ },
"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,
"requires": {
"color-name": "~1.1.4"
@@ -16971,23 +18578,79 @@
},
"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
+ },
+ "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
},
"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
},
+ "rxjs": {
+ "version": "6.6.7",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
+ "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
+ "dev": true,
+ "requires": {
+ "tslib": "^1.9.0"
+ }
+ },
"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,
"requires": {
"has-flag": "^4.0.0"
}
+ },
+ "tslib": {
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
+ "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true
+ },
+ "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
}
}
},
"configstore": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz",
+ "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==",
"requires": {
"dot-prop": "^4.1.0",
"graceful-fs": "^4.1.2",
@@ -16999,59 +18662,80 @@
},
"console-control-strings": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
+ "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==",
"dev": true
},
- "constant-case": {
- "version": "3.0.4",
- "requires": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3",
- "upper-case": "^2.0.2"
- }
- },
"content-disposition": {
- "version": "0.5.3",
+ "version": "0.5.4",
+ "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
+ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
"requires": {
- "safe-buffer": "5.1.2"
+ "safe-buffer": "5.2.1"
+ },
+ "dependencies": {
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
+ }
}
},
"content-type": {
- "version": "1.0.4"
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
+ "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"convert-source-map": {
"version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz",
+ "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==",
"requires": {
"safe-buffer": "~5.1.1"
}
},
"cookie": {
- "version": "0.4.0"
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz",
+ "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw=="
},
"cookie-signature": {
- "version": "1.0.6"
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
+ "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ=="
},
"copy-descriptor": {
- "version": "0.1.1"
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz",
+ "integrity": "sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw=="
},
"core-js-compat": {
- "version": "3.20.2",
+ "version": "3.22.8",
+ "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.22.8.tgz",
+ "integrity": "sha512-pQnwg4xtuvc2Bs/5zYQPaEYYSuTxsF7LBWF0SvnVhthZo/Qe+rJpcEekrdNK5DWwDJ0gv0oI9NNX5Mppdy0ctg==",
"dev": true,
"requires": {
- "browserslist": "^4.19.1",
+ "browserslist": "^4.20.3",
"semver": "7.0.0"
},
"dependencies": {
"semver": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz",
+ "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==",
"dev": true
}
}
},
"core-util-is": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz",
+ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ=="
},
"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,
"requires": {
"object-assign": "^4",
@@ -17060,6 +18744,8 @@
},
"cosmiconfig": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz",
+ "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==",
"dev": true,
"requires": {
"@types/parse-json": "^4.0.0",
@@ -17069,19 +18755,10 @@
"yaml": "^1.10.0"
}
},
- "cross-fetch": {
- "version": "3.1.4",
- "requires": {
- "node-fetch": "2.6.1"
- },
- "dependencies": {
- "node-fetch": {
- "version": "2.6.1"
- }
- }
- },
"cross-spawn": {
"version": "7.0.3",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
+ "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
"dev": true,
"requires": {
"path-key": "^3.1.0",
@@ -17090,39 +18767,37 @@
}
},
"crypto-random-string": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz",
+ "integrity": "sha512-GsVpkFPlycH7/fRR7Dhcmnoii54gV1nz7y4CWyeFS14N+JVBBhY+r8amRHE4BwSYal7BPTDp8isvAlCxyFt3Hg=="
},
- "cycle": {
- "version": "1.0.3"
+ "csstype": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.0.tgz",
+ "integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA=="
},
- "dag-jose-utils": {
- "version": "0.1.1",
- "requires": {
- "cids": "^1.1.6",
- "ipld-dag-cbor": "^0.17.1",
- "multihashes": "^4.0.2",
- "uint8arrays": "^2.1.4",
- "varint": "^6.0.0"
- }
+ "cycle": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz",
+ "integrity": "sha512-TVF6svNzeQCOpjCqsy0/CSy8VgObG3wXusJ73xW2GbG5rGx7lC8zxDSURicsXI2UsGdi2L0QNRCi745/wUDvsA=="
},
"dashdash": {
"version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
+ "integrity": "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0"
}
},
- "data-uri-to-buffer": {
- "version": "4.0.0"
- },
"data-urls": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.1.tgz",
- "integrity": "sha512-Ds554NeT5Gennfoo9KN50Vh6tpgtvYEwraYjejXnyTpu1C7oXKxdFk75REooENHE8ndTVOJuv+BEs4/J/xcozw==",
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz",
+ "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==",
"requires": {
- "abab": "^2.0.3",
+ "abab": "^2.0.6",
"whatwg-mimetype": "^3.0.0",
- "whatwg-url": "^10.0.0"
+ "whatwg-url": "^11.0.0"
},
"dependencies": {
"tr46": {
@@ -17139,9 +18814,9 @@
"integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g=="
},
"whatwg-url": {
- "version": "10.0.0",
- "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-10.0.0.tgz",
- "integrity": "sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==",
+ "version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz",
+ "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==",
"requires": {
"tr46": "^3.0.0",
"webidl-conversions": "^7.0.0"
@@ -17151,139 +18826,149 @@
},
"date-fns": {
"version": "2.28.0",
+ "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-2.28.0.tgz",
+ "integrity": "sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==",
"dev": true
},
"debounce": {
- "version": "1.2.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/debounce/-/debounce-1.2.1.tgz",
+ "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug=="
},
"debug": {
- "version": "4.3.2",
+ "version": "4.3.4",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
+ "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
"requires": {
"ms": "2.1.2"
}
},
"decamelize": {
- "version": "4.0.0"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
+ "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==",
+ "dev": true
},
"decode-uri-component": {
- "version": "0.2.0"
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz",
+ "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og=="
},
"dedent": {
"version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz",
+ "integrity": "sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==",
"dev": true
},
"deep-equal": {
- "version": "0.1.2"
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-2.0.5.tgz",
+ "integrity": "sha512-nPiRgmbAtm1a3JsnLCf6/SLfXcjyN5v8L1TXzdCmHrXJ4hx+gW/w1YCcn7z8gJtSiDArZCgYtbao3QqLm/N1Sw==",
+ "requires": {
+ "call-bind": "^1.0.0",
+ "es-get-iterator": "^1.1.1",
+ "get-intrinsic": "^1.0.1",
+ "is-arguments": "^1.0.4",
+ "is-date-object": "^1.0.2",
+ "is-regex": "^1.1.1",
+ "isarray": "^2.0.5",
+ "object-is": "^1.1.4",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "regexp.prototype.flags": "^1.3.0",
+ "side-channel": "^1.0.3",
+ "which-boxed-primitive": "^1.0.1",
+ "which-collection": "^1.0.1",
+ "which-typed-array": "^1.1.2"
+ }
},
"deep-extend": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
"dev": true
},
"deep-is": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
"dev": true
},
"deepmerge": {
"version": "4.2.2",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz",
+ "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==",
+ "dev": true
+ },
+ "define-lazy-prop": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz",
+ "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==",
"dev": true
},
"define-properties": {
- "version": "1.1.3",
- "dev": true,
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz",
+ "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==",
"requires": {
- "object-keys": "^1.0.12"
+ "has-property-descriptors": "^1.0.0",
+ "object-keys": "^1.1.1"
}
},
"define-property": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz",
+ "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==",
"requires": {
"is-descriptor": "^1.0.2",
"isobject": "^3.0.1"
}
},
- "defined": {
- "version": "0.0.0"
- },
"delayed-stream": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
+ "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
"dev": true
},
"delegates": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
+ "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==",
"dev": true
},
- "delimit-stream": {
- "version": "0.1.0"
- },
"depd": {
- "version": "1.1.2"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
+ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="
},
"destroy": {
- "version": "1.0.4"
- },
- "did-jwt": {
- "version": "5.8.0",
- "requires": {
- "@stablelib/ed25519": "^1.0.2",
- "@stablelib/random": "^1.0.1",
- "@stablelib/sha256": "^1.0.1",
- "@stablelib/x25519": "^1.0.1",
- "@stablelib/xchacha20poly1305": "^1.0.1",
- "canonicalize": "^1.0.5",
- "did-resolver": "^3.1.1",
- "elliptic": "^6.5.4",
- "js-sha3": "^0.8.0",
- "multiformats": "^9.4.8",
- "uint8arrays": "^3.0.0"
- },
- "dependencies": {
- "uint8arrays": {
- "version": "3.0.0",
- "requires": {
- "multiformats": "^9.4.2"
- }
- }
- }
- },
- "did-resolver": {
- "version": "3.1.2"
- },
- "dids": {
- "version": "2.4.0",
- "requires": {
- "@stablelib/random": "^1.0.1",
- "cids": "^1.1.6",
- "dag-jose-utils": "^0.1.1",
- "did-jwt": "^5.6.1",
- "did-resolver": "^3.1.0",
- "query-string": "^7.0.0",
- "rpc-utils": "^0.3.4",
- "uint8arrays": "^2.1.5"
- },
- "dependencies": {
- "rpc-utils": {
- "version": "0.3.4",
- "requires": {
- "nanoid": "^3.1.21"
- }
- }
- }
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
+ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg=="
},
"diff": {
- "version": "5.0.0"
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz",
+ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w=="
},
"director": {
- "version": "1.2.7"
+ "version": "1.2.7",
+ "resolved": "https://registry.npmjs.org/director/-/director-1.2.7.tgz",
+ "integrity": "sha512-Cuia7IBvmSanM+7ZmKYtP9hq+Du7n7mv2cpCt8GiEIkUDni0ecSlVCFJUL6HWwGzqLX03uA49xVOZOjwnabWmQ=="
},
"doctrine": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
+ "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
"dev": true,
"requires": {
"esutils": "^2.0.2"
}
},
"dom-serializer": {
- "version": "1.3.2",
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz",
+ "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==",
"dev": true,
"requires": {
"domelementtype": "^2.0.1",
@@ -17293,16 +18978,22 @@
"dependencies": {
"entities": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz",
+ "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==",
"dev": true
}
}
},
"domelementtype": {
- "version": "2.2.0",
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
+ "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
"dev": true
},
"domhandler": {
- "version": "4.3.0",
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz",
+ "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==",
"dev": true,
"requires": {
"domelementtype": "^2.2.0"
@@ -17310,6 +19001,8 @@
},
"domutils": {
"version": "2.8.0",
+ "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz",
+ "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==",
"dev": true,
"requires": {
"dom-serializer": "^1.0.1",
@@ -17317,34 +19010,43 @@
"domhandler": "^4.2.0"
}
},
- "dot-case": {
- "version": "3.0.4",
- "requires": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
- },
"dot-prop": {
"version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.1.tgz",
+ "integrity": "sha512-l0p4+mIuJIua0mhxGoh4a+iNL9bmeK5DvnSVQa6T0OhrVmaEa1XScX5Etc673FePCJOArq/4Pa2cLGODUWTPOQ==",
"requires": {
"is-obj": "^1.0.0"
}
},
"dotenv": {
- "version": "8.6.0"
+ "version": "8.6.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.6.0.tgz",
+ "integrity": "sha512-IrPdXQsk2BbzvCBGBOTmmSH5SodmqZNt4ERAZDmW4CT+tL8VtvinqywuANaFu4bOMWki16nqf0e4oC0QIaDr/g=="
},
"duplexer": {
- "version": "0.1.2"
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.2.tgz",
+ "integrity": "sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg=="
},
"duplexer2": {
"version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
+ "integrity": "sha512-asLFVfWWtJ90ZyOUHMqk7/S2w2guQKxUI2itj3d92ADHhxUSbCMGi1f1cBcJ7xM1To+pE/Khbwo1yuNbMEPKeA==",
"dev": true,
"requires": {
"readable-stream": "^2.0.2"
},
"dependencies": {
+ "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.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -17358,6 +19060,8 @@
},
"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"
@@ -17367,6 +19071,8 @@
},
"ecc-jsbn": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
+ "integrity": "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw==",
"dev": true,
"requires": {
"jsbn": "~0.1.0",
@@ -17374,13 +19080,19 @@
}
},
"ee-first": {
- "version": "1.1.1"
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"electron-to-chromium": {
- "version": "1.4.43"
+ "version": "1.4.152",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.152.tgz",
+ "integrity": "sha512-jk4Ju5SGZAQQJ1iI4Rgru7dDlvkQPLpNPWH9gIZmwCD4YteA5Bbk1xPcPDUf5jUYs3e1e80RXdi8XgKQZaigeg=="
},
"elliptic": {
"version": "6.5.4",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz",
+ "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==",
"requires": {
"bn.js": "^4.11.9",
"brorand": "^1.1.0",
@@ -17389,28 +19101,50 @@
"inherits": "^2.0.4",
"minimalistic-assert": "^1.0.1",
"minimalistic-crypto-utils": "^1.0.1"
+ },
+ "dependencies": {
+ "bn.js": {
+ "version": "4.12.0",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz",
+ "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA=="
+ }
}
},
"email-addresses": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz",
+ "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==",
"dev": true
},
"emoji-regex": {
- "version": "8.0.0"
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
+ },
+ "enabled": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz",
+ "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="
},
"encodeurl": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
+ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w=="
},
"encoding": {
"version": "0.1.13",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz",
+ "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==",
+ "devOptional": true,
"requires": {
"iconv-lite": "^0.6.2"
},
"dependencies": {
"iconv-lite": {
"version": "0.6.3",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "devOptional": true,
"requires": {
"safer-buffer": ">= 2.1.2 < 3.0.0"
}
@@ -17418,10 +19152,14 @@
}
},
"encoding-japanese": {
- "version": "1.0.30"
+ "version": "1.0.30",
+ "resolved": "https://registry.npmjs.org/encoding-japanese/-/encoding-japanese-1.0.30.tgz",
+ "integrity": "sha512-bd/DFLAoJetvv7ar/KIpE3CNO8wEuyrt9Xuw6nSMiZ+Vrz/Q21BPsMHvARL2Wz6IKHKXgb+DWZqtRg1vql9cBg=="
},
"end-of-stream": {
"version": "1.4.4",
+ "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
+ "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
"dev": true,
"requires": {
"once": "^1.4.0"
@@ -17429,106 +19167,293 @@
},
"enquirer": {
"version": "2.3.6",
+ "resolved": "https://registry.npmjs.org/enquirer/-/enquirer-2.3.6.tgz",
+ "integrity": "sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==",
"dev": true,
"requires": {
"ansi-colors": "^4.1.1"
}
},
- "entities": {
- "version": "3.0.1",
- "dev": true
+ "entities": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz",
+ "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==",
+ "dev": true
+ },
+ "env-paths": {
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz",
+ "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==",
+ "dev": true
+ },
+ "error-ex": {
+ "version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz",
+ "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==",
+ "dev": true,
+ "requires": {
+ "is-arrayish": "^0.2.1"
+ },
+ "dependencies": {
+ "is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "dev": true
+ }
+ }
+ },
+ "es-abstract": {
+ "version": "1.20.1",
+ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz",
+ "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "es-to-primitive": "^1.2.1",
+ "function-bind": "^1.1.1",
+ "function.prototype.name": "^1.1.5",
+ "get-intrinsic": "^1.1.1",
+ "get-symbol-description": "^1.0.0",
+ "has": "^1.0.3",
+ "has-property-descriptors": "^1.0.0",
+ "has-symbols": "^1.0.3",
+ "internal-slot": "^1.0.3",
+ "is-callable": "^1.2.4",
+ "is-negative-zero": "^2.0.2",
+ "is-regex": "^1.1.4",
+ "is-shared-array-buffer": "^1.0.2",
+ "is-string": "^1.0.7",
+ "is-weakref": "^1.0.2",
+ "object-inspect": "^1.12.0",
+ "object-keys": "^1.1.1",
+ "object.assign": "^4.1.2",
+ "regexp.prototype.flags": "^1.4.3",
+ "string.prototype.trimend": "^1.0.5",
+ "string.prototype.trimstart": "^1.0.5",
+ "unbox-primitive": "^1.0.2"
+ }
+ },
+ "es-get-iterator": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/es-get-iterator/-/es-get-iterator-1.1.2.tgz",
+ "integrity": "sha512-+DTO8GYwbMCwbywjimwZMHp8AuYXOS2JZFWoi2AlPOS3ebnII9w/NLpNZtA7A0YLaVDw+O7KFCeoIV7OPvM7hQ==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.0",
+ "has-symbols": "^1.0.1",
+ "is-arguments": "^1.1.0",
+ "is-map": "^2.0.2",
+ "is-set": "^2.0.2",
+ "is-string": "^1.0.5",
+ "isarray": "^2.0.5"
+ }
+ },
+ "es-shim-unscopables": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz",
+ "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==",
+ "dev": true,
+ "requires": {
+ "has": "^1.0.3"
+ }
+ },
+ "es-to-primitive": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
+ "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
+ "requires": {
+ "is-callable": "^1.1.4",
+ "is-date-object": "^1.0.1",
+ "is-symbol": "^1.0.2"
+ }
+ },
+ "esbuild": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.43.tgz",
+ "integrity": "sha512-Uf94+kQmy/5jsFwKWiQB4hfo/RkM9Dh7b79p8yqd1tshULdr25G2szLz631NoH3s2ujnKEKVD16RmOxvCNKRFA==",
+ "dev": true,
+ "requires": {
+ "esbuild-android-64": "0.14.43",
+ "esbuild-android-arm64": "0.14.43",
+ "esbuild-darwin-64": "0.14.43",
+ "esbuild-darwin-arm64": "0.14.43",
+ "esbuild-freebsd-64": "0.14.43",
+ "esbuild-freebsd-arm64": "0.14.43",
+ "esbuild-linux-32": "0.14.43",
+ "esbuild-linux-64": "0.14.43",
+ "esbuild-linux-arm": "0.14.43",
+ "esbuild-linux-arm64": "0.14.43",
+ "esbuild-linux-mips64le": "0.14.43",
+ "esbuild-linux-ppc64le": "0.14.43",
+ "esbuild-linux-riscv64": "0.14.43",
+ "esbuild-linux-s390x": "0.14.43",
+ "esbuild-netbsd-64": "0.14.43",
+ "esbuild-openbsd-64": "0.14.43",
+ "esbuild-sunos-64": "0.14.43",
+ "esbuild-windows-32": "0.14.43",
+ "esbuild-windows-64": "0.14.43",
+ "esbuild-windows-arm64": "0.14.43"
+ }
+ },
+ "esbuild-android-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.43.tgz",
+ "integrity": "sha512-kqFXAS72K6cNrB6RiM7YJ5lNvmWRDSlpi7ZuRZ1hu1S3w0zlwcoCxWAyM23LQUyZSs1PbjHgdbbfYAN8IGh6xg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-android-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.43.tgz",
+ "integrity": "sha512-bKS2BBFh+7XZY9rpjiHGRNA7LvWYbZWP87pLehggTG7tTaCDvj8qQGOU/OZSjCSKDYbgY7Q+oDw8RlYQ2Jt2BA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.43.tgz",
+ "integrity": "sha512-/3PSilx011ttoieRGkSZ0XV8zjBf2C9enV4ScMMbCT4dpx0mFhMOpFnCHkOK0pWGB8LklykFyHrWk2z6DENVUg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-darwin-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.43.tgz",
+ "integrity": "sha512-1HyFUKs8DMCBOvw1Qxpr5Vv/ThNcVIFb5xgXWK3pyT40WPvgYIiRTwJCvNs4l8i5qWF8/CK5bQxJVDjQvtv0Yw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.43.tgz",
+ "integrity": "sha512-FNWc05TPHYgaXjbPZO5/rJKSBslfG6BeMSs8GhwnqAKP56eEhvmzwnIz1QcC9cRVyO+IKqWNfmHFkCa1WJTULA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-freebsd-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.43.tgz",
+ "integrity": "sha512-amrYopclz3VohqisOPR6hA3GOWA3LZC1WDLnp21RhNmoERmJ/vLnOpnrG2P/Zao+/erKTCUqmrCIPVtj58DRoA==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-32": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.43.tgz",
+ "integrity": "sha512-KoxoEra+9O3AKVvgDFvDkiuddCds6q71owSQEYwjtqRV7RwbPzKxJa6+uyzUulHcyGVq0g15K0oKG5CFBcvYDw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.43.tgz",
+ "integrity": "sha512-EwINwGMyiJMgBby5/SbMqKcUhS5AYAZ2CpEBzSowsJPNBJEdhkCTtEjk757TN/wxgbu3QklqDM6KghY660QCUw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.43.tgz",
+ "integrity": "sha512-e6YzQUoDxxtyamuF12eVzzRC7bbEFSZohJ6igQB9tBqnNmIQY3fI6Cns3z2wxtbZ3f2o6idkD2fQnlvs2902Dg==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.43.tgz",
+ "integrity": "sha512-UlSpjMWllAc70zYbHxWuDS3FJytyuR/gHJYBr8BICcTNb/TSOYVBg6U7b3jZ3mILTrgzwJUHwhEwK18FZDouUQ==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-linux-mips64le": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.43.tgz",
+ "integrity": "sha512-f+v8cInPEL1/SDP//CfSYzcDNgE4CY3xgDV81DWm3KAPWzhvxARrKxB1Pstf5mB56yAslJDxu7ryBUPX207EZA==",
+ "dev": true,
+ "optional": true
},
- "env-paths": {
- "version": "2.2.1",
- "dev": true
+ "esbuild-linux-ppc64le": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.43.tgz",
+ "integrity": "sha512-5wZYMDGAL/K2pqkdIsW+I4IR41kyfHr/QshJcNpUfK3RjB3VQcPWOaZmc+74rm4ZjVirYrtz+jWw0SgxtxRanA==",
+ "dev": true,
+ "optional": true
},
- "err-code": {
- "version": "3.0.1"
+ "esbuild-linux-riscv64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.43.tgz",
+ "integrity": "sha512-lYcAOUxp85hC7lSjycJUVSmj4/9oEfSyXjb/ua9bNl8afonaduuqtw7hvKMoKuYnVwOCDw4RSfKpcnIRDWq+Bw==",
+ "dev": true,
+ "optional": true
},
- "error-ex": {
- "version": "1.3.2",
+ "esbuild-linux-s390x": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.43.tgz",
+ "integrity": "sha512-27e43ZhHvhFE4nM7HqtUbMRu37I/4eNSUbb8FGZWszV+uLzMIsHDwLoBiJmw7G9N+hrehNPeQ4F5Ujad0DrUKQ==",
"dev": true,
- "requires": {
- "is-arrayish": "^0.2.1"
- }
+ "optional": true
},
- "errors-utils": {
- "version": "0.1.0"
+ "esbuild-netbsd-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.43.tgz",
+ "integrity": "sha512-2mH4QF6hHBn5zzAfxEI/2eBC0mspVsZ6UVo821LpAJKMvLJPBk3XJO5xwg7paDqSqpl7p6IRrAenW999AEfJhQ==",
+ "dev": true,
+ "optional": true
},
- "es-abstract": {
- "version": "1.19.1",
+ "esbuild-openbsd-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.43.tgz",
+ "integrity": "sha512-ZhQpiZjvqCqO8jKdGp9+8k9E/EHSA+zIWOg+grwZasI9RoblqJ1QiZqqi7jfd6ZrrG1UFBNGe4m0NFxCFbMVbg==",
"dev": true,
- "requires": {
- "call-bind": "^1.0.2",
- "es-to-primitive": "^1.2.1",
- "function-bind": "^1.1.1",
- "get-intrinsic": "^1.1.1",
- "get-symbol-description": "^1.0.0",
- "has": "^1.0.3",
- "has-symbols": "^1.0.2",
- "internal-slot": "^1.0.3",
- "is-callable": "^1.2.4",
- "is-negative-zero": "^2.0.1",
- "is-regex": "^1.1.4",
- "is-shared-array-buffer": "^1.0.1",
- "is-string": "^1.0.7",
- "is-weakref": "^1.0.1",
- "object-inspect": "^1.11.0",
- "object-keys": "^1.1.1",
- "object.assign": "^4.1.2",
- "string.prototype.trimend": "^1.0.4",
- "string.prototype.trimstart": "^1.0.4",
- "unbox-primitive": "^1.0.1"
- }
+ "optional": true
},
- "es-to-primitive": {
- "version": "1.2.1",
+ "esbuild-sunos-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.43.tgz",
+ "integrity": "sha512-DgxSi9DaHReL9gYuul2rrQCAapgnCJkh3LSHPKsY26zytYppG0HgkgVF80zjIlvEsUbGBP/GHQzBtrezj/Zq1Q==",
"dev": true,
- "requires": {
- "is-callable": "^1.1.4",
- "is-date-object": "^1.0.1",
- "is-symbol": "^1.0.2"
- }
+ "optional": true
},
- "esbuild": {
- "version": "0.13.8",
- "dev": true,
- "requires": {
- "esbuild-android-arm64": "0.13.8",
- "esbuild-darwin-64": "0.13.8",
- "esbuild-darwin-arm64": "0.13.8",
- "esbuild-freebsd-64": "0.13.8",
- "esbuild-freebsd-arm64": "0.13.8",
- "esbuild-linux-32": "0.13.8",
- "esbuild-linux-64": "0.13.8",
- "esbuild-linux-arm": "0.13.8",
- "esbuild-linux-arm64": "0.13.8",
- "esbuild-linux-mips64le": "0.13.8",
- "esbuild-linux-ppc64le": "0.13.8",
- "esbuild-netbsd-64": "0.13.8",
- "esbuild-openbsd-64": "0.13.8",
- "esbuild-sunos-64": "0.13.8",
- "esbuild-windows-32": "0.13.8",
- "esbuild-windows-64": "0.13.8",
- "esbuild-windows-arm64": "0.13.8"
- }
+ "esbuild-windows-32": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.43.tgz",
+ "integrity": "sha512-Ih3+2O5oExiqm0mY6YYE5dR0o8+AspccQ3vIAtRodwFvhuyGLjb0Hbmzun/F3Lw19nuhPMu3sW2fqIJ5xBxByw==",
+ "dev": true,
+ "optional": true
},
- "esbuild-linux-64": {
- "version": "0.13.8",
+ "esbuild-windows-64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.43.tgz",
+ "integrity": "sha512-8NsuNfI8xwFuJbrCuI+aBqNTYkrWErejFO5aYM+yHqyHuL8mmepLS9EPzAzk8rvfaJrhN0+RvKWAcymViHOKEw==",
+ "dev": true,
+ "optional": true
+ },
+ "esbuild-windows-arm64": {
+ "version": "0.14.43",
+ "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.43.tgz",
+ "integrity": "sha512-7ZlD7bo++kVRblJEoG+cepljkfP8bfuTPz5fIXzptwnPaFwGS6ahvfoYzY7WCf5v/1nX2X02HDraVItTgbHnKw==",
"dev": true,
"optional": true
},
"escalade": {
- "version": "3.1.1"
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
+ "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
},
"escape-html": {
- "version": "1.0.3"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"escape-string-regexp": {
- "version": "1.0.5"
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="
},
"escodegen": {
"version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.9.1.tgz",
+ "integrity": "sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q==",
"dev": true,
"requires": {
"esprima": "^3.1.3",
@@ -17540,10 +19465,14 @@
"dependencies": {
"esprima": {
"version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz",
+ "integrity": "sha512-AWwVMNxwhN8+NIPQzAQZCm7RkLC4RbM3B1OobMuyp3i+w73X57KCKaVIxaRZb+DYCojq7rspo+fmuQfAboyhFg==",
"dev": true
},
"levn": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
"dev": true,
"requires": {
"prelude-ls": "~1.1.2",
@@ -17552,6 +19481,8 @@
},
"optionator": {
"version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
"dev": true,
"requires": {
"deep-is": "~0.1.3",
@@ -17564,15 +19495,21 @@
},
"prelude-ls": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
"dev": true
},
"source-map": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"optional": true
},
"type-check": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
"dev": true,
"requires": {
"prelude-ls": "~1.1.2"
@@ -17582,6 +19519,8 @@
},
"eslint": {
"version": "7.32.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-7.32.0.tgz",
+ "integrity": "sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA==",
"dev": true,
"requires": {
"@babel/code-frame": "7.12.11",
@@ -17628,6 +19567,8 @@
"dependencies": {
"@babel/code-frame": {
"version": "7.12.11",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz",
+ "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==",
"dev": true,
"requires": {
"@babel/highlight": "^7.10.4"
@@ -17635,6 +19576,8 @@
},
"ajv": {
"version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -17645,6 +19588,8 @@
},
"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,
"requires": {
"color-convert": "^2.0.1"
@@ -17652,6 +19597,8 @@
},
"chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -17660,6 +19607,8 @@
},
"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,
"requires": {
"color-name": "~1.1.4"
@@ -17667,14 +19616,20 @@
},
"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
},
"escape-string-regexp": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
"dev": true
},
"globals": {
- "version": "13.11.0",
+ "version": "13.15.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz",
+ "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==",
"dev": true,
"requires": {
"type-fest": "^0.20.2"
@@ -17682,14 +19637,20 @@
},
"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
},
"json-schema-traverse": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
},
"semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -17697,6 +19658,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"
@@ -17706,20 +19669,28 @@
},
"eslint-config-mdcs": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/eslint-config-mdcs/-/eslint-config-mdcs-5.0.0.tgz",
+ "integrity": "sha512-d4lzeT/sQ3TkI69hd+N/dtQ15g3GrbIboTfCAw6FaDQTLjWK2O3+dNfOOfkAC5TlwyU9BxztR1TE+x8iSzyuPw==",
"dev": true
},
"eslint-config-semistandard": {
"version": "15.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-semistandard/-/eslint-config-semistandard-15.0.1.tgz",
+ "integrity": "sha512-sfV+qNBWKOmF0kZJll1VH5XqOAdTmLlhbOl9WKI11d2eMEe+Kicxnpm24PQWHOqAfk5pAWU2An0LjNCXKa4Usg==",
"dev": true,
"requires": {}
},
"eslint-config-standard": {
"version": "14.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-config-standard/-/eslint-config-standard-14.1.1.tgz",
+ "integrity": "sha512-Z9B+VR+JIXRxz21udPTL9HpFMyoMUEeX1G251EQ6e05WD9aPVtVBn09XUmZ259wCMlCDmYDSZG62Hhm+ZTJcUg==",
"dev": true,
"requires": {}
},
"eslint-import-resolver-node": {
"version": "0.3.6",
+ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz",
+ "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==",
"dev": true,
"requires": {
"debug": "^3.2.7",
@@ -17728,6 +19699,8 @@
"dependencies": {
"debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
@@ -17736,16 +19709,19 @@
}
},
"eslint-module-utils": {
- "version": "2.7.1",
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.3.tgz",
+ "integrity": "sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==",
"dev": true,
"requires": {
"debug": "^3.2.7",
- "find-up": "^2.1.0",
- "pkg-dir": "^2.0.0"
+ "find-up": "^2.1.0"
},
"dependencies": {
"debug": {
"version": "3.2.7",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz",
+ "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
@@ -17753,15 +19729,29 @@
}
}
},
+ "eslint-plugin-es": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz",
+ "integrity": "sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==",
+ "dev": true,
+ "requires": {
+ "eslint-utils": "^2.0.0",
+ "regexpp": "^3.0.0"
+ }
+ },
"eslint-plugin-html": {
"version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-html/-/eslint-plugin-html-6.2.0.tgz",
+ "integrity": "sha512-vi3NW0E8AJombTvt8beMwkL1R/fdRWl4QSNRNMhVQKWm36/X0KF0unGNAY4mqUF06mnwVWZcIcerrCnfn9025g==",
"dev": true,
"requires": {
"htmlparser2": "^7.1.2"
}
},
"eslint-plugin-import": {
- "version": "2.25.2",
+ "version": "2.26.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz",
+ "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==",
"dev": true,
"requires": {
"array-includes": "^3.1.4",
@@ -17769,18 +19759,20 @@
"debug": "^2.6.9",
"doctrine": "^2.1.0",
"eslint-import-resolver-node": "^0.3.6",
- "eslint-module-utils": "^2.7.0",
+ "eslint-module-utils": "^2.7.3",
"has": "^1.0.3",
- "is-core-module": "^2.7.0",
+ "is-core-module": "^2.8.1",
"is-glob": "^4.0.3",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.2",
"object.values": "^1.1.5",
- "resolve": "^1.20.0",
- "tsconfig-paths": "^3.11.0"
+ "resolve": "^1.22.0",
+ "tsconfig-paths": "^3.14.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
@@ -17788,6 +19780,8 @@
},
"doctrine": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz",
+ "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==",
"dev": true,
"requires": {
"esutils": "^2.0.2"
@@ -17795,12 +19789,16 @@
},
"ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"dev": true
}
}
},
"eslint-plugin-node": {
"version": "11.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz",
+ "integrity": "sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==",
"dev": true,
"requires": {
"eslint-plugin-es": "^3.0.0",
@@ -17811,31 +19809,31 @@
"semver": "^6.1.0"
},
"dependencies": {
- "eslint-plugin-es": {
- "version": "3.0.1",
- "dev": true,
- "requires": {
- "eslint-utils": "^2.0.0",
- "regexpp": "^3.0.0"
- }
- },
"ignore": {
- "version": "5.1.8",
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz",
+ "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==",
"dev": true
}
}
},
"eslint-plugin-promise": {
"version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.3.1.tgz",
+ "integrity": "sha512-bY2sGqyptzFBDLh/GMbAxfdJC+b0f23ME63FOE4+Jao0oZ3E1LEwFtWJX/1pGMJLiTtrSSern2CRM/g+dfc0eQ==",
"dev": true
},
"eslint-plugin-standard": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-plugin-standard/-/eslint-plugin-standard-4.1.0.tgz",
+ "integrity": "sha512-ZL7+QRixjTR6/528YNGyDotyffm5OQst/sGxKDwGb9Uqs4In5Egi4+jbobhqJoyoCM6/7v/1A5fhQ7ScMtDjaQ==",
"dev": true,
"requires": {}
},
"eslint-scope": {
"version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
+ "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
"dev": true,
"requires": {
"esrecurse": "^4.3.0",
@@ -17844,6 +19842,8 @@
},
"eslint-utils": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz",
+ "integrity": "sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==",
"dev": true,
"requires": {
"eslint-visitor-keys": "^1.1.0"
@@ -17851,16 +19851,22 @@
"dependencies": {
"eslint-visitor-keys": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"dev": true
}
}
},
"eslint-visitor-keys": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz",
+ "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==",
"dev": true
},
"espree": {
"version": "7.3.1",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-7.3.1.tgz",
+ "integrity": "sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g==",
"dev": true,
"requires": {
"acorn": "^7.4.0",
@@ -17870,94 +19876,116 @@
"dependencies": {
"eslint-visitor-keys": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
+ "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
"dev": true
}
}
},
"esprima": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
"dev": true
},
"esquery": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz",
+ "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==",
"dev": true,
"requires": {
"estraverse": "^5.1.0"
},
"dependencies": {
"estraverse": {
- "version": "5.2.0",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true
}
}
},
"esrecurse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
"dev": true,
"requires": {
"estraverse": "^5.2.0"
},
"dependencies": {
"estraverse": {
- "version": "5.2.0",
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
"dev": true
}
}
},
"estraverse": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
+ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
"dev": true
},
"estree-walker": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
"dev": true
},
"esutils": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
"dev": true
},
"etag": {
- "version": "1.8.1"
+ "version": "1.8.1",
+ "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
+ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg=="
},
"ethers": {
- "version": "5.6.4",
- "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.4.tgz",
- "integrity": "sha512-62UIfxAQXdf67TeeOaoOoPctm5hUlYgfd0iW3wxfj7qRYKDcvvy0f+sJ3W2/Pyx77R8dblvejA8jokj+lS+ATQ==",
- "requires": {
- "@ethersproject/abi": "5.6.1",
- "@ethersproject/abstract-provider": "5.6.0",
- "@ethersproject/abstract-signer": "5.6.0",
- "@ethersproject/address": "5.6.0",
- "@ethersproject/base64": "5.6.0",
- "@ethersproject/basex": "5.6.0",
- "@ethersproject/bignumber": "5.6.0",
+ "version": "5.6.8",
+ "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.6.8.tgz",
+ "integrity": "sha512-YxIGaltAOdvBFPZwIkyHnXbW40f1r8mHUgapW6dxkO+6t7H6wY8POUn0Kbxrd/N7I4hHxyi7YCddMAH/wmho2w==",
+ "requires": {
+ "@ethersproject/abi": "5.6.3",
+ "@ethersproject/abstract-provider": "5.6.1",
+ "@ethersproject/abstract-signer": "5.6.2",
+ "@ethersproject/address": "5.6.1",
+ "@ethersproject/base64": "5.6.1",
+ "@ethersproject/basex": "5.6.1",
+ "@ethersproject/bignumber": "5.6.2",
"@ethersproject/bytes": "5.6.1",
- "@ethersproject/constants": "5.6.0",
- "@ethersproject/contracts": "5.6.0",
- "@ethersproject/hash": "5.6.0",
- "@ethersproject/hdnode": "5.6.0",
- "@ethersproject/json-wallets": "5.6.0",
- "@ethersproject/keccak256": "5.6.0",
+ "@ethersproject/constants": "5.6.1",
+ "@ethersproject/contracts": "5.6.2",
+ "@ethersproject/hash": "5.6.1",
+ "@ethersproject/hdnode": "5.6.2",
+ "@ethersproject/json-wallets": "5.6.1",
+ "@ethersproject/keccak256": "5.6.1",
"@ethersproject/logger": "5.6.0",
- "@ethersproject/networks": "5.6.2",
- "@ethersproject/pbkdf2": "5.6.0",
+ "@ethersproject/networks": "5.6.3",
+ "@ethersproject/pbkdf2": "5.6.1",
"@ethersproject/properties": "5.6.0",
- "@ethersproject/providers": "5.6.4",
- "@ethersproject/random": "5.6.0",
- "@ethersproject/rlp": "5.6.0",
- "@ethersproject/sha2": "5.6.0",
- "@ethersproject/signing-key": "5.6.0",
- "@ethersproject/solidity": "5.6.0",
- "@ethersproject/strings": "5.6.0",
- "@ethersproject/transactions": "5.6.0",
- "@ethersproject/units": "5.6.0",
- "@ethersproject/wallet": "5.6.0",
- "@ethersproject/web": "5.6.0",
- "@ethersproject/wordlists": "5.6.0"
+ "@ethersproject/providers": "5.6.8",
+ "@ethersproject/random": "5.6.1",
+ "@ethersproject/rlp": "5.6.1",
+ "@ethersproject/sha2": "5.6.1",
+ "@ethersproject/signing-key": "5.6.2",
+ "@ethersproject/solidity": "5.6.1",
+ "@ethersproject/strings": "5.6.1",
+ "@ethersproject/transactions": "5.6.2",
+ "@ethersproject/units": "5.6.1",
+ "@ethersproject/wallet": "5.6.2",
+ "@ethersproject/web": "5.6.1",
+ "@ethersproject/wordlists": "5.6.1"
}
},
"event-stream": {
"version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.3.4.tgz",
+ "integrity": "sha512-QHpkERcGsR0T7Qm3HNJSyXKEEj8AHNxkY3PK8TS2KJvQ7NiSHe3DDpwVKKtoYprL/AreyzFBeIkBIWChAqn60g==",
"requires": {
"duplexer": "~0.1.1",
"from": "~0",
@@ -17970,6 +19998,8 @@
"dependencies": {
"split": {
"version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz",
+ "integrity": "sha512-wD2AeVmxXRBoX44wAycgjVpMhvbwdI2aZjCkvfNcH1YqHQvJVa1duWc73OyVGJUc05fhFaTZeQ/PYsrmyH0JVA==",
"requires": {
"through": "2"
}
@@ -17977,10 +20007,14 @@
}
},
"eventemitter2": {
- "version": "6.4.4"
+ "version": "6.4.4",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-6.4.4.tgz",
+ "integrity": "sha512-HLU3NDY6wARrLCEwyGKRBvuWYyvW6mHYv72SJJAH3iJN3a6eVUvkjFkcxah1bcTgGVBBrFdIopBJPhCQFMLyXw=="
},
"execa": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz",
+ "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==",
"dev": true,
"requires": {
"cross-spawn": "^7.0.0",
@@ -17996,6 +20030,8 @@
},
"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==",
"requires": {
"debug": "^2.3.3",
"define-property": "^0.2.5",
@@ -18008,30 +20044,40 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"define-property": {
"version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"requires": {
"is-descriptor": "^0.1.0"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"is-descriptor": {
"version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"requires": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -18039,45 +20085,52 @@
},
"dependencies": {
"kind-of": {
- "version": "5.1.0"
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
}
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"express": {
- "version": "4.17.1",
+ "version": "4.18.1",
+ "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz",
+ "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==",
"requires": {
- "accepts": "~1.3.7",
+ "accepts": "~1.3.8",
"array-flatten": "1.1.1",
- "body-parser": "1.19.0",
- "content-disposition": "0.5.3",
+ "body-parser": "1.20.0",
+ "content-disposition": "0.5.4",
"content-type": "~1.0.4",
- "cookie": "0.4.0",
+ "cookie": "0.5.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
- "depd": "~1.1.2",
+ "depd": "2.0.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
- "finalhandler": "~1.1.2",
+ "finalhandler": "1.2.0",
"fresh": "0.5.2",
+ "http-errors": "2.0.0",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
- "proxy-addr": "~2.0.5",
- "qs": "6.7.0",
+ "proxy-addr": "~2.0.7",
+ "qs": "6.10.3",
"range-parser": "~1.2.1",
- "safe-buffer": "5.1.2",
- "send": "0.17.1",
- "serve-static": "1.14.1",
- "setprototypeof": "1.1.1",
- "statuses": "~1.5.0",
+ "safe-buffer": "5.2.1",
+ "send": "0.18.0",
+ "serve-static": "1.15.0",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
@@ -18085,27 +20138,42 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
+ },
+ "safe-buffer": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"extend": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
+ "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
"dev": true
},
"extend-shallow": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz",
+ "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==",
"requires": {
"is-extendable": "^0.1.0"
}
},
"extglob": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz",
+ "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==",
"requires": {
"array-unique": "^0.3.2",
"define-property": "^1.0.0",
@@ -18119,6 +20187,8 @@
"dependencies": {
"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==",
"requires": {
"is-descriptor": "^1.0.0"
}
@@ -18127,67 +20197,72 @@
},
"extsprintf": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
+ "integrity": "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g==",
"dev": true
},
"eyes": {
- "version": "0.1.8"
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz",
+ "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ=="
},
"falafel": {
- "version": "2.2.4",
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/falafel/-/falafel-2.2.5.tgz",
+ "integrity": "sha512-HuC1qF9iTnHDnML9YZAdCDQwT0yKl/U55K4XSUXqGAA2GLoafFgWRqdAbhWJxXaYD4pyoVxAJ8wH670jMpI9DQ==",
"dev": true,
"requires": {
"acorn": "^7.1.1",
- "foreach": "^2.0.5",
- "isarray": "^2.0.1",
- "object-keys": "^1.0.6"
- },
- "dependencies": {
- "isarray": {
- "version": "2.0.5",
- "dev": true
- }
+ "isarray": "^2.0.1"
}
},
"fast-deep-equal": {
- "version": "3.1.3"
- },
- "fast-json-patch": {
- "version": "2.2.1",
- "requires": {
- "fast-deep-equal": "^2.0.1"
- },
- "dependencies": {
- "fast-deep-equal": {
- "version": "2.0.1"
- }
- }
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
},
"fast-json-stable-stringify": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "dev": true
},
"fast-levenshtein": {
"version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
"dev": true
},
- "fetch-blob": {
- "version": "3.1.3",
- "requires": {
- "web-streams-polyfill": "^3.0.3"
- }
+ "fecha": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz",
+ "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw=="
},
"file-entry-cache": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz",
+ "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==",
"dev": true,
"requires": {
"flat-cache": "^3.0.4"
}
},
+ "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==",
+ "optional": true
+ },
"filename-reserved-regex": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz",
+ "integrity": "sha512-lc1bnsSr4L4Bdif8Xb/qrtokGbq5zlsms/CYH8PP+WtCkGNF65DPiQY8vG3SakEdRn8Dlnm+gW/qWKKjS5sZzQ==",
"dev": true
},
"filenamify": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.3.0.tgz",
+ "integrity": "sha512-hcFKyUG57yWGAzu1CMt/dPzYZuv+jAJUT85bL8mrXvNe6hWj6yEHEc4EdcgiA6Z3oi1/9wXJdZPXF2dZNgwgOg==",
"dev": true,
"requires": {
"filename-reserved-regex": "^2.0.0",
@@ -18197,10 +20272,14 @@
},
"filesize": {
"version": "6.4.0",
+ "resolved": "https://registry.npmjs.org/filesize/-/filesize-6.4.0.tgz",
+ "integrity": "sha512-mjFIpOHC4jbfcTfoh4rkWpI31mF7viw9ikj/JyLoKzqlwG/YsefKfvYlYhdYdg/9mtK2z1AzgN/0LvVQ3zdlSQ==",
"dev": true
},
"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==",
"requires": {
"extend-shallow": "^2.0.1",
"is-number": "^3.0.0",
@@ -18208,34 +20287,39 @@
"to-regex-range": "^2.1.0"
}
},
- "filter-obj": {
- "version": "1.1.0"
- },
"finalhandler": {
- "version": "1.1.2",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz",
+ "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==",
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
- "on-finished": "~2.3.0",
+ "on-finished": "2.4.1",
"parseurl": "~1.3.3",
- "statuses": "~1.5.0",
+ "statuses": "2.0.1",
"unpipe": "~1.0.0"
},
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"find-cache-dir": {
"version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz",
+ "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==",
"dev": true,
"requires": {
"commondir": "^1.0.1",
@@ -18243,61 +20327,21 @@
"pkg-dir": "^4.1.0"
},
"dependencies": {
- "find-up": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "locate-path": "^5.0.0",
- "path-exists": "^4.0.0"
- }
- },
- "locate-path": {
- "version": "5.0.0",
- "dev": true,
- "requires": {
- "p-locate": "^4.1.0"
- }
- },
"make-dir": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
+ "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
"dev": true,
"requires": {
"semver": "^6.0.0"
}
- },
- "p-limit": {
- "version": "2.3.0",
- "dev": true,
- "requires": {
- "p-try": "^2.0.0"
- }
- },
- "p-locate": {
- "version": "4.1.0",
- "dev": true,
- "requires": {
- "p-limit": "^2.2.0"
- }
- },
- "p-try": {
- "version": "2.2.0",
- "dev": true
- },
- "path-exists": {
- "version": "4.0.0",
- "dev": true
- },
- "pkg-dir": {
- "version": "4.2.0",
- "dev": true,
- "requires": {
- "find-up": "^4.0.0"
- }
}
}
},
"find-replace": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-1.0.3.tgz",
+ "integrity": "sha512-KrUnjzDCD9426YnCP56zGYy/eieTnhtK6Vn++j+JJzmlsWWwEkDnsyVF575spT6HJ6Ow9tlbT3TQTDsa+O4UWA==",
"dev": true,
"requires": {
"array-back": "^1.0.4",
@@ -18306,6 +20350,8 @@
"dependencies": {
"array-back": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
+ "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
"dev": true,
"requires": {
"typical": "^2.6.0"
@@ -18315,16 +20361,22 @@
},
"find-up": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz",
+ "integrity": "sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==",
"dev": true,
"requires": {
"locate-path": "^2.0.0"
}
},
"flat": {
- "version": "5.0.2"
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz",
+ "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ=="
},
"flat-cache": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz",
+ "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==",
"dev": true,
"requires": {
"flatted": "^3.1.0",
@@ -18333,6 +20385,8 @@
},
"flatiron": {
"version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/flatiron/-/flatiron-0.4.3.tgz",
+ "integrity": "sha512-+X3/0hl9in0FJPsPB5/xTpkxxMzDSoA4cyon46HtXhrfEbpqBvKxpR+HJGqMjKv4jcBmoLjEtTVIAADJjLjv8A==",
"requires": {
"broadway": "~0.3.2",
"director": "1.2.7",
@@ -18341,26 +20395,43 @@
}
},
"flatted": {
- "version": "3.2.2",
+ "version": "3.2.5",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.5.tgz",
+ "integrity": "sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==",
"dev": true
},
+ "fn.name": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz",
+ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="
+ },
"follow-redirects": {
- "version": "1.14.4"
+ "version": "1.15.1",
+ "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz",
+ "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA=="
},
- "for-in": {
- "version": "1.0.2"
+ "for-each": {
+ "version": "0.3.3",
+ "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
+ "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==",
+ "requires": {
+ "is-callable": "^1.1.3"
+ }
},
- "foreach": {
- "version": "2.0.5",
- "dev": true
+ "for-in": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz",
+ "integrity": "sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ=="
},
"forever": {
- "version": "4.0.1",
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/forever/-/forever-4.0.3.tgz",
+ "integrity": "sha512-N8aVtvB3bdh3lXPE9Rb+ErISSnJsAkv0GgZ0h6qtN8UXFgcSqJNMyBst9r3SBNk6+n4iBVaZso16mr1SUVvG3Q==",
"requires": {
"async": "^1.5.2",
"cliff": "^0.1.10",
"clone": "^2.1.2",
- "colors": "^0.6.2",
+ "colors": "0.6.2",
"configstore": "4.0.0",
"eventemitter2": "6.4.4",
"flatiron": "~0.4.3",
@@ -18368,22 +20439,28 @@
"mkdirp": "^0.5.5",
"nssocket": "^0.6.0",
"object-assign": "^4.1.1",
- "prettyjson": "^1.2.1",
+ "prettyjson": "^1.2.2",
"shush": "^1.0.0",
- "winston": "~0.8.1"
+ "winston": "^3.4.0"
},
"dependencies": {
"colors": {
- "version": "0.6.2"
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw=="
}
}
},
"forever-agent": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
+ "integrity": "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw==",
"dev": true
},
"forever-monitor": {
"version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/forever-monitor/-/forever-monitor-3.0.3.tgz",
+ "integrity": "sha512-7YGDo0UlbMy++6G3lzncWISDaT5CVp+yPVAkZ7FDFF0ec+0HKgBOWOhPGKpMF0hjcm3Ps/HbtrETrQLYREZ7YQ==",
"requires": {
"async": "^1.5.2",
"chokidar": "^2.1.8",
@@ -18394,6 +20471,8 @@
},
"form-data": {
"version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
+ "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
"dev": true,
"requires": {
"asynckit": "^0.4.0",
@@ -18401,29 +20480,33 @@
"mime-types": "^2.1.12"
}
},
- "formdata-polyfill": {
- "version": "4.0.10",
- "requires": {
- "fetch-blob": "^3.1.2"
- }
- },
"forwarded": {
- "version": "0.2.0"
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
+ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow=="
},
"fragment-cache": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz",
+ "integrity": "sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==",
"requires": {
"map-cache": "^0.2.2"
}
},
"fresh": {
- "version": "0.5.2"
+ "version": "0.5.2",
+ "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
+ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q=="
},
"from": {
- "version": "0.1.7"
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/from/-/from-0.1.7.tgz",
+ "integrity": "sha512-twe20eF1OxVxp/ML/kq2p1uc6KvFK/+vs8WjEbeKmV2He22MKm7YF2ANIt+EOqhJ5L3K/SuuPhk0hWQDjOM23g=="
},
"fs-extra": {
"version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
+ "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
"dev": true,
"requires": {
"graceful-fs": "^4.2.0",
@@ -18433,24 +20516,59 @@
},
"fs-minipass": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
+ "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
}
},
"fs.realpath": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
+ },
+ "fsevents": {
+ "version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz",
+ "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==",
+ "optional": true,
+ "requires": {
+ "bindings": "^1.5.0",
+ "nan": "^2.12.1"
+ }
},
"function-bind": {
"version": "1.1.1",
- "dev": true
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
+ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
+ },
+ "function.prototype.name": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz",
+ "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "es-abstract": "^1.19.0",
+ "functions-have-names": "^1.2.2"
+ }
},
"functional-red-black-tree": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
+ "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
"dev": true
},
+ "functions-have-names": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz",
+ "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ=="
+ },
"gauge": {
"version": "2.7.4",
+ "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
+ "integrity": "sha512-14x4kjc6lkD3ltw589k0NrPD6cCNTD6CWoVUNpB85+DrtONoZn+Rug6xZU5RvSC4+TZPxA5AnBibQYAvZn41Hg==",
"dev": true,
"requires": {
"aproba": "^1.0.3",
@@ -18465,10 +20583,14 @@
"dependencies": {
"ansi-regex": {
"version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
+ "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==",
"dev": true
},
"is-fullwidth-code-point": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
+ "integrity": "sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw==",
"dev": true,
"requires": {
"number-is-nan": "^1.0.0"
@@ -18476,6 +20598,8 @@
},
"string-width": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
+ "integrity": "sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw==",
"dev": true,
"requires": {
"code-point-at": "^1.0.0",
@@ -18485,6 +20609,8 @@
},
"strip-ansi": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
+ "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
@@ -18493,26 +20619,36 @@
}
},
"gensync": {
- "version": "1.0.0-beta.2"
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg=="
},
"get-caller-file": {
- "version": "2.0.5"
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz",
+ "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==",
+ "dev": true
},
"get-intrinsic": {
- "version": "1.1.1",
- "dev": true,
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz",
+ "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==",
"requires": {
"function-bind": "^1.1.1",
"has": "^1.0.3",
- "has-symbols": "^1.0.1"
+ "has-symbols": "^1.0.3"
}
},
"get-own-enumerable-property-symbols": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz",
+ "integrity": "sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==",
"dev": true
},
"get-stream": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz",
+ "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==",
"dev": true,
"requires": {
"pump": "^3.0.0"
@@ -18520,17 +20656,22 @@
},
"get-symbol-description": {
"version": "1.0.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz",
+ "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==",
"requires": {
"call-bind": "^1.0.2",
"get-intrinsic": "^1.1.1"
}
},
"get-value": {
- "version": "2.0.6"
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="
},
"getpass": {
"version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
+ "integrity": "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0"
@@ -18538,6 +20679,8 @@
},
"gh-pages": {
"version": "3.2.3",
+ "resolved": "https://registry.npmjs.org/gh-pages/-/gh-pages-3.2.3.tgz",
+ "integrity": "sha512-jA1PbapQ1jqzacECfjUaO9gV8uBgU6XNMV0oXLtfCX3haGLe5Atq8BxlrADhbD6/UdG9j6tZLWAkAybndOXTJg==",
"dev": true,
"requires": {
"async": "^2.6.1",
@@ -18550,7 +20693,9 @@
},
"dependencies": {
"async": {
- "version": "2.6.3",
+ "version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
+ "integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
"dev": true,
"requires": {
"lodash": "^4.17.14"
@@ -18559,27 +20704,35 @@
}
},
"glob": {
- "version": "7.2.0",
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
"inherits": "2",
- "minimatch": "^3.0.4",
+ "minimatch": "^3.1.1",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
}
},
"glob-parent": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"requires": {
"is-glob": "^4.0.1"
}
},
"globals": {
- "version": "11.12.0"
+ "version": "11.12.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz",
+ "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA=="
},
"globby": {
"version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz",
+ "integrity": "sha512-KVbFv2TQtbzCoxAnfD6JcHZTYCzyliEaaeM/gH8qQdkKr5s0OP9scEgvdcngyk7AVdY6YVW/TJHd+lQ/Df3Daw==",
"dev": true,
"requires": {
"array-union": "^1.0.1",
@@ -18591,28 +20744,40 @@
"dependencies": {
"pify": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
"dev": true
}
}
},
"gpt-3-encoder": {
- "version": "1.1.3"
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/gpt-3-encoder/-/gpt-3-encoder-1.1.3.tgz",
+ "integrity": "sha512-Ep1+I5hQ5VcLF5qKc2FyqvSj2T0Al9LNC0uXNq6Cx0Twl6Gq2RWG7Q5Mo/9Of30xcAegsgemNtuulPEiwanUww=="
},
"graceful-fs": {
- "version": "4.2.8"
+ "version": "4.2.10",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
+ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
},
"graphql": {
"version": "0.11.7",
+ "resolved": "https://registry.npmjs.org/graphql/-/graphql-0.11.7.tgz",
+ "integrity": "sha512-x7uDjyz8Jx+QPbpCFCMQ8lltnQa4p4vSYHx6ADe8rVYRTdsyhCJbvSty5DAsLVmU6cGakl+r8HQYolKHxk/tiw==",
"dev": true,
"requires": {
"iterall": "1.1.3"
}
},
"growl": {
- "version": "1.10.5"
+ "version": "1.10.5",
+ "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
+ "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA=="
},
"gzip-size": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/gzip-size/-/gzip-size-6.0.0.tgz",
+ "integrity": "sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==",
"dev": true,
"requires": {
"duplexer": "^0.1.2"
@@ -18620,10 +20785,14 @@
},
"har-schema": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
+ "integrity": "sha512-Oqluz6zhGX8cyRaTQlFMPw80bSJVG2x/cFb8ZPhUILGgHka9SsokCCOQgpveePerqidZOrT14ipqfJb7ILcW5Q==",
"dev": true
},
"har-validator": {
"version": "5.1.5",
+ "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
+ "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
"dev": true,
"requires": {
"ajv": "^6.12.3",
@@ -18632,6 +20801,8 @@
"dependencies": {
"ajv": {
"version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
"dev": true,
"requires": {
"fast-deep-equal": "^3.1.1",
@@ -18642,41 +20813,61 @@
},
"json-schema-traverse": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
"dev": true
}
}
},
"has": {
"version": "1.0.3",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
+ "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
"requires": {
"function-bind": "^1.1.1"
}
},
"has-bigints": {
- "version": "1.0.1",
- "dev": true
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz",
+ "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ=="
},
"has-flag": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw=="
+ },
+ "has-property-descriptors": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz",
+ "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==",
+ "requires": {
+ "get-intrinsic": "^1.1.1"
+ }
},
"has-symbols": {
- "version": "1.0.2",
- "dev": true
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
+ "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A=="
},
"has-tostringtag": {
"version": "1.0.0",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz",
+ "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==",
"requires": {
"has-symbols": "^1.0.2"
}
},
"has-unicode": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
+ "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==",
"dev": true
},
"has-value": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz",
+ "integrity": "sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==",
"requires": {
"get-value": "^2.0.6",
"has-values": "^1.0.0",
@@ -18685,6 +20876,8 @@
},
"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==",
"requires": {
"is-number": "^3.0.0",
"kind-of": "^4.0.0"
@@ -18692,6 +20885,8 @@
"dependencies": {
"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==",
"requires": {
"is-buffer": "^1.1.5"
}
@@ -18700,23 +20895,22 @@
},
"hash.js": {
"version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
"requires": {
"inherits": "^2.0.3",
"minimalistic-assert": "^1.0.1"
}
},
"he": {
- "version": "1.2.0"
- },
- "header-case": {
- "version": "2.0.4",
- "requires": {
- "capital-case": "^1.0.4",
- "tslib": "^2.0.3"
- }
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
+ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="
},
"hmac-drbg": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
"requires": {
"hash.js": "^1.0.3",
"minimalistic-assert": "^1.0.0",
@@ -18725,6 +20919,8 @@
},
"hosted-git-info": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
+ "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -18732,6 +20928,8 @@
},
"htmlparser2": {
"version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz",
+ "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==",
"dev": true,
"requires": {
"domelementtype": "^2.0.1",
@@ -18742,25 +20940,26 @@
},
"http-cache-semantics": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz",
+ "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==",
"dev": true
},
"http-errors": {
- "version": "1.7.2",
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
+ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
"requires": {
- "depd": "~1.1.2",
- "inherits": "2.0.3",
- "setprototypeof": "1.1.1",
- "statuses": ">= 1.5.0 < 2",
- "toidentifier": "1.0.0"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.3"
- }
+ "depd": "2.0.0",
+ "inherits": "2.0.4",
+ "setprototypeof": "1.2.0",
+ "statuses": "2.0.1",
+ "toidentifier": "1.0.1"
}
},
"http-proxy-agent": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz",
+ "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==",
"dev": true,
"requires": {
"@tootallnate/once": "1",
@@ -18770,6 +20969,8 @@
},
"http-signature": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
+ "integrity": "sha512-CAbnr6Rz4CYQkLYUtSNXxQPUH2gK8f3iWexVlsnMeD+GjlsQ0Xsy1cOX+mN3dtxYomRy21CiOzU8Uhw6OwncEQ==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
@@ -18778,7 +20979,9 @@
}
},
"https-proxy-agent": {
- "version": "5.0.0",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz",
+ "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==",
"dev": true,
"requires": {
"agent-base": "6",
@@ -18787,33 +20990,42 @@
},
"human-signals": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz",
+ "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==",
"dev": true
},
"humanize-ms": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz",
+ "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==",
"dev": true,
"requires": {
"ms": "^2.0.0"
}
},
"i": {
- "version": "0.3.7"
+ "version": "0.3.7",
+ "resolved": "https://registry.npmjs.org/i/-/i-0.3.7.tgz",
+ "integrity": "sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q=="
},
"iconv-lite": {
"version": "0.4.24",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
+ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
- "ieee754": {
- "version": "1.2.1"
- },
"ignore": {
"version": "4.0.6",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
+ "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
"dev": true
},
"ignore-walk": {
"version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.4.tgz",
+ "integrity": "sha512-PY6Ii8o1jMRA1z4F2hRkH/xN59ox43DavKvD3oDpfurRlOJyAHpifIwpbdv1n4jt4ov0jSpw3kQ4GhJnpBL6WQ==",
"dev": true,
"requires": {
"minimatch": "^3.0.4"
@@ -18821,6 +21033,8 @@
},
"import-fresh": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
+ "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
"dev": true,
"requires": {
"parent-module": "^1.0.0",
@@ -18828,32 +21042,45 @@
}
},
"imurmurhash": {
- "version": "0.1.4"
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="
},
"indent-string": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz",
+ "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==",
"dev": true
},
"infer-owner": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz",
+ "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==",
"dev": true
},
"inflight": {
"version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"requires": {
"once": "^1.3.0",
"wrappy": "1"
}
},
"inherits": {
- "version": "2.0.4"
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"ini": {
- "version": "1.3.8"
+ "version": "1.3.8",
+ "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
+ "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="
},
"internal-slot": {
"version": "1.0.3",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz",
+ "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==",
"requires": {
"get-intrinsic": "^1.1.0",
"has": "^1.0.3",
@@ -18862,104 +21089,98 @@
},
"invert-kv": {
"version": "2.0.0",
- "dev": true
- },
- "ip": {
- "version": "1.1.5",
- "dev": true
- },
- "ipaddr.js": {
- "version": "1.9.1"
- },
- "ipld-dag-cbor": {
- "version": "0.17.1",
- "requires": {
- "borc": "^2.1.2",
- "cids": "^1.0.0",
- "is-circular": "^1.0.2",
- "multicodec": "^3.0.1",
- "multihashing-async": "^2.0.0",
- "uint8arrays": "^2.1.3"
- },
- "dependencies": {
- "borc": {
- "version": "2.1.2",
- "requires": {
- "bignumber.js": "^9.0.0",
- "buffer": "^5.5.0",
- "commander": "^2.15.0",
- "ieee754": "^1.1.13",
- "iso-url": "~0.4.7",
- "json-text-sequence": "~0.1.0",
- "readable-stream": "^3.6.0"
- }
- },
- "buffer": {
- "version": "5.7.1",
- "requires": {
- "base64-js": "^1.3.1",
- "ieee754": "^1.1.13"
- }
- },
- "iso-url": {
- "version": "0.4.7"
- },
- "json-text-sequence": {
- "version": "0.1.1",
- "requires": {
- "delimit-stream": "0.1.0"
- }
- }
- }
+ "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz",
+ "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==",
+ "dev": true
+ },
+ "ip": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz",
+ "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==",
+ "dev": true
+ },
+ "ipaddr.js": {
+ "version": "1.9.1",
+ "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
+ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"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==",
"requires": {
"kind-of": "^6.0.0"
},
"dependencies": {
"kind-of": {
- "version": "6.0.3"
+ "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-arguments": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz",
+ "integrity": "sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-arrayish": {
- "version": "0.2.1",
- "dev": true
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
+ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
},
"is-bigint": {
"version": "1.0.4",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz",
+ "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==",
"requires": {
"has-bigints": "^1.0.1"
}
},
"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==",
"requires": {
"binary-extensions": "^1.0.0"
}
},
"is-boolean-object": {
"version": "1.1.2",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz",
+ "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==",
"requires": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
}
},
"is-buffer": {
- "version": "1.1.6"
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
+ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
+ },
+ "is-builtin-module": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.1.0.tgz",
+ "integrity": "sha512-OV7JjAgOTfAFJmHZLvpSTb4qi0nIILDV1gWPYDnDJUTNFM5aGlRAhk4QcT8i7TuAleeEV5Fdkqn3t4mS+Q11fg==",
+ "dev": true,
+ "requires": {
+ "builtin-modules": "^3.0.0"
+ }
},
"is-callable": {
"version": "1.2.4",
- "dev": true
- },
- "is-circular": {
- "version": "1.0.2"
+ "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz",
+ "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w=="
},
"is-core-module": {
- "version": "2.8.0",
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz",
+ "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==",
"dev": true,
"requires": {
"has": "^1.0.3"
@@ -18967,24 +21188,31 @@
},
"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==",
"requires": {
"kind-of": "^6.0.0"
},
"dependencies": {
"kind-of": {
- "version": "6.0.3"
+ "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-date-object": {
"version": "1.0.5",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz",
+ "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==",
"requires": {
"has-tostringtag": "^1.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==",
"requires": {
"is-accessor-descriptor": "^1.0.0",
"is-data-descriptor": "^1.0.0",
@@ -18992,69 +21220,101 @@
},
"dependencies": {
"kind-of": {
- "version": "6.0.3"
+ "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-docker": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz",
+ "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==",
"dev": true
},
"is-extendable": {
- "version": "0.1.1"
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz",
+ "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw=="
},
"is-extglob": {
- "version": "2.1.1"
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="
},
"is-fullwidth-code-point": {
- "version": "3.0.0"
+ "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=="
},
"is-glob": {
"version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
"requires": {
"is-extglob": "^2.1.1"
}
},
"is-lambda": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz",
+ "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==",
"dev": true
},
+ "is-map": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.2.tgz",
+ "integrity": "sha512-cOZFQQozTha1f4MxLFzlgKYPTyj26picdZTx82hbc/Xf4K/tZOOXSCkMvU4pKioRXGDLJRn0GM7Upe7kR721yg=="
+ },
"is-module": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz",
+ "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==",
"dev": true
},
"is-negative-zero": {
- "version": "2.0.1",
- "dev": true
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz",
+ "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA=="
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"is-number-object": {
- "version": "1.0.6",
- "dev": true,
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz",
+ "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==",
"requires": {
"has-tostringtag": "^1.0.0"
}
},
"is-obj": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-1.0.1.tgz",
+ "integrity": "sha512-l4RyHgRqGN4Y3+9JHVrNqO+tN0rV5My76uW5/nuO4K1b6vw5G8d/cmFjP9tRfEsdhZNt0IFdZuK/c2Vr4Nb+Qg=="
},
"is-plain-obj": {
- "version": "2.1.0"
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz",
+ "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA=="
},
"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==",
"requires": {
"isobject": "^3.0.1"
}
},
"is-regex": {
"version": "1.1.4",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz",
+ "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==",
"requires": {
"call-bind": "^1.0.2",
"has-tostringtag": "^1.0.0"
@@ -19062,69 +21322,128 @@
},
"is-regexp": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-1.0.0.tgz",
+ "integrity": "sha512-7zjFAPO4/gwyQAAgRRmqeEeyIICSdmCqa3tsVHMdBzaXXRiqopZL4Cyghg/XulGWrtABTpbnYYzzIRffLkP4oA==",
"dev": true
},
+ "is-set": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.2.tgz",
+ "integrity": "sha512-+2cnTEZeY5z/iXGbLhPrOAaK/Mau5k5eXq9j14CpRTftq0pAJu2MwVRSZhyZWBzx3o6X795Lz6Bpb6R0GKf37g=="
+ },
"is-shared-array-buffer": {
- "version": "1.0.1",
- "dev": true
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz",
+ "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==",
+ "requires": {
+ "call-bind": "^1.0.2"
+ }
},
"is-stream": {
"version": "2.0.1",
- "dev": true
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
},
"is-string": {
"version": "1.0.7",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz",
+ "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==",
"requires": {
"has-tostringtag": "^1.0.0"
}
},
"is-symbol": {
"version": "1.0.4",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz",
+ "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==",
"requires": {
"has-symbols": "^1.0.2"
}
},
+ "is-typed-array": {
+ "version": "1.1.9",
+ "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.9.tgz",
+ "integrity": "sha512-kfrlnTTn8pZkfpJMUgYD7YZ3qzeJgWUn8XfVYBARc4wnmNOmLbmuuaAs3q5fvB0UJOn6yHAKaGTPM7d6ezoD/A==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
+ "has-tostringtag": "^1.0.0"
+ }
+ },
"is-typedarray": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
+ "integrity": "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA==",
"dev": true
},
"is-unicode-supported": {
- "version": "0.1.0"
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz",
+ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="
},
"is-url": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz",
+ "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==",
"dev": true
},
+ "is-weakmap": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.1.tgz",
+ "integrity": "sha512-NSBR4kH5oVj1Uwvv970ruUkCV7O1mzgVFO4/rev2cLRda9Tm9HrL70ZPut4rOHgY0FNrUu9BCbXA2sdQ+x0chA=="
+ },
"is-weakref": {
- "version": "1.0.1",
- "dev": true,
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz",
+ "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==",
"requires": {
- "call-bind": "^1.0.0"
+ "call-bind": "^1.0.2"
+ }
+ },
+ "is-weakset": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.2.tgz",
+ "integrity": "sha512-t2yVvttHkQktwnNNmBQ98AhENLdPUTDTE21uPqAQ0ARwQfGeQKRVS0NNurH7bTf7RrvcVn1OOge45CnBeHCSmg==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "get-intrinsic": "^1.1.1"
}
},
"is-windows": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz",
+ "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA=="
},
"is-wsl": {
"version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz",
+ "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==",
"dev": true,
"requires": {
"is-docker": "^2.0.0"
}
},
"isarray": {
- "version": "1.0.0"
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz",
+ "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
"isexe": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="
},
"isobject": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
},
"isomorphic-fetch": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz",
+ "integrity": "sha512-9c4TNAKYXM5PRyVcwUZrF3W09nQ+sO7+jydgs4ZGW9dhsLG2VOlISJABombdQqQRXCwuYG3sYV/puGf5rp0qmA==",
"dev": true,
"requires": {
"node-fetch": "^1.0.1",
@@ -19133,10 +21452,14 @@
"dependencies": {
"is-stream": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
"dev": true
},
"node-fetch": {
"version": "1.7.3",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz",
+ "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==",
"dev": true,
"requires": {
"encoding": "^0.1.11",
@@ -19146,14 +21469,20 @@
}
},
"isstream": {
- "version": "0.1.2"
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
+ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="
},
"iterall": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/iterall/-/iterall-1.1.3.tgz",
+ "integrity": "sha512-Cu/kb+4HiNSejAPhSaN1VukdNTTi/r4/e+yykqjlG/IW+1gZH5b4+Bq3whDX4tvbYugta3r8KTMUiqT3fIGxuQ==",
"dev": true
},
"jest-worker": {
"version": "26.6.2",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz",
+ "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==",
"dev": true,
"requires": {
"@types/node": "*",
@@ -19163,10 +21492,14 @@
"dependencies": {
"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
},
"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"
@@ -19176,16 +21509,24 @@
},
"js-base64": {
"version": "2.6.4",
+ "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz",
+ "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==",
"dev": true
},
"js-sha3": {
- "version": "0.8.0"
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q=="
},
"js-tokens": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
},
"js-yaml": {
"version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
@@ -19194,27 +21535,42 @@
},
"jsbn": {
"version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
+ "integrity": "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==",
"dev": true
},
"jsesc": {
- "version": "2.5.2"
+ "version": "2.5.2",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz",
+ "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA=="
},
"json-6": {
- "version": "1.1.4"
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/json-6/-/json-6-1.1.4.tgz",
+ "integrity": "sha512-ljsNv5ARPvSDpWmjFwja8NjzzEFkOis2OMRtvO5GRtr217DXaQseFYZO6fgVPThPPuaWpOI5/cs/fUCfqQlWiA=="
},
"json-parse-even-better-errors": {
"version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
"dev": true
},
"json-schema": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
+ "integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
"dev": true
},
"json-schema-traverse": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true
},
"json-stable-stringify": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
+ "integrity": "sha512-i/J297TW6xyj7sDFa7AmBPkQvLIxWr2kKPWI26tXydnZrzVAocNqn5DMNT1Mzk0vit1V5UkRM7C1KdVNp7Lmcg==",
"dev": true,
"requires": {
"jsonify": "~0.0.0"
@@ -19222,34 +21578,46 @@
},
"json-stable-stringify-without-jsonify": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
"dev": true
},
"json-stringify-safe": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
+ "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==",
"dev": true
},
"json5": {
- "version": "2.2.0",
- "requires": {
- "minimist": "^1.2.5"
- }
+ "version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz",
+ "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA=="
},
"jsonfile": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
+ "integrity": "sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==",
"dev": true,
"requires": {
"graceful-fs": "^4.1.6"
}
},
"jsonify": {
- "version": "0.0.0"
+ "version": "0.0.0",
+ "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
+ "integrity": "sha512-trvBk1ki43VZptdBI5rIlG4YOzyeH/WefQt5rj1grasPn4iiZWKet8nkgc4GlsAylaztn0qZfUYOiTsASJFdNA==",
+ "dev": true
},
"jsonparse": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
+ "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==",
"dev": true
},
"jsprim": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.2.tgz",
+ "integrity": "sha512-P2bSOMAc/ciLz6DzgjVlGJP9+BrJWu5UDGK70C2iweC5QBIeFf0ZXRvGjEj2uYgrY2MkAAhsSWHDWlFtEroZWw==",
"dev": true,
"requires": {
"assert-plus": "1.0.0",
@@ -19258,44 +21626,28 @@
"verror": "1.10.0"
}
},
- "key-did-provider-ed25519": {
- "version": "1.1.0",
- "requires": {
- "@stablelib/ed25519": "^1.0.1",
- "did-jwt": "^5.0.1",
- "fast-json-stable-stringify": "^2.1.0",
- "rpc-utils": "^0.3.4",
- "uint8arrays": "^2.1.5"
- },
- "dependencies": {
- "rpc-utils": {
- "version": "0.3.4",
- "requires": {
- "nanoid": "^3.1.21"
- }
- }
- }
- },
- "key-did-resolver": {
- "version": "1.4.0",
- "requires": {
- "@stablelib/ed25519": "^1.0.2",
- "multibase": "~4.0.2",
- "uint8arrays": "^2.0.5",
- "varint": "^6.0.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==",
"requires": {
"is-buffer": "^1.1.5"
}
},
+ "kuler": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz",
+ "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="
+ },
"lazy": {
- "version": "1.0.11"
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/lazy/-/lazy-1.0.11.tgz",
+ "integrity": "sha512-Y+CjUfLmIpoUCCRl0ub4smrYtGGr5AOa2AKOaWelGHOGz33X/Y/KizefGqbkwfz44+cnq/+9habclf8vOmu2LA=="
},
"lcid": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz",
+ "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==",
"dev": true,
"requires": {
"invert-kv": "^2.0.0"
@@ -19303,6 +21655,8 @@
},
"levn": {
"version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
"dev": true,
"requires": {
"prelude-ls": "^1.2.1",
@@ -19311,10 +21665,14 @@
},
"lines-and-columns": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
"dev": true
},
"lint-staged": {
"version": "10.5.4",
+ "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-10.5.4.tgz",
+ "integrity": "sha512-EechC3DdFic/TdOPgj/RB3FicqE6932LTHCUm0Y2fsD9KGlLB+RwJl2q1IYBIvEsKzDOgn0D4gll+YxG5RsrKg==",
"dev": true,
"requires": {
"chalk": "^4.1.0",
@@ -19336,6 +21694,8 @@
"dependencies": {
"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,
"requires": {
"color-convert": "^2.0.1"
@@ -19343,6 +21703,8 @@
},
"braces": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true,
"requires": {
"fill-range": "^7.0.1"
@@ -19350,6 +21712,8 @@
},
"chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -19358,6 +21722,8 @@
},
"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,
"requires": {
"color-name": "~1.1.4"
@@ -19365,14 +21731,20 @@
},
"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
},
"commander": {
"version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-6.2.1.tgz",
+ "integrity": "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA==",
"dev": true
},
"fill-range": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true,
"requires": {
"to-regex-range": "^5.0.1"
@@ -19380,22 +21752,30 @@
},
"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
},
"is-number": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true
},
"micromatch": {
- "version": "4.0.4",
+ "version": "4.0.5",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
+ "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
"dev": true,
"requires": {
- "braces": "^3.0.1",
- "picomatch": "^2.2.3"
+ "braces": "^3.0.2",
+ "picomatch": "^2.3.1"
}
},
"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"
@@ -19403,6 +21783,8 @@
},
"to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true,
"requires": {
"is-number": "^7.0.0"
@@ -19411,7 +21793,9 @@
}
},
"listr2": {
- "version": "3.13.5",
+ "version": "3.14.0",
+ "resolved": "https://registry.npmjs.org/listr2/-/listr2-3.14.0.tgz",
+ "integrity": "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g==",
"dev": true,
"requires": {
"cli-truncate": "^2.1.0",
@@ -19419,26 +21803,15 @@
"log-update": "^4.0.0",
"p-map": "^4.0.0",
"rfdc": "^1.3.0",
- "rxjs": "^7.4.0",
+ "rxjs": "^7.5.1",
"through": "^2.3.8",
"wrap-ansi": "^7.0.0"
- },
- "dependencies": {
- "rxjs": {
- "version": "7.4.0",
- "dev": true,
- "requires": {
- "tslib": "~2.1.0"
- }
- },
- "tslib": {
- "version": "2.1.0",
- "dev": true
- }
}
},
"locate-path": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz",
+ "integrity": "sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==",
"dev": true,
"requires": {
"p-locate": "^2.0.0",
@@ -19447,29 +21820,38 @@
},
"lodash": {
"version": "4.17.21",
+ "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
+ "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
"dev": true
},
- "lodash.clonedeep": {
- "version": "4.5.0"
- },
"lodash.debounce": {
"version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
+ "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
"dev": true
},
"lodash.merge": {
"version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
"dev": true
},
"lodash.padend": {
"version": "4.6.1",
+ "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
+ "integrity": "sha512-sOQs2aqGpbl27tmCS1QNZA09Uqp01ZzWfDUoD+xzTii0E7dSQfRKcRetFwa+uXaxaqL+TKm7CgD2JdKP7aZBSw==",
"dev": true
},
"lodash.truncate": {
"version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
"dev": true
},
"log-symbols": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz",
+ "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==",
"requires": {
"chalk": "^4.1.0",
"is-unicode-supported": "^0.1.0"
@@ -19477,12 +21859,16 @@
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
@@ -19490,18 +21876,26 @@
},
"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==",
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
- "version": "1.1.4"
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
},
"has-flag": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"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==",
"requires": {
"has-flag": "^4.0.0"
}
@@ -19510,6 +21904,8 @@
},
"log-update": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/log-update/-/log-update-4.0.0.tgz",
+ "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==",
"dev": true,
"requires": {
"ansi-escapes": "^4.3.0",
@@ -19520,6 +21916,8 @@
"dependencies": {
"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,
"requires": {
"color-convert": "^2.0.1"
@@ -19527,6 +21925,8 @@
},
"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,
"requires": {
"color-name": "~1.1.4"
@@ -19534,10 +21934,14 @@
},
"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
},
"wrap-ansi": {
"version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
+ "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
@@ -19547,30 +21951,30 @@
}
}
},
- "logfmt": {
- "version": "1.3.2",
+ "logform": {
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/logform/-/logform-2.4.0.tgz",
+ "integrity": "sha512-CPSJw4ftjf517EhXZGGvTHHkYobo7ZCc0kvwUoOYcjfR2UVrI66RHj8MCrfAdEitdmFqbu2BYdYs8FHHZSb6iw==",
"requires": {
- "split": "0.2.x",
- "through": "2.3.x"
+ "@colors/colors": "1.5.0",
+ "fecha": "^4.2.0",
+ "ms": "^2.1.1",
+ "safe-stable-stringify": "^2.3.1",
+ "triple-beam": "^1.3.0"
}
},
"loose-envify": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
+ "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
"requires": {
"js-tokens": "^3.0.0 || ^4.0.0"
}
},
- "lower-case": {
- "version": "2.0.2",
- "requires": {
- "tslib": "^2.0.3"
- }
- },
- "lru_map": {
- "version": "0.4.1"
- },
"lru-cache": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
+ "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
"dev": true,
"requires": {
"yallist": "^4.0.0"
@@ -19578,6 +21982,8 @@
},
"magic-string": {
"version": "0.22.5",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz",
+ "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==",
"dev": true,
"requires": {
"vlq": "^0.2.2"
@@ -19585,12 +21991,16 @@
},
"make-dir": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz",
+ "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==",
"requires": {
"pify": "^3.0.0"
}
},
"make-fetch-happen": {
"version": "9.1.0",
+ "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
+ "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==",
"dev": true,
"requires": {
"agentkeepalive": "^4.1.3",
@@ -19613,31 +22023,45 @@
},
"map-age-cleaner": {
"version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz",
+ "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
"dev": true,
"requires": {
"p-defer": "^1.0.0"
}
},
"map-cache": {
- "version": "0.2.2"
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz",
+ "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg=="
},
"map-stream": {
- "version": "0.1.0"
+ "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=="
},
"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==",
"requires": {
"object-visit": "^1.0.0"
}
},
"maxrects-packer": {
- "version": "2.7.2"
+ "version": "2.7.3",
+ "resolved": "https://registry.npmjs.org/maxrects-packer/-/maxrects-packer-2.7.3.tgz",
+ "integrity": "sha512-bG6qXujJ1QgttZVIH4WDanhoJtvbud/xP/XPyf6A69C9RdA61BM4TomFALCq2nrTa+tARRIBB4LuIFsnUQU2wA=="
},
"media-typer": {
- "version": "0.3.0"
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
+ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ=="
},
"mem": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz",
+ "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==",
"dev": true,
"requires": {
"map-age-cleaner": "^0.1.1",
@@ -19646,10 +22070,14 @@
}
},
"merge-descriptors": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
+ "integrity": "sha512-cCi6g3/Zr1iqQi6ySbseM1Xvooa98N0w31jzUYrXPX2xqObmFGHJ0tQ5u74H3mVh7wLouTseZyYIq39g8cNp1w=="
},
"merge-source-map": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.0.4.tgz",
+ "integrity": "sha512-PGSmS0kfnTnMJCzJ16BLLCEe6oeYCamKFFdQKshi4BmM6FUwipjVOcBFGxqtQtirtAG4iZvHlqST9CpZKqlRjA==",
"dev": true,
"requires": {
"source-map": "^0.5.6"
@@ -19657,6 +22085,8 @@
},
"merge-stream": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
},
"metaversefile": {
@@ -19671,19 +22101,22 @@
"unix-path": "^0.2.0"
},
"dependencies": {
- "node-fetch": {
- "version": "2.6.6",
- "requires": {
- "whatwg-url": "^5.0.0"
- }
+ "pako": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-2.0.4.tgz",
+ "integrity": "sha512-v8tweI900AUkZN6heMU/4Uy4cXRc2AYNRggVmTR+dEncawDJgCdLMximOVA2p4qO57WMynangsfGRb5WD6L1Bg=="
}
}
},
"methods": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
+ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w=="
},
"micromatch": {
"version": "3.1.10",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
+ "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==",
"requires": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -19702,6 +22135,8 @@
"dependencies": {
"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==",
"requires": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -19709,48 +22144,70 @@
},
"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==",
"requires": {
"is-plain-object": "^2.0.4"
}
},
"kind-of": {
- "version": "6.0.3"
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
}
}
},
"mime": {
- "version": "1.6.0"
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
+ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
- "version": "1.50.0"
+ "version": "1.52.0",
+ "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
+ "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
},
"mime-types": {
- "version": "2.1.33",
+ "version": "2.1.35",
+ "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
+ "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
"requires": {
- "mime-db": "1.50.0"
+ "mime-db": "1.52.0"
}
},
"mimic-fn": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
"dev": true
},
"minimalistic-assert": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="
},
"minimalistic-crypto-utils": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg=="
},
"minimatch": {
- "version": "3.0.4",
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"requires": {
"brace-expansion": "^1.1.7"
}
},
"minimist": {
- "version": "1.2.5"
+ "version": "1.2.6",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
+ "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q=="
},
"minipass": {
"version": "3.1.6",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.6.tgz",
+ "integrity": "sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==",
"dev": true,
"requires": {
"yallist": "^4.0.0"
@@ -19758,6 +22215,8 @@
},
"minipass-collect": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz",
+ "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
@@ -19765,6 +22224,8 @@
},
"minipass-fetch": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz",
+ "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==",
"dev": true,
"requires": {
"encoding": "^0.1.12",
@@ -19775,6 +22236,8 @@
},
"minipass-flush": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz",
+ "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
@@ -19782,6 +22245,8 @@
},
"minipass-json-stream": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz",
+ "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==",
"dev": true,
"requires": {
"jsonparse": "^1.3.1",
@@ -19790,6 +22255,8 @@
},
"minipass-pipeline": {
"version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz",
+ "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
@@ -19797,6 +22264,8 @@
},
"minipass-sized": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz",
+ "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==",
"dev": true,
"requires": {
"minipass": "^3.0.0"
@@ -19804,6 +22273,8 @@
},
"minizlib": {
"version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
+ "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
"dev": true,
"requires": {
"minipass": "^3.0.0",
@@ -19812,6 +22283,8 @@
},
"mixin-deep": {
"version": "1.3.2",
+ "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
+ "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
"requires": {
"for-in": "^1.0.2",
"is-extendable": "^1.0.1"
@@ -19819,6 +22292,8 @@
"dependencies": {
"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==",
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -19826,61 +22301,80 @@
}
},
"mkdirp": {
- "version": "0.5.5",
+ "version": "0.5.6",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz",
+ "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==",
"requires": {
- "minimist": "^1.2.5"
+ "minimist": "^1.2.6"
}
},
"mocha": {
- "version": "9.1.3",
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/mocha/-/mocha-9.2.2.tgz",
+ "integrity": "sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==",
"requires": {
"@ungap/promise-all-settled": "1.1.2",
"ansi-colors": "4.1.1",
"browser-stdout": "1.3.1",
- "chokidar": "3.5.2",
- "debug": "4.3.2",
+ "chokidar": "3.5.3",
+ "debug": "4.3.3",
"diff": "5.0.0",
"escape-string-regexp": "4.0.0",
"find-up": "5.0.0",
- "glob": "7.1.7",
+ "glob": "7.2.0",
"growl": "1.10.5",
"he": "1.2.0",
"js-yaml": "4.1.0",
"log-symbols": "4.1.0",
- "minimatch": "3.0.4",
+ "minimatch": "4.2.1",
"ms": "2.1.3",
- "nanoid": "3.1.25",
+ "nanoid": "3.3.1",
"serialize-javascript": "6.0.0",
"strip-json-comments": "3.1.1",
"supports-color": "8.1.1",
"which": "2.0.2",
- "workerpool": "6.1.5",
+ "workerpool": "6.2.0",
"yargs": "16.2.0",
"yargs-parser": "20.2.4",
"yargs-unparser": "2.0.0"
},
"dependencies": {
+ "ansi-colors": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz",
+ "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA=="
+ },
"anymatch": {
"version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
+ "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==",
"requires": {
"normalize-path": "^3.0.0",
"picomatch": "^2.0.4"
}
},
"argparse": {
- "version": "2.0.1"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
"binary-extensions": {
- "version": "2.2.0"
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz",
+ "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA=="
},
"braces": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
+ "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"requires": {
"fill-range": "^7.0.1"
}
},
"chokidar": {
- "version": "3.5.2",
+ "version": "3.5.3",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
+ "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"requires": {
"anymatch": "~3.1.2",
"braces": "~3.0.2",
@@ -19892,24 +22386,68 @@
"readdirp": "~3.6.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==",
+ "requires": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.0",
+ "wrap-ansi": "^7.0.0"
+ }
+ },
+ "debug": {
+ "version": "4.3.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz",
+ "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==",
+ "requires": {
+ "ms": "2.1.2"
+ },
+ "dependencies": {
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
+ }
+ }
+ },
"escape-string-regexp": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="
},
"fill-range": {
"version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
+ "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"requires": {
"to-regex-range": "^5.0.1"
}
},
"find-up": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
"requires": {
"locate-path": "^6.0.0",
"path-exists": "^4.0.0"
}
},
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "optional": true
+ },
+ "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=="
+ },
"glob": {
- "version": "7.1.7",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
+ "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@@ -19917,153 +22455,173 @@
"minimatch": "^3.0.4",
"once": "^1.3.0",
"path-is-absolute": "^1.0.0"
+ },
+ "dependencies": {
+ "minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ }
}
},
"has-flag": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
},
"is-binary-path": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"requires": {
"binary-extensions": "^2.0.0"
}
},
"is-number": {
- "version": "7.0.0"
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng=="
},
"js-yaml": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
"requires": {
"argparse": "^2.0.1"
}
},
"locate-path": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
"requires": {
"p-locate": "^5.0.0"
}
},
+ "minimatch": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.1.tgz",
+ "integrity": "sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==",
+ "requires": {
+ "brace-expansion": "^1.1.7"
+ }
+ },
"ms": {
- "version": "2.1.3"
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
},
"nanoid": {
- "version": "3.1.25"
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.1.tgz",
+ "integrity": "sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw=="
},
"p-limit": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
"requires": {
"yocto-queue": "^0.1.0"
}
},
"p-locate": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
"requires": {
"p-limit": "^3.0.2"
}
},
"path-exists": {
- "version": "4.0.0"
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="
},
"readdirp": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"requires": {
"picomatch": "^2.2.1"
}
},
"supports-color": {
"version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
"requires": {
"has-flag": "^4.0.0"
}
},
"to-regex-range": {
"version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"requires": {
"is-number": "^7.0.0"
}
- }
- }
- },
- "moment": {
- "version": "2.29.1",
- "dev": true
- },
- "ms": {
- "version": "2.1.2"
- },
- "multibase": {
- "version": "4.0.6",
- "requires": {
- "@multiformats/base-x": "^4.0.1"
- }
- },
- "multicodec": {
- "version": "3.2.1",
- "requires": {
- "uint8arrays": "^3.0.0",
- "varint": "^6.0.0"
- },
- "dependencies": {
- "uint8arrays": {
- "version": "3.0.0",
- "requires": {
- "multiformats": "^9.4.2"
- }
- }
- }
- },
- "multiformats": {
- "version": "9.4.9"
- },
- "multihashes": {
- "version": "4.0.3",
- "requires": {
- "multibase": "^4.0.1",
- "uint8arrays": "^3.0.0",
- "varint": "^5.0.2"
- },
- "dependencies": {
- "uint8arrays": {
- "version": "3.0.0",
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
+ },
+ "yargs": {
+ "version": "16.2.0",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz",
+ "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==",
"requires": {
- "multiformats": "^9.4.2"
+ "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"
}
},
- "varint": {
- "version": "5.0.2"
+ "yargs-parser": {
+ "version": "20.2.4",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz",
+ "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA=="
}
}
},
- "multihashing-async": {
- "version": "2.1.4",
- "requires": {
- "blakejs": "^1.1.0",
- "err-code": "^3.0.0",
- "js-sha3": "^0.8.0",
- "multihashes": "^4.0.1",
- "murmurhash3js-revisited": "^3.0.0",
- "uint8arrays": "^3.0.0"
- },
- "dependencies": {
- "uint8arrays": {
- "version": "3.0.0",
- "requires": {
- "multiformats": "^9.4.2"
- }
- }
- }
+ "moment": {
+ "version": "2.29.3",
+ "resolved": "https://registry.npmjs.org/moment/-/moment-2.29.3.tgz",
+ "integrity": "sha512-c6YRvhEo//6T2Jz/vVtYzqBzwvPT95JBQ+smCytzf7c50oMZRsR/a4w88aD34I+/QVSfnoAnSBFPJHItlOMJVw==",
+ "dev": true
},
- "murmurhash3js-revisited": {
- "version": "3.0.0"
+ "ms": {
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
+ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"mute-stream": {
- "version": "0.0.8"
+ "version": "0.0.8",
+ "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
+ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
+ },
+ "nan": {
+ "version": "2.16.0",
+ "resolved": "https://registry.npmjs.org/nan/-/nan-2.16.0.tgz",
+ "integrity": "sha512-UdAqHyFngu7TfQKsCBgAA6pWDkT8MAO7d0jyOecVhN5354xbLqdn8mV9Tat9gepAupm0bt2DbeaSC8vS52MuFA==",
+ "optional": true
},
"nanoid": {
- "version": "3.1.30"
+ "version": "3.3.4",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
+ "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==",
+ "dev": true
},
"nanomatch": {
"version": "1.2.13",
+ "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz",
+ "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==",
"requires": {
"arr-diff": "^4.0.0",
"array-unique": "^0.3.2",
@@ -20080,6 +22638,8 @@
"dependencies": {
"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==",
"requires": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -20087,21 +22647,29 @@
},
"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==",
"requires": {
"is-plain-object": "^2.0.4"
}
},
"kind-of": {
- "version": "6.0.3"
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz",
+ "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw=="
}
}
},
"natural-compare": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
"dev": true
},
"nconf": {
"version": "0.6.9",
+ "resolved": "https://registry.npmjs.org/nconf/-/nconf-0.6.9.tgz",
+ "integrity": "sha512-MHiYHIc2igQsoI1v0IcVE4MVaV/+yIQtduOwUcQNoLd+pPgoKblWKbgU3itkhC0az5w2VMdQlQuAO+oi4qxtJg==",
"requires": {
"async": "0.2.9",
"ini": "1.x.x",
@@ -20109,41 +22677,46 @@
},
"dependencies": {
"async": {
- "version": "0.2.9"
+ "version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.9.tgz",
+ "integrity": "sha512-OAtM6mexGteNKdU29wcUfRW+VuBr94A3hx9h9yzBnPaQAbKoW1ORd68XM4CCAOpdL5wlNFgO29hsY1TKv2vAKw=="
}
}
},
"ncp": {
- "version": "0.4.2"
+ "version": "0.4.2",
+ "resolved": "https://registry.npmjs.org/ncp/-/ncp-0.4.2.tgz",
+ "integrity": "sha512-PfGU8jYWdRl4FqJfCy0IzbkGyFHntfWygZg46nFk/dJD/XRrk2cj0SsKSX9n5u5gE0E0YfEpKWrEkfjnlZSTXA=="
},
"negotiator": {
- "version": "0.6.2"
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
+ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg=="
},
"nice-try": {
"version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
+ "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
"dev": true
},
- "no-case": {
- "version": "3.0.4",
- "requires": {
- "lower-case": "^2.0.2",
- "tslib": "^2.0.3"
- }
- },
"node-fetch": {
- "version": "3.1.0",
+ "version": "2.6.7",
+ "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz",
+ "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==",
"requires": {
- "data-uri-to-buffer": "^4.0.0",
- "fetch-blob": "^3.1.2",
- "formdata-polyfill": "^4.0.10"
+ "whatwg-url": "^5.0.0"
}
},
"node-forge": {
- "version": "0.10.0",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz",
+ "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==",
"dev": true
},
"node-gyp": {
"version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz",
+ "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==",
"dev": true,
"requires": {
"env-paths": "^2.2.0",
@@ -20159,7 +22732,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -20168,20 +22743,28 @@
}
},
"node-releases": {
- "version": "2.0.1"
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.5.tgz",
+ "integrity": "sha512-U9h1NLROZTq9uE1SNffn6WuPDg8icmi3ns4rEl/oTfIle4iLjTliCzgTsbaIFMq/Xn078/lfY/BL0GWZ+psK4Q=="
},
"nopt": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz",
+ "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==",
"dev": true,
"requires": {
"abbrev": "1"
}
},
"normalize-path": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA=="
},
"npm-bundled": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz",
+ "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==",
"dev": true,
"requires": {
"npm-normalize-package-bin": "^1.0.1"
@@ -20189,13 +22772,17 @@
},
"npm-install-checks": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz",
+ "integrity": "sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w==",
"dev": true,
"requires": {
"semver": "^7.1.1"
},
"dependencies": {
"semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -20205,10 +22792,14 @@
},
"npm-normalize-package-bin": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz",
+ "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==",
"dev": true
},
"npm-package-arg": {
"version": "8.1.5",
+ "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz",
+ "integrity": "sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q==",
"dev": true,
"requires": {
"hosted-git-info": "^4.0.1",
@@ -20217,7 +22808,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -20227,6 +22820,8 @@
},
"npm-packlist": {
"version": "2.2.2",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-2.2.2.tgz",
+ "integrity": "sha512-Jt01acDvJRhJGthnUJVF/w6gumWOZxO7IkpY/lsX9//zqQgnF7OJaxgQXcerd4uQOLu7W5bkb4mChL9mdfm+Zg==",
"dev": true,
"requires": {
"glob": "^7.1.6",
@@ -20237,6 +22832,8 @@
},
"npm-pick-manifest": {
"version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz",
+ "integrity": "sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA==",
"dev": true,
"requires": {
"npm-install-checks": "^4.0.0",
@@ -20246,7 +22843,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.5",
+ "version": "7.3.7",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
+ "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -20256,6 +22855,8 @@
},
"npm-registry-fetch": {
"version": "11.0.0",
+ "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-11.0.0.tgz",
+ "integrity": "sha512-jmlgSxoDNuhAtxUIG6pVwwtz840i994dL14FoNVZisrmZW5kWd63IUTNv1m/hyRSGSqWjCUp/YZlS1BJyNp9XA==",
"dev": true,
"requires": {
"make-fetch-happen": "^9.0.1",
@@ -20268,6 +22869,8 @@
},
"npm-run-path": {
"version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
"dev": true,
"requires": {
"path-key": "^3.0.0"
@@ -20275,6 +22878,8 @@
},
"npmlog": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
+ "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
"dev": true,
"requires": {
"are-we-there-yet": "~1.1.2",
@@ -20285,29 +22890,41 @@
},
"nssocket": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/nssocket/-/nssocket-0.6.0.tgz",
+ "integrity": "sha512-a9GSOIql5IqgWJR3F/JXG4KpJTA3Z53Cj0MeMvGpglytB1nxE4PdFNC0jINe27CS7cGivoynwc054EzCcT3M3w==",
"requires": {
"eventemitter2": "~0.4.14",
"lazy": "~1.0.11"
},
"dependencies": {
"eventemitter2": {
- "version": "0.4.14"
+ "version": "0.4.14",
+ "resolved": "https://registry.npmjs.org/eventemitter2/-/eventemitter2-0.4.14.tgz",
+ "integrity": "sha512-K7J4xq5xAD5jHsGM5ReWXRTFa3JRGofHiMcVgQ8PRwgWxzjHpMWCIzsmyf60+mh8KLsqYPcjUMa0AC4hd6lPyQ=="
}
}
},
"number-is-nan": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
+ "integrity": "sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ==",
"dev": true
},
"oauth-sign": {
"version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
+ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
"dev": true
},
"object-assign": {
- "version": "4.1.1"
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
},
"object-copy": {
"version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz",
+ "integrity": "sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==",
"requires": {
"copy-descriptor": "^0.1.0",
"define-property": "^0.2.5",
@@ -20316,24 +22933,32 @@
"dependencies": {
"define-property": {
"version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"requires": {
"is-descriptor": "^0.1.0"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"is-descriptor": {
"version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"requires": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -20341,29 +22966,45 @@
},
"dependencies": {
"kind-of": {
- "version": "5.1.0"
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
}
}
}
}
},
"object-inspect": {
- "version": "1.11.0",
- "dev": true
+ "version": "1.12.2",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz",
+ "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ=="
+ },
+ "object-is": {
+ "version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.5.tgz",
+ "integrity": "sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3"
+ }
},
"object-keys": {
"version": "1.1.1",
- "dev": true
+ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
+ "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA=="
},
"object-visit": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz",
+ "integrity": "sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==",
"requires": {
"isobject": "^3.0.0"
}
},
"object.assign": {
"version": "4.1.2",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz",
+ "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==",
"requires": {
"call-bind": "^1.0.0",
"define-properties": "^1.1.3",
@@ -20373,12 +23014,16 @@
},
"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==",
"requires": {
"isobject": "^3.0.1"
}
},
"object.values": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz",
+ "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==",
"dev": true,
"requires": {
"call-bind": "^1.0.2",
@@ -20387,34 +23032,53 @@
}
},
"on-finished": {
- "version": "2.3.0",
+ "version": "2.4.1",
+ "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
+ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
"requires": {
"ee-first": "1.1.1"
}
},
"once": {
"version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"requires": {
"wrappy": "1"
}
},
+ "one-time": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz",
+ "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==",
+ "requires": {
+ "fn.name": "1.x.x"
+ }
+ },
"onetime": {
"version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
"dev": true,
"requires": {
"mimic-fn": "^2.1.0"
}
},
"open": {
- "version": "7.4.2",
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz",
+ "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==",
"dev": true,
"requires": {
- "is-docker": "^2.0.0",
- "is-wsl": "^2.1.1"
+ "define-lazy-prop": "^2.0.0",
+ "is-docker": "^2.1.1",
+ "is-wsl": "^2.2.0"
}
},
"openai-api": {
- "version": "1.2.6",
+ "version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/openai-api/-/openai-api-1.3.1.tgz",
+ "integrity": "sha512-wKhm/BZS/PyzQRJTdl6kciwL4LpqqyertLYEbbPYDg7ySk1tEywPSBnMio0xdSQaRmdSYVS8VHzJvnwKb9tqkw==",
"requires": {
"axios": "^0.21.1",
"dotenv": "^8.2.0"
@@ -20422,18 +23086,24 @@
},
"optimist": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.0.tgz",
+ "integrity": "sha512-ubrZPyOU0AHpXkmwqfWolap+eHMwQ484AKivkf0ZGyysd6fUJZl7ow9iu5UNV1vCZv46HQ7EM83IC3NGJ820hg==",
"requires": {
"minimist": "~0.0.1",
"wordwrap": "~0.0.2"
},
"dependencies": {
"minimist": {
- "version": "0.0.10"
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+ "integrity": "sha512-iotkTvxc+TwOm5Ieim8VnSNvCDjCK9S8G3scJ50ZthspSxa7jx50jkhYduuAtAjvfDUwSgOwf8+If99AlOEhyw=="
}
}
},
"optionator": {
"version": "0.9.1",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz",
+ "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==",
"dev": true,
"requires": {
"deep-is": "^0.1.3",
@@ -20446,6 +23116,8 @@
},
"os-locale": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz",
+ "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==",
"dev": true,
"requires": {
"execa": "^1.0.0",
@@ -20455,6 +23127,8 @@
"dependencies": {
"cross-spawn": {
"version": "6.0.5",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
+ "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
"dev": true,
"requires": {
"nice-try": "^1.0.4",
@@ -20466,6 +23140,8 @@
},
"execa": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz",
+ "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==",
"dev": true,
"requires": {
"cross-spawn": "^6.0.0",
@@ -20479,6 +23155,8 @@
},
"get-stream": {
"version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz",
+ "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==",
"dev": true,
"requires": {
"pump": "^3.0.0"
@@ -20486,10 +23164,14 @@
},
"is-stream": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
+ "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==",
"dev": true
},
"npm-run-path": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz",
+ "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==",
"dev": true,
"requires": {
"path-key": "^2.0.0"
@@ -20497,14 +23179,20 @@
},
"path-key": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
+ "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
"dev": true
},
"semver": {
"version": "5.7.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
+ "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
"dev": true
},
"shebang-command": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
+ "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
"dev": true,
"requires": {
"shebang-regex": "^1.0.0"
@@ -20512,10 +23200,14 @@
},
"shebang-regex": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
+ "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
"dev": true
},
"which": {
"version": "1.3.1",
+ "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
+ "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
"requires": {
"isexe": "^2.0.0"
@@ -20525,18 +23217,26 @@
},
"p-defer": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz",
+ "integrity": "sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw==",
"dev": true
},
"p-finally": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz",
+ "integrity": "sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow==",
"dev": true
},
"p-is-promise": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz",
+ "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==",
"dev": true
},
"p-limit": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz",
+ "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==",
"dev": true,
"requires": {
"p-try": "^1.0.0"
@@ -20544,6 +23244,8 @@
},
"p-locate": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz",
+ "integrity": "sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==",
"dev": true,
"requires": {
"p-limit": "^1.1.0"
@@ -20551,6 +23253,8 @@
},
"p-map": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz",
+ "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==",
"dev": true,
"requires": {
"aggregate-error": "^3.0.0"
@@ -20558,10 +23262,14 @@
},
"p-try": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz",
+ "integrity": "sha512-U1etNYuMJoIz3ZXSrrySFjsXQTWOx2/jdi86L+2pRvph/qMKL6sbcCYdH23fqsbm8TH2Gn0OybpT4eSFlCVHww==",
"dev": true
},
"pacote": {
"version": "11.3.5",
+ "resolved": "https://registry.npmjs.org/pacote/-/pacote-11.3.5.tgz",
+ "integrity": "sha512-fT375Yczn4zi+6Hkk2TBe1x1sP8FgFsEIZ2/iWaXY2r/NkhDJfxbcn5paz1+RTFCyNf+dPnaoBDJoAxXSU8Bkg==",
"dev": true,
"requires": {
"@npmcli/git": "^2.1.0",
@@ -20587,22 +23295,22 @@
"dependencies": {
"mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
"dev": true
}
}
},
"pako": {
- "version": "2.0.4"
- },
- "param-case": {
- "version": "3.0.4",
- "requires": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz",
+ "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==",
+ "dev": true
},
"parent-module": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
"dev": true,
"requires": {
"callsites": "^3.0.0"
@@ -20610,6 +23318,8 @@
},
"parse-json": {
"version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.0.0",
@@ -20619,92 +23329,162 @@
}
},
"parseurl": {
- "version": "1.3.3"
- },
- "pascal-case": {
- "version": "3.1.2",
- "requires": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
+ "version": "1.3.3",
+ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
+ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"pascalcase": {
- "version": "0.1.1"
- },
- "path-case": {
- "version": "3.0.4",
- "requires": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
+ "version": "0.1.1",
+ "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz",
+ "integrity": "sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw=="
},
"path-dirname": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz",
+ "integrity": "sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q=="
},
"path-exists": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
+ "integrity": "sha512-bpC7GYwiDYQ4wYLe+FA8lhRjhQCMcQGuSgGGqDkg/QerRWw9CmGRT0iSOVRSZJ29NMLZgIzqaljJ63oaL4NIJQ==",
"dev": true
},
"path-is-absolute": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
},
"path-key": {
"version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
"dev": true
},
"path-parse": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
"dev": true
},
"path-to-regexp": {
- "version": "0.1.7"
+ "version": "0.1.7",
+ "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
+ "integrity": "sha512-5DFkuoqlv1uYQKxy8omFBeJPQcdoE07Kv2sferDCrAq1ohOU+MSDswDIbnx3YAM60qIOnYa53wBhXW0EbMonrQ=="
},
"path-type": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz",
+ "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==",
"dev": true
},
"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==",
"requires": {
"through": "~2.3"
}
},
"performance-now": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
+ "integrity": "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==",
"dev": true
},
"picocolors": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
+ "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
},
"picomatch": {
- "version": "2.3.0"
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
},
"pify": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz",
+ "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg=="
},
"pinkie": {
"version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz",
+ "integrity": "sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg==",
"dev": true
},
"pinkie-promise": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz",
+ "integrity": "sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw==",
"dev": true,
"requires": {
"pinkie": "^2.0.0"
}
},
"pkg-dir": {
- "version": "2.0.0",
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
"dev": true,
"requires": {
- "find-up": "^2.1.0"
+ "find-up": "^4.0.0"
+ },
+ "dependencies": {
+ "find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ }
+ },
+ "locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^4.1.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.2.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "dev": true
+ }
}
},
- "pkginfo": {
- "version": "0.4.1"
- },
"please-upgrade-node": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz",
+ "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==",
"dev": true,
"requires": {
"semver-compare": "^1.0.0"
@@ -20712,56 +23492,69 @@
},
"pluralize": {
"version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-7.0.0.tgz",
+ "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==",
"dev": true
},
"posix-character-classes": {
- "version": "0.1.1"
+ "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=="
},
"postcss": {
- "version": "8.3.9",
+ "version": "8.4.14",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.14.tgz",
+ "integrity": "sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==",
"dev": true,
"requires": {
- "nanoid": "^3.1.28",
- "picocolors": "^0.2.1",
- "source-map-js": "^0.6.2"
- },
- "dependencies": {
- "picocolors": {
- "version": "0.2.1",
- "dev": true
- }
- }
- },
- "postmsg-rpc": {
- "version": "2.4.0",
- "requires": {
- "shortid": "^2.2.8"
+ "nanoid": "^3.3.4",
+ "picocolors": "^1.0.0",
+ "source-map-js": "^1.0.2"
}
},
"prelude-ls": {
"version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
"dev": true
},
"prettyjson": {
- "version": "1.2.1",
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/prettyjson/-/prettyjson-1.2.5.tgz",
+ "integrity": "sha512-rksPWtoZb2ZpT5OVgtmy0KHVM+Dca3iVwWY9ifwhcexfjebtgjg3wmrUt9PvJ59XIYBcknQeYHD8IAnVlh9lAw==",
"requires": {
- "colors": "^1.1.2",
+ "colors": "1.4.0",
"minimist": "^1.2.0"
+ },
+ "dependencies": {
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
+ }
}
},
"process-nextick-args": {
- "version": "2.0.1"
+ "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=="
},
"progress": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
+ "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
"dev": true
},
"promise-inflight": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz",
+ "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==",
"dev": true
},
"promise-retry": {
"version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz",
+ "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==",
"dev": true,
"requires": {
"err-code": "^2.0.2",
@@ -20770,22 +23563,59 @@
"dependencies": {
"err-code": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz",
+ "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==",
"dev": true
}
}
},
"prompt": {
"version": "0.2.14",
+ "resolved": "https://registry.npmjs.org/prompt/-/prompt-0.2.14.tgz",
+ "integrity": "sha512-jDK5yEbAakJmNm+260gZG1+PuzX3jT5Jy0VZAUGrrW9RQ1JEWEDEVNnhO70mL3+U5r6bSJo02xsE34wOS/LnrA==",
"requires": {
"pkginfo": "0.x.x",
"read": "1.0.x",
"revalidator": "0.1.x",
"utile": "0.2.x",
"winston": "0.8.x"
+ },
+ "dependencies": {
+ "async": {
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
+ },
+ "colors": {
+ "version": "0.6.2",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-0.6.2.tgz",
+ "integrity": "sha512-OsSVtHK8Ir8r3+Fxw/b4jS1ZLPXkV6ZxDRJQzeD7qo0SqMXWrHDM71DgYzPMHY8SFJ0Ao+nNU2p1MmwdzKqPrw=="
+ },
+ "pkginfo": {
+ "version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/pkginfo/-/pkginfo-0.3.1.tgz",
+ "integrity": "sha512-yO5feByMzAp96LtP58wvPKSbaKAi/1C4kV9XpTctr6EepnP6F33RBNOiVrdz9BrPA98U2BMFsTNHo44TWcbQ2A=="
+ },
+ "winston": {
+ "version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-0.8.3.tgz",
+ "integrity": "sha1-ZLar9M0Brcrv1QCTk7HY6L7BnbA=",
+ "requires": {
+ "async": "0.2.x",
+ "colors": "0.6.x",
+ "cycle": "1.0.x",
+ "eyes": "0.1.x",
+ "isstream": "0.1.x",
+ "pkginfo": "0.3.x",
+ "stack-trace": "0.0.x"
+ }
+ }
}
},
"proxy-addr": {
"version": "2.0.7",
+ "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
+ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
"requires": {
"forwarded": "0.2.0",
"ipaddr.js": "1.9.1"
@@ -20793,16 +23623,22 @@
},
"ps-tree": {
"version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/ps-tree/-/ps-tree-1.2.0.tgz",
+ "integrity": "sha512-0VnamPPYHl4uaU/nSFeZZpR21QAWRz+sRv4iW9+v/GS/J5U5iZB5BNN6J0RMoOvdx2gWM2+ZFMIm58q24e4UYA==",
"requires": {
"event-stream": "=3.3.4"
}
},
"psl": {
"version": "1.8.0",
+ "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
+ "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==",
"dev": true
},
"pump": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
+ "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
"dev": true,
"requires": {
"end-of-stream": "^1.1.0",
@@ -20810,22 +23646,22 @@
}
},
"punycode": {
- "version": "2.1.1"
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
+ "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
},
"qs": {
- "version": "6.7.0"
- },
- "query-string": {
- "version": "7.0.1",
+ "version": "6.10.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz",
+ "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==",
"requires": {
- "decode-uri-component": "^0.2.0",
- "filter-obj": "^1.1.0",
- "split-on-first": "^1.0.0",
- "strict-uri-encode": "^2.0.0"
+ "side-channel": "^1.0.4"
}
},
"quicktype": {
- "version": "15.0.260",
+ "version": "15.0.261",
+ "resolved": "https://registry.npmjs.org/quicktype/-/quicktype-15.0.261.tgz",
+ "integrity": "sha512-y2Se/GFGSeFNfON7X0MEJO8K+Lm23hWEZs5UMP9dVy3ShSYng6HTVw1YmqreUwGCLRGn4jD9TjNB1oqyaT3NBw==",
"dev": true,
"requires": {
"@mark.probst/typescript-json-schema": "~0.32.0",
@@ -20839,7 +23675,7 @@
"is-url": "^1.2.4",
"isomorphic-fetch": "^2.2.1",
"js-base64": "^2.4.3",
- "lodash": "^4.17.19",
+ "lodash": "^4.17.21",
"moment": "^2.22.1",
"node-fetch": "^2.6.1",
"pako": "^1.0.6",
@@ -20848,29 +23684,28 @@
"stream-json": "1.1.3",
"string-to-stream": "^1.1.0",
"typescript": "~3.2.1",
- "urijs": "^1.19.4",
+ "urijs": "^1.19.6",
"uuid": "^3.2.1",
"wordwrap": "^1.0.0",
"yaml": "^1.5.0"
},
"dependencies": {
- "node-fetch": {
- "version": "2.6.6",
- "dev": true,
- "requires": {
- "whatwg-url": "^5.0.0"
- }
- },
- "pako": {
- "version": "1.0.11",
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
"dev": true
},
"process-nextick-args": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
+ "integrity": "sha512-yN0WQmuCX63LP/TMvAg31nvT6m4vDqJEiiv2CAZqWOGNWutc9DfDk1NPYYmKUFmaVM2UwDowH4u5AHWYP/jxKw==",
"dev": true
},
"readable-stream": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.0.tgz",
+ "integrity": "sha512-c7KMXGd4b48nN3OJ1U9qOsn6pXNzf6kLd3kdZCkg2sxAcoiufInqF0XckwEnlrcwuaYwonlNK8GQUIOC/WC7sg==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -20884,6 +23719,8 @@
},
"string_decoder": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
+ "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
"dev": true,
"requires": {
"safe-buffer": "~5.1.0"
@@ -20891,12 +23728,16 @@
},
"wordwrap": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
"dev": true
}
}
},
"quote-stream": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-1.0.2.tgz",
+ "integrity": "sha512-kKr2uQ2AokadPjvTyKJQad9xELbZwYzWlNfI3Uz2j/ib5u6H9lDP7fUUR//rMycd0gv4Z5P1qXMfXR8YpIxrjQ==",
"dev": true,
"requires": {
"buffer-equal": "0.0.1",
@@ -20906,24 +23747,32 @@
},
"randombytes": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz",
+ "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==",
"requires": {
"safe-buffer": "^5.1.0"
}
},
"range-parser": {
- "version": "1.2.1"
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
+ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
- "version": "2.4.0",
+ "version": "2.5.1",
+ "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
+ "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==",
"requires": {
- "bytes": "3.1.0",
- "http-errors": "1.7.2",
+ "bytes": "3.1.2",
+ "http-errors": "2.0.0",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
}
},
"react": {
"version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react/-/react-17.0.2.tgz",
+ "integrity": "sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -20931,6 +23780,8 @@
},
"react-dom": {
"version": "17.0.2",
+ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-17.0.2.tgz",
+ "integrity": "sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -20938,10 +23789,14 @@
}
},
"react-merge-refs": {
- "version": "1.1.0"
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz",
+ "integrity": "sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ=="
},
"react-reconciler": {
"version": "0.26.2",
+ "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.26.2.tgz",
+ "integrity": "sha512-nK6kgY28HwrMNwDnMui3dvm3rCFjZrcGiuwLc5COUipBK5hWHLOxMJhSnSomirqWwjPBJKV1QcbkI0VJr7Gl1Q==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1",
@@ -20950,25 +23805,35 @@
},
"react-refresh": {
"version": "0.10.0",
+ "resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.10.0.tgz",
+ "integrity": "sha512-PgidR3wST3dDYKr6b4pJoqQFpPGNKDSCDx4cZoshjXipw3LzO7mG1My2pwEzz2JVkF+inx3xRpDeQLFQGH/hsQ==",
"dev": true
},
"react-three-fiber": {
- "version": "0.0.0-deprecated"
+ "version": "0.0.0-deprecated",
+ "resolved": "https://registry.npmjs.org/react-three-fiber/-/react-three-fiber-0.0.0-deprecated.tgz",
+ "integrity": "sha512-EblIqTAsIpkYeM8bZtC4lcpTE0A2zCEGipFB52RgcQq/q+0oryrk7Sxt+sqhIjUu6xMNEVywV8dr74lz5yWO6A=="
},
"react-use-measure": {
- "version": "2.0.4",
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/react-use-measure/-/react-use-measure-2.1.1.tgz",
+ "integrity": "sha512-nocZhN26cproIiIduswYpV5y5lQpSQS1y/4KuvUCjSKmw7ZWIS/+g3aFnX3WdBkyuGUtTLif3UTqnLLhbDoQig==",
"requires": {
- "debounce": "^1.2.0"
+ "debounce": "^1.2.1"
}
},
"read": {
"version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/read/-/read-1.0.7.tgz",
+ "integrity": "sha512-rSOKNYUmaxy0om1BNjMN4ezNT6VKK+2xF4GBhc81mkH7L60i6dp8qPYrkndNLT3QPphoII3maL9PVC9XmhHwVQ==",
"requires": {
"mute-stream": "~0.0.4"
}
},
"read-package-json-fast": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz",
+ "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==",
"dev": true,
"requires": {
"json-parse-even-better-errors": "^2.3.0",
@@ -20977,6 +23842,8 @@
},
"readable-stream": {
"version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
+ "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -20985,14 +23852,23 @@
},
"readdirp": {
"version": "2.2.1",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz",
+ "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==",
"requires": {
"graceful-fs": "^4.1.11",
"micromatch": "^3.1.10",
"readable-stream": "^2.0.2"
},
"dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
+ },
"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==",
"requires": {
"core-util-is": "~1.0.0",
"inherits": "~2.0.3",
@@ -21005,6 +23881,8 @@
},
"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==",
"requires": {
"safe-buffer": "~5.1.0"
}
@@ -21013,24 +23891,34 @@
},
"reduce-flatten": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz",
+ "integrity": "sha512-j5WfFJfc9CoXv/WbwVLHq74i/hdTUpy+iNC534LxczMRP67vJeK3V9JOdnL0N1cIRbn9mYhE2yVjvvKXDxvNXQ==",
"dev": true
},
"regenerate": {
"version": "1.4.2",
+ "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz",
+ "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==",
"dev": true
},
"regenerate-unicode-properties": {
- "version": "9.0.0",
+ "version": "10.0.1",
+ "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz",
+ "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==",
"dev": true,
"requires": {
"regenerate": "^1.4.2"
}
},
"regenerator-runtime": {
- "version": "0.13.9"
+ "version": "0.13.9",
+ "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz",
+ "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA=="
},
"regenerator-transform": {
- "version": "0.14.5",
+ "version": "0.15.0",
+ "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz",
+ "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==",
"dev": true,
"requires": {
"@babel/runtime": "^7.8.4"
@@ -21038,6 +23926,8 @@
},
"regex-not": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz",
+ "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==",
"requires": {
"extend-shallow": "^3.0.2",
"safe-regex": "^1.1.0"
@@ -21045,6 +23935,8 @@
"dependencies": {
"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==",
"requires": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -21052,34 +23944,54 @@
},
"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==",
"requires": {
"is-plain-object": "^2.0.4"
}
}
}
},
+ "regexp.prototype.flags": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz",
+ "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==",
+ "requires": {
+ "call-bind": "^1.0.2",
+ "define-properties": "^1.1.3",
+ "functions-have-names": "^1.2.2"
+ }
+ },
"regexpp": {
"version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz",
+ "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==",
"dev": true
},
"regexpu-core": {
- "version": "4.8.0",
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.0.1.tgz",
+ "integrity": "sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==",
"dev": true,
"requires": {
"regenerate": "^1.4.2",
- "regenerate-unicode-properties": "^9.0.0",
- "regjsgen": "^0.5.2",
- "regjsparser": "^0.7.0",
+ "regenerate-unicode-properties": "^10.0.1",
+ "regjsgen": "^0.6.0",
+ "regjsparser": "^0.8.2",
"unicode-match-property-ecmascript": "^2.0.0",
"unicode-match-property-value-ecmascript": "^2.0.0"
}
},
"regjsgen": {
- "version": "0.5.2",
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz",
+ "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==",
"dev": true
},
"regjsparser": {
- "version": "0.7.0",
+ "version": "0.8.4",
+ "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz",
+ "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==",
"dev": true,
"requires": {
"jsesc": "~0.5.0"
@@ -21087,21 +23999,31 @@
"dependencies": {
"jsesc": {
"version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz",
+ "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==",
"dev": true
}
}
},
"remove-trailing-separator": {
- "version": "1.1.0"
+ "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=="
},
"repeat-element": {
- "version": "1.1.4"
+ "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=="
},
"repeat-string": {
- "version": "1.6.1"
+ "version": "1.6.1",
+ "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz",
+ "integrity": "sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w=="
},
"request": {
"version": "2.88.2",
+ "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
+ "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
"dev": true,
"requires": {
"aws-sign2": "~0.7.0",
@@ -21128,82 +24050,118 @@
"dependencies": {
"qs": {
"version": "6.5.3",
+ "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz",
+ "integrity": "sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==",
"dev": true
}
}
},
"require-directory": {
- "version": "2.1.1"
+ "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=="
},
"require-from-string": {
- "version": "2.0.2"
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
},
"require-main-filename": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz",
+ "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==",
"dev": true
},
"resize-observer-polyfill": {
- "version": "1.5.1"
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz",
+ "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg=="
},
"resolve": {
- "version": "1.20.0",
+ "version": "1.22.0",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz",
+ "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==",
"dev": true,
"requires": {
- "is-core-module": "^2.2.0",
- "path-parse": "^1.0.6"
+ "is-core-module": "^2.8.1",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
}
},
"resolve-from": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
"dev": true
},
"resolve-url": {
- "version": "0.2.1"
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
+ "integrity": "sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg=="
},
"restore-cursor": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
+ "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
"dev": true,
"requires": {
"onetime": "^5.1.0",
"signal-exit": "^3.0.2"
}
},
- "resumer": {
- "version": "0.0.0",
- "requires": {
- "through": "~2.3.4"
- }
- },
"ret": {
- "version": "0.1.15"
+ "version": "0.1.15",
+ "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
+ "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg=="
},
"retry": {
"version": "0.12.0",
+ "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz",
+ "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==",
"dev": true
},
"revalidator": {
- "version": "0.1.8"
+ "version": "0.1.8",
+ "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz",
+ "integrity": "sha512-xcBILK2pA9oh4SiinPEZfhP8HfrB/ha+a2fTMyl7Om2WjlDVrOQy99N2MXXlUHqGJz4qEu2duXxHJjDWuK/0xg=="
},
"rfdc": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz",
+ "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==",
"dev": true
},
"rimraf": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
+ "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
"dev": true,
"requires": {
"glob": "^7.1.3"
}
},
"rollup": {
- "version": "2.58.0",
+ "version": "2.75.6",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.75.6.tgz",
+ "integrity": "sha512-OEf0TgpC9vU6WGROJIk1JA3LR5vk/yvqlzxqdrE2CzzXnqKXNzbAwlWUXis8RS3ZPe7LAq+YUxsRa0l3r27MLA==",
"dev": true,
"requires": {
"fsevents": "~2.3.2"
+ },
+ "dependencies": {
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ }
}
},
"rollup-plugin-filesize": {
"version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-filesize/-/rollup-plugin-filesize-9.1.2.tgz",
+ "integrity": "sha512-m2fE9hFaKgWKisJzyWXctOFKlgMRelo/58HgeC0lXUK/qykxiqkr6bsrotlvo2bvrwPsjgT7scNdQSr6qtl37A==",
"dev": true,
"requires": {
"@babel/runtime": "^7.13.8",
@@ -21216,29 +24174,18 @@
"terser": "^5.6.0"
},
"dependencies": {
- "acorn": {
- "version": "8.7.0",
- "dev": true,
- "optional": true,
- "peer": true
- },
- "source-map": {
- "version": "0.7.3",
+ "colors": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
+ "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
"dev": true
- },
- "terser": {
- "version": "5.10.0",
- "dev": true,
- "requires": {
- "commander": "^2.20.0",
- "source-map": "~0.7.2",
- "source-map-support": "~0.5.20"
- }
}
}
},
"rollup-plugin-terser": {
"version": "7.0.2",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz",
+ "integrity": "sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.10.4",
@@ -21247,81 +24194,117 @@
"terser": "^5.0.0"
},
"dependencies": {
- "acorn": {
- "version": "8.7.0",
- "dev": true,
- "optional": true,
- "peer": true
- },
"serialize-javascript": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz",
+ "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
"dev": true,
"requires": {
"randombytes": "^2.1.0"
}
- },
- "source-map": {
- "version": "0.7.3",
- "dev": true
- },
- "terser": {
- "version": "5.10.0",
- "dev": true,
- "requires": {
- "commander": "^2.20.0",
- "source-map": "~0.7.2",
- "source-map-support": "~0.5.20"
- }
}
}
},
"rollup-plugin-visualizer": {
- "version": "5.5.2",
+ "version": "5.6.0",
+ "resolved": "https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.6.0.tgz",
+ "integrity": "sha512-CKcc8GTUZjC+LsMytU8ocRr/cGZIfMR7+mdy4YnlyetlmIl/dM8BMnOEpD4JPIGt+ZVW7Db9ZtSsbgyeBH3uTA==",
"dev": true,
"requires": {
- "nanoid": "^3.1.22",
- "open": "^7.4.2",
+ "nanoid": "^3.1.32",
+ "open": "^8.4.0",
"source-map": "^0.7.3",
- "yargs": "^16.2.0"
+ "yargs": "^17.3.1"
},
"dependencies": {
+ "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"
+ }
+ },
+ "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
+ },
"source-map": {
- "version": "0.7.3",
+ "version": "0.7.4",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz",
+ "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==",
+ "dev": true
+ },
+ "y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "dev": true
+ },
+ "yargs": {
+ "version": "17.5.1",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz",
+ "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==",
+ "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.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.0.0"
+ }
+ },
+ "yargs-parser": {
+ "version": "21.0.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz",
+ "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==",
"dev": true
}
}
},
- "rpc-utils": {
- "version": "0.4.0",
- "requires": {
- "nanoid": "^3.1.21"
- }
- },
"rxjs": {
- "version": "6.6.7",
+ "version": "7.5.5",
+ "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.5.tgz",
+ "integrity": "sha512-sy+H0pQofO95VDmFLzyaw9xNJU4KTRSwQIGM6+iG3SypAtCiLDzpeG8sJrNCWn2Up9km+KhkvTdbkrdy+yzZdw==",
+ "dev": true,
"requires": {
- "tslib": "^1.9.0"
- },
- "dependencies": {
- "tslib": {
- "version": "1.14.1"
- }
+ "tslib": "^2.1.0"
}
},
"safe-buffer": {
- "version": "5.1.2"
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
+ "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safe-regex": {
"version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz",
+ "integrity": "sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==",
"requires": {
"ret": "~0.1.10"
}
},
+ "safe-stable-stringify": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.3.1.tgz",
+ "integrity": "sha512-kYBSfT+troD9cDA85VDnHZ1rpHC50O0g1e6WlGHVCz/g+JS+9WKLj+XwFYyR8UbrZN8ll9HUpDAAddY58MGisg=="
+ },
"safer-buffer": {
- "version": "2.1.2"
+ "version": "2.1.2",
+ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"scheduler": {
"version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.20.2.tgz",
+ "integrity": "sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==",
"requires": {
"loose-envify": "^1.1.0",
"object-assign": "^4.1.1"
@@ -21334,72 +24317,84 @@
},
"secure-compare": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/secure-compare/-/secure-compare-3.0.1.tgz",
+ "integrity": "sha512-AckIIV90rPDcBcglUwXPF3kg0P0qmPsPXAj6BBEENQE1p5yA1xfmDJzfi1Tappj37Pv2mVbKpL3Z1T+Nn7k1Qw==",
"dev": true
},
"selfsigned": {
- "version": "1.10.14",
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz",
+ "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==",
"dev": true,
"requires": {
- "node-forge": "^0.10.0"
+ "node-forge": "^1"
}
},
"semver": {
- "version": "6.3.0"
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
+ "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
},
"semver-compare": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz",
+ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==",
"dev": true
},
"send": {
- "version": "0.17.1",
+ "version": "0.18.0",
+ "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz",
+ "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==",
"requires": {
"debug": "2.6.9",
- "depd": "~1.1.2",
- "destroy": "~1.0.4",
+ "depd": "2.0.0",
+ "destroy": "1.2.0",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
- "http-errors": "~1.7.2",
+ "http-errors": "2.0.0",
"mime": "1.6.0",
- "ms": "2.1.1",
- "on-finished": "~2.3.0",
+ "ms": "2.1.3",
+ "on-finished": "2.4.1",
"range-parser": "~1.2.1",
- "statuses": "~1.5.0"
+ "statuses": "2.0.1"
},
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
},
"dependencies": {
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"ms": {
- "version": "2.1.1"
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="
}
}
},
- "sentence-case": {
- "version": "3.0.4",
- "requires": {
- "no-case": "^3.0.4",
- "tslib": "^2.0.3",
- "upper-case-first": "^2.0.2"
- }
- },
"serialize-javascript": {
"version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz",
+ "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==",
"requires": {
"randombytes": "^2.1.0"
}
},
"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,
"requires": {
"accepts": "~1.3.4",
@@ -21413,13 +24408,23 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
+ "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",
@@ -21430,43 +24435,63 @@
},
"inherits": {
"version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
+ "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==",
"dev": true
},
"ms": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
"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
+ },
+ "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
}
}
},
"serve-static": {
- "version": "1.14.1",
+ "version": "1.15.0",
+ "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz",
+ "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==",
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
- "send": "0.17.1"
+ "send": "0.18.0"
}
},
"server-destroy": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/server-destroy/-/server-destroy-1.0.1.tgz",
+ "integrity": "sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ==",
"dev": true
},
"servez": {
- "version": "1.12.0",
+ "version": "1.14.1",
+ "resolved": "https://registry.npmjs.org/servez/-/servez-1.14.1.tgz",
+ "integrity": "sha512-p0NntkNbUfltQMM19fRXTR/PVUCZzhfXobJ0THzldJaAFoEAMH1e+GC7iKjQebszhQRhvq2tPT8xaJhqt/pNjQ==",
"dev": true,
"requires": {
"ansi-colors": "^4.1.1",
"color-support": "^1.1.3",
"optionator": "^0.8.2",
- "servez-lib": "^2.4.0"
+ "servez-lib": "^2.6.0"
},
"dependencies": {
"levn": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
"dev": true,
"requires": {
"prelude-ls": "~1.1.2",
@@ -21475,6 +24500,8 @@
},
"optionator": {
"version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
"dev": true,
"requires": {
"deep-is": "~0.1.3",
@@ -21487,10 +24514,14 @@
},
"prelude-ls": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
"dev": true
},
"type-check": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
"dev": true,
"requires": {
"prelude-ls": "~1.1.2"
@@ -21499,25 +24530,31 @@
}
},
"servez-lib": {
- "version": "2.4.0",
+ "version": "2.6.0",
+ "resolved": "https://registry.npmjs.org/servez-lib/-/servez-lib-2.6.0.tgz",
+ "integrity": "sha512-4XfLkK8MUWEkWYzlDRPwvZ5aABNEkc8ryrn44IP3eRG132d17TMpSkJ00Zv+61L0kzO5Crv0ijF0xaX4DqfQHg==",
"dev": true,
"requires": {
"basic-auth": "^2.0.1",
"cors": "^2.8.5",
- "debug": "^4.1.1",
- "express": "^4.17.1",
+ "debug": "^4.3.4",
+ "express": "^4.17.3",
"secure-compare": "^3.0.1",
- "selfsigned": "^1.10.8",
+ "selfsigned": "^2.0.1",
"serve-index": "^1.9.1",
"server-destroy": "^1.0.1"
}
},
"set-blocking": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
+ "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==",
"dev": true
},
"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==",
"requires": {
"extend-shallow": "^2.0.1",
"is-extendable": "^0.1.1",
@@ -21526,14 +24563,20 @@
}
},
"setprototypeof": {
- "version": "1.1.1"
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"shallow-copy": {
"version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/shallow-copy/-/shallow-copy-0.0.1.tgz",
+ "integrity": "sha512-b6i4ZpVuUxB9h5gfCxPiusKYkqTMOjEbBs4wMaFbkfia4yFv92UKZ6Df8WXcKbn08JNL/abvg3FnMAOfakDvUw==",
"dev": true
},
"shebang-command": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
"dev": true,
"requires": {
"shebang-regex": "^3.0.0"
@@ -21541,34 +24584,30 @@
},
"shebang-regex": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true
},
- "shortid": {
- "version": "2.2.16",
- "requires": {
- "nanoid": "^2.1.0"
- },
- "dependencies": {
- "nanoid": {
- "version": "2.1.11"
- }
- }
- },
"shush": {
- "version": "1.0.0",
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/shush/-/shush-1.0.1.tgz",
+ "integrity": "sha512-baDDBPaPcFwVeQNfj1lYkE/NkqQr1WkXUlOePHnA5I8hw9Fz0Tu72ZC0XENeV4tM9tesaGA/Wi2mW07EOeKRuQ==",
"requires": {
- "caller": "~0.0.1",
- "strip-json-comments": "~0.1.1"
+ "caller": "~1.0.1",
+ "strip-json-comments": "~2.0.1"
},
"dependencies": {
"strip-json-comments": {
- "version": "0.1.3"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ=="
}
}
},
"side-channel": {
"version": "1.0.4",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
+ "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
@@ -21576,10 +24615,22 @@
}
},
"signal-exit": {
- "version": "3.0.5"
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
+ },
+ "simple-swizzle": {
+ "version": "0.2.2",
+ "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
+ "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==",
+ "requires": {
+ "is-arrayish": "^0.3.1"
+ }
},
"slice-ansi": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
"dev": true,
"requires": {
"ansi-styles": "^4.0.0",
@@ -21589,6 +24640,8 @@
"dependencies": {
"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,
"requires": {
"color-convert": "^2.0.1"
@@ -21596,6 +24649,8 @@
},
"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,
"requires": {
"color-name": "~1.1.4"
@@ -21603,26 +24658,27 @@
},
"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
}
}
},
"smart-buffer": {
"version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz",
+ "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==",
"dev": true
},
"smile2emoji": {
- "version": "1.1.6"
- },
- "snake-case": {
- "version": "3.0.4",
- "requires": {
- "dot-case": "^3.0.4",
- "tslib": "^2.0.3"
- }
+ "version": "1.1.6",
+ "resolved": "https://registry.npmjs.org/smile2emoji/-/smile2emoji-1.1.6.tgz",
+ "integrity": "sha512-l5RqlYuqVDUayBSs4tGjvmIrnnSzQZYHyxDdKrf50a8kPxhYritYH40f9AQ4UVR3/e9JZZT8PqOuD0oKhE2Psg=="
},
"snapdragon": {
"version": "0.8.2",
+ "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
+ "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==",
"requires": {
"base": "^0.11.1",
"debug": "^2.2.0",
@@ -21636,30 +24692,40 @@
"dependencies": {
"debug": {
"version": "2.6.9",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
+ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"define-property": {
"version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"requires": {
"is-descriptor": "^0.1.0"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"is-descriptor": {
"version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"requires": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -21667,17 +24733,23 @@
},
"dependencies": {
"kind-of": {
- "version": "5.1.0"
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
}
}
},
"ms": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
}
}
},
"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==",
"requires": {
"define-property": "^1.0.0",
"isobject": "^3.0.0",
@@ -21686,6 +24758,8 @@
"dependencies": {
"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==",
"requires": {
"is-descriptor": "^1.0.0"
}
@@ -21694,36 +24768,48 @@
},
"snapdragon-util": {
"version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz",
+ "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==",
"requires": {
"kind-of": "^3.2.0"
}
},
"socks": {
- "version": "2.6.1",
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz",
+ "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==",
"dev": true,
"requires": {
"ip": "^1.1.5",
- "smart-buffer": "^4.1.0"
+ "smart-buffer": "^4.2.0"
}
},
"socks-proxy-agent": {
- "version": "6.1.1",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz",
+ "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==",
"dev": true,
"requires": {
"agent-base": "^6.0.2",
- "debug": "^4.3.1",
- "socks": "^2.6.1"
+ "debug": "^4.3.3",
+ "socks": "^2.6.2"
}
},
"source-map": {
- "version": "0.5.7"
+ "version": "0.5.7",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz",
+ "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ=="
},
"source-map-js": {
- "version": "0.6.2",
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
+ "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
"dev": true
},
"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==",
"requires": {
"atob": "^2.1.2",
"decode-uri-component": "^0.2.0",
@@ -21734,6 +24820,8 @@
},
"source-map-support": {
"version": "0.5.21",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz",
+ "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -21742,38 +24830,35 @@
"dependencies": {
"source-map": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true
}
}
},
"source-map-url": {
- "version": "0.4.1"
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz",
+ "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw=="
},
"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
},
- "spectorjs": {
- "version": "0.9.27",
- "dev": true
- },
- "split": {
- "version": "0.2.10",
- "requires": {
- "through": "2"
- }
- },
- "split-on-first": {
- "version": "1.1.0"
- },
"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==",
"requires": {
"extend-shallow": "^3.0.0"
},
"dependencies": {
"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==",
"requires": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -21781,6 +24866,8 @@
},
"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==",
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -21789,10 +24876,14 @@
},
"sprintf-js": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
"dev": true
},
"sshpk": {
"version": "1.17.0",
+ "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.17.0.tgz",
+ "integrity": "sha512-/9HIEs1ZXGhSPE8X6Ccm7Nam1z8KcoCqPdI7ecm1N33EzAetWahvQWVqLZtaZQ+IDKX4IyA2o0gBzqIMkAagHQ==",
"dev": true,
"requires": {
"asn1": "~0.2.3",
@@ -21808,16 +24899,22 @@
},
"ssri": {
"version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz",
+ "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==",
"dev": true,
"requires": {
"minipass": "^3.1.1"
}
},
"stack-trace": {
- "version": "0.0.10"
+ "version": "0.0.10",
+ "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
+ "integrity": "sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg=="
},
"static-eval": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.1.0.tgz",
+ "integrity": "sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw==",
"dev": true,
"requires": {
"escodegen": "^1.11.1"
@@ -21825,6 +24922,8 @@
"dependencies": {
"escodegen": {
"version": "1.14.3",
+ "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.3.tgz",
+ "integrity": "sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw==",
"dev": true,
"requires": {
"esprima": "^4.0.1",
@@ -21836,6 +24935,8 @@
},
"levn": {
"version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
+ "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
"dev": true,
"requires": {
"prelude-ls": "~1.1.2",
@@ -21844,6 +24945,8 @@
},
"optionator": {
"version": "0.8.3",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
+ "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
"dev": true,
"requires": {
"deep-is": "~0.1.3",
@@ -21856,15 +24959,21 @@
},
"prelude-ls": {
"version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
+ "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
"dev": true
},
"source-map": {
"version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
"dev": true,
"optional": true
},
"type-check": {
"version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
+ "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
"dev": true,
"requires": {
"prelude-ls": "~1.1.2"
@@ -21874,6 +24983,8 @@
},
"static-extend": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
+ "integrity": "sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==",
"requires": {
"define-property": "^0.2.5",
"object-copy": "^0.1.0"
@@ -21881,24 +24992,32 @@
"dependencies": {
"define-property": {
"version": "0.2.5",
+ "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz",
+ "integrity": "sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==",
"requires": {
"is-descriptor": "^0.1.0"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"is-descriptor": {
"version": "0.1.6",
+ "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz",
+ "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==",
"requires": {
"is-accessor-descriptor": "^0.1.6",
"is-data-descriptor": "^0.1.4",
@@ -21906,7 +25025,9 @@
},
"dependencies": {
"kind-of": {
- "version": "5.1.0"
+ "version": "5.1.0",
+ "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz",
+ "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw=="
}
}
}
@@ -21914,6 +25035,8 @@
},
"static-module": {
"version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/static-module/-/static-module-2.2.5.tgz",
+ "integrity": "sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ==",
"dev": true,
"requires": {
"concat-stream": "~1.6.0",
@@ -21932,12 +25055,22 @@
"through2": "~2.0.3"
},
"dependencies": {
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==",
+ "dev": true
+ },
"object-inspect": {
"version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.4.1.tgz",
+ "integrity": "sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw==",
"dev": true
},
"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,
"requires": {
"core-util-is": "~1.0.0",
@@ -21951,6 +25084,8 @@
},
"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"
@@ -21959,56 +25094,79 @@
}
},
"stats.js": {
- "version": "0.17.0"
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/stats.js/-/stats.js-0.17.0.tgz",
+ "integrity": "sha512-hNKz8phvYLPEcRkeG1rsGmV5ChMjKDAWU7/OJJdDErPBNChQXxCo3WZurGpnWc6gZhAzEPFad1aVgyOANH1sMw=="
},
"statuses": {
- "version": "1.5.0"
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
+ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ=="
},
"stream-chain": {
- "version": "2.2.4",
+ "version": "2.2.5",
+ "resolved": "https://registry.npmjs.org/stream-chain/-/stream-chain-2.2.5.tgz",
+ "integrity": "sha512-1TJmBx6aSWqZ4tx7aTpBDXK0/e2hhcNSTV8+CbFJtDjbb+I1mZ8lHit0Grw9GRT+6JbIrrDd8esncgBi8aBXGA==",
"dev": true
},
"stream-combiner": {
"version": "0.0.4",
+ "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz",
+ "integrity": "sha512-rT00SPnTVyRsaSz5zgSPma/aHSOic5U1prhYdRy5HS2kTZviFpmDgzilbtsJsxiroqACmayynDN/9VzIbX5DOw==",
"requires": {
"duplexer": "~0.1.1"
}
},
"stream-json": {
"version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/stream-json/-/stream-json-1.1.3.tgz",
+ "integrity": "sha512-y+ChhCov2A5nDqC2aZ6HKXs3OvDlvAp0Ps3BF1P/Iv8tUZJQQsMVaSzk0WryVTVoGITKv01UYahCXMpAs7I0lQ==",
"dev": true,
"requires": {
"stream-chain": "^2.0.3"
}
},
- "strict-uri-encode": {
- "version": "2.0.0"
- },
"string_decoder": {
"version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
+ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
"requires": {
"safe-buffer": "~5.2.0"
},
"dependencies": {
"safe-buffer": {
- "version": "5.2.1"
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
+ "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
}
}
},
"string-argv": {
"version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/string-argv/-/string-argv-0.3.1.tgz",
+ "integrity": "sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg==",
"dev": true
},
"string-to-stream": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/string-to-stream/-/string-to-stream-1.1.1.tgz",
+ "integrity": "sha512-QySF2+3Rwq0SdO3s7BAp4x+c3qsClpPQ6abAmb0DGViiSBAkT5kL6JT2iyzEVP+T1SmzHrQD1TwlP9QAHCc+Sw==",
"dev": true,
"requires": {
"inherits": "^2.0.1",
"readable-stream": "^2.1.0"
},
"dependencies": {
+ "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.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -22022,6 +25180,8 @@
},
"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"
@@ -22031,6 +25191,8 @@
},
"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==",
"requires": {
"emoji-regex": "^8.0.0",
"is-fullwidth-code-point": "^3.0.0",
@@ -22038,23 +25200,29 @@
}
},
"string.prototype.trimend": {
- "version": "1.0.4",
- "dev": true,
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz",
+ "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"string.prototype.trimstart": {
- "version": "1.0.4",
- "dev": true,
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz",
+ "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==",
"requires": {
"call-bind": "^1.0.2",
- "define-properties": "^1.1.3"
+ "define-properties": "^1.1.4",
+ "es-abstract": "^1.19.5"
}
},
"stringify-object": {
"version": "3.3.0",
+ "resolved": "https://registry.npmjs.org/stringify-object/-/stringify-object-3.3.0.tgz",
+ "integrity": "sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==",
"dev": true,
"requires": {
"get-own-enumerable-property-symbols": "^3.0.0",
@@ -22064,27 +25232,39 @@
},
"strip-ansi": {
"version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
"requires": {
"ansi-regex": "^5.0.1"
}
},
"strip-bom": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
"dev": true
},
"strip-eof": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz",
+ "integrity": "sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q==",
"dev": true
},
"strip-final-newline": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true
},
"strip-json-comments": {
- "version": "3.1.1"
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="
},
"strip-outer": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz",
+ "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.2"
@@ -22092,16 +25272,25 @@
},
"supports-color": {
"version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"requires": {
"has-flag": "^3.0.0"
}
},
+ "supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "dev": true
+ },
"table": {
- "version": "6.7.2",
+ "version": "6.8.0",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz",
+ "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==",
"dev": true,
"requires": {
"ajv": "^8.0.1",
- "lodash.clonedeep": "^4.5.0",
"lodash.truncate": "^4.4.2",
"slice-ansi": "^4.0.0",
"string-width": "^4.2.3",
@@ -22110,6 +25299,8 @@
},
"table-layout": {
"version": "0.4.5",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz",
+ "integrity": "sha512-zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw==",
"dev": true,
"requires": {
"array-back": "^2.0.0",
@@ -22119,19 +25310,10 @@
"wordwrapjs": "^3.0.0"
}
},
- "tape": {
- "version": "2.3.3",
- "requires": {
- "deep-equal": "~0.1.0",
- "defined": "~0.0.0",
- "inherits": "~2.0.1",
- "jsonify": "~0.0.0",
- "resumer": "~0.0.0",
- "through": "~2.3.4"
- }
- },
"tar": {
"version": "6.1.11",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz",
+ "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==",
"dev": true,
"requires": {
"chownr": "^2.0.0",
@@ -22144,12 +25326,36 @@
"dependencies": {
"mkdirp": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true
+ }
+ }
+ },
+ "terser": {
+ "version": "5.14.1",
+ "resolved": "https://registry.npmjs.org/terser/-/terser-5.14.1.tgz",
+ "integrity": "sha512-+ahUAE+iheqBTDxXhTisdA8hgvbEG1hHOQ9xmNjeUJSoi6DU/gMrKNcfZjHkyY6Alnuyc+ikYJaxxfHkT3+WuQ==",
+ "dev": true,
+ "requires": {
+ "@jridgewell/source-map": "^0.3.2",
+ "acorn": "^8.5.0",
+ "commander": "^2.20.0",
+ "source-map-support": "~0.5.20"
+ },
+ "dependencies": {
+ "acorn": {
+ "version": "8.7.1",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz",
+ "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==",
"dev": true
}
}
},
"test-value": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/test-value/-/test-value-2.1.0.tgz",
+ "integrity": "sha512-+1epbAxtKeXttkGFMTX9H42oqzOTufR1ceCF+GYA5aOmvaPq9wd4PUS8329fn2RRLGNeUkgRLnVpycjx8DsO2w==",
"dev": true,
"requires": {
"array-back": "^1.0.3",
@@ -22158,6 +25364,8 @@
"dependencies": {
"array-back": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-1.0.4.tgz",
+ "integrity": "sha512-1WxbZvrmyhkNoeYcizokbmh5oiOCIfyvGtcqbK3Ls1v1fKcquzxnQSceOx6tzq7jmai2kFLWIpGND2cLhH6TPw==",
"dev": true,
"requires": {
"typical": "^2.6.0"
@@ -22165,8 +25373,15 @@
}
}
},
+ "text-hex": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
+ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
+ },
"text-table": {
"version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
+ "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
"dev": true
},
"three": {
@@ -22193,6 +25408,8 @@
"dependencies": {
"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,
"requires": {
"color-convert": "^2.0.1"
@@ -22200,6 +25417,8 @@
},
"chalk": {
"version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
@@ -22208,6 +25427,8 @@
},
"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,
"requires": {
"color-name": "~1.1.4"
@@ -22215,14 +25436,20 @@
},
"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
},
"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
},
"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"
@@ -22231,18 +25458,30 @@
}
},
"through": {
- "version": "2.3.8"
+ "version": "2.3.8",
+ "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
+ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="
},
"through2": {
"version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz",
+ "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==",
"dev": true,
"requires": {
"readable-stream": "~2.3.6",
"xtend": "~4.0.1"
},
"dependencies": {
+ "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.7",
+ "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
+ "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
"dev": true,
"requires": {
"core-util-is": "~1.0.0",
@@ -22256,6 +25495,8 @@
},
"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"
@@ -22265,19 +25506,27 @@
},
"tiny-inflate": {
"version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tiny-inflate/-/tiny-inflate-1.0.3.tgz",
+ "integrity": "sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw==",
"dev": true
},
"to-fast-properties": {
- "version": "2.0.0"
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz",
+ "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog=="
},
"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==",
"requires": {
"kind-of": "^3.0.2"
}
},
"to-regex": {
"version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz",
+ "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==",
"requires": {
"define-property": "^2.0.2",
"extend-shallow": "^3.0.2",
@@ -22287,6 +25536,8 @@
"dependencies": {
"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==",
"requires": {
"assign-symbols": "^1.0.0",
"is-extendable": "^1.0.1"
@@ -22294,6 +25545,8 @@
},
"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==",
"requires": {
"is-plain-object": "^2.0.4"
}
@@ -22302,16 +25555,22 @@
},
"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==",
"requires": {
"is-number": "^3.0.0",
"repeat-string": "^1.6.1"
}
},
"toidentifier": {
- "version": "1.0.0"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
+ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA=="
},
"tough-cookie": {
"version": "2.5.0",
+ "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
+ "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
"dev": true,
"requires": {
"psl": "^1.1.28",
@@ -22319,48 +25578,67 @@
}
},
"tr46": {
- "version": "0.0.3"
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz",
+ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"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
},
"trim-repeated": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz",
+ "integrity": "sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==",
"dev": true,
"requires": {
"escape-string-regexp": "^1.0.2"
}
},
+ "triple-beam": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
+ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
+ },
"troika-three-text": {
"version": "0.43.1-alpha.0",
+ "resolved": "https://registry.npmjs.org/troika-three-text/-/troika-three-text-0.43.1-alpha.0.tgz",
+ "integrity": "sha512-bayeycChrNM4HgpN6Y0GkuL1Ib9eCf0SOMfT0SH0msML5qpICjEdvTSqJUJYdmbv59gJlfAJ2bsnQrkr3IgyZw==",
"requires": {
"bidi-js": "^1.0.2",
"troika-three-utils": "^0.43.0",
"troika-worker-utils": "^0.43.0"
- },
- "dependencies": {
- "troika-three-utils": {
- "version": "0.43.0",
- "requires": {}
- }
}
},
+ "troika-three-utils": {
+ "version": "0.43.0",
+ "resolved": "https://registry.npmjs.org/troika-three-utils/-/troika-three-utils-0.43.0.tgz",
+ "integrity": "sha512-UVc4jOob1VjrX0awA0dHxmHZ8yvgq8W/kmtihMnMeObm0HNOobPKAWm/N6o34/k/FPgOtUMDHYgkw+TG2RNouA==",
+ "requires": {}
+ },
"troika-worker-utils": {
- "version": "0.43.0"
+ "version": "0.43.0",
+ "resolved": "https://registry.npmjs.org/troika-worker-utils/-/troika-worker-utils-0.43.0.tgz",
+ "integrity": "sha512-8YXWwfviJ1N/9+nuE5dT9RFttmDsIF8CP7d6rRsBBhH55il3fBqpFSuzTlOcdgC1yq8Hmhi6GgIl6eK4Zt+hTw=="
},
"tsconfig-paths": {
- "version": "3.11.0",
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz",
+ "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==",
"dev": true,
"requires": {
"@types/json5": "^0.0.29",
"json5": "^1.0.1",
- "minimist": "^1.2.0",
+ "minimist": "^1.2.6",
"strip-bom": "^3.0.0"
},
"dependencies": {
"json5": {
"version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz",
+ "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
@@ -22369,10 +25647,15 @@
}
},
"tslib": {
- "version": "2.3.1"
+ "version": "2.4.0",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz",
+ "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==",
+ "dev": true
},
"tunnel-agent": {
"version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
+ "integrity": "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==",
"dev": true,
"requires": {
"safe-buffer": "^5.0.1"
@@ -22380,10 +25663,14 @@
},
"tweetnacl": {
"version": "0.14.5",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
+ "integrity": "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==",
"dev": true
},
"type-check": {
"version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
"dev": true,
"requires": {
"prelude-ls": "^1.2.1"
@@ -22391,10 +25678,14 @@
},
"type-fest": {
"version": "0.20.2",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz",
+ "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==",
"dev": true
},
"type-is": {
"version": "1.6.18",
+ "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
+ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"requires": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
@@ -22402,41 +25693,43 @@
},
"typedarray": {
"version": "0.0.6",
+ "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
+ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==",
"dev": true
},
"typescript": {
"version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.4.tgz",
+ "integrity": "sha512-0RNDbSdEokBeEAkgNbxJ+BLwSManFy9TeXz8uW+48j/xhEXv1ePME60olyzw2XzUqUBNAYFeJadIqAgNqIACwg==",
"dev": true
},
- "typescript-memoize": {
- "version": "1.0.1"
- },
"typical": {
"version": "2.6.1",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz",
+ "integrity": "sha512-ofhi8kjIje6npGozTip9Fr8iecmYfEbS06i0JnIg+rh51KakryWF4+jX8lLKZVhy6N+ID45WYSFCxPOdTWCzNg==",
"dev": true
},
- "uint8arrays": {
- "version": "2.1.10",
- "requires": {
- "multiformats": "^9.4.2"
- }
- },
"unbox-primitive": {
- "version": "1.0.1",
- "dev": true,
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
+ "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
"requires": {
- "function-bind": "^1.1.1",
- "has-bigints": "^1.0.1",
- "has-symbols": "^1.0.2",
+ "call-bind": "^1.0.2",
+ "has-bigints": "^1.0.2",
+ "has-symbols": "^1.0.3",
"which-boxed-primitive": "^1.0.2"
}
},
"unicode-canonical-property-names-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==",
"dev": true
},
"unicode-match-property-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==",
"dev": true,
"requires": {
"unicode-canonical-property-names-ecmascript": "^2.0.0",
@@ -22445,14 +25738,20 @@
},
"unicode-match-property-value-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==",
"dev": true
},
"unicode-property-aliases-ecmascript": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz",
+ "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==",
"dev": true
},
"unicode-trie": {
"version": "0.3.1",
+ "resolved": "https://registry.npmjs.org/unicode-trie/-/unicode-trie-0.3.1.tgz",
+ "integrity": "sha512-WgVuO0M2jDl7hVfbPgXv2LUrD81HM0bQj/bvLGiw6fJ4Zo8nNFnDrA0/hU2Te/wz6pjxCm5cxJwtLjo2eyV51Q==",
"dev": true,
"requires": {
"pako": "^0.2.5",
@@ -22461,12 +25760,16 @@
"dependencies": {
"pako": {
"version": "0.2.9",
+ "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
+ "integrity": "sha512-NUcwaKxUxWrZLpDG+z/xZaCgQITkA/Dv4V/T6bw7VON6l1Xz/VnrBqrYjZQ12TamKHzITTfOEIYUj48y2KXImA==",
"dev": true
}
}
},
"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==",
"requires": {
"arr-union": "^3.1.0",
"get-value": "^2.0.6",
@@ -22476,6 +25779,8 @@
},
"unique-filename": {
"version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz",
+ "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==",
"dev": true,
"requires": {
"unique-slug": "^2.0.0"
@@ -22483,6 +25788,8 @@
},
"unique-slug": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz",
+ "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==",
"dev": true,
"requires": {
"imurmurhash": "^0.1.4"
@@ -22490,22 +25797,32 @@
},
"unique-string": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz",
+ "integrity": "sha512-ODgiYu03y5g76A1I9Gt0/chLCzQjvzDy7DsZGsLOE/1MrF6wriEskSncj1+/C58Xk/kPZDppSctDybCwOSaGAg==",
"requires": {
"crypto-random-string": "^1.0.0"
}
},
"universalify": {
"version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
+ "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==",
"dev": true
},
"unix-path": {
- "version": "0.2.0"
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/unix-path/-/unix-path-0.2.0.tgz",
+ "integrity": "sha512-x8ccHoiBE8Ykw4mpAqS49vXxaQrovLCyTunbhJgNhtDOpmIdlwnQuA8bHTnQWo+i64gJ4cIwOSn/ZVNAyaiBDQ=="
},
"unpipe": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
+ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ=="
},
"unset-value": {
"version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz",
+ "integrity": "sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==",
"requires": {
"has-value": "^0.3.1",
"isobject": "^3.0.0"
@@ -22513,6 +25830,8 @@
"dependencies": {
"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==",
"requires": {
"get-value": "^2.0.3",
"has-values": "^0.1.4",
@@ -22521,6 +25840,8 @@
"dependencies": {
"isobject": {
"version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
"requires": {
"isarray": "1.0.0"
}
@@ -22528,63 +25849,64 @@
}
},
"has-values": {
- "version": "0.1.4"
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ=="
+ },
+ "isarray": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
}
}
},
"upath": {
- "version": "1.2.0"
- },
- "upper-case": {
- "version": "2.0.2",
- "requires": {
- "tslib": "^2.0.3"
- }
- },
- "upper-case-first": {
- "version": "2.0.2",
- "requires": {
- "tslib": "^2.0.3"
- }
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz",
+ "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg=="
},
"uri-js": {
"version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
"requires": {
"punycode": "^2.1.0"
}
},
"urijs": {
- "version": "1.19.7",
+ "version": "1.19.11",
+ "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.11.tgz",
+ "integrity": "sha512-HXgFDgDommxn5/bIv0cnQZsPhHDA90NPHD6+c/v21U5+Sx5hoP8+dP9IZXBU1gIfvdRfhG8cel9QNPeionfcCQ==",
"dev": true
},
"urix": {
- "version": "0.1.0"
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz",
+ "integrity": "sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg=="
},
"use": {
- "version": "3.1.1"
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
+ "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
},
"use-asset": {
"version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/use-asset/-/use-asset-1.0.4.tgz",
+ "integrity": "sha512-7/hqDrWa0iMnCoET9W1T07EmD4Eg/Wmoj/X8TGBc++ECRK4m5yTsjP4O6s0yagbxfqIOuUkIxe2/sA+VR2GxZA==",
"requires": {
"fast-deep-equal": "^3.1.3"
}
},
- "util": {
- "version": "0.11.1",
- "requires": {
- "inherits": "2.0.3"
- },
- "dependencies": {
- "inherits": {
- "version": "2.0.3"
- }
- }
- },
"util-deprecate": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
+ "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
},
"utile": {
"version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/utile/-/utile-0.2.1.tgz",
+ "integrity": "sha512-ltfvuCJNa/JFOhKBBiQ9qDyyFwLstoMMO1ru0Yg/Mcl8dp1Z3IBaL7n+5dHpyma+d3lCogkgBQnWKtGxzNyqhg==",
"requires": {
"async": "~0.2.9",
"deep-equal": "*",
@@ -22595,10 +25917,14 @@
},
"dependencies": {
"async": {
- "version": "0.2.10"
+ "version": "0.2.10",
+ "resolved": "https://registry.npmjs.org/async/-/async-0.2.10.tgz",
+ "integrity": "sha512-eAkdoKxU6/LkKDBzLpT+t6Ff5EtfSF4wx1WfJiPEEV7WNLnDaRXk0oVysiEPm262roaachGexwUv94WhSgN5TQ=="
},
"rimraf": {
"version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"requires": {
"glob": "^7.1.3"
}
@@ -22606,34 +25932,45 @@
}
},
"utility-types": {
- "version": "3.10.0"
+ "version": "3.10.0",
+ "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz",
+ "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg=="
},
"utils-merge": {
- "version": "1.0.1"
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
+ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA=="
},
"uuid": {
"version": "3.4.0",
+ "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
+ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
"dev": true
},
"v8-compile-cache": {
"version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz",
+ "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
"validate-npm-package-name": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz",
+ "integrity": "sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw==",
"dev": true,
"requires": {
"builtins": "^1.0.3"
}
},
- "varint": {
- "version": "6.0.0"
- },
"vary": {
- "version": "1.1.2"
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
+ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg=="
},
"verror": {
"version": "1.10.0",
+ "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
+ "integrity": "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==",
"dev": true,
"requires": {
"assert-plus": "^1.0.0",
@@ -22643,36 +25980,54 @@
"dependencies": {
"core-util-is": {
"version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
+ "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==",
"dev": true
}
}
},
"vite": {
- "version": "2.6.10",
+ "version": "2.9.12",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.12.tgz",
+ "integrity": "sha512-suxC36dQo9Rq1qMB2qiRorNJtJAdxguu5TMvBHOc/F370KvqAe9t48vYp+/TbPKRNrMh/J55tOUmkuIqstZaew==",
"dev": true,
"requires": {
- "esbuild": "^0.13.2",
+ "esbuild": "^0.14.27",
"fsevents": "~2.3.2",
- "postcss": "^8.3.8",
- "resolve": "^1.20.0",
- "rollup": "^2.57.0"
+ "postcss": "^8.4.13",
+ "resolve": "^1.22.0",
+ "rollup": "^2.59.0"
+ },
+ "dependencies": {
+ "fsevents": {
+ "version": "2.3.2",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
+ "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
+ "dev": true,
+ "optional": true
+ }
}
},
"vlq": {
"version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz",
+ "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==",
"dev": true
},
- "web-streams-polyfill": {
- "version": "3.2.0"
- },
"webidl-conversions": {
- "version": "3.0.1"
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz",
+ "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE="
},
"webm-writer": {
- "version": "1.0.0"
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/webm-writer/-/webm-writer-1.0.0.tgz",
+ "integrity": "sha512-xafP4mzUqht03HBXP0Ov2YGsxfD08uncad9fQeshYwQXrcP6Z/4uxd1IUaGKqKigFPAgaD9xb6JEKA8SXLQMLA=="
},
"whatwg-fetch": {
"version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.6.2.tgz",
+ "integrity": "sha512-bJlen0FcuU/0EMLrdbJ7zOnW6ITZLrZMIarMUVmdKtsGvZna8vxKYaexICWPfZ8qwf9fzNq+UEIZrnSaApt6RA==",
"dev": true
},
"whatwg-mimetype": {
@@ -22682,6 +26037,8 @@
},
"whatwg-url": {
"version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz",
+ "integrity": "sha1-lmRU6HZUYuN2RNNib2dCzotwll0=",
"requires": {
"tr46": "~0.0.3",
"webidl-conversions": "^3.0.0"
@@ -22689,13 +26046,16 @@
},
"which": {
"version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"requires": {
"isexe": "^2.0.0"
}
},
"which-boxed-primitive": {
"version": "1.0.2",
- "dev": true,
+ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz",
+ "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==",
"requires": {
"is-bigint": "^1.0.1",
"is-boolean-object": "^1.1.0",
@@ -22704,12 +26064,40 @@
"is-symbol": "^1.0.3"
}
},
+ "which-collection": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.1.tgz",
+ "integrity": "sha512-W8xeTUwaln8i3K/cY1nGXzdnVZlidBcagyNFtBdD5kxnb4TvGKR7FfSIS3mYpwWS1QUCutfKz8IY8RjftB0+1A==",
+ "requires": {
+ "is-map": "^2.0.1",
+ "is-set": "^2.0.1",
+ "is-weakmap": "^2.0.1",
+ "is-weakset": "^2.0.1"
+ }
+ },
"which-module": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
+ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
"dev": true
},
+ "which-typed-array": {
+ "version": "1.1.8",
+ "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.8.tgz",
+ "integrity": "sha512-Jn4e5PItbcAHyLoRDwvPj1ypu27DJbtdYXUa5zsinrUx77Uvfb0cXwwnGMTn7cjUfhhqgVQnVJCwF+7cgU7tpw==",
+ "requires": {
+ "available-typed-arrays": "^1.0.5",
+ "call-bind": "^1.0.2",
+ "es-abstract": "^1.20.0",
+ "for-each": "^0.3.3",
+ "has-tostringtag": "^1.0.0",
+ "is-typed-array": "^1.1.9"
+ }
+ },
"wide-align": {
"version": "1.1.5",
+ "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz",
+ "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==",
"dev": true,
"requires": {
"string-width": "^1.0.2 || 2 || 3 || 4"
@@ -22717,43 +26105,62 @@
},
"widest-line": {
"version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz",
+ "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==",
"dev": true,
"requires": {
"string-width": "^4.0.0"
}
},
"winston": {
- "version": "0.8.3",
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/winston/-/winston-3.7.2.tgz",
+ "integrity": "sha512-QziIqtojHBoyzUOdQvQiar1DH0Xp9nF1A1y7NVy2DGEsz82SBDtOalS0ulTRGVT14xPX3WRWkCsdcJKqNflKng==",
"requires": {
- "async": "0.2.x",
- "colors": "0.6.x",
- "cycle": "1.0.x",
- "eyes": "0.1.x",
- "isstream": "0.1.x",
- "pkginfo": "0.3.x",
- "stack-trace": "0.0.x"
+ "@dabh/diagnostics": "^2.0.2",
+ "async": "^3.2.3",
+ "is-stream": "^2.0.0",
+ "logform": "^2.4.0",
+ "one-time": "^1.0.0",
+ "readable-stream": "^3.4.0",
+ "safe-stable-stringify": "^2.3.1",
+ "stack-trace": "0.0.x",
+ "triple-beam": "^1.3.0",
+ "winston-transport": "^4.5.0"
},
"dependencies": {
"async": {
- "version": "0.2.10"
- },
- "colors": {
- "version": "0.6.2"
- },
- "pkginfo": {
- "version": "0.3.1"
+ "version": "3.2.4",
+ "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
+ "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ=="
}
}
},
+ "winston-transport": {
+ "version": "4.5.0",
+ "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.5.0.tgz",
+ "integrity": "sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==",
+ "requires": {
+ "logform": "^2.3.2",
+ "readable-stream": "^3.6.0",
+ "triple-beam": "^1.3.0"
+ }
+ },
"word-wrap": {
"version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz",
+ "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
"dev": true
},
"wordwrap": {
- "version": "0.0.3"
+ "version": "0.0.3",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+ "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
},
"wordwrapjs": {
"version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz",
+ "integrity": "sha512-mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw==",
"dev": true,
"requires": {
"reduce-flatten": "^1.0.1",
@@ -22761,10 +26168,14 @@
}
},
"workerpool": {
- "version": "6.1.5"
+ "version": "6.2.0",
+ "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.0.tgz",
+ "integrity": "sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A=="
},
"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==",
"requires": {
"ansi-styles": "^4.0.0",
"string-width": "^4.1.0",
@@ -22773,26 +26184,36 @@
"dependencies": {
"ansi-styles": {
"version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"requires": {
"color-convert": "^2.0.1"
}
},
"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==",
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
- "version": "1.1.4"
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
}
}
},
"wrappy": {
- "version": "1.0.2"
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
},
"write-file-atomic": {
"version": "2.4.3",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.3.tgz",
+ "integrity": "sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ==",
"requires": {
"graceful-fs": "^4.1.11",
"imurmurhash": "^0.1.4",
@@ -22800,7 +26221,9 @@
}
},
"ws": {
- "version": "8.2.3",
+ "version": "7.4.6",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz",
+ "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==",
"requires": {}
},
"wsrtc": {
@@ -22812,57 +26235,185 @@
},
"dependencies": {
"dotenv": {
- "version": "10.0.0"
+ "version": "10.0.0",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-10.0.0.tgz",
+ "integrity": "sha512-rlBi9d8jpv9Sf1klPjNfFAuWDjKLwTIJJ/VxtoTwIR6hnZxcEOQCZg2oIL3MWBYw5GpUDKOEnND7LXTbIpQ03Q=="
+ },
+ "ws": {
+ "version": "8.8.0",
+ "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz",
+ "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==",
+ "requires": {}
}
}
},
"xdg-basedir": {
- "version": "3.0.0"
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz",
+ "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ="
},
"xhr2": {
- "version": "0.2.1"
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz",
+ "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw=="
},
"xtend": {
"version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
"dev": true
},
"y18n": {
- "version": "5.0.8"
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz",
+ "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==",
+ "dev": true
},
"yallist": {
"version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
+ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
"dev": true
},
"yaml": {
"version": "1.10.2",
+ "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz",
+ "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==",
"dev": true
},
"yargs": {
- "version": "16.2.0",
+ "version": "12.0.5",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz",
+ "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==",
+ "dev": true,
"requires": {
- "cliui": "^7.0.2",
- "escalade": "^3.1.1",
- "get-caller-file": "^2.0.5",
+ "cliui": "^4.0.0",
+ "decamelize": "^1.2.0",
+ "find-up": "^3.0.0",
+ "get-caller-file": "^1.0.1",
+ "os-locale": "^3.0.0",
"require-directory": "^2.1.1",
- "string-width": "^4.2.0",
- "y18n": "^5.0.5",
- "yargs-parser": "^20.2.2"
+ "require-main-filename": "^1.0.1",
+ "set-blocking": "^2.0.0",
+ "string-width": "^2.0.0",
+ "which-module": "^2.0.0",
+ "y18n": "^3.2.1 || ^4.0.0",
+ "yargs-parser": "^11.1.1"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
+ "integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
+ "dev": true
+ },
+ "find-up": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
+ "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
+ "dev": true,
+ "requires": {
+ "locate-path": "^3.0.0"
+ }
+ },
+ "is-fullwidth-code-point": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
+ "integrity": "sha512-VHskAKYM8RfSFXwee5t5cbN5PZeq1Wrh6qd5bkyiXIf6UQcN6w/A0eXM9r6t8d+GYOh+o6ZhiEnb88LN/Y8m2w==",
+ "dev": true
+ },
+ "locate-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
+ "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
+ "dev": true,
+ "requires": {
+ "p-locate": "^3.0.0",
+ "path-exists": "^3.0.0"
+ }
+ },
+ "p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "dev": true,
+ "requires": {
+ "p-try": "^2.0.0"
+ }
+ },
+ "p-locate": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
+ "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
+ "dev": true,
+ "requires": {
+ "p-limit": "^2.0.0"
+ }
+ },
+ "p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "dev": true
+ },
+ "string-width": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
+ "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
+ "dev": true,
+ "requires": {
+ "is-fullwidth-code-point": "^2.0.0",
+ "strip-ansi": "^4.0.0"
+ }
+ },
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha512-4XaJ2zQdCzROZDivEVIDPkcQn8LMFSa8kj8Gxb/Lnwzv9A8VctNZ+lfivC/sV3ivW8ElJTERXZoPBRrZKkNKow==",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
}
},
"yargs-parser": {
- "version": "20.2.4"
+ "version": "11.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz",
+ "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==",
+ "dev": true,
+ "requires": {
+ "camelcase": "^5.0.0",
+ "decamelize": "^1.2.0"
+ }
},
"yargs-unparser": {
"version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz",
+ "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==",
"requires": {
"camelcase": "^6.0.0",
"decamelize": "^4.0.0",
"flat": "^5.0.2",
"is-plain-obj": "^2.1.0"
+ },
+ "dependencies": {
+ "camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA=="
+ },
+ "decamelize": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz",
+ "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ=="
+ }
}
},
"yocto-queue": {
- "version": "0.1.0"
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="
},
"zjs": {
"version": "file:packages/zjs",
@@ -22872,7 +26423,9 @@
}
},
"zustand": {
- "version": "3.5.14",
+ "version": "3.7.2",
+ "resolved": "https://registry.npmjs.org/zustand/-/zustand-3.7.2.tgz",
+ "integrity": "sha512-PIJDIZKtokhof+9+60cpockVOq05sJzHCriyvaLBmEJixseQ1a5Kdov6fWZfWOu5SK9c+FhH1jU0tntLxRJYMA==",
"requires": {}
}
}
diff --git a/package.json b/package.json
index b5a3012f96..b98d8b9fbb 100644
--- a/package.json
+++ b/package.json
@@ -14,29 +14,20 @@
"start-pm2": "pm2-runtime index.mjs -p --secret $PM2_SECRET_KEY --public $PM2_PUBLIC_KEY --no-auto-exit --instances 1 --restart-delay 60000"
},
"dependencies": {
- "@3id/connect": "^0.2.5",
- "@babel/preset-react": "^7.14.5",
- "@ceramicnetwork/3id-did-resolver": "^1.4.3",
- "@ceramicnetwork/http-client": "^1.3.0",
- "@ceramicstudio/idx": "^0.12.2",
- "@glazed/devtools": "^0.1.3",
+ "@babel/preset-react": "^7.17.12",
"@pixiv/three-vrm": "./packages/three-vrm",
- "@react-three/fiber": "^7.0.6",
- "@shaderfrog/glsl-parser": "^0.1.20",
+ "@react-three/fiber": "^7.0.29",
+ "@shaderfrog/glsl-parser": "^0.1.23",
"classnames": "^2.3.1",
- "dids": "^2.4.0",
"encoding-japanese": "^1.0.30",
- "ethers": "^5.6.4",
- "express": "^4.17.1",
- "forever": "^4.0.1",
+ "ethers": "^5.6.8",
+ "express": "^4.18.1",
+ "forever": "^4.0.3",
"gpt-3-encoder": "^1.1.3",
"json-6": "^1.1.4",
- "key-did-provider-ed25519": "^1.1.0",
- "key-did-resolver": "^1.4.0",
- "maxrects-packer": "^2.7.2",
+ "maxrects-packer": "^2.7.3",
"metaversefile": "./packages/totum",
- "node-fetch": "^3.1.0",
- "openai-api": "^1.2.6",
+ "openai-api": "^1.3.1",
"react": "17.0.2",
"react-dom": "17.0.2",
"smile2emoji": "^1.1.6",
@@ -62,15 +53,14 @@
"last 1 chrome version"
],
"devDependencies": {
- "@vitejs/plugin-react-refresh": "^1.3.1",
- "eslint": "^7.8.1",
+ "@vitejs/plugin-react-refresh": "^1.3.6",
+ "eslint": "^7.32.0",
"eslint-config-semistandard": "^15.0.1",
"eslint-config-standard": "^14.1.1",
- "eslint-plugin-import": "^2.22.0",
+ "eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^4.2.1",
- "eslint-plugin-standard": "^4.0.1",
- "spectorjs": "^0.9.27",
- "vite": "^2.5.1"
+ "eslint-plugin-promise": "^4.3.1",
+ "eslint-plugin-standard": "^4.1.0",
+ "vite": "^2.9.12"
}
-}
\ No newline at end of file
+}
diff --git a/packages/three b/packages/three
index ff70991543..004de02ab0 160000
--- a/packages/three
+++ b/packages/three
@@ -1 +1 @@
-Subproject commit ff70991543a05fdae9db93da4551ad72de036f32
+Subproject commit 004de02ab045e73b9d8257dfdccbbd5431fac7fa
diff --git a/packages/totum b/packages/totum
index d8f87e8a20..61da3f8156 160000
--- a/packages/totum
+++ b/packages/totum
@@ -1 +1 @@
-Subproject commit d8f87e8a203d6eed7d1d75e296ca316e4a487d53
+Subproject commit 61da3f81567f6677f4b70685d85170d63d6a37fa
diff --git a/particle-system.js b/particle-system.js
index e8f8c28a2a..05d4579e5d 100644
--- a/particle-system.js
+++ b/particle-system.js
@@ -1,7 +1,7 @@
import * as THREE from 'three';
import {camera} from './renderer.js';
import {WebaverseShaderMaterial} from './materials.js';
-import {world} from './world.js';
+// import {world} from './world.js';
import loaders from './loaders.js';
// const baseUrl = import.meta.url.replace(/(\/)[^\/\\]*$/, '$1');
@@ -60,11 +60,12 @@ const _makePlaneGeometry = () => {
};
const planeGeometry = _makePlaneGeometry();
-const _makeGeometry = maxParticles => {
- const geometry = planeGeometry.clone();
+const _makeGeometry = (size, maxParticles) => {
+ const geometry = planeGeometry.clone()
+ .scale(size, size, 1);
geometry.setAttribute('p', new THREE.InstancedBufferAttribute(new Float32Array(maxParticles * 3), 3));
// geometry.setAttribute('q', new THREE.InstancedBufferAttribute(new Float32Array(maxParticles * 4), 4));
- geometry.setAttribute('t', new THREE.InstancedBufferAttribute(new Float32Array(maxParticles * 2), 2));
+ geometry.setAttribute('t', new THREE.InstancedBufferAttribute(new Float32Array(maxParticles * 3), 3));
geometry.setAttribute('textureIndex', new THREE.InstancedBufferAttribute(new Int32Array(maxParticles), 1));
return geometry;
};
@@ -76,7 +77,7 @@ precision highp int;
uniform float uTime;
uniform vec4 cameraBillboardQuaternion;
attribute vec3 p;
-attribute vec2 t;
+attribute vec3 t;
varying vec2 vUv;
varying float vTimeDiff;
@@ -124,9 +125,11 @@ void main() {
float startTime = t.x;
float endTime = t.y;
- float timeDiff = (uTime - startTime) / (endTime - startTime);
- vTimeDiff = timeDiff;
- // vPosition = position;
+ float loop = t.z;
+ vTimeDiff = (uTime - startTime) / (endTime - startTime);
+ if (loop > 0.5) {
+ vTimeDiff = mod(vTimeDiff, 1.);
+ }
vTextureIndex = textureIndex;
}
@@ -182,8 +185,7 @@ vec2 getUv(float numFrames) {
float frame = floor(f * numFrames);
float x = mod(frame, rowSize);
float y = floor(frame / rowSize);
- vec2 uv = vec2(x / rowSize, y / rowSize) + vUv / rowSize;
- // vec4 alphaColor = texture2D(uTex, vec2(0.));
+ vec2 uv = vec2(x / rowSize, y / rowSize) + vec2(vUv.x, 1. - vUv.y) / rowSize;
return uv;
}
@@ -284,13 +286,14 @@ const _makeMaterial = maxNumTextures => {
}
class Particle extends THREE.Object3D {
- constructor(index, textureIndex, startTime, endTime, parent) {
+ constructor(index, textureIndex, startTime, endTime, loop, parent) {
super();
this.index = index;
this.textureIndex = textureIndex;
this.startTime = startTime;
this.endTime = endTime;
+ this.loop = loop;
this.parent = parent;
}
update() {
@@ -301,8 +304,12 @@ class Particle extends THREE.Object3D {
}
}
class ParticleSystem extends THREE.InstancedMesh {
- constructor(particleNames, maxParticles = defaultMaxParticles) {
- const geometry = _makeGeometry(maxParticles);
+ constructor({
+ particleNames,
+ size = 1,
+ maxParticles = defaultMaxParticles,
+ }) {
+ const geometry = _makeGeometry(size, maxParticles);
const material = _makeMaterial(particleNames.length);
super(geometry, material, maxParticles);
@@ -326,6 +333,7 @@ class ParticleSystem extends THREE.InstancedMesh {
addParticle(name, {
offsetTime = 0,
duration = 1000,
+ loop = false,
} = {}) {
const textureIndex = name ? this.#getParticleTextureIndex(name) : -1;
if (textureIndex !== -1) {
@@ -335,7 +343,7 @@ class ParticleSystem extends THREE.InstancedMesh {
for (let i = 0; i < this.particles.length; i++) {
let particle = this.particles[i];
if (particle === null) {
- particle = new Particle(i, textureIndex, startTime, endTime, this);
+ particle = new Particle(i, textureIndex, startTime, endTime, loop, this);
this.particles[i] = particle;
this.needsUpdate = true;
return particle;
@@ -370,8 +378,9 @@ class ParticleSystem extends THREE.InstancedMesh {
this.geometry.attributes.p.array[index*3 + 1] = particle.position.y;
this.geometry.attributes.p.array[index*3 + 2] = particle.position.z;
- this.geometry.attributes.t.array[index*2 + 0] = particle.startTime;
- this.geometry.attributes.t.array[index*2 + 1] = particle.endTime;
+ this.geometry.attributes.t.array[index*3 + 0] = particle.startTime;
+ this.geometry.attributes.t.array[index*3 + 1] = particle.endTime;
+ this.geometry.attributes.t.array[index*3 + 2] = particle.loop ? 1 : 0;
this.geometry.attributes.textureIndex.array[index] = particle.textureIndex;
@@ -382,7 +391,7 @@ class ParticleSystem extends THREE.InstancedMesh {
this.geometry.attributes.p.updateRange.count = index * 3;
this.geometry.attributes.p.needsUpdate = true;
- this.geometry.attributes.t.updateRange.count = index * 2;
+ this.geometry.attributes.t.updateRange.count = index * 3;
this.geometry.attributes.t.needsUpdate = true;
this.geometry.attributes.textureIndex.updateRange.count = index;
@@ -399,8 +408,16 @@ class ParticleSystem extends THREE.InstancedMesh {
}
const particleSystems = [];
-const createParticleSystem = (particleNames) => {
- const particleSystem = new ParticleSystem(particleNames);
+const createParticleSystem = ({
+ particleNames,
+ size,
+ maxParticles,
+}) => {
+ const particleSystem = new ParticleSystem({
+ particleNames,
+ size,
+ maxParticles,
+ });
particleSystems.push(particleSystem);
return particleSystem;
};
diff --git a/physics-manager.js b/physics-manager.js
index 78ec08c34b..86c0dad693 100644
--- a/physics-manager.js
+++ b/physics-manager.js
@@ -10,26 +10,30 @@ import physx from './physx.js'
// import ioManager from './io-manager.js';
// import {getPlayerCrouchFactor} from './character-controller.js';
import metaversefileApi from 'metaversefile'
-import { getNextPhysicsId, convertMeshToPhysicsMesh } from './util.js'
+import { getNextPhysicsId, freePhysicsId, convertMeshToPhysicsMesh } from './util.js'
// import {applyVelocity} from './util.js';
// import {groundFriction} from './constants.js';
import { CapsuleGeometry } from './geometries.js'
+import physxWorkerManager from './physx-worker-manager.js';
-const localVector = new THREE.Vector3()
+// const localVector = new THREE.Vector3()
const localVector2 = new THREE.Vector3()
-const localVector3 = new THREE.Vector3()
+/* const localVector3 = new THREE.Vector3()
const localVector4 = new THREE.Vector3()
const localVector5 = new THREE.Vector3()
const localQuaternion = new THREE.Quaternion()
const localQuaternion2 = new THREE.Quaternion()
-const localMatrix = new THREE.Matrix4()
+const localMatrix = new THREE.Matrix4() */
+
+// fake shared material to prevent shader instantiation
+const redMaterial = new THREE.MeshBasicMaterial({
+ color: 0xff0000,
+ // side: THREE.DoubleSide,
+});
// const zeroVector = new THREE.Vector3(0, 0, 0);
// const upVector = new THREE.Vector3(0, 1, 0);
-const physicsManager = new EventTarget()
-
-const physicsUpdates = []
const _makePhysicsObject = (physicsId, position, quaternion, scale) => {
const physicsObject = new THREE.Object3D()
physicsObject.position.copy(position)
@@ -41,356 +45,461 @@ const _makePhysicsObject = (physicsId, position, quaternion, scale) => {
physicsObject.collided = true
physicsObject.grounded = true
return physicsObject
-}
-const _extractPhysicsGeometryForId = (physicsId) => {
- const physicsGeometry = physicsManager.getGeometryForPhysicsId(physicsId)
- const { positions, indices, bounds } = physicsGeometry
- let geometry = new THREE.BufferGeometry()
- geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3))
- geometry.setIndex(new THREE.BufferAttribute(indices, 1))
- geometry = geometry.toNonIndexed()
- geometry.computeVertexNormals()
- geometry.boundingBox = new THREE.Box3(
- new THREE.Vector3().fromArray(bounds, 0),
- new THREE.Vector3().fromArray(bounds, 3)
- )
- return geometry
-}
+};
+const _updatePhysicsObjects = updatesOut => {
+ for (const updateOut of updatesOut) {
+ const { id, position, quaternion, collided, grounded } = updateOut
+ const physicsObject = metaversefileApi.getPhysicsObjectByPhysicsId(id)
+ if (physicsObject) {
+ // console.log('update physics object', id);
+
+ physicsObject.position.copy(position)
+ physicsObject.quaternion.copy(quaternion)
+ physicsObject.updateMatrixWorld()
+
+ physicsObject.collided = collided
+ physicsObject.grounded = grounded
+ } /* else {
+ console.warn('failed to update unknown physics id', id);
+ } */
+ }
+};
-physicsManager.addCapsuleGeometry = (
- position,
- quaternion,
- radius,
- halfHeight,
- material,
- dynamic,
- flags = {}
-) => {
- const physicsId = getNextPhysicsId()
- physx.physxWorker.addCapsuleGeometryPhysics(
- physx.physics,
+const physicsUpdates = [];
+const gravity = new THREE.Vector3(0, -9.8, 0);
+class PhysicsScene extends EventTarget {
+ constructor(opts) {
+ super();
+
+ if (!opts) {
+ this.scene = null;
+ this.physicsEnabled = true;
+
+ this.loadPromise = (async () => {
+ if (!physx.loaded) {
+ await physx.waitForLoad();
+ this.loadPromise = null;
+ }
+ const scene = physx.physxWorker.makeScene();
+ this.scene = scene;
+ return scene;
+ })();
+ } else {
+ this.scene = opts.scene;
+ this.physicsEnabled = opts.physicsEnabled;
+ this.loadPromise = opts.loadPromise;
+ if (!this.scene) {
+ this.loadPromise.then(scene => {
+ this.scene = scene;
+ this.loadPromise = null;
+ });
+ }
+ }
+ }
+ clone() {
+ return new PhysicsScene({
+ scene: this.scene,
+ physicsEnabled: this.physicsEnabled,
+ loadPromise: this.loadPromise,
+ });
+ }
+ addCapsuleGeometry(
position,
quaternion,
radius,
halfHeight,
- physicsId,
material,
dynamic,
- flags
- )
-
- const physicsObject = _makePhysicsObject(
- physicsId,
- position,
- quaternion,
- localVector2.set(1, 1, 1)
- )
- const physicsMesh = new THREE.Mesh(
- new CapsuleGeometry(radius, radius, halfHeight * 2)
- )
- physicsMesh.visible = false
- physicsObject.add(physicsMesh)
- physicsMesh.updateMatrixWorld()
- const { bounds } = physicsManager.getGeometryForPhysicsId(physicsId)
- physicsMesh.geometry.boundingBox = new THREE.Box3(
- new THREE.Vector3().fromArray(bounds, 0),
- new THREE.Vector3().fromArray(bounds, 3)
- )
- physicsObject.physicsMesh = physicsMesh
- return physicsObject
-}
-
-physicsManager.addBoxGeometry = (position, quaternion, size, dynamic) => {
- const physicsId = getNextPhysicsId()
- physx.physxWorker.addBoxGeometryPhysics(
- physx.physics,
- position,
- quaternion,
- size,
- physicsId,
- dynamic
- )
-
- const physicsObject = _makePhysicsObject(
- physicsId,
- position,
- quaternion,
- localVector2.set(1, 1, 1)
- )
- const physicsMesh = new THREE.Mesh(new THREE.BoxGeometry(2, 2, 2))
- physicsMesh.scale.copy(size)
- physicsMesh.visible = false
- physicsObject.add(physicsMesh)
- physicsObject.updateMatrixWorld()
- const { bounds } = physicsManager.getGeometryForPhysicsId(physicsId)
- physicsMesh.geometry.boundingBox = new THREE.Box3(
- new THREE.Vector3().fromArray(bounds, 0),
- new THREE.Vector3().fromArray(bounds, 3)
- )
- physicsObject.physicsMesh = physicsMesh
- return physicsObject
-}
-physicsManager.addGeometry = (mesh) => {
- const physicsMesh = convertMeshToPhysicsMesh(mesh)
- if (mesh.parent) {
- mesh.parent.matrixWorld.decompose(
- physicsMesh.position,
- physicsMesh.quaternion,
- physicsMesh.scale
+ flags = {}
+ ) {
+ const physicsId = getNextPhysicsId()
+ physx.physxWorker.addCapsuleGeometryPhysics(
+ this.scene,
+ position,
+ quaternion,
+ radius,
+ halfHeight,
+ physicsId,
+ material,
+ dynamic,
+ flags
+ )
+
+ const physicsObject = _makePhysicsObject(
+ physicsId,
+ position,
+ quaternion,
+ localVector2.set(1, 1, 1)
)
+ const physicsMesh = new THREE.Mesh(
+ new CapsuleGeometry(radius, radius, halfHeight * 2),
+ redMaterial
+ )
+ physicsMesh.visible = false
+ physicsObject.add(physicsMesh)
physicsMesh.updateMatrixWorld()
+ const { bounds } = this.getGeometryForPhysicsId(physicsId)
+ physicsMesh.geometry.boundingBox = new THREE.Box3(
+ new THREE.Vector3().fromArray(bounds, 0),
+ new THREE.Vector3().fromArray(bounds, 3)
+ )
+ physicsObject.physicsMesh = physicsMesh
+ return physicsObject
}
-
- const physicsMaterial = [0.5, 0.5, 0] // staticFriction, dynamicFriction, restitution
-
- const physicsId = getNextPhysicsId()
- physx.physxWorker.addGeometryPhysics(
- physx.physics,
- physicsMesh,
- physicsId,
- physicsMaterial
- )
- physicsMesh.geometry = _extractPhysicsGeometryForId(physicsId)
-
- const physicsObject = _makePhysicsObject(
- physicsId,
- physicsMesh.position,
- physicsMesh.quaternion,
- physicsMesh.scale
- )
- physicsObject.add(physicsMesh)
- physicsMesh.position.set(0, 0, 0)
- physicsMesh.quaternion.set(0, 0, 0, 1)
- physicsMesh.scale.set(1, 1, 1)
- physicsMesh.updateMatrixWorld()
- physicsObject.physicsMesh = physicsMesh
- return physicsObject
-}
-physicsManager.createMaterial = (physicsMaterial) =>
- physx.physxWorker.createMaterial(physx.physics, physicsMaterial)
-physicsManager.destroyMaterial = (materialAddress) =>
- physx.physxWorker.destroyMaterial(physx.physics, materialAddress)
-physicsManager.cookGeometry = (mesh) =>
- physx.physxWorker.cookGeometryPhysics(physx.physics, mesh)
-physicsManager.addCookedGeometry = (buffer, position, quaternion, scale) => {
- const physicsId = getNextPhysicsId()
- physx.physxWorker.addCookedGeometryPhysics(
- physx.physics,
- buffer,
- position,
- quaternion,
- scale,
- physicsId
- )
-
- const physicsObject = _makePhysicsObject(
- physicsId,
- position,
- quaternion,
- scale
- )
- const physicsMesh = new THREE.Mesh(_extractPhysicsGeometryForId(physicsId))
- physicsMesh.visible = false
- physicsObject.add(physicsMesh)
- physicsObject.physicsMesh = physicsMesh
- return physicsObject
-}
-
-physicsManager.addConvexGeometry = (mesh) => {
- const physicsMesh = convertMeshToPhysicsMesh(mesh)
- if (mesh.parent) {
- mesh.parent.matrixWorld.decompose(
+ addBoxGeometry(position, quaternion, size, dynamic) {
+ const physicsId = getNextPhysicsId()
+ physx.physxWorker.addBoxGeometryPhysics(
+ this.scene,
+ position,
+ quaternion,
+ size,
+ physicsId,
+ dynamic
+ )
+
+ const physicsObject = _makePhysicsObject(
+ physicsId,
+ position,
+ quaternion,
+ localVector2.set(1, 1, 1)
+ )
+ const physicsMesh = new THREE.Mesh(new THREE.BoxGeometry(2, 2, 2), redMaterial)
+ physicsMesh.scale.copy(size)
+ physicsMesh.visible = false
+ physicsObject.add(physicsMesh)
+ physicsObject.updateMatrixWorld()
+ const { bounds } = this.getGeometryForPhysicsId(physicsId)
+ physicsMesh.geometry.boundingBox = new THREE.Box3(
+ new THREE.Vector3().fromArray(bounds, 0),
+ new THREE.Vector3().fromArray(bounds, 3)
+ )
+ physicsObject.physicsMesh = physicsMesh
+ return physicsObject
+ }
+ extractPhysicsGeometryForId(physicsId) {
+ const physicsGeometry = this.getGeometryForPhysicsId(physicsId)
+ const { positions, indices, bounds } = physicsGeometry
+ let geometry = new THREE.BufferGeometry()
+ geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3))
+ geometry.setIndex(new THREE.BufferAttribute(indices, 1))
+ geometry = geometry.toNonIndexed()
+ geometry.computeVertexNormals()
+ geometry.boundingBox = new THREE.Box3(
+ new THREE.Vector3().fromArray(bounds, 0),
+ new THREE.Vector3().fromArray(bounds, 3)
+ );
+ return geometry
+ }
+ addGeometry(mesh) {
+ const physicsMesh = convertMeshToPhysicsMesh(mesh)
+
+ const physicsId = getNextPhysicsId()
+ physx.physxWorker.addGeometryPhysics(
+ this.scene,
+ physicsMesh,
+ physicsId
+ )
+ physicsMesh.geometry = this.extractPhysicsGeometryForId(physicsId)
+
+ const physicsObject = _makePhysicsObject(
+ physicsId,
physicsMesh.position,
physicsMesh.quaternion,
physicsMesh.scale
)
+ physicsObject.add(physicsMesh)
+ physicsMesh.position.set(0, 0, 0)
+ physicsMesh.quaternion.set(0, 0, 0, 1)
+ physicsMesh.scale.set(1, 1, 1)
physicsMesh.updateMatrixWorld()
+ physicsObject.physicsMesh = physicsMesh
+ return physicsObject
}
-
- const physicsId = getNextPhysicsId()
- physx.physxWorker.addConvexGeometryPhysics(
- physx.physics,
- physicsMesh,
- physicsId
- )
- physicsMesh.geometry = _extractPhysicsGeometryForId(physicsId)
-
- const physicsObject = _makePhysicsObject(
- physicsId,
- mesh.position,
- mesh.quaternion,
- mesh.scale
- )
- physicsObject.add(physicsMesh)
- physicsMesh.position.set(0, 0, 0)
- physicsMesh.quaternion.set(0, 0, 0, 1)
- physicsMesh.scale.set(1, 1, 1)
- physicsMesh.updateMatrixWorld()
- physicsObject.physicsMesh = physicsMesh
- return physicsObject
-}
-physicsManager.cookConvexGeometry = (mesh) =>
- physx.physxWorker.cookConvexGeometryPhysics(physx.physics, mesh)
-physicsManager.addCookedConvexGeometry = (
- buffer,
- position,
- quaternion,
- scale
-) => {
- const physicsId = getNextPhysicsId()
- physx.physxWorker.addCookedConvexGeometryPhysics(
- physx.physics,
+ createMaterial(physicsMaterial) {
+ return physx.physxWorker.createMaterial(this.scene, physicsMaterial)
+ }
+ destroyMaterial(materialAddress) {
+ physx.physxWorker.destroyMaterial(this.scene, materialAddress);
+ }
+ cookGeometry(mesh) {
+ const physicsMesh = convertMeshToPhysicsMesh(mesh);
+ const buffer = physx.physxWorker.cookGeometryPhysics(physicsMesh);
+ return buffer;
+ }
+ async cookGeometryAsync(mesh, {
+ signal = null,
+ } = {}) {
+ const physicsMesh = convertMeshToPhysicsMesh(mesh);
+ const buffer = await physxWorkerManager.cookGeometry(physicsMesh);
+ signal && signal.throwIfAborted();
+ return buffer;
+ }
+ addCookedGeometry(buffer, position, quaternion, scale) {
+ const physicsId = getNextPhysicsId()
+ physx.physxWorker.addCookedGeometryPhysics(
+ this.scene,
+ buffer,
+ position,
+ quaternion,
+ scale,
+ physicsId
+ )
+
+ const physicsObject = _makePhysicsObject(
+ physicsId,
+ position,
+ quaternion,
+ scale
+ )
+ const physicsMesh = new THREE.Mesh(this.extractPhysicsGeometryForId(physicsId), redMaterial)
+ physicsMesh.visible = false
+ physicsObject.add(physicsMesh)
+ physicsObject.physicsMesh = physicsMesh
+ physicsMesh.updateMatrixWorld()
+ return physicsObject
+ }
+ addConvexGeometry(mesh) {
+ const physicsMesh = convertMeshToPhysicsMesh(mesh)
+
+ const physicsId = getNextPhysicsId()
+ physx.physxWorker.addConvexGeometryPhysics(
+ this.scene,
+ physicsMesh,
+ physicsId
+ )
+ physicsMesh.geometry = this.extractPhysicsGeometryForId(physicsId)
+
+ const physicsObject = _makePhysicsObject(
+ physicsId,
+ mesh.position,
+ mesh.quaternion,
+ mesh.scale
+ )
+ physicsObject.add(physicsMesh)
+ physicsMesh.position.set(0, 0, 0)
+ physicsMesh.quaternion.set(0, 0, 0, 1)
+ physicsMesh.scale.set(1, 1, 1)
+ physicsMesh.updateMatrixWorld()
+ physicsObject.physicsMesh = physicsMesh
+ return physicsObject
+ }
+ cookConvexGeometry(mesh) {
+ const physicsMesh = convertMeshToPhysicsMesh(mesh);
+ const buffer = physx.physxWorker.cookConvexGeometryPhysics(this.scene, physicsMesh);
+ return buffer;
+ }
+ async cookConvexGeometryAsync(mesh, {
+ signal = null,
+ } = {}) {
+ const physicsMesh = convertMeshToPhysicsMesh(mesh);
+ const buffer = await physxWorkerManager.cookConvexGeometry(physicsMesh);
+ signal && signal.throwIfAborted();
+ return buffer;
+ }
+ addCookedConvexGeometry(
buffer,
position,
quaternion,
- scale,
- physicsId
- )
-
- const physicsObject = _makePhysicsObject(
- physicsId,
- position,
- quaternion,
scale
- )
- const physicsMesh = new THREE.Mesh(_extractPhysicsGeometryForId(physicsId))
- physicsMesh.visible = false
- physicsObject.add(physicsMesh)
- physicsObject.physicsMesh = physicsMesh
- return physicsObject
-}
-
-physicsManager.getGeometryForPhysicsId = (physicsId) =>
- physx.physxWorker.getGeometryPhysics(physx.physics, physicsId)
-physicsManager.getBoundingBoxForPhysicsId = (physicsId, box) =>
- physx.physxWorker.getBoundsPhysics(physx.physics, physicsId, box)
-physicsManager.enableActor = (physicsObject) => {
- physx.physxWorker.enableActorPhysics(physx.physics, physicsObject.physicsId)
-}
-physicsManager.disableActor = (physicsObject) => {
- physx.physxWorker.disableActorPhysics(physx.physics, physicsObject.physicsId)
-}
-physicsManager.disableGeometry = (physicsObject) => {
- physx.physxWorker.disableGeometryPhysics(
- physx.physics,
- physicsObject.physicsId
- )
-}
-physicsManager.enableGeometry = (physicsObject) => {
- physx.physxWorker.enableGeometryPhysics(
- physx.physics,
- physicsObject.physicsId
- )
-}
-physicsManager.disableGeometryQueries = (physicsObject) => {
- physx.physxWorker.disableGeometryQueriesPhysics(
- physx.physics,
- physicsObject.physicsId
- )
-}
-physicsManager.enableGeometryQueries = (physicsObject) => {
- physx.physxWorker.enableGeometryQueriesPhysics(
- physx.physics,
- physicsObject.physicsId
- )
-}
-physicsManager.setMassAndInertia = (physicsObject, mass, inertia) => {
- physx.physxWorker.setMassAndInertiaPhysics(
- physx.physics,
- physicsObject.physicsId,
- mass,
- inertia
- )
-}
-physicsManager.setGravityEnabled = (physicsObject, enabled) => {
- physx.physxWorker.setGravityEnabledPhysics(
- physx.physics,
- physicsObject.physicsId,
- enabled
- )
-}
-physicsManager.removeGeometry = (physicsObject) => {
- // try {
- physx.physxWorker.removeGeometryPhysics(
- physx.physics,
- physicsObject.physicsId
- )
- /* } catch(err) {
- console.warn('failed to remove geometry', err.stack);
- } */
-}
-physicsManager.getLinearVelocity = (physicsObject, velocity) => {
- physx.physxWorker.getLinearVelocityPhysics(physx.physics, physicsObject.physicsId, velocity);
-};
-physicsManager.getAngularVelocity = (physicsObject, velocity) => {
- physx.physxWorker.getAngularVelocityPhysics(physx.physics, physicsObject.physicsId, velocity);
-};
-physicsManager.getGlobalPosition = (physicsObject, position) => {
- physx.physxWorker.getGlobalPositionPhysics(
- physx.physics,
- physicsObject.physicsId,
- position
- )
-}
-physicsManager.addForceAtPos = (physicsObject, velocity, position, autoWake) => {
- physx.physxWorker.addForceAtPosPhysics(physx.physics, physicsObject.physicsId, velocity, position, autoWake);
-}
-physicsManager.addLocalForceAtPos = (physicsObject, velocity, position, autoWake) => {
- physx.physxWorker.addLocalForceAtPosPhysics(physx.physics, physicsObject.physicsId, velocity, position, autoWake);
-}
-physicsManager.addForceAtLocalPos = (physicsObject, velocity, position, autoWake) => {
- physx.physxWorker.addForceAtLocalPosPhysics(physx.physics, physicsObject.physicsId, velocity, position, autoWake);
-}
-physicsManager.addLocalForceAtLocalPos = (physicsObject, velocity, position, autoWake) => {
- physx.physxWorker.addLocalForceAtLocalPosPhysics(physx.physics, physicsObject.physicsId, velocity, position, autoWake);
-}
-physicsManager.addForce = (physicsObject, velocity, autoWake) => {
- physx.physxWorker.addForcePhysics(physx.physics, physicsObject.physicsId, velocity, autoWake);
-}
-physicsManager.addTorque = (physicsObject, velocity, autoWake) => {
- physx.physxWorker.addTorquePhysics(physx.physics, physicsObject.physicsId, velocity, autoWake);
-}
-physicsManager.setVelocity = (physicsObject, velocity, autoWake) => {
- physx.physxWorker.setVelocityPhysics(
- physx.physics,
- physicsObject.physicsId,
- velocity,
- autoWake
- )
-}
-physicsManager.setAngularVelocity = (physicsObject, velocity, autoWake) => {
- physx.physxWorker.setAngularVelocityPhysics(
- physx.physics,
- physicsObject.physicsId,
- velocity,
- autoWake
- )
-}
-physicsManager.setTransform = (physicsObject, autoWake) => {
- physx.physxWorker.setTransformPhysics(
- physx.physics,
- physicsObject.physicsId,
- physicsObject.position,
- physicsObject.quaternion,
- physicsObject.scale,
- autoWake
- )
-}
-physicsManager.setGeometryScale = (physicsId, newScale) => {
- physx.physxWorker.setGeometryScale(physx.physics, physicsId, newScale)
-}
-physicsManager.getPath = (
- start,
- dest,
- isWalk,
- hy,
- heightTolerance,
- maxIterDetect,
- maxIterStep,
- ignorePhysicsIds
-) => {
- return physx.physxWorker.getPathPhysics(
- physx.physics,
+ ) {
+ const physicsId = getNextPhysicsId()
+ physx.physxWorker.addCookedConvexGeometryPhysics(
+ this.scene,
+ buffer,
+ position,
+ quaternion,
+ scale,
+ physicsId
+ )
+
+ const physicsObject = _makePhysicsObject(
+ physicsId,
+ position,
+ quaternion,
+ scale
+ )
+ const physicsMesh = new THREE.Mesh(this.extractPhysicsGeometryForId(physicsId), redMaterial)
+ physicsMesh.visible = false
+ physicsObject.add(physicsMesh)
+ physicsObject.physicsMesh = physicsMesh
+ physicsMesh.updateMatrixWorld()
+ return physicsObject
+ }
+ addShape(shapeAddress, position, quaternion, scale, external) {
+ const physicsId = getNextPhysicsId()
+
+ physx.physxWorker.addShapePhysics(
+ this.scene,
+ shapeAddress,
+ position,
+ quaternion,
+ scale,
+ external,
+ physicsId
+ );
+
+ const physicsObject = _makePhysicsObject(
+ physicsId,
+ position,
+ quaternion,
+ scale
+ )
+ const physicsMesh = new THREE.Mesh(this.extractPhysicsGeometryForId(physicsId), redMaterial)
+ physicsMesh.visible = false
+ physicsObject.add(physicsMesh)
+ physicsObject.physicsMesh = physicsMesh;
+ physicsMesh.updateMatrixWorld()
+ return physicsObject
+ }
+ addConvexShape(shapeAddress, position, quaternion, scale, dynamic, external) {
+ const physicsId = getNextPhysicsId()
+
+ physx.physxWorker.addConvexShapePhysics(
+ this.scene,
+ shapeAddress,
+ position,
+ quaternion,
+ scale,
+ dynamic,
+ external,
+ physicsId
+ );
+
+ const physicsObject = _makePhysicsObject(
+ physicsId,
+ position,
+ quaternion,
+ scale
+ )
+ const geometry = this.extractPhysicsGeometryForId(physicsId);
+ const physicsMesh = new THREE.Mesh(geometry, redMaterial);
+
+ physicsMesh.visible = false
+ physicsObject.add(physicsMesh)
+ physicsObject.physicsMesh = physicsMesh;
+ physicsMesh.updateMatrixWorld();
+ return physicsObject
+ }
+ getGeometryForPhysicsId(physicsId) {
+ return physx.physxWorker.getGeometryPhysics(this.scene, physicsId);
+ }
+ getBoundingBoxForPhysicsId(physicsId, box) {
+ return physx.physxWorker.getBoundsPhysics(this.scene, physicsId, box);
+ }
+ enableActor(physicsObject) {
+ physx.physxWorker.enableActorPhysics(this.scene, physicsObject.physicsId)
+ }
+ disableActor(physicsObject) {
+ physx.physxWorker.disableActorPhysics(this.scene, physicsObject.physicsId)
+ }
+ disableGeometry(physicsObject) {
+ physx.physxWorker.disableGeometryPhysics(
+ this.scene,
+ physicsObject.physicsId
+ )
+ }
+ enableGeometry(physicsObject) {
+ physx.physxWorker.enableGeometryPhysics(
+ this.scene,
+ physicsObject.physicsId
+ )
+ }
+ disableGeometryQueries(physicsObject) {
+ physx.physxWorker.disableGeometryQueriesPhysics(
+ this.scene,
+ physicsObject.physicsId
+ )
+ }
+ enableGeometryQueries(physicsObject) {
+ physx.physxWorker.enableGeometryQueriesPhysics(
+ this.scene,
+ physicsObject.physicsId
+ )
+ }
+ setMassAndInertia(physicsObject, mass, inertia) {
+ physx.physxWorker.setMassAndInertiaPhysics(
+ this.scene,
+ physicsObject.physicsId,
+ mass,
+ inertia
+ )
+ }
+ setGravityEnabled(physicsObject, enabled) {
+ physx.physxWorker.setGravityEnabledPhysics(
+ this.scene,
+ physicsObject.physicsId,
+ enabled
+ )
+ }
+ removeGeometry(physicsObject) {
+ physx.physxWorker.removeGeometryPhysics(
+ this.scene,
+ physicsObject.physicsId
+ )
+
+ freePhysicsId(physicsObject.physicsId)
+ }
+ getLinearVelocity(physicsObject, velocity) {
+ physx.physxWorker.getLinearVelocityPhysics(this.scene, physicsObject.physicsId, velocity);
+ }
+ getAngularVelocity(physicsObject, velocity) {
+ physx.physxWorker.getAngularVelocityPhysics(this.scene, physicsObject.physicsId, velocity);
+ }
+ getGlobalPosition(physicsObject, position) {
+ physx.physxWorker.getGlobalPositionPhysics(
+ this.scene,
+ physicsObject.physicsId,
+ position
+ )
+ }
+ addForceAtPos(physicsObject, velocity, position, autoWake) {
+ physx.physxWorker.addForceAtPosPhysics(this.scene, physicsObject.physicsId, velocity, position, autoWake);
+ }
+ addLocalForceAtPos(physicsObject, velocity, position, autoWake) {
+ physx.physxWorker.addLocalForceAtPosPhysics(this.scene, physicsObject.physicsId, velocity, position, autoWake);
+ }
+ addForceAtLocalPos(physicsObject, velocity, position, autoWake) {
+ physx.physxWorker.addForceAtLocalPosPhysics(this.scene, physicsObject.physicsId, velocity, position, autoWake);
+ }
+ addLocalForceAtLocalPos(physicsObject, velocity, position, autoWake) {
+ physx.physxWorker.addLocalForceAtLocalPosPhysics(this.scene, physicsObject.physicsId, velocity, position, autoWake);
+ }
+ addForce(physicsObject, velocity, autoWake) {
+ physx.physxWorker.addForcePhysics(this.scene, physicsObject.physicsId, velocity, autoWake);
+ }
+ addTorque(physicsObject, velocity, autoWake) {
+ physx.physxWorker.addTorquePhysics(this.scene, physicsObject.physicsId, velocity, autoWake);
+ }
+ setVelocity(physicsObject, velocity, autoWake) {
+ physx.physxWorker.setVelocityPhysics(
+ this.scene,
+ physicsObject.physicsId,
+ velocity,
+ autoWake
+ )
+ }
+ setAngularVelocity(physicsObject, velocity, autoWake) {
+ physx.physxWorker.setAngularVelocityPhysics(
+ this.scene,
+ physicsObject.physicsId,
+ velocity,
+ autoWake
+ )
+ }
+ setTransform(physicsObject, autoWake) {
+ physx.physxWorker.setTransformPhysics(
+ this.scene,
+ physicsObject.physicsId,
+ physicsObject.position,
+ physicsObject.quaternion,
+ physicsObject.scale,
+ autoWake
+ )
+ }
+ setGeometryScale(physicsId, newScale) {
+ physx.physxWorker.setGeometryScale(this.scene, physicsId, newScale)
+ }
+ getPath(
start,
dest,
isWalk,
@@ -399,248 +508,263 @@ physicsManager.getPath = (
maxIterDetect,
maxIterStep,
ignorePhysicsIds
- )
-}
-physicsManager.overlapBox = (hx, hy, hz, p, q) => {
- return physx.physxWorker.overlapBoxPhysics(physx.physics, hx, hy, hz, p, q)
-}
-physicsManager.overlapCapsule = (radius, halfHeight, p, q) => {
- return physx.physxWorker.overlapCapsulePhysics(
- physx.physics,
- radius,
- halfHeight,
- p,
- q
- )
-}
-physicsManager.collideBox = (hx, hy, hz, p, q, maxIter) => {
- return physx.physxWorker.collideBoxPhysics(
- physx.physics,
- hx,
- hy,
- hz,
- p,
- q,
- maxIter
- )
-}
-physicsManager.collideCapsule = (radius, halfHeight, p, q, maxIter) => {
- return physx.physxWorker.collideCapsulePhysics(
- physx.physics,
- radius,
- halfHeight,
- p,
- q,
- maxIter
- )
-}
-physicsManager.createCharacterController = (
- radius,
- height,
- contactOffset,
- stepOffset,
- position
-) => {
- const physicsId = getNextPhysicsId()
- const characterControllerId =
- physx.physxWorker.createCharacterControllerPhysics(
- physx.physics,
+ ) {
+ return physx.physxWorker.getPathPhysics(
+ this.scene,
+ start,
+ dest,
+ isWalk,
+ hy,
+ heightTolerance,
+ maxIterDetect,
+ maxIterStep,
+ ignorePhysicsIds
+ )
+ }
+ overlapBox(hx, hy, hz, p, q) {
+ return physx.physxWorker.overlapBoxPhysics(this.scene, hx, hy, hz, p, q)
+ }
+ overlapCapsule(radius, halfHeight, p, q) {
+ return physx.physxWorker.overlapCapsulePhysics(
+ this.scene,
radius,
- height,
- contactOffset,
- stepOffset,
- position,
- physicsId
+ halfHeight,
+ p,
+ q
)
-
- const halfHeight = height / 2
- const physicsObject = new THREE.Object3D()
- const physicsMesh = new THREE.Mesh(
- new CapsuleGeometry(radius, radius, halfHeight * 2)
- )
- physicsMesh.visible = false
- physicsObject.add(physicsMesh)
- physicsMesh.updateMatrixWorld()
- const { bounds } = physicsManager.getGeometryForPhysicsId(physicsId)
- physicsMesh.geometry.boundingBox = new THREE.Box3(
- new THREE.Vector3().fromArray(bounds, 0),
- new THREE.Vector3().fromArray(bounds, 3)
- )
- // console.log('character controller bounds', physicsId, physicsMesh.geometry.boundingBox);
- physicsObject.physicsMesh = physicsMesh
- physicsObject.characterControllerId = characterControllerId
- physicsObject.physicsId = physicsId
-
- /* const physicsObject = _makePhysicsObject(physicsId, mesh.position, mesh.quaternion, mesh.scale);
- physicsObject.add(physicsMesh);
- physicsMesh.position.set(0, 0, 0);
- physicsMesh.quaternion.set(0, 0, 0, 1);
- physicsMesh.scale.set(1, 1, 1);
- physicsMesh.updateMatrixWorld();
- physicsObject.physicsMesh = physicsMesh;
- characterController.physicsObject = physicsObject;
- console.log('character controller id', physicsObject); */
-
- return physicsObject
-}
-physicsManager.destroyCharacterController = (characterController) => {
- physx.physxWorker.destroyCharacterControllerPhysics(
- physx.physics,
- characterController.characterControllerId
- )
-}
-physicsManager.moveCharacterController = (
- characterController,
- displacement,
- minDist,
- elapsedTime,
- position
-) => {
- const result = physx.physxWorker.moveCharacterControllerPhysics(
- physx.physics,
- characterController.characterControllerId,
+ }
+ collideBox(hx, hy, hz, p, q, maxIter) {
+ return physx.physxWorker.collideBoxPhysics(
+ this.scene,
+ hx,
+ hy,
+ hz,
+ p,
+ q,
+ maxIter
+ )
+ }
+ collideCapsule(radius, halfHeight, p, q, maxIter) {
+ return physx.physxWorker.collideCapsulePhysics(
+ this.scene,
+ radius,
+ halfHeight,
+ p,
+ q,
+ maxIter
+ )
+ }
+ getCollisionObject(radius, halfHeight, p, q) {
+ return physx.physxWorker.getCollisionObjectPhysics(
+ this.scene,
+ radius,
+ halfHeight,
+ p,
+ q
+ )
+ }
+ createCharacterController(
+ radius,
+ height,
+ contactOffset,
+ stepOffset,
+ position
+ ) {
+ const physicsId = getNextPhysicsId()
+ const characterControllerId =
+ physx.physxWorker.createCharacterControllerPhysics(
+ this.scene,
+ radius,
+ height,
+ contactOffset,
+ stepOffset,
+ position,
+ physicsId
+ )
+
+ const halfHeight = height / 2
+ const physicsObject = new THREE.Object3D()
+ const physicsMesh = new THREE.Mesh(
+ new CapsuleGeometry(radius, radius, halfHeight * 2),
+ redMaterial
+ )
+ physicsMesh.visible = false
+ physicsObject.add(physicsMesh)
+ physicsMesh.updateMatrixWorld()
+ const { bounds } = this.getGeometryForPhysicsId(physicsId)
+ physicsMesh.geometry.boundingBox = new THREE.Box3(
+ new THREE.Vector3().fromArray(bounds, 0),
+ new THREE.Vector3().fromArray(bounds, 3)
+ )
+ // console.log('character controller bounds', physicsId, physicsMesh.geometry.boundingBox);
+ physicsObject.physicsMesh = physicsMesh
+ physicsObject.characterControllerId = characterControllerId
+ physicsObject.physicsId = physicsId
+
+ /* const physicsObject = _makePhysicsObject(physicsId, mesh.position, mesh.quaternion, mesh.scale);
+ physicsObject.add(physicsMesh);
+ physicsMesh.position.set(0, 0, 0);
+ physicsMesh.quaternion.set(0, 0, 0, 1);
+ physicsMesh.scale.set(1, 1, 1);
+ physicsMesh.updateMatrixWorld();
+ physicsObject.physicsMesh = physicsMesh;
+ characterController.physicsObject = physicsObject;
+ console.log('character controller id', physicsObject); */
+
+ return physicsObject
+ }
+ destroyCharacterController(characterController) {
+ physx.physxWorker.destroyCharacterControllerPhysics(
+ this.scene,
+ characterController.characterControllerId
+ )
+ }
+ moveCharacterController(
+ characterController,
displacement,
minDist,
elapsedTime,
position
- )
- return result
-}
-physicsManager.setCharacterControllerPosition = (
- characterController,
- position
-) => {
- const result = physx.physxWorker.setCharacterControllerPositionPhysics(
- physx.physics,
- characterController.characterControllerId,
+ ) {
+ const result = physx.physxWorker.moveCharacterControllerPhysics(
+ this.scene,
+ characterController.characterControllerId,
+ displacement,
+ minDist,
+ elapsedTime,
+ position
+ )
+ return result
+ }
+ setCharacterControllerPosition(
+ characterController,
position
- )
- return result
-}
-/* physicsManager.getTransforms = physicsObjects => {
- //console.log(physicsObjects, "phyobjssss");
- const objs = physx.physxWorker.getTransformPhysics(physx.physics, physicsObjects);
- return objs;
-}; */
-physicsManager.raycast = (position, quaternion) =>
- physx.physxWorker.raycastPhysics(physx.physics, position, quaternion)
-physicsManager.raycastArray = (position, quaternion, n) =>
- physx.physxWorker.raycastPhysicsArray(physx.physics, position, quaternion, n)
-physicsManager.cutMesh = (
- positions,
- numPositions,
- normals,
- numNormals,
- uvs,
- numUvs,
- faces, // Set to falsy to indicate that this is an non-indexed geometry
- numFaces,
-
- planeNormal, // normalized vector3 array
- planeDistance // number
-) =>
- physx.physxWorker.doCut(
+ ) {
+ const result = physx.physxWorker.setCharacterControllerPositionPhysics(
+ this.scene,
+ characterController.characterControllerId,
+ position
+ )
+ return result
+ }
+ raycast(position, quaternion) {
+ return physx.physxWorker.raycastPhysics(this.scene, position, quaternion)
+ }
+ raycastArray(position, quaternion, n) {
+ return physx.physxWorker.raycastPhysicsArray(this.scene, position, quaternion, n)
+ }
+ cutMesh(
positions,
numPositions,
normals,
numNormals,
uvs,
numUvs,
- faces,
+ faces, // Set to falsy to indicate that this is an non-indexed geometry
numFaces,
-
- planeNormal,
- planeDistance
- )
-physicsManager.setLinearLockFlags = (physicsId, x, y, z) => {
- physx.physxWorker.setLinearLockFlags(physx.physics, physicsId, x, y, z)
-}
-physicsManager.setAngularLockFlags = (physicsId, x, y, z) => {
- physx.physxWorker.setAngularLockFlags(physx.physics, physicsId, x, y, z)
-}
-
-physicsManager.sweepBox = (
- origin,
- quaternion,
- halfExtents,
- direction,
- sweepDistance,
- maxHits
-) => {
- return physx.physxWorker.sweepBox(
- physx.physics,
+
+ planeNormal, // normalized vector3 array
+ planeDistance // number
+ ) {
+ return physx.physxWorker.doCut(
+ positions,
+ numPositions,
+ normals,
+ numNormals,
+ uvs,
+ numUvs,
+ faces,
+ numFaces,
+
+ planeNormal,
+ planeDistance
+ );
+ }
+ setLinearLockFlags(physicsId, x, y, z) {
+ physx.physxWorker.setLinearLockFlags(this.scene, physicsId, x, y, z)
+ }
+ setAngularLockFlags(physicsId, x, y, z) {
+ physx.physxWorker.setAngularLockFlags(this.scene, physicsId, x, y, z)
+ }
+ sweepBox(
origin,
quaternion,
halfExtents,
direction,
sweepDistance,
maxHits
- )
-}
-
-physicsManager.simulatePhysics = (timeDiff) => {
- if (physicsEnabled) {
- const t = timeDiff / 1000
- const updatesOut = physx.physxWorker.simulatePhysics(
- physx.physics,
- physicsUpdates,
- t
- )
- physicsUpdates.length = 0
- for (const updateOut of updatesOut) {
- const { id, position, quaternion, collided, grounded } = updateOut
- const physicsObject = metaversefileApi.getPhysicsObjectByPhysicsId(id)
- if (physicsObject) {
- physicsObject.position.copy(position)
- physicsObject.quaternion.copy(quaternion)
- physicsObject.updateMatrixWorld()
-
- physicsObject.collided = collided
- physicsObject.grounded = grounded
- } /* else {
- console.warn('failed to get physics object', id);
- } */
+ ) {
+ return physx.physxWorker.sweepBox(
+ this.scene,
+ origin,
+ quaternion,
+ halfExtents,
+ direction,
+ sweepDistance,
+ maxHits
+ )
+ }
+ sweepConvexShape(
+ shapeAddress,
+ origin,
+ quaternion,
+ direction,
+ sweepDistance,
+ maxHits,
+ ) {
+ return physx.physxWorker.sweepConvexShape(
+ this.scene,
+ shapeAddress,
+ origin,
+ quaternion,
+ direction,
+ sweepDistance,
+ maxHits,
+ )
+ }
+ simulatePhysics(timeDiff) {
+ if (this.physicsEnabled) {
+ const t = timeDiff / 1000
+ const updatesOut = physx.physxWorker.simulatePhysics(
+ this.scene,
+ physicsUpdates,
+ t
+ )
+ // physicsUpdates.length = 0
+ _updatePhysicsObjects(updatesOut);
}
}
+ //
+ marchingCubes(dims, potential, shift, scale) {
+ return physx.physxWorker.marchingCubes(dims, potential, shift, scale);
+ }
+ //
+ createShape(buffer) {
+ return physx.physxWorker.createShapePhysics(this.scene, buffer);
+ }
+ createConvexShape(buffer) {
+ return physx.physxWorker.createConvexShapePhysics(this.scene, buffer);
+ }
+ getPhysicsEnabled() {
+ return this.physicsEnabled;
+ }
+ setPhysicsEnabled(newPhysicsEnabled) {
+ this.physicsEnabled = newPhysicsEnabled;
+ }
+ getGravity() {
+ return gravity;
+ }
}
-physicsManager.marchingCubes = (dims, potential, shift, scale) =>
- physx.physxWorker.marchingCubes(dims, potential, shift, scale)
-
-physicsManager.generateChunkDataDualContouring = (x, y, z) =>
- physx.physxWorker.generateChunkDataDualContouring(x, y, z)
-
-physicsManager.setChunkLodDualContouring = (x, y, z, lod) =>
- physx.physxWorker.setChunkLodDualContouring(x, y, z, lod)
-
-physicsManager.clearTemporaryChunkDataDualContouring = () =>
- physx.physxWorker.clearTemporaryChunkDataDualContouring()
-
-physicsManager.clearChunkRootDualContouring = (x, y, z) =>
- physx.physxWorker.clearChunkRootDualContouring(x, y, z)
-
-physicsManager.createChunkMeshDualContouring = (x, y, z) =>
- physx.physxWorker.createChunkMeshDualContouring(x, y, z)
-
-physicsManager.pushUpdate = (physicsObject) => {
- const { physicsId, physicsMesh } = physicsObject
- physicsMesh.matrixWorld.decompose(localVector, localQuaternion, localVector2)
-
- physicsUpdates.push({
- id: physicsId,
- position: localVector.clone(),
- quaternion: localQuaternion.clone(),
- scale: localVector2.clone(),
- })
-}
-
-let physicsEnabled = false
-physicsManager.getPhysicsEnabled = () => physicsEnabled
-physicsManager.setPhysicsEnabled = (newPhysicsEnabled) => {
- physicsEnabled = newPhysicsEnabled
-}
-
-const gravity = new THREE.Vector3(0, -9.8, 0)
-physicsManager.getGravity = () => gravity
-
-export default physicsManager
+const physicsManager = {
+ scenes: new Map(),
+ getScene(instance = null) {
+ let scene = this.scenes.get(instance);
+ if (!scene) {
+ scene = new PhysicsScene();
+ this.scenes.set(instance, scene);
+ }
+ return scene;
+ },
+};
+export default physicsManager;
\ No newline at end of file
diff --git a/physx-lite.js b/physx-lite.js
new file mode 100644
index 0000000000..9001dcd791
--- /dev/null
+++ b/physx-lite.js
@@ -0,0 +1,118 @@
+/*
+physx lite worker wasm integration.
+*/
+
+// import * as THREE from 'three';
+import Module from './public/bin/app-wasm-worker.js';
+import {Allocator, ScratchStack} from './geometry-util.js';
+
+const physxLite = {};
+
+let loadPromise = null;
+let scratchStack = null;
+physxLite.waitForLoad = () => {
+ if (!loadPromise) {
+ loadPromise = (async () => {
+ await Module.waitForLoad();
+
+ Module._initialize();
+
+ const scratchStackSize = 1024 * 1024;
+ scratchStack = new ScratchStack(Module, scratchStackSize);
+ // physxLite.base = physxLite.makePhysicsBase();
+
+ // console.log('module called run', Module.calledRun);
+ /* if (Module.calledRun) {
+ // Module.onRuntimeInitialized()
+ Module.postRun()
+ } */
+ })();
+ }
+ return loadPromise;
+};
+
+/* physxLite.alloc = (constructor, count) => {
+ if (count > 0) {
+ const size = constructor.BYTES_PER_ELEMENT * count;
+ const ptr = Module._doMalloc(size);
+ return new constructor(Module.HEAP8.buffer, ptr, count);
+ } else {
+ return new constructor(Module.HEAP8.buffer, 0, 0);
+ }
+}; */
+physxLite.free = (ptr) => {
+ Module._doFree(ptr)
+};
+// physxLite.makePhysicsBase = () => Module._makePhysicsBase();
+physxLite.cookGeometryPhysics = (mesh) => {
+ mesh.updateMatrixWorld()
+ const { geometry } = mesh
+
+ const allocator = new Allocator(Module)
+ const positions = allocator.alloc(
+ Float32Array,
+ geometry.attributes.position.count * 3
+ )
+ positions.set(geometry.attributes.position.array)
+ const indices = geometry.index
+ ? allocator.alloc(Uint32Array, geometry.index.count)
+ : null
+ indices && indices.set(geometry.index.array)
+ Module._cookGeometryPhysics(
+ positions.byteOffset,
+ indices ? indices.byteOffset : 0,
+ positions.length,
+ indices ? indices.length : 0,
+ scratchStack.u32.byteOffset,
+ scratchStack.u32.byteOffset + Uint32Array.BYTES_PER_ELEMENT,
+ scratchStack.u32.byteOffset + Uint32Array.BYTES_PER_ELEMENT * 2
+ )
+
+ const dataPtr = scratchStack.u32[0];
+ const dataLength = scratchStack.u32[1];
+ const streamPtr = scratchStack.u32[2];
+
+ const result = Module.HEAPU8.slice(dataPtr, dataPtr + dataLength);
+
+ allocator.freeAll();
+ Module._deleteMemoryOutputStream(streamPtr);
+
+ return result;
+};
+physxLite.cookConvexGeometryPhysics = (mesh) => {
+ mesh.updateMatrixWorld()
+ const { geometry } = mesh
+
+ const allocator = new Allocator(Module)
+ const positions = allocator.alloc(
+ Float32Array,
+ geometry.attributes.position.count * 3
+ )
+ positions.set(geometry.attributes.position.array)
+ const indices = geometry.index
+ ? allocator.alloc(Uint32Array, geometry.index.count)
+ : null
+ indices && indices.set(geometry.index.array)
+ Module._cookConvexGeometryPhysics(
+ positions.byteOffset,
+ indices ? indices.byteOffset : 0,
+ positions.length,
+ indices ? indices.length : 0,
+ scratchStack.u32.byteOffset,
+ scratchStack.u32.byteOffset + Uint32Array.BYTES_PER_ELEMENT,
+ scratchStack.u32.byteOffset + Uint32Array.BYTES_PER_ELEMENT * 2
+ )
+
+ const dataPtr = scratchStack.u32[0];
+ const dataLength = scratchStack.u32[1];
+ const streamPtr = scratchStack.u32[2];
+
+ const result = Module.HEAPU8.slice(dataPtr, dataPtr + dataLength);
+
+ allocator.freeAll();
+ Module._deleteMemoryOutputStream(streamPtr);
+
+ return result;
+};
+
+export default physxLite;
\ No newline at end of file
diff --git a/physx-worker-manager.js b/physx-worker-manager.js
new file mode 100644
index 0000000000..6171f1413c
--- /dev/null
+++ b/physx-worker-manager.js
@@ -0,0 +1,98 @@
+// import * as THREE from 'three';
+import {makeId} from './util.js';
+// import {defaultChunkSize} from './constants.js';
+// import metaversefile from 'metaversefile';
+// import { terrainVertex, terrainFragment } from './shaders/terrainShader.js';
+// import physics from './physics-manager.js';
+
+// const localVector = new THREE.Vector3();
+
+const defaultNumPhysicsWorkers = 2;
+
+class PhysicsWorkerManager {
+ constructor({
+ numWorkers = defaultNumPhysicsWorkers,
+ } = {}) {
+ this.numWorkers = numWorkers;
+
+ this.workers = [];
+ this.nextWorker = 0;
+ this.loadPromise = null;
+ }
+ waitForLoad() {
+ if (!this.loadPromise) {
+ this.loadPromise = (async () => {
+ // create workers
+ const workers = Array(this.numWorkers);
+ for (let i = 0; i < this.numWorkers; i++) {
+ const worker = new Worker('./physx-worker.js?import', {
+ type: 'module',
+ });
+ const cbs = new Map();
+ worker.onmessage = e => {
+ const {requestId} = e.data;
+ const cb = cbs.get(requestId);
+ if (cb) {
+ cbs.delete(requestId);
+ cb(e.data);
+ } else {
+ console.warn('worker message without callback', e.data);
+ }
+ };
+ worker.onerror = err => {
+ console.log('physx worker load error', err);
+ };
+ worker.request = (method, args) => {
+ return new Promise((resolve, reject) => {
+ const requestId = makeId(5);
+ cbs.set(requestId, data => {
+ const {error, result} = data;
+ if (error) {
+ reject(error);
+ } else {
+ resolve(result);
+ }
+ });
+ worker.postMessage({
+ method,
+ args,
+ requestId,
+ });
+ });
+ };
+ workers[i] = worker;
+ }
+ this.workers = workers;
+ })();
+ }
+ return this.loadPromise;
+ }
+ async cookGeometry(mesh) {
+ await this.waitForLoad();
+
+ const {workers} = this;
+ const worker = workers[this.nextWorker];
+ this.nextWorker = (this.nextWorker + 1) % workers.length;
+
+ const result = await worker.request('cookGeometry', {
+ positions: mesh.geometry.attributes.position.array,
+ indices: mesh.geometry.index.array,
+ });
+ return result;
+ }
+ async cookConvexGeometry(mesh) {
+ await this.waitForLoad();
+
+ const {workers} = this;
+ const worker = workers[this.nextWorker];
+ this.nextWorker = (this.nextWorker + 1) % workers.length;
+
+ const result = await worker.request('cookConvexGeometry', {
+ positions: mesh.geometry.attributes.position.array,
+ indices: mesh.geometry.index.array,
+ });
+ return result;
+ }
+}
+const physicsWorkerManager = new PhysicsWorkerManager();
+export default physicsWorkerManager;
\ No newline at end of file
diff --git a/physx-worker.js b/physx-worker.js
new file mode 100644
index 0000000000..76f2d3bda9
--- /dev/null
+++ b/physx-worker.js
@@ -0,0 +1,110 @@
+import * as THREE from 'three';
+import physxLite from './physx-lite.js';
+import {makePromise} from './util.js'
+import {defaultChunkSize} from './constants.js';
+
+const chunkWorldSize = defaultChunkSize;
+
+const localVector = new THREE.Vector3();
+
+const fakeMaterial = new THREE.MeshBasicMaterial({
+ color: 0xffffff,
+});
+
+let loaded = false;
+let running = false;
+let queue = [];
+const _handleMethod = ({
+ method,
+ args,
+}) => {
+ switch (method) {
+ case 'cookGeometry': {
+ const {positions, indices} = args;
+ const geometry = new THREE.BufferGeometry();
+ geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
+ geometry.setIndex(new THREE.BufferAttribute(indices, 1));
+ const mesh = new THREE.Mesh(geometry, fakeMaterial);
+ const result = physxLite.cookGeometryPhysics(mesh);
+ return {
+ result,
+ transfers: [result.buffer],
+ };
+ }
+ case 'cookConvexGeometry': {
+ const {positions, indices} = args;
+ const geometry = new THREE.BufferGeometry();
+ geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
+ geometry.setIndex(new THREE.BufferAttribute(indices, 1));
+ const mesh = new THREE.Mesh(geometry, fakeMaterial);
+ const result = physxLite.cookConvexGeometryPhysics(mesh);
+ return {
+ result,
+ transfers: [result.buffer],
+ };
+ }
+ default: {
+ throw new Error(`unknown method: ${method}`);
+ }
+ }
+};
+const _handleMessage = async e => {
+ if (loaded && !running) {
+ const {
+ data,
+ port,
+ } = e;
+
+ {
+ running = true;
+
+ const {requestId} = data;
+ const p = makePromise();
+ try {
+ const spec = await _handleMethod(data);
+ p.accept(spec);
+ } catch (err) {
+ p.reject(err);
+ }
+
+ if (requestId) {
+ p.then(spec => {
+ const {result = null, transfers = []} = spec ?? {};
+ port.postMessage({
+ method: 'response',
+ requestId,
+ result,
+ }, transfers);
+ }, err => {
+ port.postMessage({
+ requestId,
+ error: err.message,
+ });
+ });
+ }
+
+ running = false;
+ }
+ // next
+ if (queue.length > 0) {
+ _handleMessage(queue.shift());
+ }
+ } else {
+ queue.push(e);
+ }
+};
+self.onmessage = e => {
+ _handleMessage({
+ data: e.data,
+ port: self,
+ });
+};
+
+(async () => {
+ await physxLite.waitForLoad();
+
+ loaded = true;
+ if (queue.length > 0) {
+ _handleMessage(queue.shift());
+ }
+})();
\ No newline at end of file
diff --git a/physx.js b/physx.js
index 8dea73fc9e..ef48423f5c 100644
--- a/physx.js
+++ b/physx.js
@@ -2,10 +2,11 @@
physx wasm integration.
*/
-import * as THREE from 'three'
+import * as THREE from 'three';
// import {makePromise} from './util.js';
// import { getRenderer } from './renderer.js'
-import Module from './public/bin/geometry.js'
+import Module from './public/bin/geometry.js';
+import {Allocator, ScratchStack} from './geometry-util.js';
const localVector = new THREE.Vector3()
const localVector2 = new THREE.Vector3()
@@ -18,57 +19,46 @@ const capsuleUpQuaternion = new THREE.Quaternion().setFromAxisAngle(
// const textEncoder = new TextEncoder();
// const textDecoder = new TextDecoder();
-const scratchStackSize = 1024 * 1024
-const maxNumUpdates = 256
+const physx = {};
-const physx = {}
+let loadPromise = null;
+let scratchStack = null;
+physx.loaded = false;
+physx.waitForLoad = () => {
+ if (!loadPromise) {
+ loadPromise = (async () => {
+ await Module.waitForLoad();
-physx.waitForLoad = Module.waitForLoad
+ Module._initialize();
-const physxWorker = (() => {
- class Allocator {
- constructor() {
- this.offsets = []
- }
+ const scratchStackSize = 1024 * 1024;
+ scratchStack = new ScratchStack(Module, scratchStackSize);
- alloc(constructor, size) {
- if (size > 0) {
- const offset = moduleInstance._malloc(
- size * constructor.BYTES_PER_ELEMENT
- )
- const b = new constructor(
- moduleInstance.HEAP8.buffer,
- moduleInstance.HEAP8.byteOffset + offset,
- size
- )
- b.offset = offset
- this.offsets.push(offset)
- return b
- } else {
- return new constructor(moduleInstance.HEAP8.buffer, 0, 0)
- }
- }
+ physx.loaded = true;
- freeAll() {
- for (let i = 0; i < this.offsets.length; i++) {
- moduleInstance._doFree(this.offsets[i])
- }
- this.offsets.length = 0
- }
+ // console.log('module called run', Module.calledRun);
+ /* if (Module.calledRun) {
+ // Module.onRuntimeInitialized()
+ Module.postRun()
+ } */
+ })();
}
+ return loadPromise;
+};
- const maxNumMessageArgs = 32
+const physxWorker = (() => {
+ /* const maxNumMessageArgs = 32
const messageSize =
Int32Array.BYTES_PER_ELEMENT + // id
Int32Array.BYTES_PER_ELEMENT + // method
Int32Array.BYTES_PER_ELEMENT + // priority
maxNumMessageArgs * Uint32Array.BYTES_PER_ELEMENT // args
const maxNumMessages = 1024
- const callStackSize = maxNumMessages * messageSize
- class CallStackMessage {
+ const callStackSize = maxNumMessages * messageSize */
+ /* class CallStackMessage {
constructor(ptr) {
this.dataView = new DataView(
- moduleInstance.HEAP8.buffer,
+ Module.HEAP8.buffer,
ptr,
messageSize
)
@@ -152,7 +142,7 @@ const physxWorker = (() => {
pushF32(v) {
this.dataView.setFloat32(this.offset, v, true)
this.offset += Float32Array.BYTES_PER_ELEMENT
- }
+ } */
/* pullU8Array(length) {
if (this.offset + length <= messageSize) {
const result = new Uint8Array(this.dataView.buffer, this.dataView.byteOffset + this.offset, length);
@@ -238,28 +228,28 @@ const physxWorker = (() => {
throw new Error('message overflow');
}
} */
- }
- class CallStack {
+ // }
+ /* class CallStack {
constructor() {
- this.ptr = moduleInstance._malloc(
+ this.ptr = Module._malloc(
callStackSize * 2 + Uint32Array.BYTES_PER_ELEMENT
)
this.dataView = new DataView(
- moduleInstance.HEAP8.buffer,
+ Module.HEAP8.buffer,
this.ptr,
callStackSize
)
this.outPtr = this.ptr + callStackSize
this.outDataView = new DataView(
- moduleInstance.HEAP8.buffer,
+ Module.HEAP8.buffer,
this.ptr + callStackSize,
callStackSize
)
this.outNumEntriesPtr = this.ptr + callStackSize * 2
this.outNumEntriesU32 = new Uint32Array(
- moduleInstance.HEAP8.buffer,
+ Module.HEAP8.buffer,
this.outNumEntriesPtr,
1
)
@@ -285,33 +275,7 @@ const physxWorker = (() => {
reset() {
this.numEntries = 0
}
- }
- class ScratchStack {
- constructor() {
- this.ptr = moduleInstance._malloc(scratchStackSize)
-
- this.u8 = new Uint8Array(
- moduleInstance.HEAP8.buffer,
- this.ptr,
- scratchStackSize
- )
- this.u32 = new Uint32Array(
- moduleInstance.HEAP8.buffer,
- this.ptr,
- scratchStackSize / 4
- )
- this.i32 = new Int32Array(
- moduleInstance.HEAP8.buffer,
- this.ptr,
- scratchStackSize / 4
- )
- this.f32 = new Float32Array(
- moduleInstance.HEAP8.buffer,
- this.ptr,
- scratchStackSize / 4
- )
- }
- }
+ } */
// const modulePromise = makePromise();
/* const INITIAL_INITIAL_MEMORY = 52428800;
@@ -321,52 +285,43 @@ const physxWorker = (() => {
"maximum": INITIAL_INITIAL_MEMORY / WASM_PAGE_SIZE,
"shared": true,
}); */
- let moduleInstance = null
- let scratchStack
- ;(async () => {
- await Module.waitForLoad()
-
- moduleInstance = Module
- scratchStack = new ScratchStack()
- physx.physics = physxWorker.makePhysics()
- })()
// let methodIndex = 0
- const cbIndex = new Map()
+ // const cbIndex = new Map()
const w = {}
w.alloc = (constructor, count) => {
if (count > 0) {
const size = constructor.BYTES_PER_ELEMENT * count
- const ptr = moduleInstance._doMalloc(size)
- return new constructor(moduleInstance.HEAP8.buffer, ptr, count)
+ const ptr = Module._doMalloc(size)
+ return new constructor(Module.HEAP8.buffer, ptr, count)
} else {
- return new constructor(moduleInstance.HEAP8.buffer, 0, 0)
+ return new constructor(Module.HEAP8.buffer, 0, 0)
}
- }
+ };
w.free = (ptr) => {
- moduleInstance._doFree(ptr)
- }
+ Module._doFree(ptr)
+ };
/* w.makeArenaAllocator = size => {
- const ptr = moduleInstance._makeArenaAllocator(size);
- const offset = moduleInstance.HEAP32[ptr / Uint32Array.BYTES_PER_ELEMENT];
+ const ptr = Module._makeArenaAllocator(size);
+ const offset = Module.HEAP32[ptr / Uint32Array.BYTES_PER_ELEMENT];
return {
ptr,
getAs(constructor) {
- return new constructor(moduleInstance.HEAP8.buffer, offset, size / constructor.BYTES_PER_ELEMENT);
+ return new constructor(Module.HEAP8.buffer, offset, size / constructor.BYTES_PER_ELEMENT);
},
};
};
- w.makeGeometrySet = () => moduleInstance._makeGeometrySet();
+ w.makeGeometrySet = () => Module._makeGeometrySet();
w.requestLoadBake = async (geometrySet, url) => {
const res = await fetch(url);
const arrayBuffer = await res.arrayBuffer();
const uint8Array = new Uint8Array(arrayBuffer);
- const dataOffset = moduleInstance._malloc(uint8Array.length);
- const data = moduleInstance.HEAPU8.subarray(dataOffset, dataOffset + uint8Array.length);
+ const dataOffset = Module._malloc(uint8Array.length);
+ const data = Module.HEAPU8.subarray(dataOffset, dataOffset + uint8Array.length);
data.set(uint8Array);
- moduleInstance._loadBake(
+ Module._loadBake(
geometrySet,
data.byteOffset,
data.byteLength
@@ -381,7 +336,7 @@ const physxWorker = (() => {
scratchStack.u32[0] = dstNameUint8Array.byteOffset,
- moduleInstance._getGeometry(
+ Module._getGeometry(
geometrySet,
dstNameUint8Array.byteOffset,
dstNameUint8Array.byteLength,
@@ -403,13 +358,13 @@ const physxWorker = (() => {
const aabbOffset = scratchStack.u32[6];
const boundingBox = new THREE.Box3(
- new THREE.Vector3().fromArray(moduleInstance.HEAPF32.subarray(aabbOffset/Float32Array.BYTES_PER_ELEMENT, aabbOffset/Float32Array.BYTES_PER_ELEMENT + 3)),
- new THREE.Vector3().fromArray(moduleInstance.HEAPF32.subarray(aabbOffset/Float32Array.BYTES_PER_ELEMENT + 3, aabbOffset/Float32Array.BYTES_PER_ELEMENT + 6)),
+ new THREE.Vector3().fromArray(Module.HEAPF32.subarray(aabbOffset/Float32Array.BYTES_PER_ELEMENT, aabbOffset/Float32Array.BYTES_PER_ELEMENT + 3)),
+ new THREE.Vector3().fromArray(Module.HEAPF32.subarray(aabbOffset/Float32Array.BYTES_PER_ELEMENT + 3, aabbOffset/Float32Array.BYTES_PER_ELEMENT + 6)),
);
- const positions = new Float32Array(moduleInstance.HEAP8.buffer, positionsOffset, numPositions);
- const uvs = new Float32Array(moduleInstance.HEAP8.buffer, uvsOffset, numUvs);
- const indices = new Uint32Array(moduleInstance.HEAP8.buffer, indicesOffset, numIndices);
+ const positions = new Float32Array(Module.HEAP8.buffer, positionsOffset, numPositions);
+ const uvs = new Float32Array(Module.HEAP8.buffer, uvsOffset, numUvs);
+ const indices = new Uint32Array(Module.HEAP8.buffer, indicesOffset, numIndices);
const geometry = new THREE.BufferGeometry();
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
@@ -430,7 +385,7 @@ const physxWorker = (() => {
m.pushU32(geometrySet);
const geometryRequestSize = MAX_NAME_LENGTH + 10*Float32Array.BYTES_PER_ELEMENT;
- geometryRequestsOffset = moduleInstance._malloc(geometryRequestSize * geometryRequests.length);
+ geometryRequestsOffset = Module._malloc(geometryRequestSize * geometryRequests.length);
for (let i = 0; i < geometryRequests.length; i++) {
const geometryRequest = geometryRequests[i];
@@ -438,13 +393,13 @@ const physxWorker = (() => {
const geometryRequestOffset = geometryRequestsOffset + i*geometryRequestSize;
const srcNameUint8Array = textEncoder.encode(name);
- const dstNameUint8Array = moduleInstance.HEAPU8.subarray(geometryRequestOffset, geometryRequestOffset + MAX_NAME_LENGTH);
+ const dstNameUint8Array = Module.HEAPU8.subarray(geometryRequestOffset, geometryRequestOffset + MAX_NAME_LENGTH);
dstNameUint8Array.set(srcNameUint8Array);
dstNameUint8Array[srcNameUint8Array.length] = 0;
- position.toArray(moduleInstance.HEAPF32, geometryRequestOffset/Float32Array.BYTES_PER_ELEMENT + MAX_NAME_LENGTH/Float32Array.BYTES_PER_ELEMENT);
- quaternion.toArray(moduleInstance.HEAPF32, geometryRequestOffset/Float32Array.BYTES_PER_ELEMENT + MAX_NAME_LENGTH/Float32Array.BYTES_PER_ELEMENT + 3);
- scale.toArray(moduleInstance.HEAPF32, geometryRequestOffset/Float32Array.BYTES_PER_ELEMENT + MAX_NAME_LENGTH/Float32Array.BYTES_PER_ELEMENT + 7);
+ position.toArray(Module.HEAPF32, geometryRequestOffset/Float32Array.BYTES_PER_ELEMENT + MAX_NAME_LENGTH/Float32Array.BYTES_PER_ELEMENT);
+ quaternion.toArray(Module.HEAPF32, geometryRequestOffset/Float32Array.BYTES_PER_ELEMENT + MAX_NAME_LENGTH/Float32Array.BYTES_PER_ELEMENT + 3);
+ scale.toArray(Module.HEAPF32, geometryRequestOffset/Float32Array.BYTES_PER_ELEMENT + MAX_NAME_LENGTH/Float32Array.BYTES_PER_ELEMENT + 7);
}
m.pushU32(geometryRequestsOffset);
@@ -459,10 +414,10 @@ const physxWorker = (() => {
// const numColors = m.pullU32();
const numIndices = m.pullU32();
- const positions = new Float32Array(moduleInstance.HEAP8.buffer, positionsOffset, numPositions);
- const uvs = new Float32Array(moduleInstance.HEAP8.buffer, uvsOffset, numUvs);
- // const colors = new Float32Array(moduleInstance.HEAP8.buffer, colorsOffset, numColors);
- const indices = new Uint32Array(moduleInstance.HEAP8.buffer, indicesOffset, numIndices);
+ const positions = new Float32Array(Module.HEAP8.buffer, positionsOffset, numPositions);
+ const uvs = new Float32Array(Module.HEAP8.buffer, uvsOffset, numUvs);
+ // const colors = new Float32Array(Module.HEAP8.buffer, colorsOffset, numColors);
+ const indices = new Uint32Array(Module.HEAP8.buffer, indicesOffset, numIndices);
const geometry = new THREE.BufferGeometry();
geometry.setAttribute('position', new THREE.BufferAttribute(positions, 3));
@@ -493,13 +448,13 @@ const physxWorker = (() => {
const nameLength = (() => {
let j;
for (j = 0; j < MAX_NAME_LENGTH; j++) {
- if (moduleInstance.HEAPU8[nameOffset+j] === 0) {
+ if (Module.HEAPU8[nameOffset+j] === 0) {
break;
}
}
return j;
})();
- const name = textDecoder.decode(moduleInstance.HEAPU8.slice(nameOffset, nameOffset + nameLength));
+ const name = textDecoder.decode(Module.HEAPU8.slice(nameOffset, nameOffset + nameLength));
result.push(name);
}
@@ -526,11 +481,11 @@ const physxWorker = (() => {
const headPivot = m.pullF32Array(3);
const aabb = m.pullF32Array(6);
- const positions = new Float32Array(moduleInstance.HEAP8.buffer, positionsOffset, numPositions);
- const colors = new Uint8Array(moduleInstance.HEAP8.buffer, colorsOffset, numColors);
- const indices = new Uint32Array(moduleInstance.HEAP8.buffer, indicesOffset, numIndices);
- const heads = new Float32Array(moduleInstance.HEAP8.buffer, headsOffset, numHeads);
- const legs = new Float32Array(moduleInstance.HEAP8.buffer, legsOffset, numLegs);
+ const positions = new Float32Array(Module.HEAP8.buffer, positionsOffset, numPositions);
+ const colors = new Uint8Array(Module.HEAP8.buffer, colorsOffset, numColors);
+ const indices = new Uint32Array(Module.HEAP8.buffer, indicesOffset, numIndices);
+ const heads = new Float32Array(Module.HEAP8.buffer, headsOffset, numHeads);
+ const legs = new Float32Array(Module.HEAP8.buffer, legsOffset, numLegs);
accept({
positions,
@@ -544,7 +499,7 @@ const physxWorker = (() => {
});
});
w.getHeight = (hash, x, y, z, baseHeight) => {
- return moduleInstance._doGetHeight(
+ return Module._doGetHeight(
hash,
x,
y,
@@ -553,10 +508,12 @@ const physxWorker = (() => {
);
};
w.makeTracker = function() {
- return moduleInstance._makeTracker.apply(moduleInstance, arguments);
+ return Module._makeTracker.apply(Module, arguments);
}; */
- w.makePhysics = () => moduleInstance._makePhysics()
+ w.initialize = () => Module._initialize()
+ w.makeScene = () => Module._makePhysics()
w.simulatePhysics = (physics, updates, elapsedTime) => {
+ const maxNumUpdates = 256;
/* if (updates.length > maxNumUpdates) {
throw new Error('too many updates to simulate step: ' + updates.length + ' (max: ' + maxNumUpdates + ')');
} */
@@ -597,7 +554,7 @@ const physxWorker = (() => {
updates: updates.length,
elapsedTime: elapsedTime,
}); */
- const numNewUpdates = moduleInstance._simulatePhysics(
+ const numNewUpdates = Module._simulatePhysics(
physics,
ids.byteOffset,
positions.byteOffset,
@@ -632,14 +589,14 @@ const physxWorker = (() => {
const materialByteOffset = scratchStack.f32.byteOffset;
- const materialAddress = moduleInstance._createMaterialPhysics(
+ const materialAddress = Module._createMaterialPhysics(
physics,
materialByteOffset,
);
return materialAddress;
};
w.destroyMaterial = (physics, materialAddress) => {
- moduleInstance._destroyMaterial(physics, materialAddress);
+ Module._destroyMaterial(physics, materialAddress);
};
w.getDefaultMaterial = (() => {
let defaultMaterial = null;
@@ -707,7 +664,7 @@ const physxWorker = (() => {
}; */
const maxDist = 1000
- moduleInstance._raycastPhysics(
+ Module._raycastPhysics(
physics,
originOffset,
directionOffset,
@@ -798,7 +755,7 @@ const physxWorker = (() => {
// const quaternionOffset = scratchStack.u32.byteOffset + (26 * Float32Array.BYTES_PER_ELEMENT) * n;
const maxDist = 1000
- moduleInstance._raycastPhysicsArray(
+ Module._raycastPhysicsArray(
n,
physics,
originOffset,
@@ -845,7 +802,7 @@ const physxWorker = (() => {
planeNormal, // normalized vector3 array
planeDistance, // number
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const positionsTypedArray = allocator.alloc(Float32Array, numPositions)
positionsTypedArray.set(positions)
@@ -865,7 +822,7 @@ const physxWorker = (() => {
const planeNormalTypedArray = allocator.alloc(Float32Array, 3)
planeNormalTypedArray.set(planeNormal)
- const outputBufferOffset = moduleInstance._doCut(
+ const outputBufferOffset = Module._doCut(
positionsTypedArray.byteOffset,
numPositions,
normalsTypedArray.byteOffset,
@@ -882,24 +839,24 @@ const physxWorker = (() => {
let head = outputBufferOffset / 4
let tail = head + 2
- const numOutPositionsTypedArray = moduleInstance.HEAPF32.slice(head, tail)
+ const numOutPositionsTypedArray = Module.HEAPF32.slice(head, tail)
head = tail
tail = head + 2
- const numOutNormalsTypedArray = moduleInstance.HEAPF32.slice(head, tail)
+ const numOutNormalsTypedArray = Module.HEAPF32.slice(head, tail)
head = tail
tail = head + 2
- const numOutUvsTypedArray = moduleInstance.HEAPF32.slice(head, tail)
+ const numOutUvsTypedArray = Module.HEAPF32.slice(head, tail)
head = tail
tail = head + (numOutPositionsTypedArray[0] + numOutPositionsTypedArray[1])
- const outPositions = moduleInstance.HEAPF32.slice(head, tail)
+ const outPositions = Module.HEAPF32.slice(head, tail)
head = tail
tail = head + (numOutNormalsTypedArray[0] + numOutNormalsTypedArray[1])
- const outNormals = moduleInstance.HEAPF32.slice(head, tail)
+ const outNormals = Module.HEAPF32.slice(head, tail)
head = tail
tail = head + (numOutUvsTypedArray[0] + numOutUvsTypedArray[1])
- const outUvs = moduleInstance.HEAPF32.slice(head, tail)
+ const outUvs = Module.HEAPF32.slice(head, tail)
- moduleInstance._doFree(outputBufferOffset)
+ Module._doFree(outputBufferOffset)
const output = {
numOutPositions: numOutPositionsTypedArray,
@@ -912,10 +869,10 @@ const physxWorker = (() => {
return output
}
w.setLinearLockFlags = (physics, physicsId, x, y, z) => {
- moduleInstance._setLinearLockFlagsPhysics(physics, physicsId, x, y, z)
+ Module._setLinearLockFlagsPhysics(physics, physicsId, x, y, z)
}
w.setAngularLockFlags = (physics, physicsId, x, y, z) => {
- moduleInstance._setAngularLockFlagsPhysics(physics, physicsId, x, y, z)
+ Module._setAngularLockFlagsPhysics(physics, physicsId, x, y, z)
}
w.sweepBox = (
@@ -926,14 +883,8 @@ const physxWorker = (() => {
direction,
sweepDistance,
maxHits,
- /* numHitsBuf.byteOffset,
- positionBuf.byteOffset,
- normalBuf.byteOffset,
- distanceBuf.byteOffset,
- objectIdBuf.byteOffset,
- faceIndexBuf.byteOffset, */
) => {
- const allocator = new Allocator();
+ const allocator = new Allocator(Module);
// inputs
const originBuf = allocator.alloc(
@@ -983,7 +934,7 @@ const physxWorker = (() => {
maxHits * 1
);
- moduleInstance._sweepBox(
+ Module._sweepBox(
physics,
originBuf.byteOffset,
quaternionBuf.byteOffset,
@@ -1016,6 +967,93 @@ const physxWorker = (() => {
return result
};
+ w.sweepConvexShape = (
+ physics,
+ shapeAddress,
+ origin,
+ quaternion,
+ direction,
+ sweepDistance,
+ maxHits,
+ ) => {
+ const allocator = new Allocator(Module);
+
+ // inputs
+ const originBuf = allocator.alloc(
+ Float32Array,
+ 3
+ );
+ origin.toArray(originBuf);
+ const quaternionBuf = allocator.alloc(
+ Float32Array,
+ 4
+ );
+ quaternion.toArray(quaternionBuf);
+ const directionBuf = allocator.alloc(
+ Float32Array,
+ 3
+ );
+ direction.toArray(directionBuf);
+
+ // outputs
+ const numHitsBuf = allocator.alloc(
+ Uint32Array,
+ 1
+ );
+ const positionBuf = allocator.alloc(
+ Float32Array,
+ maxHits * 3
+ );
+ const normalBuf = allocator.alloc(
+ Float32Array,
+ maxHits * 3
+ );
+ const distanceBuf = allocator.alloc(
+ Float32Array,
+ maxHits * 1
+ );
+ const objectIdBuf = allocator.alloc(
+ Uint32Array,
+ maxHits * 1
+ );
+ const faceIndexBuf = allocator.alloc(
+ Uint32Array,
+ maxHits * 1
+ );
+
+ Module._sweepConvexShape(
+ physics,
+ shapeAddress,
+ originBuf.byteOffset,
+ quaternionBuf.byteOffset,
+ directionBuf.byteOffset,
+ sweepDistance,
+ maxHits,
+ numHitsBuf.byteOffset,
+ positionBuf.byteOffset,
+ normalBuf.byteOffset,
+ distanceBuf.byteOffset,
+ objectIdBuf.byteOffset,
+ faceIndexBuf.byteOffset,
+ );
+
+ const numHits = numHitsBuf[0];
+ let result = Array(numHits);
+ for (let i = 0; i < numHits; i++) {
+ const object = {
+ position: new THREE.Vector3().fromArray(positionBuf, i * 3),
+ normal: new THREE.Vector3().fromArray(normalBuf, i * 3),
+ distance: distanceBuf[i],
+ objectId: objectIdBuf[i],
+ faceIndex: faceIndexBuf[i],
+ };
+ result[i] = object;
+ }
+
+ allocator.freeAll();
+
+ return result
+ };
w.getPathPhysics = (
physics,
@@ -1042,7 +1080,7 @@ const physxWorker = (() => {
scratchStack.u32[6 + i] = ignorePhysicsIds[i]
})
- const outputBufferOffset = moduleInstance._getPathPhysics(
+ const outputBufferOffset = Module._getPathPhysics(
physics,
startOffset,
destOffset,
@@ -1056,13 +1094,13 @@ const physxWorker = (() => {
)
const head = outputBufferOffset / Float32Array.BYTES_PER_ELEMENT
- const numWaypointResult = moduleInstance.HEAPF32[head + 0]
+ const numWaypointResult = Module.HEAPF32[head + 0]
const waypointResult = []
for (let i = 0; i < numWaypointResult; i++) {
const result = new THREE.Object3D()
- result.position.x = moduleInstance.HEAPF32[head + i * 3 + 1]
- result.position.y = moduleInstance.HEAPF32[head + i * 3 + 2]
- result.position.z = moduleInstance.HEAPF32[head + i * 3 + 3]
+ result.position.x = Module.HEAPF32[head + i * 3 + 1]
+ result.position.y = Module.HEAPF32[head + i * 3 + 2]
+ result.position.z = Module.HEAPF32[head + i * 3 + 3]
waypointResult.push(result)
}
waypointResult.forEach((result, i) => {
@@ -1072,7 +1110,7 @@ const physxWorker = (() => {
}
})
- moduleInstance._doFree(outputBufferOffset)
+ Module._doFree(outputBufferOffset)
return waypointResult
}
@@ -1092,7 +1130,7 @@ const physxWorker = (() => {
const meshQuaternionOffset =
scratchStack.f32.byteOffset + 10 * Float32Array.BYTES_PER_ELEMENT
- const outputBufferOffset = moduleInstance._overlapBoxPhysics(
+ const outputBufferOffset = Module._overlapBoxPhysics(
physics,
hx,
hy,
@@ -1105,12 +1143,12 @@ const physxWorker = (() => {
let head = outputBufferOffset / Float32Array.BYTES_PER_ELEMENT
let tail = head + 1
- const numOutIds = moduleInstance.HEAPF32[head]
+ const numOutIds = Module.HEAPF32[head]
head = tail
tail = head + numOutIds
- const outIds = moduleInstance.HEAPF32.slice(head, tail)
+ const outIds = Module.HEAPF32.slice(head, tail)
- moduleInstance._doFree(outputBufferOffset)
+ Module._doFree(outputBufferOffset)
return {
objectIds: outIds,
@@ -1134,7 +1172,7 @@ const physxWorker = (() => {
const meshQuaternionOffset =
scratchStack.f32.byteOffset + 10 * Float32Array.BYTES_PER_ELEMENT
- const outputBufferOffset = moduleInstance._overlapCapsulePhysics(
+ const outputBufferOffset = Module._overlapCapsulePhysics(
physics,
radius,
halfHeight,
@@ -1146,12 +1184,12 @@ const physxWorker = (() => {
let head = outputBufferOffset / Float32Array.BYTES_PER_ELEMENT
let tail = head + 1
- const numOutIds = moduleInstance.HEAPF32[head]
+ const numOutIds = Module.HEAPF32[head]
head = tail
tail = head + numOutIds
- const outIds = moduleInstance.HEAPF32.slice(head, tail)
+ const outIds = Module.HEAPF32.slice(head, tail)
- moduleInstance._doFree(outputBufferOffset)
+ Module._doFree(outputBufferOffset)
return {
objectIds: outIds,
@@ -1181,7 +1219,7 @@ const physxWorker = (() => {
const idOffset =
scratchStack.f32.byteOffset + 19 * Float32Array.BYTES_PER_ELEMENT
- moduleInstance._collideBoxPhysics(
+ Module._collideBoxPhysics(
physics,
hx,
hy,
@@ -1232,7 +1270,7 @@ const physxWorker = (() => {
const idOffset =
scratchStack.f32.byteOffset + 19 * Float32Array.BYTES_PER_ELEMENT
- moduleInstance._collideCapsulePhysics(
+ Module._collideCapsulePhysics(
physics,
radius,
halfHeight,
@@ -1277,7 +1315,7 @@ const physxWorker = (() => {
const idOffset =
scratchStack.f32.byteOffset + 15 * Float32Array.BYTES_PER_ELEMENT
- moduleInstance._getCollisionObjectPhysics(
+ Module._getCollisionObjectPhysics(
physics,
radius,
halfHeight,
@@ -1299,7 +1337,7 @@ const physxWorker = (() => {
w.addGeometryPhysics = (physics, mesh, id) => {
const { geometry } = mesh
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const positions = allocator.alloc(
Float32Array,
geometry.attributes.position.count * 3
@@ -1309,8 +1347,7 @@ const physxWorker = (() => {
? allocator.alloc(Uint32Array, geometry.index.count)
: null
indices && indices.set(geometry.index.array)
- moduleInstance._cookGeometryPhysics(
- physics,
+ Module._cookGeometryPhysics(
positions.byteOffset,
indices ? indices.byteOffset : 0,
positions.length,
@@ -1325,7 +1362,7 @@ const physxWorker = (() => {
const dataLength = scratchStack.u32[1]
const streamPtr = scratchStack.u32[2]
- const shape = moduleInstance._createShapePhysics(
+ const shape = Module._createShapePhysics(
physics,
dataPtr,
dataLength,
@@ -1345,7 +1382,8 @@ const physxWorker = (() => {
const materialAddress = w.getDefaultMaterial(physics)
- moduleInstance._addGeometryPhysics(
+ const external = false;
+ Module._addGeometryPhysics(
physics,
shape,
positionBuffer.byteOffset,
@@ -1353,14 +1391,15 @@ const physxWorker = (() => {
scaleBuffer.byteOffset,
id,
materialAddress,
+ +external,
shape
)
}
- w.cookGeometryPhysics = (physics, mesh) => {
+ w.cookGeometryPhysics = (mesh) => {
mesh.updateMatrixWorld()
const { geometry } = mesh
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const positions = allocator.alloc(
Float32Array,
geometry.attributes.position.count * 3
@@ -1370,8 +1409,7 @@ const physxWorker = (() => {
? allocator.alloc(Uint32Array, geometry.index.count)
: null
indices && indices.set(geometry.index.array)
- moduleInstance._cookGeometryPhysics(
- physics,
+ Module._cookGeometryPhysics(
positions.byteOffset,
indices ? indices.byteOffset : 0,
positions.length,
@@ -1385,8 +1423,7 @@ const physxWorker = (() => {
const dataLength = scratchStack.u32[1]
const streamPtr = scratchStack.u32[2] // XXX delete if it will not be deleted
- const result = new Uint8Array(dataLength)
- result.set(new Uint8Array(moduleInstance.HEAP8.buffer, dataPtr, dataLength))
+ const result = Module.HEAPU8.slice(dataPtr, dataPtr + dataLength);
allocator.freeAll()
return result
}
@@ -1398,7 +1435,7 @@ const physxWorker = (() => {
scale,
id
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const buffer2 = allocator.alloc(Uint8Array, buffer.length)
buffer2.set(buffer)
@@ -1409,16 +1446,17 @@ const physxWorker = (() => {
const scaleBuffer = scratchStack.f32.subarray(7, 10)
scale.toArray(scaleBuffer)
- const shape = moduleInstance._createShapePhysics(
+ const shape = Module._createShapePhysics(
physics,
buffer2.byteOffset,
buffer2.byteLength,
0,
- )
+ );
const materialAddress = w.getDefaultMaterial(physics)
- moduleInstance._addGeometryPhysics(
+ const external = false;
+ Module._addGeometryPhysics(
physics,
shape,
positionBuffer.byteOffset,
@@ -1426,16 +1464,17 @@ const physxWorker = (() => {
scaleBuffer.byteOffset,
id,
materialAddress,
+ +external,
0
)
allocator.freeAll()
}
- w.addConvexGeometryPhysics = (physics, mesh, id) => {
+ w.addConvexGeometryPhysics = (physics, mesh, dynamic, external, id) => {
mesh.updateMatrixWorld()
const { geometry } = mesh
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const positions = allocator.alloc(
Float32Array,
geometry.attributes.position.count * 3
@@ -1445,8 +1484,7 @@ const physxWorker = (() => {
? allocator.alloc(Uint32Array, geometry.index.count)
: null
indices && indices.set(geometry.index.array)
- moduleInstance._cookConvexGeometryPhysics(
- physics,
+ Module._cookConvexGeometryPhysics(
positions.byteOffset,
indices ? indices.byteOffset : 0,
positions.length,
@@ -1461,7 +1499,7 @@ const physxWorker = (() => {
const dataLength = scratchStack.u32[1]
const streamPtr = scratchStack.u32[2]
- const shape = moduleInstance._createShapePhysics(
+ const shape = Module._createConvexShapePhysics(
physics,
dataPtr,
dataLength,
@@ -1481,7 +1519,7 @@ const physxWorker = (() => {
const materialAddress = w.getDefaultMaterial(physics);
- moduleInstance._addConvexGeometryPhysics(
+ Module._addConvexGeometryPhysics(
physics,
shape,
positionBuffer.byteOffset,
@@ -1489,14 +1527,16 @@ const physxWorker = (() => {
scaleBuffer.byteOffset,
id,
materialAddress,
- shape
+ +dynamic,
+ +external,
+ shape,
)
}
w.cookConvexGeometryPhysics = (physics, mesh) => {
mesh.updateMatrixWorld()
const { geometry } = mesh
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const positions = allocator.alloc(
Float32Array,
geometry.attributes.position.count * 3
@@ -1506,8 +1546,7 @@ const physxWorker = (() => {
? allocator.alloc(Uint32Array, geometry.index.count)
: null
indices && indices.set(geometry.index.array)
- moduleInstance._cookConvexGeometryPhysics(
- physics,
+ Module._cookConvexGeometryPhysics(
positions.byteOffset,
indices ? indices.byteOffset : 0,
positions.length,
@@ -1521,8 +1560,7 @@ const physxWorker = (() => {
const dataLength = scratchStack.u32[1]
const streamPtr = scratchStack.u32[2] // XXX delete if it will not be deleted
- const result = new Uint8Array(dataLength)
- result.set(new Uint8Array(moduleInstance.HEAP8.buffer, dataPtr, dataLength))
+ const result = Module.HEAPU8.slice(dataPtr, dataPtr + dataLength);
allocator.freeAll()
return result
}
@@ -1532,9 +1570,11 @@ const physxWorker = (() => {
position,
quaternion,
scale,
+ dynamic,
+ external,
id
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const buffer2 = allocator.alloc(Uint8Array, buffer.length)
buffer2.set(buffer)
@@ -1544,12 +1584,8 @@ const physxWorker = (() => {
quaternion.toArray(quaternionBuffer)
const scaleBuffer = scratchStack.f32.subarray(7, 10)
scale.toArray(scaleBuffer)
- /* const mat = scratchStack.f32.subarray(10, 13)
- mat[0] = physicsMaterial[0]
- mat[1] = physicsMaterial[1]
- mat[2] = physicsMaterial[2] */
- const shape = moduleInstance._createShapePhysics(
+ const shape = Module._createShapePhysics(
physics,
buffer2.byteOffset,
buffer2.byteLength,
@@ -1558,7 +1594,7 @@ const physxWorker = (() => {
const materialAddress = w.getDefaultMaterial(physics)
- moduleInstance._addConvexGeometryPhysics(
+ Module._addConvexGeometryPhysics(
physics,
shape,
positionBuffer.byteOffset,
@@ -1566,20 +1602,75 @@ const physxWorker = (() => {
scaleBuffer.byteOffset,
id,
materialAddress,
- 0
+ +dynamic,
+ +external,
+ 0,
)
allocator.freeAll()
}
+ w.addConvexShapePhysics = (physics, shape, position, quaternion, scale, dynamic, external, id) => {
+ const positionBuffer = scratchStack.f32.subarray(3, 6)
+ position.toArray(positionBuffer)
+ const quaternionBuffer = scratchStack.f32.subarray(6, 10)
+ quaternion.toArray(quaternionBuffer)
+ const scaleBuffer = scratchStack.f32.subarray(10, 13)
+ scale.toArray(scaleBuffer)
+
+ const materialAddress = w.getDefaultMaterial(physics);
+
+ Module._addConvexGeometryPhysics(
+ physics,
+ shape,
+ positionBuffer.byteOffset,
+ quaternionBuffer.byteOffset,
+ scaleBuffer.byteOffset,
+ id,
+ materialAddress,
+ +dynamic,
+ +external,
+ shape
+ )
+ }
+
+ w.createShapePhysics = (physics, buffer) => {
+ const allocator = new Allocator(Module)
+ const buffer2 = allocator.alloc(Uint8Array, buffer.length)
+ buffer2.set(buffer)
+
+ const shapeAddress = Module._createShapePhysics(
+ physics,
+ buffer2.byteOffset,
+ buffer2.byteLength,
+ 0,
+ );
+ allocator.freeAll();
+ return shapeAddress;
+ };
+ w.createConvexShapePhysics = (physics, buffer) => {
+ const allocator = new Allocator(Module)
+ const buffer2 = allocator.alloc(Uint8Array, buffer.length)
+ buffer2.set(buffer)
+
+ const shapeAddress = Module._createConvexShapePhysics(
+ physics,
+ buffer2.byteOffset,
+ buffer2.byteLength,
+ 0,
+ );
+ allocator.freeAll();
+ return shapeAddress;
+ };
+
w.getGeometryPhysics = (physics, id) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const positionsBuffer = allocator.alloc(Float32Array, 1024 * 1024 * 2)
const numPositions = allocator.alloc(Uint32Array, 1)
const indicesBuffer = allocator.alloc(Uint32Array, 1024 * 1024 * 2)
const numIndices = allocator.alloc(Uint32Array, 1)
const boundsBuffer = allocator.alloc(Float32Array, 6)
- const ok = moduleInstance._getGeometryPhysics(
+ const ok = Module._getGeometryPhysics(
physics,
id,
positionsBuffer.byteOffset,
@@ -1607,10 +1698,10 @@ const physxWorker = (() => {
}
}
w.getBoundsPhysics = (physics, id, box) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const boundsBuffer = allocator.alloc(Float32Array, 6)
- const ok = moduleInstance._getBoundsPhysics(
+ const ok = Module._getBoundsPhysics(
physics,
id,
boundsBuffer.byteOffset
@@ -1630,69 +1721,69 @@ const physxWorker = (() => {
}
w.enableActorPhysics = (physics, id) => {
- moduleInstance._enableActorPhysics(physics, id)
+ Module._enableActorPhysics(physics, id)
}
w.disableActorPhysics = (physics, id) => {
- moduleInstance._disableActorPhysics(physics, id)
+ Module._disableActorPhysics(physics, id)
}
w.disableGeometryPhysics = (physics, id) => {
- moduleInstance._disableGeometryPhysics(physics, id)
+ Module._disableGeometryPhysics(physics, id)
}
w.enableGeometryPhysics = (physics, id) => {
- moduleInstance._enableGeometryPhysics(physics, id)
+ Module._enableGeometryPhysics(physics, id)
}
w.disableGeometryQueriesPhysics = (physics, id) => {
- moduleInstance._disableGeometryQueriesPhysics(physics, id)
+ Module._disableGeometryQueriesPhysics(physics, id)
}
w.enableGeometryQueriesPhysics = (physics, id) => {
- moduleInstance._enableGeometryQueriesPhysics(physics, id)
+ Module._enableGeometryQueriesPhysics(physics, id)
}
w.setMassAndInertiaPhysics = (physics, id, mass, inertia) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const inrt = allocator.alloc(Float32Array, 3)
inertia.toArray(inrt)
- moduleInstance._setMassAndInertiaPhysics(physics, id, mass, inrt)
+ Module._setMassAndInertiaPhysics(physics, id, mass, inrt)
allocator.freeAll()
}
w.setGravityEnabledPhysics = (physics, id, enabled) => {
- moduleInstance._setGravityEnabledPhysics(physics, id, enabled)
+ Module._setGravityEnabledPhysics(physics, id, enabled)
}
w.removeGeometryPhysics = (physics, id) => {
- moduleInstance._removeGeometryPhysics(physics, id)
+ Module._removeGeometryPhysics(physics, id)
}
w.getGlobalPositionPhysics = (physics, id, position) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const p = allocator.alloc(Float32Array, 3)
- moduleInstance._getGlobalPositionPhysics(physics, id, p.byteOffset)
+ Module._getGlobalPositionPhysics(physics, id, p.byteOffset)
position.fromArray(p)
allocator.freeAll()
}
w.getLinearVelocityPhysics = (physics, id, velocity) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const v = allocator.alloc(Float32Array, 3)
- moduleInstance._getLinearVelocityPhysics(physics, id, v.byteOffset)
+ Module._getLinearVelocityPhysics(physics, id, v.byteOffset)
velocity.fromArray(v)
allocator.freeAll()
}
w.getAngularVelocityPhysics = (physics, id, velocity) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const v = allocator.alloc(Float32Array, 3)
- moduleInstance._getAngularVelocityPhysics(physics, id, v.byteOffset)
+ Module._getAngularVelocityPhysics(physics, id, v.byteOffset)
velocity.fromArray(v)
allocator.freeAll()
}
w.addForceAtPosPhysics = (physics, id, velocity, position, autoWake) => {
- const allocator = new Allocator();
+ const allocator = new Allocator(Module);
const vel = allocator.alloc(Float32Array, 3);
velocity.toArray(vel);
const pos = allocator.alloc(Float32Array, 3);
@@ -1700,11 +1791,11 @@ const physxWorker = (() => {
autoWake = autoWake ?? false;
- moduleInstance._addForceAtPosPhysics(physics, id, vel.byteOffset, pos.byteOffset, autoWake);
+ Module._addForceAtPosPhysics(physics, id, vel.byteOffset, pos.byteOffset, autoWake);
allocator.freeAll();
}
w.addLocalForceAtPosPhysics = (physics, id, velocity, position, autoWake) => {
- const allocator = new Allocator();
+ const allocator = new Allocator(Module);
const vel = allocator.alloc(Float32Array, 3);
velocity.toArray(vel);
const pos = allocator.alloc(Float32Array, 3);
@@ -1712,11 +1803,11 @@ const physxWorker = (() => {
autoWake = autoWake ?? false;
- moduleInstance._addLocalForceAtPosPhysics(physics, id, vel.byteOffset, pos.byteOffset, autoWake);
+ Module._addLocalForceAtPosPhysics(physics, id, vel.byteOffset, pos.byteOffset, autoWake);
allocator.freeAll();
}
w.addLocalForceAtLocalPosPhysics = (physics, id, velocity, position, autoWake) => {
- const allocator = new Allocator();
+ const allocator = new Allocator(Module);
const vel = allocator.alloc(Float32Array, 3);
velocity.toArray(vel);
const pos = allocator.alloc(Float32Array, 3);
@@ -1724,11 +1815,11 @@ const physxWorker = (() => {
autoWake = autoWake ?? false;
- moduleInstance._addLocalForceAtLocalPosPhysics(physics, id, vel.byteOffset, pos.byteOffset, autoWake);
+ Module._addLocalForceAtLocalPosPhysics(physics, id, vel.byteOffset, pos.byteOffset, autoWake);
allocator.freeAll();
}
w.addForceAtLocalPosPhysics = (physics, id, velocity, position, autoWake) => {
- const allocator = new Allocator();
+ const allocator = new Allocator(Module);
const vel = allocator.alloc(Float32Array, 3);
velocity.toArray(vel);
const pos = allocator.alloc(Float32Array, 3);
@@ -1736,47 +1827,47 @@ const physxWorker = (() => {
autoWake = autoWake ?? false;
- moduleInstance._addForceAtLocalPosPhysics(physics, id, vel.byteOffset, pos.byteOffset, autoWake);
+ Module._addForceAtLocalPosPhysics(physics, id, vel.byteOffset, pos.byteOffset, autoWake);
allocator.freeAll();
}
w.addForcePhysics = (physics, id, velocity, autoWake) => {
- const allocator = new Allocator();
+ const allocator = new Allocator(Module);
const vel = allocator.alloc(Float32Array, 3);
velocity.toArray(vel);
autoWake = autoWake ?? false;
- moduleInstance._addForcePhysics(physics, id, vel.byteOffset, autoWake);
+ Module._addForcePhysics(physics, id, vel.byteOffset, autoWake);
allocator.freeAll();
}
w.addTorquePhysics = (physics, id, velocity, autoWake) => {
- const allocator = new Allocator();
+ const allocator = new Allocator(Module);
const vel = allocator.alloc(Float32Array, 3);
velocity.toArray(vel);
autoWake = autoWake ?? false;
- moduleInstance._addTorquePhysics(physics, id, vel.byteOffset, autoWake);
+ Module._addTorquePhysics(physics, id, vel.byteOffset, autoWake);
allocator.freeAll();
}
w.setVelocityPhysics = (physics, id, velocity, autoWake) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const vel = allocator.alloc(Float32Array, 3)
velocity.toArray(vel)
autoWake = autoWake ?? false
- moduleInstance._setVelocityPhysics(physics, id, vel.byteOffset, autoWake)
+ Module._setVelocityPhysics(physics, id, vel.byteOffset, autoWake)
allocator.freeAll()
}
w.setAngularVelocityPhysics = (physics, id, velocity, autoWake) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const vel = allocator.alloc(Float32Array, 3)
velocity.toArray(vel)
autoWake = autoWake ?? false
- moduleInstance._setAngularVelocityPhysics(
+ Module._setAngularVelocityPhysics(
physics,
id,
vel.byteOffset,
@@ -1789,10 +1880,10 @@ const physxWorker = (() => {
id,
scale,
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const s = allocator.alloc(Float32Array, 3)
scale.toArray(s)
- moduleInstance._setGeometryScalePhysics(
+ Module._setGeometryScalePhysics(
physics,
id,
s.byteOffset
@@ -1807,7 +1898,7 @@ const physxWorker = (() => {
scale,
autoWake
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const p = allocator.alloc(Float32Array, 3)
const q = allocator.alloc(Float32Array, 4)
const s = allocator.alloc(Float32Array, 3)
@@ -1818,7 +1909,7 @@ const physxWorker = (() => {
autoWake = autoWake ?? false
- moduleInstance._setTransformPhysics(
+ Module._setTransformPhysics(
physics,
id,
p.byteOffset,
@@ -1865,7 +1956,7 @@ const physxWorker = (() => {
update.scale.toArray(scales, i * 3)
}
- const numNewUpdates = moduleInstance._getTransformPhysics(
+ const numNewUpdates = Module._getTransformPhysics(
physics,
ids.byteOffset,
positions.byteOffset,
@@ -1904,7 +1995,7 @@ const physxWorker = (() => {
debugger;
} */
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const p = allocator.alloc(Float32Array, 3)
const q = allocator.alloc(Float32Array, 4)
@@ -1912,7 +2003,7 @@ const physxWorker = (() => {
quaternion.toArray(q)
const flagsInt = (+flags.physics << 0) | (+flags.ccd << 1)
- moduleInstance._addCapsuleGeometryPhysics(
+ Module._addCapsuleGeometryPhysics(
physics,
p.byteOffset,
q.byteOffset,
@@ -1920,7 +2011,7 @@ const physxWorker = (() => {
halfHeight,
materialAddress,
id,
- dynamic,
+ +dynamic,
flagsInt
)
allocator.freeAll()
@@ -1933,7 +2024,7 @@ const physxWorker = (() => {
id,
dynamic
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const p = allocator.alloc(Float32Array, 3)
const q = allocator.alloc(Float32Array, 4)
const s = allocator.alloc(Float32Array, 3)
@@ -1944,7 +2035,7 @@ const physxWorker = (() => {
const materialAddress = w.getDefaultMaterial(physics);
- moduleInstance._addBoxGeometryPhysics(
+ Module._addBoxGeometryPhysics(
physics,
p.byteOffset,
q.byteOffset,
@@ -1964,7 +2055,7 @@ const physxWorker = (() => {
position,
id
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const p = allocator.alloc(Float32Array, 3)
position.toArray(p)
@@ -1972,7 +2063,7 @@ const physxWorker = (() => {
const zeroMaterial = w.getZeroMaterial(physics);
const characterController =
- moduleInstance._createCharacterControllerPhysics(
+ Module._createCharacterControllerPhysics(
physics,
radius,
height,
@@ -1987,7 +2078,7 @@ const physxWorker = (() => {
return characterController
}
w.destroyCharacterControllerPhysics = (physics, characterController) => {
- moduleInstance._destroyCharacterControllerPhysics(
+ Module._destroyCharacterControllerPhysics(
physics,
characterController
)
@@ -2000,13 +2091,13 @@ const physxWorker = (() => {
elapsedTime,
outPosition
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const disp = allocator.alloc(Float32Array, 3)
const outPositions = allocator.alloc(Float32Array, 3)
displacement.toArray(disp)
- const flags = moduleInstance._moveCharacterControllerPhysics(
+ const flags = Module._moveCharacterControllerPhysics(
physics,
characterController,
disp.byteOffset,
@@ -2027,12 +2118,12 @@ const physxWorker = (() => {
characterController,
position
) => {
- const allocator = new Allocator()
+ const allocator = new Allocator(Module)
const p = allocator.alloc(Float32Array, 3)
position.toArray(p)
- moduleInstance._setCharacterControllerPositionPhysics(
+ Module._setCharacterControllerPositionPhysics(
physics,
characterController,
p.byteOffset
@@ -2040,8 +2131,10 @@ const physxWorker = (() => {
allocator.freeAll()
}
+ //
+
w.marchingCubes = (dims, potential, shift, scale) => {
- let allocator = new Allocator()
+ let allocator = new Allocator(Module)
const dimsTypedArray = allocator.alloc(Int32Array, 3)
dimsTypedArray.set(dims)
@@ -2055,7 +2148,7 @@ const physxWorker = (() => {
const scaleTypedArray = allocator.alloc(Float32Array, 3)
scaleTypedArray.set(scale)
- const outputBufferOffset = moduleInstance._doMarchingCubes(
+ const outputBufferOffset = Module._doMarchingCubes(
dimsTypedArray.byteOffset,
potentialTypedArray.byteOffset,
shiftTypedArray.byteOffset,
@@ -2066,18 +2159,18 @@ const physxWorker = (() => {
const head = outputBufferOffset / 4
- const positionCount = moduleInstance.HEAP32[head]
- const faceCount = moduleInstance.HEAP32[head + 1]
- const positions = moduleInstance.HEAPF32.slice(
+ const positionCount = Module.HEAP32[head]
+ const faceCount = Module.HEAP32[head + 1]
+ const positions = Module.HEAPF32.slice(
head + 2,
head + 2 + positionCount
)
- const faces = moduleInstance.HEAPU32.slice(
+ const faces = Module.HEAPU32.slice(
head + 2 + positionCount,
head + 2 + positionCount + faceCount
)
- moduleInstance._doFree(outputBufferOffset)
+ Module._doFree(outputBufferOffset)
return {
positionCount: positionCount,
@@ -2087,81 +2180,6 @@ const physxWorker = (() => {
}
}
- w.generateChunkDataDualContouring = (x, y, z) => {
- moduleInstance._generateChunkDataDualContouring(x, y, z)
- }
-
- w.setChunkLodDualContouring = (x, y, z, lod) => {
- moduleInstance._setChunkLodDualContouring(x, y, z, lod)
- }
-
- w.clearTemporaryChunkDataDualContouring = () => {
- moduleInstance._clearTemporaryChunkDataDualContouring()
- }
-
- w.clearChunkRootDualContouring = (x, y, z) => {
- moduleInstance._clearChunkRootDualContouring(x, y, z)
- }
-
- w.createChunkMeshDualContouring = (x, y, z) => {
- const outputBufferOffset = moduleInstance._createChunkMeshDualContouring(x, y, z);
- // console.log('create xyz', x, y, z, outputBufferOffset);
-
- if (outputBufferOffset) {
- const _parseVertexBuffer = (arrayBuffer, bufferAddress) => {
- const dataView = new DataView(arrayBuffer, bufferAddress);
-
- let index = 0;
-
- // positions
- const numPositions = dataView.getUint32(index, true);
- index += Uint32Array.BYTES_PER_ELEMENT;
- const positions = new Float32Array(arrayBuffer, bufferAddress + index, numPositions * 3);
- index += Float32Array.BYTES_PER_ELEMENT * numPositions * 3;
-
- // normals
- const numNormals = dataView.getUint32(index, true);
- index += Uint32Array.BYTES_PER_ELEMENT;
- const normals = new Float32Array(arrayBuffer, bufferAddress + index, numNormals * 3);
- index += Float32Array.BYTES_PER_ELEMENT * numNormals * 3;
-
- // biomes
- const numBiomes = dataView.getUint32(index, true);
- index += Uint32Array.BYTES_PER_ELEMENT;
- const biomes = new Int32Array(arrayBuffer, bufferAddress + index, numBiomes * 4);
- index += Int32Array.BYTES_PER_ELEMENT * numBiomes * 4;
-
- // biome weights
- const numBiomesWeights = dataView.getUint32(index, true);
- index += Uint32Array.BYTES_PER_ELEMENT;
- const biomesWeights = new Float32Array(arrayBuffer, bufferAddress +index, numBiomesWeights * 4);
- index += Float32Array.BYTES_PER_ELEMENT * numBiomesWeights * 4;
-
- // indices
- const numIndices = dataView.getUint32(index, true);
- index += Uint32Array.BYTES_PER_ELEMENT;
- const indices = new Uint32Array(arrayBuffer, bufferAddress + index, numIndices);
- index += Uint32Array.BYTES_PER_ELEMENT * numIndices;
-
- return {
- bufferAddress,
- positions,
- normals,
- biomes,
- biomesWeights,
- indices,
- };
- };
- const result = _parseVertexBuffer(
- moduleInstance.HEAP8.buffer,
- moduleInstance.HEAP8.byteOffset + outputBufferOffset
- );
- return result;
- } else {
- return null;
- }
- };
-
return w;
})()
@@ -2174,12 +2192,4 @@ const _updateGeometry = () => {
}
physx.update = _updateGeometry
-const _initModule = () => {
- if (Module.calledRun) {
- Module.onRuntimeInitialized()
- Module.postRun()
- }
-}
-_initModule()
-
export default physx
diff --git a/player-avatar-binding.js b/player-avatar-binding.js
index 46bc4b2aa9..5a8a0a49db 100644
--- a/player-avatar-binding.js
+++ b/player-avatar-binding.js
@@ -72,6 +72,7 @@ export function applyPlayerActionsToAvatar(player, rig) {
const jumpAction = player.getAction('jump');
const flyAction = player.getAction('fly');
const useAction = player.getAction('use');
+ const pickUpAction = player.getAction('pickUp');
const narutoRunAction = player.getAction('narutoRun');
const sitAction = player.getAction('sit');
const sitAnimation = sitAction ? sitAction.animation : '';
@@ -82,6 +83,7 @@ export function applyPlayerActionsToAvatar(player, rig) {
// const throwAction = player.getAction('throw');
const aimAction = player.getAction('aim');
const crouchAction = player.getAction('crouch');
+ const wearAction = player.getAction('wear');
// const chargeJump = player.getAction('chargeJump');
// const chargeJumpAnimation = chargeJump ? chargeJump.animation : '';
// const standCharge = player.getAction('standCharge');
@@ -100,37 +102,46 @@ export function applyPlayerActionsToAvatar(player, rig) {
rig.flyTime = flyAction ? player.actionInterpolants.fly.get() : -1;
rig.activateTime = player.actionInterpolants.activate.get();
- if (useAction?.animation) {
- rig.useAnimation = useAction.animation;
- } else {
- if (rig.useAnimation) {
- rig.useAnimation = '';
- }
- }
- if (useAction?.animationCombo) {
- rig.useAnimationCombo = useAction.animationCombo;
- } else {
- if (rig.useAnimationCombo.length > 0) {
- rig.useAnimationCombo = [];
+ const _handleUse = () => {
+ if (useAction?.animation) {
+ rig.useAnimation = useAction.animation;
+ } else {
+ if (rig.useAnimation) {
+ rig.useAnimation = '';
+ }
}
- }
- if (useAction?.animationEnvelope) {
- rig.useAnimationEnvelope = useAction.animationEnvelope;
- } else {
- if (rig.useAnimationEnvelope.length > 0) {
- rig.useAnimationEnvelope = [];
+ if (useAction?.animationCombo) {
+ rig.useAnimationCombo = useAction.animationCombo;
+ } else {
+ if (rig.useAnimationCombo.length > 0) {
+ rig.useAnimationCombo = [];
+ }
}
- }
- rig.useAnimationIndex = useAction?.index;
- rig.useTime = player.actionInterpolants.use.get();
- rig.unuseTime = player.actionInterpolants.unuse.get();
- if (rig.unuseTime === 0) { // this means use is active
if (useAction?.animationEnvelope) {
- rig.unuseAnimation = rig.useAnimationEnvelope[2]; // the last animation in the triplet is the unuse animation
+ rig.useAnimationEnvelope = useAction.animationEnvelope;
} else {
- rig.unuseAnimation = null;
+ if (rig.useAnimationEnvelope.length > 0) {
+ rig.useAnimationEnvelope = [];
+ }
}
- }
+ rig.useAnimationIndex = useAction?.index;
+ rig.useTime = player.actionInterpolants.use.get();
+ rig.unuseTime = player.actionInterpolants.unuse.get();
+ if (rig.unuseTime === 0) { // this means use is active
+ if (useAction?.animationEnvelope) {
+ rig.unuseAnimation = rig.useAnimationEnvelope[2]; // the last animation in the triplet is the unuse animation
+ } else {
+ rig.unuseAnimation = null;
+ }
+ }
+ };
+ _handleUse();
+
+ const _handlePickUp = () => {
+ rig.pickUpState = !!pickUpAction;
+ rig.pickUpTime = player.actionInterpolants.pickUp.get();
+ };
+ _handlePickUp();
rig.manuallySetMouth = player.characterBehavior.manuallySetMouth;
rig.vowels[1] = player.characterBehavior.manuallySetMouth ? 0 : rig.vowels[1];
@@ -138,7 +149,6 @@ export function applyPlayerActionsToAvatar(player, rig) {
rig.vowels[3] = player.characterBehavior.manuallySetMouth ? 0 : rig.vowels[3];
rig.vowels[4] = player.characterBehavior.manuallySetMouth ? 0 : rig.vowels[4];
-
rig.narutoRunState = !!narutoRunAction && !crouchAction;
rig.narutoRunTime = player.actionInterpolants.narutoRun.get();
rig.aimState = !!aimAction;
@@ -150,6 +160,10 @@ export function applyPlayerActionsToAvatar(player, rig) {
// aimAction && rig.aimDirection.applyQuaternion(rig.inputs.hmd.quaternion);
rig.sitState = !!sitAction;
rig.sitAnimation = sitAnimation;
+
+ // XXX this needs to be based on the current loadout index
+ rig.holdState = wearAction?.holdAnimation === 'pick_up_idle';
+ if (rig.holdState) rig.unuseAnimation = null;
// rig.danceState = !!danceAction;
rig.danceFactor = player.actionInterpolants.dance.get();
if (danceAction) {
diff --git a/players-manager.js b/players-manager.js
index 0ebdcbf780..0ad7918235 100644
--- a/players-manager.js
+++ b/players-manager.js
@@ -4,8 +4,6 @@ player objects load their own avatar and apps using this binding */
// import * as THREE from 'three';
import * as Z from 'zjs';
import {RemotePlayer} from './character-controller.js';
-// import {getPlayerPrefix} from './util.js';
-// import {playersMapName} from './constants.js';
import metaversefileApi from 'metaversefile';
class PlayersManager {
@@ -80,11 +78,11 @@ class PlayersManager {
this.unbindStateFn = this.playersArray.unobserve.bind(this.playersArray, playersObserveFn);
}
}
- updateRemotePlayers(timestamp, timeDiff) {
- for (const remotePlayer of this.remotePlayers.values()) {
- remotePlayer.updateAvatar(timestamp, timeDiff);
- }
- }
+ // updateRemotePlayers(timestamp, timeDiff) {
+ // for (const remotePlayer of this.remotePlayers.values()) {
+ // remotePlayer.updateAvatar(timestamp, timeDiff);
+ // }
+ // }
}
const playersManager = new PlayersManager();
diff --git a/players.js b/players.js
index 7a0c018a81..52fe135a4f 100644
--- a/players.js
+++ b/players.js
@@ -1,13 +1,21 @@
import * as Z from 'zjs';
+// import metaversefile from 'metaversefile';
import {LocalPlayer} from './character-controller.js';
-import {makeId, getRandomString, getPlayerPrefix, memoize} from './util.js';
-import {initialPosY} from './constants.js';
+import {makeId} from './util.js';
+import {initialPosY, playersMapName} from './constants.js';
-export const localPlayer = new LocalPlayer({
- prefix: getPlayerPrefix(makeId(5)),
- state: new Z.Doc(),
+const localPlayerId = makeId(5);
+const localPlayersArray = new Z.Doc().getArray(playersMapName);
+let localPlayer = new LocalPlayer({
+ playerId: localPlayerId,
+ playersArray: localPlayersArray,
});
localPlayer.position.y = initialPosY;
localPlayer.updateMatrixWorld();
+export const getLocalPlayer = () => localPlayer;
+export const setLocalPlayer = newLocalPlayer => {
+ localPlayer = newLocalPlayer;
+}
+
export const remotePlayers = new Map();
\ No newline at end of file
diff --git a/post-processing.js b/post-processing.js
index 84eccf53a5..3fc3e42ffc 100644
--- a/post-processing.js
+++ b/post-processing.js
@@ -13,7 +13,7 @@ import {BokehPass} from './BokehPass.js';
import {SSAOPass} from './SSAOPass.js';
// import {RenderPass} from './RenderPass.js';
import {DepthPass} from './DepthPass.js';
-import {SwirlPass} from './SwirlPass.js';
+// import {SwirlPass} from './SwirlPass.js';
import {
getRenderer,
getComposer,
@@ -33,8 +33,8 @@ import {WebaverseRenderPass} from './webaverse-render-pass.js';
import renderSettingsManager from './rendersettings-manager.js';
import metaversefileApi from 'metaversefile';
// import {parseQuery} from './util.js';
-import * as sounds from './sounds.js';
-import musicManager from './music-manager.js';
+// import * as sounds from './sounds.js';
+// import musicManager from './music-manager.js';
// const hqDefault = parseQuery(window.location.search)['hq'] === '1';
@@ -168,7 +168,10 @@ function makeEncodingPass() {
}
const webaverseRenderPass = new WebaverseRenderPass();
-const _isDecapitated = () => (/^(?:camera|firstperson)$/.test(cameraManager.getMode()) || !!getRenderer().xr.getSession());
+const _isDecapitated = () => (
+ (/^(?:camera|firstperson)$/.test(cameraManager.getMode()) && !cameraManager.target) ||
+ !!getRenderer().xr.getSession()
+);
webaverseRenderPass.onBeforeRender = (a, b, c) => {
// ensure lights attached
// scene.add(world.lights);
diff --git a/procgen-manager.js b/procgen-manager.js
new file mode 100644
index 0000000000..9879372646
--- /dev/null
+++ b/procgen-manager.js
@@ -0,0 +1,91 @@
+/* this file implements the top-level world procedural generation context.
+it starts the workers and routes calls for the procgen system. */
+
+import {murmurhash3} from './procgen/procgen.js';
+import {DcWorkerManager} from './dc-worker-manager.js';
+import {LodChunkTracker} from './lod.js';
+import {LightMapper} from './light-mapper.js';
+import {HeightfieldMapper} from './heightfield-mapper.js';
+import {defaultChunkSize} from './constants.js';
+
+const chunkSize = defaultChunkSize;
+const terrainWidthInChunks = 4;
+const terrainSize = chunkSize * terrainWidthInChunks;
+
+class ProcGenInstance {
+ constructor(instance, {
+ chunkSize,
+ range,
+ }) {
+ this.chunkSize = chunkSize;
+
+ const seed = typeof instance === 'string' ? murmurhash3(instance) : Math.floor(Math.random() * 0xFFFFFF);
+ this.dcWorkerManager = new DcWorkerManager({
+ chunkSize,
+ seed,
+ instance,
+ });
+ this.range = range;
+
+ this.lightmapper = null;
+ this.heightfieldMapper = null;
+
+ if (range) {
+ this.dcWorkerManager.setClipRange(range);
+ }
+ }
+ getChunkTracker(opts = {}) {
+ const opts2 = structuredClone(opts);
+ const {chunkSize, range} = this;
+ opts2.chunkSize = chunkSize;
+ opts2.range = range;
+
+ const tracker = new LodChunkTracker(opts2);
+ return tracker;
+ }
+ getLightMapper() {
+ if (!this.lightmapper) {
+ const {chunkSize, range} = this;
+ this.lightmapper = new LightMapper({
+ chunkSize,
+ terrainSize,
+ range,
+ });
+ }
+ return this.lightmapper;
+ }
+ getHeightfieldMapper() {
+ if (!this.heightfieldMapper) {
+ const {chunkSize, range} = this;
+ this.heightfieldMapper = new HeightfieldMapper({
+ chunkSize,
+ terrainSize,
+ range,
+ });
+ }
+ return this.heightfieldMapper;
+ }
+}
+
+class ProcGenManager {
+ constructor({
+ chunkSize = defaultChunkSize,
+ } = {}) {
+ this.instances = new Map();
+ this.chunkSize = chunkSize;
+ }
+ getInstance(key, range) {
+ let instance = this.instances.get(key);
+ if (!instance) {
+ const {chunkSize} = this;
+ instance = new ProcGenInstance(key, {
+ chunkSize,
+ range,
+ });
+ this.instances.set(key, instance);
+ }
+ return instance;
+ }
+}
+const procGenManager = new ProcGenManager();
+export default procGenManager;
\ No newline at end of file
diff --git a/public/animations/animations.z b/public/animations/animations.z
index 407dab0271..de5c68d37f 100644
Binary files a/public/animations/animations.z and b/public/animations/animations.z differ
diff --git a/public/animations/lean_arm_wall.fbx b/public/animations/lean_arm_wall.fbx
new file mode 100644
index 0000000000..673a026356
Binary files /dev/null and b/public/animations/lean_arm_wall.fbx differ
diff --git a/public/animations/lean_arm_wall_return.fbx b/public/animations/lean_arm_wall_return.fbx
new file mode 100644
index 0000000000..33717fdc11
Binary files /dev/null and b/public/animations/lean_arm_wall_return.fbx differ
diff --git a/public/animations/lean_back_sit.fbx b/public/animations/lean_back_sit.fbx
new file mode 100644
index 0000000000..307dbfb32e
Binary files /dev/null and b/public/animations/lean_back_sit.fbx differ
diff --git a/public/animations/lean_back_sit_return.fbx b/public/animations/lean_back_sit_return.fbx
new file mode 100644
index 0000000000..0e2938b1d7
Binary files /dev/null and b/public/animations/lean_back_sit_return.fbx differ
diff --git a/public/animations/lean_back_wall.fbx b/public/animations/lean_back_wall.fbx
new file mode 100644
index 0000000000..9ba02d970d
Binary files /dev/null and b/public/animations/lean_back_wall.fbx differ
diff --git a/public/animations/lean_back_wall_return.fbx b/public/animations/lean_back_wall_return.fbx
new file mode 100644
index 0000000000..a56ac636f4
Binary files /dev/null and b/public/animations/lean_back_wall_return.fbx differ
diff --git a/public/animations/pick_up.fbx b/public/animations/pick_up.fbx
new file mode 100644
index 0000000000..a6ac1d3e08
Binary files /dev/null and b/public/animations/pick_up.fbx differ
diff --git a/public/animations/pick_up_idle.fbx b/public/animations/pick_up_idle.fbx
new file mode 100644
index 0000000000..9deaff3f8d
Binary files /dev/null and b/public/animations/pick_up_idle.fbx differ
diff --git a/public/animations/pick_up_idle_zelda.fbx b/public/animations/pick_up_idle_zelda.fbx
new file mode 100644
index 0000000000..271afe8873
Binary files /dev/null and b/public/animations/pick_up_idle_zelda.fbx differ
diff --git a/public/animations/pick_up_throw.fbx b/public/animations/pick_up_throw.fbx
new file mode 100644
index 0000000000..c5747c9aac
Binary files /dev/null and b/public/animations/pick_up_throw.fbx differ
diff --git a/public/animations/pick_up_zelda.fbx b/public/animations/pick_up_zelda.fbx
new file mode 100644
index 0000000000..2bef5d6d9f
Binary files /dev/null and b/public/animations/pick_up_zelda.fbx differ
diff --git a/public/animations/pickaxe_swing.fbx b/public/animations/pickaxe_swing.fbx
new file mode 100644
index 0000000000..c9ffaded60
Binary files /dev/null and b/public/animations/pickaxe_swing.fbx differ
diff --git a/public/animations/put_down.fbx b/public/animations/put_down.fbx
new file mode 100644
index 0000000000..d6b2b6a763
Binary files /dev/null and b/public/animations/put_down.fbx differ
diff --git a/public/animations/put_down_zelda.fbx b/public/animations/put_down_zelda.fbx
new file mode 100644
index 0000000000..dfed779a9a
Binary files /dev/null and b/public/animations/put_down_zelda.fbx differ
diff --git a/public/animations/sit_crouched.fbx b/public/animations/sit_crouched.fbx
new file mode 100644
index 0000000000..bea0bc6f55
Binary files /dev/null and b/public/animations/sit_crouched.fbx differ
diff --git a/public/animations/sit_crouched_return.fbx b/public/animations/sit_crouched_return.fbx
new file mode 100644
index 0000000000..d84ab9e632
Binary files /dev/null and b/public/animations/sit_crouched_return.fbx differ
diff --git a/public/animations/sit_down_cross_legged.fbx b/public/animations/sit_down_cross_legged.fbx
new file mode 100644
index 0000000000..6a88c85c9d
Binary files /dev/null and b/public/animations/sit_down_cross_legged.fbx differ
diff --git a/public/animations/sit_down_cross_legged_return.fbx b/public/animations/sit_down_cross_legged_return.fbx
new file mode 100644
index 0000000000..e7c81efcbf
Binary files /dev/null and b/public/animations/sit_down_cross_legged_return.fbx differ
diff --git a/public/animations/sit_kneeling.fbx b/public/animations/sit_kneeling.fbx
new file mode 100644
index 0000000000..d6abd1e3e9
Binary files /dev/null and b/public/animations/sit_kneeling.fbx differ
diff --git a/public/animations/sit_kneeling_return.fbx b/public/animations/sit_kneeling_return.fbx
new file mode 100644
index 0000000000..56fd7f4009
Binary files /dev/null and b/public/animations/sit_kneeling_return.fbx differ
diff --git a/public/animations/sit_laydown.fbx b/public/animations/sit_laydown.fbx
new file mode 100644
index 0000000000..e4def28dd1
Binary files /dev/null and b/public/animations/sit_laydown.fbx differ
diff --git a/public/animations/sit_laydown_return.fbx b/public/animations/sit_laydown_return.fbx
new file mode 100644
index 0000000000..b920ab7793
Binary files /dev/null and b/public/animations/sit_laydown_return.fbx differ
diff --git a/public/avatars/Buster_Rabbit_V1.1_Guilty.vrm b/public/avatars/Buster_Rabbit_V1.1_Guilty.vrm
new file mode 100644
index 0000000000..b380ce60c5
Binary files /dev/null and b/public/avatars/Buster_Rabbit_V1.1_Guilty.vrm differ
diff --git a/public/avatars/scilly_drophunter_v30.5_Guilty.vrm b/public/avatars/scilly_drophunter_v30.5_Guilty.vrm
new file mode 100644
index 0000000000..22f5b90dce
Binary files /dev/null and b/public/avatars/scilly_drophunter_v30.5_Guilty.vrm differ
diff --git a/public/avatars/scilly_drophunter_v31.6_Guilty.vrm b/public/avatars/scilly_drophunter_v31.6_Guilty.vrm
new file mode 100644
index 0000000000..1a9a871c92
Binary files /dev/null and b/public/avatars/scilly_drophunter_v31.6_Guilty.vrm differ
diff --git a/public/avatars/scilly_drophunter_v31_Guilty.vrm b/public/avatars/scilly_drophunter_v31_Guilty.vrm
new file mode 100644
index 0000000000..2c347f0ed8
Binary files /dev/null and b/public/avatars/scilly_drophunter_v31_Guilty.vrm differ
diff --git a/public/bin/app-wasm-worker.js b/public/bin/app-wasm-worker.js
new file mode 100644
index 0000000000..2143584f5b
--- /dev/null
+++ b/public/bin/app-wasm-worker.js
@@ -0,0 +1,2 @@
+var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||52428800;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="bin/app-wasm-worker.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["n"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["x"];addOnInit(Module["asm"]["o"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function _abort(){abort("")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"d":___cxa_allocate_exception,"c":___cxa_throw,"e":_abort,"b":_emscripten_get_now,"j":_emscripten_memcpy_big,"g":_emscripten_resize_heap,"m":_environ_get,"f":_environ_sizes_get,"h":_fd_close,"i":_fd_read,"k":_fd_seek,"a":_fd_write,"l":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["o"]).apply(null,arguments)};var _doMalloc=Module["_doMalloc"]=function(){return(_doMalloc=Module["_doMalloc"]=Module["asm"]["p"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["q"]).apply(null,arguments)};var _doFree=Module["_doFree"]=function(){return(_doFree=Module["_doFree"]=Module["asm"]["r"]).apply(null,arguments)};var _initialize=Module["_initialize"]=function(){return(_initialize=Module["_initialize"]=Module["asm"]["s"]).apply(null,arguments)};var _makePhysicsBase=Module["_makePhysicsBase"]=function(){return(_makePhysicsBase=Module["_makePhysicsBase"]=Module["asm"]["t"]).apply(null,arguments)};var _cookGeometryPhysics=Module["_cookGeometryPhysics"]=function(){return(_cookGeometryPhysics=Module["_cookGeometryPhysics"]=Module["asm"]["u"]).apply(null,arguments)};var _cookConvexGeometryPhysics=Module["_cookConvexGeometryPhysics"]=function(){return(_cookConvexGeometryPhysics=Module["_cookConvexGeometryPhysics"]=Module["asm"]["v"]).apply(null,arguments)};var _deleteMemoryOutputStream=Module["_deleteMemoryOutputStream"]=function(){return(_deleteMemoryOutputStream=Module["_deleteMemoryOutputStream"]=Module["asm"]["w"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["y"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
+let accept, reject;const p = new Promise((a, r) => { accept = a; reject = r;});Module.postRun = () => { accept();};Module.waitForLoad = () => p;run();export default Module;
diff --git a/public/bin/app-wasm-worker.wasm b/public/bin/app-wasm-worker.wasm
new file mode 100644
index 0000000000..bf2b13f1ab
Binary files /dev/null and b/public/bin/app-wasm-worker.wasm differ
diff --git a/public/bin/geometry.js b/public/bin/geometry.js
index 9047f7d775..0c11e84cfe 100644
--- a/public/bin/geometry.js
+++ b/public/bin/geometry.js
@@ -1,2 +1,2 @@
-var Module=typeof Module!=="undefined"?Module:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram="./this.program";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);return nodeFS["readFileSync"](filename,binary?null:"utf8")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!=="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",abort);quit_=function(status){process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit==="function"){quit_=function(status){quit(status)}}if(typeof print!=="undefined"){if(typeof console==="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!=="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var STACK_ALIGN=16;function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;return Math.ceil(size/factor)*factor}var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime;if(Module["noExitRuntime"])noExitRuntime=Module["noExitRuntime"];if(typeof WebAssembly!=="object"){abort("no native wasm support detected")}var wasmMemory;var wasmTable;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heap,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heap[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var WASM_PAGE_SIZE=65536;var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module["INITIAL_MEMORY"]||209715200;if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,"maximum":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE})}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){FS.ignorePermissions=false;callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}what+="";err(what);ABORT=true;EXITSTATUS=1;what="abort("+what+"). Build with -s ASSERTIONS=1 for more info.";var e=new WebAssembly.RuntimeError(what);throw e}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix="file://";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile="bin/geometry.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch==="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary()})}return Promise.resolve().then(getBinary)}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmTable=Module["asm"]["w"];removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiatedSource(output){receiveInstance(output["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming==="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch==="function"){fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){wasmTable.get(func)()}else{wasmTable.get(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function demangle(func){return func}function demangleAll(text){var regex=/\b_Z[\w\d_]+/g;return text.replace(regex,function(x){var y=demangle(x);return x===y?x:y+" ["+x+"]"})}function jsStackTrace(){var error=new Error;if(!error.stack){try{throw new Error}catch(e){error=e}if(!error.stack){return"(no stack trace available)"}}return error.stack.toString()}function stackTrace(){var js=jsStackTrace();if(Module["extraStackTrace"])js+="\n"+Module["extraStackTrace"]();return demangleAll(js)}var ExceptionInfoAttrs={DESTRUCTOR_OFFSET:0,REFCOUNT_OFFSET:4,TYPE_OFFSET:8,CAUGHT_OFFSET:12,RETHROWN_OFFSET:13,SIZE:16};function ___cxa_allocate_exception(size){return _malloc(size+ExceptionInfoAttrs.SIZE)+ExceptionInfoAttrs.SIZE}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-ExceptionInfoAttrs.SIZE;this.set_type=function(type){HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]=type};this.get_type=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.TYPE_OFFSET>>2]};this.set_destructor=function(destructor){HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]=destructor};this.get_destructor=function(){return HEAP32[this.ptr+ExceptionInfoAttrs.DESTRUCTOR_OFFSET>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.CAUGHT_OFFSET>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+ExceptionInfoAttrs.RETHROWN_OFFSET>>0]!=0};this.init=function(type,destructor){this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2];HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2];HEAP32[this.ptr+ExceptionInfoAttrs.REFCOUNT_OFFSET>>2]=prev-1;return prev===1}}var exceptionLast=0;function __ZSt18uncaught_exceptionv(){return __ZSt18uncaught_exceptionv.uncaught_exceptions>0}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exceptions=1}else{__ZSt18uncaught_exceptionv.uncaught_exceptions++}throw ptr}function _abort(){abort()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAP32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAP32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAP32[penviron_buf_size>>2]=bufSize;return 0}var PATH={splitPath:function(filename){var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)==="/",trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:function(l,r){return PATH.normalize(l+"/"+r)}};function setErrNo(value){HEAP32[___errno_location()>>2]=value;return value}function getRandomDevice(){if(typeof crypto==="object"&&typeof crypto["getRandomValues"]==="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!=="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=path.charAt(0)==="/"}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(function(p){return!!p}),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:function(from,to){from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){var alignedSize=alignMemory(size,16384);var ptr=_malloc(alignedSize);while(size=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0);return},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0;return}if(!node.contents||node.contents.subarray){var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize;return}if(!node.contents)node.contents=[];if(node.contents.length>newSize)node.contents.length=newSize;else while(node.contents.length=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(function(p){return!!p}),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:function(node){var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:function(parentid,name){var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:function(node){var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:function(node){var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:function(parent,name){var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:function(parent,name,mode,rdev){var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:function(node){FS.hashRemoveNode(node)},isRoot:function(node){return node===node.parent},isMountpoint:function(node){return!!node.mounted},isFile:function(mode){return(mode&61440)===32768},isDir:function(mode){return(mode&61440)===16384},isLink:function(mode){return(mode&61440)===40960},isChrdev:function(mode){return(mode&61440)===8192},isBlkdev:function(mode){return(mode&61440)===24576},isFIFO:function(mode){return(mode&61440)===4096},isSocket:function(mode){return(mode&49152)===49152},flagModes:{"r":0,"rs":1052672,"r+":2,"w":577,"wx":705,"xw":705,"w+":578,"wx+":706,"xw+":706,"a":1089,"ax":1217,"xa":1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(str){var flags=FS.flagModes[str];if(typeof flags==="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:function(flag){var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:function(node,perms){if(FS.ignorePermissions){return 0}if(perms.indexOf("r")!==-1&&!(node.mode&292)){return 2}else if(perms.indexOf("w")!==-1&&!(node.mode&146)){return 2}else if(perms.indexOf("x")!==-1&&!(node.mode&73)){return 2}return 0},mayLookup:function(dir){var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:function(dir,name){try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:function(dir,name,isdir){var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:function(node,flags){if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:function(fd_start,fd_end){fd_start=fd_start||0;fd_end=fd_end||FS.MAX_OPEN_FDS;for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:function(fd){return FS.streams[fd]},createStream:function(stream,fd_start,fd_end){if(!FS.FSStream){FS.FSStream=function(){};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}}}}var newStream=new FS.FSStream;for(var p in stream){newStream[p]=stream[p]}stream=newStream;var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:function(fd){FS.streams[fd]=null},chrdev_stream_ops:{open:function(stream){var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:function(){throw new FS.ErrnoError(70)}},major:function(dev){return dev>>8},minor:function(dev){return dev&255},makedev:function(ma,mi){return ma<<8|mi},registerDevice:function(dev,ops){FS.devices[dev]={stream_ops:ops}},getDevice:function(dev){return FS.devices[dev]},getMounts:function(mount){var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:function(populate,callback){if(typeof populate==="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(function(mount){if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:function(type,opts,mountpoint){var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:function(mountpoint){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(function(hash){var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.indexOf(current.mount)!==-1){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:function(parent,name){return parent.node_ops.lookup(parent,name)},mknod:function(path,mode,dev){var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:function(path,mode){mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:function(path,mode){mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:function(path,mode){var dirs=path.split("/");var d="";for(var i=0;i"})},staticInit:function(){FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:function(input,output,error){FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:function(){FS.init.initialized=false;var fflush=Module["_fflush"];if(fflush)fflush(0);for(var i=0;ithis.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=function(from,to){if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);if(typeof Uint8Array!="undefined")xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(function(chunkNum){var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]==="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]==="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!=="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(function(key){var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}return fn.apply(null,arguments)}});stream_ops.read=function stream_ops_read(stream,buffer,offset,length,position){if(!FS.forceLoadFile(node)){throw new FS.ErrnoError(29)}var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},doMkdir:function(path,mode){path=PATH.normalize(path);if(path[path.length-1]==="/")path=path.substr(0,path.length-1);FS.mkdir(path,mode,0);return 0},doMknod:function(path,mode,dev){switch(mode&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-28}FS.mknod(path,mode,dev);return 0},doReadlink:function(path,buf,bufsize){if(bufsize<=0)return-28;var ret=FS.readlink(path);var len=Math.min(bufsize,lengthBytesUTF8(ret));var endChar=HEAP8[buf+len];stringToUTF8(ret,buf,bufsize+1);HEAP8[buf+len]=endChar;return len},doAccess:function(path,amode){if(amode&~7){return-28}var node;var lookup=FS.lookupPath(path,{follow:true});node=lookup.node;if(!node){return-44}var perms="";if(amode&4)perms+="r";if(amode&2)perms+="w";if(amode&1)perms+="x";if(perms&&FS.nodePermissions(node,perms)){return-2}return 0},doDup:function(path,flags,suggestFD){var suggest=FS.getStream(suggestFD);if(suggest)FS.close(suggest);return FS.open(path,flags,0,suggestFD,suggestFD).fd},doReadv:function(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2];var len=HEAP32[iov+(i*8+4)>>2];var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream},get64:function(low,high){return low}};function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_read(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doReadv(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var stream=SYSCALLS.getStreamFromFD(fd);var HIGH_OFFSET=4294967296;var offset=offset_high*HIGH_OFFSET+(offset_low>>>0);var DOUBLE_LIMIT=9007199254740992;if(offset<=-DOUBLE_LIMIT||offset>=DOUBLE_LIMIT){return-61}FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=SYSCALLS.doWritev(stream,iov,iovcnt);HEAP32[pnum>>2]=num;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return e.errno}}function _gettimeofday(ptr){var now=Date.now();HEAP32[ptr>>2]=now/1e3|0;HEAP32[ptr+4>>2]=now%1e3*1e3|0;return 0}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=function(){var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(typeof dateNow!=="undefined"){_emscripten_get_now=dateNow}else _emscripten_get_now=function(){return performance.now()};function _usleep(useconds){var start=_emscripten_get_now();while(_emscripten_get_now()-start>2];var nanoseconds=HEAP32[rqtp+4>>2];if(nanoseconds<0||nanoseconds>999999999||seconds<0){setErrNo(28);return-1}if(rmtp!==0){HEAP32[rmtp>>2]=0;HEAP32[rmtp+4>>2]=0}return _usleep(seconds*1e6+nanoseconds/1e3)}function _pthread_cancel(){}function _exit(status){exit(status)}function _pthread_exit(status){_exit(status)}function _pthread_join(){}function _pthread_mutexattr_destroy(){}function _pthread_mutexattr_init(){}function _pthread_mutexattr_setprotocol(){}function _pthread_mutexattr_settype(){}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value==="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var janFirst=new Date(date.tm_year+1900,0,1);var firstSunday=janFirst.getDay()===0?janFirst:__addDays(janFirst,7-janFirst.getDay());var endDate=new Date(date.tm_year+1900,date.tm_mon,date.tm_mday);if(compareByDay(firstSunday,endDate)<0){var februaryFirstUntilEndMonth=__arraySum(__isLeapYear(endDate.getFullYear())?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,endDate.getMonth()-1)-31;var firstSundayUntilEndJanuary=31-firstSunday.getDate();var days=firstSundayUntilEndJanuary+februaryFirstUntilEndMonth+endDate.getDate();return leadingNulls(Math.ceil(days/7),2)}return compareByDay(firstSunday,janFirst)===0?"01":"00"},"%V":function(date){var janFourthThisYear=new Date(date.tm_year+1900,0,4);var janFourthNextYear=new Date(date.tm_year+1901,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);var endDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);if(compareByDay(endDate,firstWeekStartThisYear)<0){return"53"}if(compareByDay(firstWeekStartNextYear,endDate)<=0){return"01"}var daysDifference;if(firstWeekStartThisYear.getFullYear()=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};for(var rule in EXPANSION_RULES_2){if(pattern.indexOf(rule)>=0){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}__ATINIT__.push({func:function(){___wasm_call_ctors()}});var asmLibraryArg={"c":___cxa_allocate_exception,"b":___cxa_throw,"d":_abort,"n":_emscripten_memcpy_big,"o":_emscripten_resize_heap,"q":_environ_get,"r":_environ_sizes_get,"s":_fd_close,"t":_fd_read,"m":_fd_seek,"i":_fd_write,"l":_gettimeofday,"a":wasmMemory,"u":_nanosleep,"k":_pthread_cancel,"v":_pthread_exit,"j":_pthread_join,"e":_pthread_mutexattr_destroy,"h":_pthread_mutexattr_init,"f":_pthread_mutexattr_setprotocol,"g":_pthread_mutexattr_settype,"p":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["x"]).apply(null,arguments)};var _doMalloc=Module["_doMalloc"]=function(){return(_doMalloc=Module["_doMalloc"]=Module["asm"]["y"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["z"]).apply(null,arguments)};var _doFree=Module["_doFree"]=function(){return(_doFree=Module["_doFree"]=Module["asm"]["A"]).apply(null,arguments)};var _makePhysics=Module["_makePhysics"]=function(){return(_makePhysics=Module["_makePhysics"]=Module["asm"]["B"]).apply(null,arguments)};var _addJointPhysics=Module["_addJointPhysics"]=function(){return(_addJointPhysics=Module["_addJointPhysics"]=Module["asm"]["C"]).apply(null,arguments)};var _setJointMotionPhysics=Module["_setJointMotionPhysics"]=function(){return(_setJointMotionPhysics=Module["_setJointMotionPhysics"]=Module["asm"]["D"]).apply(null,arguments)};var _setJointTwistLimitPhysics=Module["_setJointTwistLimitPhysics"]=function(){return(_setJointTwistLimitPhysics=Module["_setJointTwistLimitPhysics"]=Module["asm"]["E"]).apply(null,arguments)};var _setJointSwingLimitPhysics=Module["_setJointSwingLimitPhysics"]=function(){return(_setJointSwingLimitPhysics=Module["_setJointSwingLimitPhysics"]=Module["asm"]["F"]).apply(null,arguments)};var _updateMassAndInertiaPhysics=Module["_updateMassAndInertiaPhysics"]=function(){return(_updateMassAndInertiaPhysics=Module["_updateMassAndInertiaPhysics"]=Module["asm"]["G"]).apply(null,arguments)};var _getBodyMassPhysics=Module["_getBodyMassPhysics"]=function(){return(_getBodyMassPhysics=Module["_getBodyMassPhysics"]=Module["asm"]["H"]).apply(null,arguments)};var _simulatePhysics=Module["_simulatePhysics"]=function(){return(_simulatePhysics=Module["_simulatePhysics"]=Module["asm"]["I"]).apply(null,arguments)};var _raycastPhysics=Module["_raycastPhysics"]=function(){return(_raycastPhysics=Module["_raycastPhysics"]=Module["asm"]["J"]).apply(null,arguments)};var _raycastPhysicsArray=Module["_raycastPhysicsArray"]=function(){return(_raycastPhysicsArray=Module["_raycastPhysicsArray"]=Module["asm"]["K"]).apply(null,arguments)};var _sweepBox=Module["_sweepBox"]=function(){return(_sweepBox=Module["_sweepBox"]=Module["asm"]["L"]).apply(null,arguments)};var _sweepConvexShape=Module["_sweepConvexShape"]=function(){return(_sweepConvexShape=Module["_sweepConvexShape"]=Module["asm"]["M"]).apply(null,arguments)};var _getPathPhysics=Module["_getPathPhysics"]=function(){return(_getPathPhysics=Module["_getPathPhysics"]=Module["asm"]["N"]).apply(null,arguments)};var _overlapBoxPhysics=Module["_overlapBoxPhysics"]=function(){return(_overlapBoxPhysics=Module["_overlapBoxPhysics"]=Module["asm"]["O"]).apply(null,arguments)};var _overlapCapsulePhysics=Module["_overlapCapsulePhysics"]=function(){return(_overlapCapsulePhysics=Module["_overlapCapsulePhysics"]=Module["asm"]["P"]).apply(null,arguments)};var _collideBoxPhysics=Module["_collideBoxPhysics"]=function(){return(_collideBoxPhysics=Module["_collideBoxPhysics"]=Module["asm"]["Q"]).apply(null,arguments)};var _collideCapsulePhysics=Module["_collideCapsulePhysics"]=function(){return(_collideCapsulePhysics=Module["_collideCapsulePhysics"]=Module["asm"]["R"]).apply(null,arguments)};var _getCollisionObjectPhysics=Module["_getCollisionObjectPhysics"]=function(){return(_getCollisionObjectPhysics=Module["_getCollisionObjectPhysics"]=Module["asm"]["S"]).apply(null,arguments)};var _addCapsuleGeometryPhysics=Module["_addCapsuleGeometryPhysics"]=function(){return(_addCapsuleGeometryPhysics=Module["_addCapsuleGeometryPhysics"]=Module["asm"]["T"]).apply(null,arguments)};var _addBoxGeometryPhysics=Module["_addBoxGeometryPhysics"]=function(){return(_addBoxGeometryPhysics=Module["_addBoxGeometryPhysics"]=Module["asm"]["U"]).apply(null,arguments)};var _cookGeometryPhysics=Module["_cookGeometryPhysics"]=function(){return(_cookGeometryPhysics=Module["_cookGeometryPhysics"]=Module["asm"]["V"]).apply(null,arguments)};var _cookConvexGeometryPhysics=Module["_cookConvexGeometryPhysics"]=function(){return(_cookConvexGeometryPhysics=Module["_cookConvexGeometryPhysics"]=Module["asm"]["W"]).apply(null,arguments)};var _createShapePhysics=Module["_createShapePhysics"]=function(){return(_createShapePhysics=Module["_createShapePhysics"]=Module["asm"]["X"]).apply(null,arguments)};var _destroyShapePhysics=Module["_destroyShapePhysics"]=function(){return(_destroyShapePhysics=Module["_destroyShapePhysics"]=Module["asm"]["Y"]).apply(null,arguments)};var _createConvexShapePhysics=Module["_createConvexShapePhysics"]=function(){return(_createConvexShapePhysics=Module["_createConvexShapePhysics"]=Module["asm"]["Z"]).apply(null,arguments)};var _destroyConvexShapePhysics=Module["_destroyConvexShapePhysics"]=function(){return(_destroyConvexShapePhysics=Module["_destroyConvexShapePhysics"]=Module["asm"]["_"]).apply(null,arguments)};var _createMaterialPhysics=Module["_createMaterialPhysics"]=function(){return(_createMaterialPhysics=Module["_createMaterialPhysics"]=Module["asm"]["$"]).apply(null,arguments)};var _destroyMaterialPhysics=Module["_destroyMaterialPhysics"]=function(){return(_destroyMaterialPhysics=Module["_destroyMaterialPhysics"]=Module["asm"]["aa"]).apply(null,arguments)};var _addGeometryPhysics=Module["_addGeometryPhysics"]=function(){return(_addGeometryPhysics=Module["_addGeometryPhysics"]=Module["asm"]["ba"]).apply(null,arguments)};var _addConvexGeometryPhysics=Module["_addConvexGeometryPhysics"]=function(){return(_addConvexGeometryPhysics=Module["_addConvexGeometryPhysics"]=Module["asm"]["ca"]).apply(null,arguments)};var _setGeometryScalePhysics=Module["_setGeometryScalePhysics"]=function(){return(_setGeometryScalePhysics=Module["_setGeometryScalePhysics"]=Module["asm"]["da"]).apply(null,arguments)};var _getGeometryPhysics=Module["_getGeometryPhysics"]=function(){return(_getGeometryPhysics=Module["_getGeometryPhysics"]=Module["asm"]["ea"]).apply(null,arguments)};var _getBoundsPhysics=Module["_getBoundsPhysics"]=function(){return(_getBoundsPhysics=Module["_getBoundsPhysics"]=Module["asm"]["fa"]).apply(null,arguments)};var _enableActorPhysics=Module["_enableActorPhysics"]=function(){return(_enableActorPhysics=Module["_enableActorPhysics"]=Module["asm"]["ga"]).apply(null,arguments)};var _disableActorPhysics=Module["_disableActorPhysics"]=function(){return(_disableActorPhysics=Module["_disableActorPhysics"]=Module["asm"]["ha"]).apply(null,arguments)};var _disableGeometryPhysics=Module["_disableGeometryPhysics"]=function(){return(_disableGeometryPhysics=Module["_disableGeometryPhysics"]=Module["asm"]["ia"]).apply(null,arguments)};var _enableGeometryQueriesPhysics=Module["_enableGeometryQueriesPhysics"]=function(){return(_enableGeometryQueriesPhysics=Module["_enableGeometryQueriesPhysics"]=Module["asm"]["ja"]).apply(null,arguments)};var _disableGeometryQueriesPhysics=Module["_disableGeometryQueriesPhysics"]=function(){return(_disableGeometryQueriesPhysics=Module["_disableGeometryQueriesPhysics"]=Module["asm"]["ka"]).apply(null,arguments)};var _enableGeometryPhysics=Module["_enableGeometryPhysics"]=function(){return(_enableGeometryPhysics=Module["_enableGeometryPhysics"]=Module["asm"]["la"]).apply(null,arguments)};var _setMassAndInertiaPhysics=Module["_setMassAndInertiaPhysics"]=function(){return(_setMassAndInertiaPhysics=Module["_setMassAndInertiaPhysics"]=Module["asm"]["ma"]).apply(null,arguments)};var _setGravityEnabledPhysics=Module["_setGravityEnabledPhysics"]=function(){return(_setGravityEnabledPhysics=Module["_setGravityEnabledPhysics"]=Module["asm"]["na"]).apply(null,arguments)};var _removeGeometryPhysics=Module["_removeGeometryPhysics"]=function(){return(_removeGeometryPhysics=Module["_removeGeometryPhysics"]=Module["asm"]["oa"]).apply(null,arguments)};var _setTransformPhysics=Module["_setTransformPhysics"]=function(){return(_setTransformPhysics=Module["_setTransformPhysics"]=Module["asm"]["pa"]).apply(null,arguments)};var _getGlobalPositionPhysics=Module["_getGlobalPositionPhysics"]=function(){return(_getGlobalPositionPhysics=Module["_getGlobalPositionPhysics"]=Module["asm"]["qa"]).apply(null,arguments)};var _getLinearVelocityPhysics=Module["_getLinearVelocityPhysics"]=function(){return(_getLinearVelocityPhysics=Module["_getLinearVelocityPhysics"]=Module["asm"]["ra"]).apply(null,arguments)};var _getAngularVelocityPhysics=Module["_getAngularVelocityPhysics"]=function(){return(_getAngularVelocityPhysics=Module["_getAngularVelocityPhysics"]=Module["asm"]["sa"]).apply(null,arguments)};var _addForceAtPosPhysics=Module["_addForceAtPosPhysics"]=function(){return(_addForceAtPosPhysics=Module["_addForceAtPosPhysics"]=Module["asm"]["ta"]).apply(null,arguments)};var _addForceAtLocalPosPhysics=Module["_addForceAtLocalPosPhysics"]=function(){return(_addForceAtLocalPosPhysics=Module["_addForceAtLocalPosPhysics"]=Module["asm"]["ua"]).apply(null,arguments)};var _addLocalForceAtPosPhysics=Module["_addLocalForceAtPosPhysics"]=function(){return(_addLocalForceAtPosPhysics=Module["_addLocalForceAtPosPhysics"]=Module["asm"]["va"]).apply(null,arguments)};var _addLocalForceAtLocalPosPhysics=Module["_addLocalForceAtLocalPosPhysics"]=function(){return(_addLocalForceAtLocalPosPhysics=Module["_addLocalForceAtLocalPosPhysics"]=Module["asm"]["wa"]).apply(null,arguments)};var _addForcePhysics=Module["_addForcePhysics"]=function(){return(_addForcePhysics=Module["_addForcePhysics"]=Module["asm"]["xa"]).apply(null,arguments)};var _addTorquePhysics=Module["_addTorquePhysics"]=function(){return(_addTorquePhysics=Module["_addTorquePhysics"]=Module["asm"]["ya"]).apply(null,arguments)};var _setVelocityPhysics=Module["_setVelocityPhysics"]=function(){return(_setVelocityPhysics=Module["_setVelocityPhysics"]=Module["asm"]["za"]).apply(null,arguments)};var _setAngularVelocityPhysics=Module["_setAngularVelocityPhysics"]=function(){return(_setAngularVelocityPhysics=Module["_setAngularVelocityPhysics"]=Module["asm"]["Aa"]).apply(null,arguments)};var _setLinearLockFlagsPhysics=Module["_setLinearLockFlagsPhysics"]=function(){return(_setLinearLockFlagsPhysics=Module["_setLinearLockFlagsPhysics"]=Module["asm"]["Ba"]).apply(null,arguments)};var _setAngularLockFlagsPhysics=Module["_setAngularLockFlagsPhysics"]=function(){return(_setAngularLockFlagsPhysics=Module["_setAngularLockFlagsPhysics"]=Module["asm"]["Ca"]).apply(null,arguments)};var _createCharacterControllerPhysics=Module["_createCharacterControllerPhysics"]=function(){return(_createCharacterControllerPhysics=Module["_createCharacterControllerPhysics"]=Module["asm"]["Da"]).apply(null,arguments)};var _destroyCharacterControllerPhysics=Module["_destroyCharacterControllerPhysics"]=function(){return(_destroyCharacterControllerPhysics=Module["_destroyCharacterControllerPhysics"]=Module["asm"]["Ea"]).apply(null,arguments)};var _moveCharacterControllerPhysics=Module["_moveCharacterControllerPhysics"]=function(){return(_moveCharacterControllerPhysics=Module["_moveCharacterControllerPhysics"]=Module["asm"]["Fa"]).apply(null,arguments)};var _setCharacterControllerPositionPhysics=Module["_setCharacterControllerPositionPhysics"]=function(){return(_setCharacterControllerPositionPhysics=Module["_setCharacterControllerPositionPhysics"]=Module["asm"]["Ga"]).apply(null,arguments)};var _doCut=Module["_doCut"]=function(){return(_doCut=Module["_doCut"]=Module["asm"]["Ha"]).apply(null,arguments)};var _doMarchingCubes=Module["_doMarchingCubes"]=function(){return(_doMarchingCubes=Module["_doMarchingCubes"]=Module["asm"]["Ia"]).apply(null,arguments)};var _generateChunkDataDualContouring=Module["_generateChunkDataDualContouring"]=function(){return(_generateChunkDataDualContouring=Module["_generateChunkDataDualContouring"]=Module["asm"]["Ja"]).apply(null,arguments)};var _setChunkLodDualContouring=Module["_setChunkLodDualContouring"]=function(){return(_setChunkLodDualContouring=Module["_setChunkLodDualContouring"]=Module["asm"]["Ka"]).apply(null,arguments)};var _clearTemporaryChunkDataDualContouring=Module["_clearTemporaryChunkDataDualContouring"]=function(){return(_clearTemporaryChunkDataDualContouring=Module["_clearTemporaryChunkDataDualContouring"]=Module["asm"]["La"]).apply(null,arguments)};var _clearChunkRootDualContouring=Module["_clearChunkRootDualContouring"]=function(){return(_clearChunkRootDualContouring=Module["_clearChunkRootDualContouring"]=Module["asm"]["Ma"]).apply(null,arguments)};var _createChunkMeshDualContouring=Module["_createChunkMeshDualContouring"]=function(){return(_createChunkMeshDualContouring=Module["_createChunkMeshDualContouring"]=Module["asm"]["Na"]).apply(null,arguments)};var ___errno_location=Module["___errno_location"]=function(){return(___errno_location=Module["___errno_location"]=Module["asm"]["Oa"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{EXITSTATUS=status;exitRuntime();if(Module["onExit"])Module["onExit"](status);ABORT=true}quit_(status,new ExitStatus(status))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}noExitRuntime=true;run();
+var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module["print"]||console.log.bind(console);var err=Module["printErr"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||209715200;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="bin/geometry.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;wasmMemory=Module["asm"]["p"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module["asm"]["Da"];addOnInit(Module["asm"]["q"]);removeRunDependency("wasm-instantiate")}addRunDependency("wasm-instantiate");function receiveInstantiationResult(result){receiveInstance(result["instance"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function __emscripten_date_now(){return Date.now()}function _abort(){abort("")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else _emscripten_get_now=()=>performance.now();function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function abortOnCannotGrowMemory(requestedSize){abort("OOM")}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;abortOnCannotGrowMemory(requestedSize)}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function mmapAlloc(size){abort()}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={};Object.defineProperties(FS.FSStream.prototype,{object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get:function(){return this.shared.position},set:function(val){this.shared.position=val}}})}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _exit(status){exit(status)}function _fd_close(fd){try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"e":___cxa_allocate_exception,"d":___cxa_throw,"i":__emscripten_date_now,"a":_abort,"c":_emscripten_get_now,"j":_emscripten_memcpy_big,"o":_emscripten_resize_heap,"m":_environ_get,"n":_environ_sizes_get,"f":_exit,"g":_fd_close,"h":_fd_read,"k":_fd_seek,"b":_fd_write,"l":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["q"]).apply(null,arguments)};var _doMalloc=Module["_doMalloc"]=function(){return(_doMalloc=Module["_doMalloc"]=Module["asm"]["r"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["s"]).apply(null,arguments)};var _doFree=Module["_doFree"]=function(){return(_doFree=Module["_doFree"]=Module["asm"]["t"]).apply(null,arguments)};var _initialize=Module["_initialize"]=function(){return(_initialize=Module["_initialize"]=Module["asm"]["u"]).apply(null,arguments)};var _makePhysics=Module["_makePhysics"]=function(){return(_makePhysics=Module["_makePhysics"]=Module["asm"]["v"]).apply(null,arguments)};var _addJointPhysics=Module["_addJointPhysics"]=function(){return(_addJointPhysics=Module["_addJointPhysics"]=Module["asm"]["w"]).apply(null,arguments)};var _setJointMotionPhysics=Module["_setJointMotionPhysics"]=function(){return(_setJointMotionPhysics=Module["_setJointMotionPhysics"]=Module["asm"]["x"]).apply(null,arguments)};var _setJointTwistLimitPhysics=Module["_setJointTwistLimitPhysics"]=function(){return(_setJointTwistLimitPhysics=Module["_setJointTwistLimitPhysics"]=Module["asm"]["y"]).apply(null,arguments)};var _setJointSwingLimitPhysics=Module["_setJointSwingLimitPhysics"]=function(){return(_setJointSwingLimitPhysics=Module["_setJointSwingLimitPhysics"]=Module["asm"]["z"]).apply(null,arguments)};var _updateMassAndInertiaPhysics=Module["_updateMassAndInertiaPhysics"]=function(){return(_updateMassAndInertiaPhysics=Module["_updateMassAndInertiaPhysics"]=Module["asm"]["A"]).apply(null,arguments)};var _getBodyMassPhysics=Module["_getBodyMassPhysics"]=function(){return(_getBodyMassPhysics=Module["_getBodyMassPhysics"]=Module["asm"]["B"]).apply(null,arguments)};var _simulatePhysics=Module["_simulatePhysics"]=function(){return(_simulatePhysics=Module["_simulatePhysics"]=Module["asm"]["C"]).apply(null,arguments)};var _raycastPhysics=Module["_raycastPhysics"]=function(){return(_raycastPhysics=Module["_raycastPhysics"]=Module["asm"]["D"]).apply(null,arguments)};var _raycastPhysicsArray=Module["_raycastPhysicsArray"]=function(){return(_raycastPhysicsArray=Module["_raycastPhysicsArray"]=Module["asm"]["E"]).apply(null,arguments)};var _sweepBox=Module["_sweepBox"]=function(){return(_sweepBox=Module["_sweepBox"]=Module["asm"]["F"]).apply(null,arguments)};var _sweepConvexShape=Module["_sweepConvexShape"]=function(){return(_sweepConvexShape=Module["_sweepConvexShape"]=Module["asm"]["G"]).apply(null,arguments)};var _getPathPhysics=Module["_getPathPhysics"]=function(){return(_getPathPhysics=Module["_getPathPhysics"]=Module["asm"]["H"]).apply(null,arguments)};var _overlapBoxPhysics=Module["_overlapBoxPhysics"]=function(){return(_overlapBoxPhysics=Module["_overlapBoxPhysics"]=Module["asm"]["I"]).apply(null,arguments)};var _overlapCapsulePhysics=Module["_overlapCapsulePhysics"]=function(){return(_overlapCapsulePhysics=Module["_overlapCapsulePhysics"]=Module["asm"]["J"]).apply(null,arguments)};var _collideBoxPhysics=Module["_collideBoxPhysics"]=function(){return(_collideBoxPhysics=Module["_collideBoxPhysics"]=Module["asm"]["K"]).apply(null,arguments)};var _collideCapsulePhysics=Module["_collideCapsulePhysics"]=function(){return(_collideCapsulePhysics=Module["_collideCapsulePhysics"]=Module["asm"]["L"]).apply(null,arguments)};var _getCollisionObjectPhysics=Module["_getCollisionObjectPhysics"]=function(){return(_getCollisionObjectPhysics=Module["_getCollisionObjectPhysics"]=Module["asm"]["M"]).apply(null,arguments)};var _addCapsuleGeometryPhysics=Module["_addCapsuleGeometryPhysics"]=function(){return(_addCapsuleGeometryPhysics=Module["_addCapsuleGeometryPhysics"]=Module["asm"]["N"]).apply(null,arguments)};var _addBoxGeometryPhysics=Module["_addBoxGeometryPhysics"]=function(){return(_addBoxGeometryPhysics=Module["_addBoxGeometryPhysics"]=Module["asm"]["O"]).apply(null,arguments)};var _cookGeometryPhysics=Module["_cookGeometryPhysics"]=function(){return(_cookGeometryPhysics=Module["_cookGeometryPhysics"]=Module["asm"]["P"]).apply(null,arguments)};var _cookConvexGeometryPhysics=Module["_cookConvexGeometryPhysics"]=function(){return(_cookConvexGeometryPhysics=Module["_cookConvexGeometryPhysics"]=Module["asm"]["Q"]).apply(null,arguments)};var _createShapePhysics=Module["_createShapePhysics"]=function(){return(_createShapePhysics=Module["_createShapePhysics"]=Module["asm"]["R"]).apply(null,arguments)};var _destroyShapePhysics=Module["_destroyShapePhysics"]=function(){return(_destroyShapePhysics=Module["_destroyShapePhysics"]=Module["asm"]["S"]).apply(null,arguments)};var _createConvexShapePhysics=Module["_createConvexShapePhysics"]=function(){return(_createConvexShapePhysics=Module["_createConvexShapePhysics"]=Module["asm"]["T"]).apply(null,arguments)};var _destroyConvexShapePhysics=Module["_destroyConvexShapePhysics"]=function(){return(_destroyConvexShapePhysics=Module["_destroyConvexShapePhysics"]=Module["asm"]["U"]).apply(null,arguments)};var _createMaterialPhysics=Module["_createMaterialPhysics"]=function(){return(_createMaterialPhysics=Module["_createMaterialPhysics"]=Module["asm"]["V"]).apply(null,arguments)};var _destroyMaterialPhysics=Module["_destroyMaterialPhysics"]=function(){return(_destroyMaterialPhysics=Module["_destroyMaterialPhysics"]=Module["asm"]["W"]).apply(null,arguments)};var _addGeometryPhysics=Module["_addGeometryPhysics"]=function(){return(_addGeometryPhysics=Module["_addGeometryPhysics"]=Module["asm"]["X"]).apply(null,arguments)};var _addConvexGeometryPhysics=Module["_addConvexGeometryPhysics"]=function(){return(_addConvexGeometryPhysics=Module["_addConvexGeometryPhysics"]=Module["asm"]["Y"]).apply(null,arguments)};var _setGeometryScalePhysics=Module["_setGeometryScalePhysics"]=function(){return(_setGeometryScalePhysics=Module["_setGeometryScalePhysics"]=Module["asm"]["Z"]).apply(null,arguments)};var _getGeometryPhysics=Module["_getGeometryPhysics"]=function(){return(_getGeometryPhysics=Module["_getGeometryPhysics"]=Module["asm"]["_"]).apply(null,arguments)};var _getBoundsPhysics=Module["_getBoundsPhysics"]=function(){return(_getBoundsPhysics=Module["_getBoundsPhysics"]=Module["asm"]["$"]).apply(null,arguments)};var _enableActorPhysics=Module["_enableActorPhysics"]=function(){return(_enableActorPhysics=Module["_enableActorPhysics"]=Module["asm"]["aa"]).apply(null,arguments)};var _disableActorPhysics=Module["_disableActorPhysics"]=function(){return(_disableActorPhysics=Module["_disableActorPhysics"]=Module["asm"]["ba"]).apply(null,arguments)};var _disableGeometryPhysics=Module["_disableGeometryPhysics"]=function(){return(_disableGeometryPhysics=Module["_disableGeometryPhysics"]=Module["asm"]["ca"]).apply(null,arguments)};var _enableGeometryQueriesPhysics=Module["_enableGeometryQueriesPhysics"]=function(){return(_enableGeometryQueriesPhysics=Module["_enableGeometryQueriesPhysics"]=Module["asm"]["da"]).apply(null,arguments)};var _disableGeometryQueriesPhysics=Module["_disableGeometryQueriesPhysics"]=function(){return(_disableGeometryQueriesPhysics=Module["_disableGeometryQueriesPhysics"]=Module["asm"]["ea"]).apply(null,arguments)};var _enableGeometryPhysics=Module["_enableGeometryPhysics"]=function(){return(_enableGeometryPhysics=Module["_enableGeometryPhysics"]=Module["asm"]["fa"]).apply(null,arguments)};var _setMassAndInertiaPhysics=Module["_setMassAndInertiaPhysics"]=function(){return(_setMassAndInertiaPhysics=Module["_setMassAndInertiaPhysics"]=Module["asm"]["ga"]).apply(null,arguments)};var _setGravityEnabledPhysics=Module["_setGravityEnabledPhysics"]=function(){return(_setGravityEnabledPhysics=Module["_setGravityEnabledPhysics"]=Module["asm"]["ha"]).apply(null,arguments)};var _removeGeometryPhysics=Module["_removeGeometryPhysics"]=function(){return(_removeGeometryPhysics=Module["_removeGeometryPhysics"]=Module["asm"]["ia"]).apply(null,arguments)};var _setTransformPhysics=Module["_setTransformPhysics"]=function(){return(_setTransformPhysics=Module["_setTransformPhysics"]=Module["asm"]["ja"]).apply(null,arguments)};var _getGlobalPositionPhysics=Module["_getGlobalPositionPhysics"]=function(){return(_getGlobalPositionPhysics=Module["_getGlobalPositionPhysics"]=Module["asm"]["ka"]).apply(null,arguments)};var _getLinearVelocityPhysics=Module["_getLinearVelocityPhysics"]=function(){return(_getLinearVelocityPhysics=Module["_getLinearVelocityPhysics"]=Module["asm"]["la"]).apply(null,arguments)};var _getAngularVelocityPhysics=Module["_getAngularVelocityPhysics"]=function(){return(_getAngularVelocityPhysics=Module["_getAngularVelocityPhysics"]=Module["asm"]["ma"]).apply(null,arguments)};var _addForceAtPosPhysics=Module["_addForceAtPosPhysics"]=function(){return(_addForceAtPosPhysics=Module["_addForceAtPosPhysics"]=Module["asm"]["na"]).apply(null,arguments)};var _addForceAtLocalPosPhysics=Module["_addForceAtLocalPosPhysics"]=function(){return(_addForceAtLocalPosPhysics=Module["_addForceAtLocalPosPhysics"]=Module["asm"]["oa"]).apply(null,arguments)};var _addLocalForceAtPosPhysics=Module["_addLocalForceAtPosPhysics"]=function(){return(_addLocalForceAtPosPhysics=Module["_addLocalForceAtPosPhysics"]=Module["asm"]["pa"]).apply(null,arguments)};var _addLocalForceAtLocalPosPhysics=Module["_addLocalForceAtLocalPosPhysics"]=function(){return(_addLocalForceAtLocalPosPhysics=Module["_addLocalForceAtLocalPosPhysics"]=Module["asm"]["qa"]).apply(null,arguments)};var _addForcePhysics=Module["_addForcePhysics"]=function(){return(_addForcePhysics=Module["_addForcePhysics"]=Module["asm"]["ra"]).apply(null,arguments)};var _addTorquePhysics=Module["_addTorquePhysics"]=function(){return(_addTorquePhysics=Module["_addTorquePhysics"]=Module["asm"]["sa"]).apply(null,arguments)};var _setVelocityPhysics=Module["_setVelocityPhysics"]=function(){return(_setVelocityPhysics=Module["_setVelocityPhysics"]=Module["asm"]["ta"]).apply(null,arguments)};var _setAngularVelocityPhysics=Module["_setAngularVelocityPhysics"]=function(){return(_setAngularVelocityPhysics=Module["_setAngularVelocityPhysics"]=Module["asm"]["ua"]).apply(null,arguments)};var _setLinearLockFlagsPhysics=Module["_setLinearLockFlagsPhysics"]=function(){return(_setLinearLockFlagsPhysics=Module["_setLinearLockFlagsPhysics"]=Module["asm"]["va"]).apply(null,arguments)};var _setAngularLockFlagsPhysics=Module["_setAngularLockFlagsPhysics"]=function(){return(_setAngularLockFlagsPhysics=Module["_setAngularLockFlagsPhysics"]=Module["asm"]["wa"]).apply(null,arguments)};var _createCharacterControllerPhysics=Module["_createCharacterControllerPhysics"]=function(){return(_createCharacterControllerPhysics=Module["_createCharacterControllerPhysics"]=Module["asm"]["xa"]).apply(null,arguments)};var _destroyCharacterControllerPhysics=Module["_destroyCharacterControllerPhysics"]=function(){return(_destroyCharacterControllerPhysics=Module["_destroyCharacterControllerPhysics"]=Module["asm"]["ya"]).apply(null,arguments)};var _moveCharacterControllerPhysics=Module["_moveCharacterControllerPhysics"]=function(){return(_moveCharacterControllerPhysics=Module["_moveCharacterControllerPhysics"]=Module["asm"]["za"]).apply(null,arguments)};var _setCharacterControllerPositionPhysics=Module["_setCharacterControllerPositionPhysics"]=function(){return(_setCharacterControllerPositionPhysics=Module["_setCharacterControllerPositionPhysics"]=Module["asm"]["Aa"]).apply(null,arguments)};var _doCut=Module["_doCut"]=function(){return(_doCut=Module["_doCut"]=Module["asm"]["Ba"]).apply(null,arguments)};var _doMarchingCubes=Module["_doMarchingCubes"]=function(){return(_doMarchingCubes=Module["_doMarchingCubes"]=Module["asm"]["Ca"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["Ea"]).apply(null,arguments)};var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}run();
let accept, reject;const p = new Promise((a, r) => { accept = a; reject = r;});Module.postRun = () => { accept();};Module.waitForLoad = () => p;run();export default Module;
diff --git a/public/bin/geometry.wasm b/public/bin/geometry.wasm
index 4798547b71..74a21f0374 100755
Binary files a/public/bin/geometry.wasm and b/public/bin/geometry.wasm differ
diff --git a/public/bin/geometry.worker.js b/public/bin/geometry.worker.js
index efed638503..f8b3b69ee8 100644
--- a/public/bin/geometry.worker.js
+++ b/public/bin/geometry.worker.js
@@ -1 +1,129 @@
-var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["registerPthreadPtr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");global.Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}
+var threadInfoStruct = 0;
+var selfThreadId = 0;
+var parentThreadId = 0;
+var Module = {};
+
+function threadPrintErr() {
+ var text = Array.prototype.slice.call(arguments).join(" ");
+ console.error(text)
+}
+
+function threadAlert() {
+ var text = Array.prototype.slice.call(arguments).join(" ");
+ postMessage({
+ cmd: "alert",
+ text: text,
+ threadId: selfThreadId
+ })
+}
+var err = threadPrintErr;
+this.alert = threadAlert;
+Module["instantiateWasm"] = function(info, receiveInstance) {
+ var instance = new WebAssembly.Instance(Module["wasmModule"], info);
+ Module["wasmModule"] = null;
+ receiveInstance(instance);
+ return instance.exports
+};
+this.onmessage = function(e) {
+ try {
+ if (e.data.cmd === "load") {
+ Module["DYNAMIC_BASE"] = e.data.DYNAMIC_BASE;
+ Module["DYNAMICTOP_PTR"] = e.data.DYNAMICTOP_PTR;
+ Module["wasmModule"] = e.data.wasmModule;
+ Module["wasmMemory"] = e.data.wasmMemory;
+ Module["buffer"] = Module["wasmMemory"].buffer;
+ Module["ENVIRONMENT_IS_PTHREAD"] = true;
+ if (typeof e.data.urlOrBlob === "string") {
+ importScripts(e.data.urlOrBlob)
+ } else {
+ var objectUrl = URL.createObjectURL(e.data.urlOrBlob);
+ importScripts(objectUrl);
+ URL.revokeObjectURL(objectUrl)
+ }
+ postMessage({
+ "cmd": "loaded"
+ })
+ } else if (e.data.cmd === "objectTransfer") {
+ Module["PThread"].receiveObjectTransfer(e.data)
+ } else if (e.data.cmd === "run") {
+ Module["__performance_now_clock_drift"] = performance.now() - e.data.time;
+ threadInfoStruct = e.data.threadInfoStruct;
+ Module["registerPthreadPtr"](threadInfoStruct, 0, 0);
+ selfThreadId = e.data.selfThreadId;
+ parentThreadId = e.data.parentThreadId;
+ var max = e.data.stackBase;
+ var top = e.data.stackBase + e.data.stackSize;
+ Module["establishStackSpace"](top, max);
+ Module["_emscripten_tls_init"]();
+ Module["PThread"].receiveObjectTransfer(e.data);
+ Module["PThread"].setThreadStatus(Module["_pthread_self"](), 1);
+ try {
+ var result = Module["dynCall_ii"](e.data.start_routine, e.data.arg);
+ if (!Module["getNoExitRuntime"]()) Module["PThread"].threadExit(result)
+ } catch (ex) {
+ if (ex === "Canceled!") {
+ Module["PThread"].threadCancel()
+ } else if (ex != "unwind") {
+ Atomics.store(Module["HEAPU32"], threadInfoStruct + 4 >> 2, ex instanceof Module["ExitStatus"] ? ex.status : -2);
+ Atomics.store(Module["HEAPU32"], threadInfoStruct + 0 >> 2, 1);
+ Module["_emscripten_futex_wake"](threadInfoStruct + 0, 2147483647);
+ if (!(ex instanceof Module["ExitStatus"])) throw ex
+ }
+ }
+ } else if (e.data.cmd === "cancel") {
+ if (threadInfoStruct) {
+ Module["PThread"].threadCancel()
+ }
+ } else if (e.data.target === "setimmediate") {} else if (e.data.cmd === "processThreadQueue") {
+ if (threadInfoStruct) {
+ Module["_emscripten_current_thread_process_queued_calls"]()
+ }
+ } else {
+ err("worker.js received unknown command " + e.data.cmd);
+ err(e.data)
+ }
+ } catch (ex) {
+ err("worker.js onmessage() captured an uncaught exception: " + ex);
+ if (ex.stack) err(ex.stack);
+ throw ex
+ }
+};
+if (typeof process === "object" && typeof process.versions === "object" && typeof process.versions.node === "string") {
+ self = {
+ location: {
+ href: __filename
+ }
+ };
+ var onmessage = this.onmessage;
+ var nodeWorkerThreads = require("worker_threads");
+ global.Worker = nodeWorkerThreads.Worker;
+ var parentPort = nodeWorkerThreads.parentPort;
+ parentPort.on("message", function(data) {
+ onmessage({
+ data: data
+ })
+ });
+ var nodeFS = require("fs");
+ var nodeRead = function(filename) {
+ return nodeFS.readFileSync(filename, "utf8")
+ };
+
+ function globalEval(x) {
+ global.require = require;
+ global.Module = Module;
+ eval.call(null, x)
+ }
+ importScripts = function(f) {
+ globalEval(nodeRead(f))
+ };
+ postMessage = function(msg) {
+ parentPort.postMessage(msg)
+ };
+ if (typeof performance === "undefined") {
+ performance = {
+ now: function() {
+ return Date.now()
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/public/dc.js b/public/dc.js
new file mode 100644
index 0000000000..9fae6a7144
--- /dev/null
+++ b/public/dc.js
@@ -0,0 +1,2 @@
+var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};let nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!ENVIRONMENT_IS_NODE){read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance=="undefined"){global.performance=require("perf_hooks").performance}}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.warn.bind(console);if(ENVIRONMENT_IS_NODE){requireNodeFS();defaultPrint=str=>fs.writeSync(1,str+"\n");defaultPrintErr=str=>fs.writeSync(2,str+"\n")}var out=Module["print"]||defaultPrint;var err=Module["printErr"]||defaultPrintErr;Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer?heapOrArray.slice(idx,endPtr):heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||536870912;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"onAbort","arg":what})}else{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="dc.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;registerTLSInit(Module["asm"]["Z"]);wasmTable=Module["asm"]["X"];addOnInit(Module["asm"]["A"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency("wasm-instantiate")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={33132:()=>{console.log("task queue destructor")},33174:($0,$1)=>{handleResult($0,$1)}};function killThread(pthread_ptr){var pthread=PThread.pthreads[pthread_ptr];delete PThread.pthreads[pthread_ptr];pthread.worker.terminate();__emscripten_thread_free_data(pthread_ptr);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){var pthread=PThread.pthreads[pthread_ptr];assert(pthread);var worker=pthread.worker;PThread.returnWorkerToPool(worker)}function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function spawnThread(threadParams){var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,threadInfoStruct:threadParams.pthread_ptr};worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr};worker.runPthread=()=>{msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _exit(status){exit(status)}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],init:function(){if(ENVIRONMENT_IS_PTHREAD){PThread.initWorker()}else{PThread.initMainThread()}},initMainThread:function(){var pthreadPoolSize=8;for(var i=0;i{var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(d,d["transferList"])}else{err('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processProxyingQueue"){executeNotifiedProxyingQueue(d["queue"])}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="onAbort"){if(Module["onAbort"]){Module["onAbort"](d["arg"])}}else if(cmd){err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=e=>{var message="worker sent an error!";err(message+" "+e.filename+":"+e.lineno+": "+e.message);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(e){worker.onerror(e)});worker.on("detachedExit",function(){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("dc.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};Module["PThread"]=PThread;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}function establishStackSpace(){var pthread_ptr=_pthread_self();var stackTop=HEAP32[pthread_ptr+44>>2];var stackSize=HEAP32[pthread_ptr+48>>2];var stackMax=stackTop-stackSize;_emscripten_stack_set_limits(stackTop,stackMax);stackRestore(stackTop)}Module["establishStackSpace"]=establishStackSpace;function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,0,returnCode);try{_exit(returnCode)}catch(e){handleException(e)}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function invokeEntryPoint(ptr,arg){var result=getWasmTableEntry(ptr)(arg);if(keepRuntimeAlive()){PThread.setExitStatus(result)}else{__emscripten_thread_exit(result)}}Module["invokeEntryPoint"]=invokeEntryPoint;function registerTLSInit(tlsInitFunc){PThread.tlsInitFunctions.push(tlsInitFunc)}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+0>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+0>>2,1);return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function ___emscripten_init_main_thread_js(tb){__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB);PThread.threadInitTLS()}function ___emscripten_thread_cleanup(thread){if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({"cmd":"cleanupThread","thread":thread})}function pthreadCreateProxied(pthread_ptr,attr,start_routine,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,pthread_ptr,attr,start_routine,arg);return ___pthread_create_js(pthread_ptr,attr,start_routine,arg)}function ___pthread_create_js(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer=="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,start_routine,arg)}if(error)return error;var threadParams={startRoutine:start_routine,pthread_ptr:pthread_ptr,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __emscripten_default_pthread_stack_size(){return 2097152}function executeNotifiedProxyingQueue(queue){Atomics.store(HEAP32,queue>>2,1);if(_pthread_self()){__emscripten_proxy_execute_task_queue(queue)}Atomics.compareExchange(HEAP32,queue>>2,1,0)}Module["executeNotifiedProxyingQueue"]=executeNotifiedProxyingQueue;function __emscripten_notify_task_queue(targetThreadId,currThreadId,mainThreadId,queue){if(targetThreadId==currThreadId){setTimeout(()=>executeNotifiedProxyingQueue(queue))}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processProxyingQueue","queue":queue})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processProxyingQueue","queue":queue})}return 1}function __emscripten_set_offscreencanvas_size(target,width,height){return-1}function _abort(){abort("")}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function mainThreadEM_ASM(code,sigPtr,argbuf,sync){var args=readAsmConstArgs(sigPtr,argbuf);if(ENVIRONMENT_IS_PTHREAD){return _emscripten_proxy_to_main_thread_js.apply(null,[-1-code,sync].concat(args))}return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_async_on_main_thread(code,sigPtr,argbuf){return mainThreadEM_ASM(code,sigPtr,argbuf,0)}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=()=>performance.now()-Module["__performance_now_clock_drift"]}else _emscripten_get_now=()=>performance.now();function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var outerArgs=arguments;return withStackSave(function(){var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_unwind_to_js_event_loop(){throw"unwind"}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function alignMemory(size,alignment){return Math.ceil(size/alignment)*alignment}function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;zeroMemory(ptr,size);return ptr}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get function(){return this.shared.position},set:function(val){this.shared.position=val}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}PThread.init();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,exitOnMainThread,pthreadCreateProxied,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"e":___cxa_allocate_exception,"d":___cxa_throw,"y":___emscripten_init_main_thread_js,"h":___emscripten_thread_cleanup,"v":___pthread_create_js,"w":__emscripten_default_pthread_stack_size,"k":__emscripten_notify_task_queue,"i":__emscripten_set_offscreencanvas_size,"c":_abort,"l":_emscripten_asm_const_async_on_main_thread,"m":_emscripten_asm_const_int,"f":_emscripten_check_blocking_allowed,"b":_emscripten_get_now,"j":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"t":_emscripten_resize_heap,"x":_emscripten_unwind_to_js_event_loop,"p":_environ_get,"q":_environ_sizes_get,"u":_exit,"r":_fd_close,"s":_fd_read,"n":_fd_seek,"g":_fd_write,"a":wasmMemory,"o":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["A"]).apply(null,arguments)};var _initialize=Module["_initialize"]=function(){return(_initialize=Module["_initialize"]=Module["asm"]["B"]).apply(null,arguments)};var _createInstance=Module["_createInstance"]=function(){return(_createInstance=Module["_createInstance"]=Module["asm"]["C"]).apply(null,arguments)};var _destroyInstance=Module["_destroyInstance"]=function(){return(_destroyInstance=Module["_destroyInstance"]=Module["asm"]["D"]).apply(null,arguments)};var _getChunkHeightfieldAsync=Module["_getChunkHeightfieldAsync"]=function(){return(_getChunkHeightfieldAsync=Module["_getChunkHeightfieldAsync"]=Module["asm"]["E"]).apply(null,arguments)};var _getChunkSkylightAsync=Module["_getChunkSkylightAsync"]=function(){return(_getChunkSkylightAsync=Module["_getChunkSkylightAsync"]=Module["asm"]["F"]).apply(null,arguments)};var _getChunkAoAsync=Module["_getChunkAoAsync"]=function(){return(_getChunkAoAsync=Module["_getChunkAoAsync"]=Module["asm"]["G"]).apply(null,arguments)};var _createGrassSplatAsync=Module["_createGrassSplatAsync"]=function(){return(_createGrassSplatAsync=Module["_createGrassSplatAsync"]=Module["asm"]["H"]).apply(null,arguments)};var _createVegetationSplatAsync=Module["_createVegetationSplatAsync"]=function(){return(_createVegetationSplatAsync=Module["_createVegetationSplatAsync"]=Module["asm"]["I"]).apply(null,arguments)};var _createMobSplatAsync=Module["_createMobSplatAsync"]=function(){return(_createMobSplatAsync=Module["_createMobSplatAsync"]=Module["asm"]["J"]).apply(null,arguments)};var _createTerrainChunkMeshAsync=Module["_createTerrainChunkMeshAsync"]=function(){return(_createTerrainChunkMeshAsync=Module["_createTerrainChunkMeshAsync"]=Module["asm"]["K"]).apply(null,arguments)};var _createLiquidChunkMeshAsync=Module["_createLiquidChunkMeshAsync"]=function(){return(_createLiquidChunkMeshAsync=Module["_createLiquidChunkMeshAsync"]=Module["asm"]["L"]).apply(null,arguments)};var _drawSphereDamage=Module["_drawSphereDamage"]=function(){return(_drawSphereDamage=Module["_drawSphereDamage"]=Module["asm"]["M"]).apply(null,arguments)};var _eraseSphereDamage=Module["_eraseSphereDamage"]=function(){return(_eraseSphereDamage=Module["_eraseSphereDamage"]=Module["asm"]["N"]).apply(null,arguments)};var _drawCubeDamage=Module["_drawCubeDamage"]=function(){return(_drawCubeDamage=Module["_drawCubeDamage"]=Module["asm"]["O"]).apply(null,arguments)};var _eraseCubeDamage=Module["_eraseCubeDamage"]=function(){return(_eraseCubeDamage=Module["_eraseCubeDamage"]=Module["asm"]["P"]).apply(null,arguments)};var _setClipRange=Module["_setClipRange"]=function(){return(_setClipRange=Module["_setClipRange"]=Module["asm"]["Q"]).apply(null,arguments)};var _cancelTask=Module["_cancelTask"]=function(){return(_cancelTask=Module["_cancelTask"]=Module["asm"]["R"]).apply(null,arguments)};var _doMalloc=Module["_doMalloc"]=function(){return(_doMalloc=Module["_doMalloc"]=Module["asm"]["S"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["T"]).apply(null,arguments)};var _doFree=Module["_doFree"]=function(){return(_doFree=Module["_doFree"]=Module["asm"]["U"]).apply(null,arguments)};var _runLoop=Module["_runLoop"]=function(){return(_runLoop=Module["_runLoop"]=Module["asm"]["V"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["W"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_tls_init=Module["__emscripten_tls_init"]=function(){return(__emscripten_tls_init=Module["__emscripten_tls_init"]=Module["asm"]["Z"]).apply(null,arguments)};var _emscripten_builtin_memalign=Module["_emscripten_builtin_memalign"]=function(){return(_emscripten_builtin_memalign=Module["_emscripten_builtin_memalign"]=Module["asm"]["_"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["$"]).apply(null,arguments)};var __emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=function(){return(__emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["ba"]).apply(null,arguments)};var __emscripten_proxy_execute_task_queue=Module["__emscripten_proxy_execute_task_queue"]=function(){return(__emscripten_proxy_execute_task_queue=Module["__emscripten_proxy_execute_task_queue"]=Module["asm"]["ca"]).apply(null,arguments)};var __emscripten_thread_free_data=Module["__emscripten_thread_free_data"]=function(){return(__emscripten_thread_free_data=Module["__emscripten_thread_free_data"]=Module["asm"]["da"]).apply(null,arguments)};var __emscripten_thread_exit=Module["__emscripten_thread_exit"]=function(){return(__emscripten_thread_exit=Module["__emscripten_thread_exit"]=Module["asm"]["ea"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["fa"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["ga"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["ha"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ia"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["ja"]).apply(null,arguments)};Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(!implicit){if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}else{}}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();
+let accept, reject;const p = new Promise((a, r) => {accept = a; reject = r;});Module.postRun = () => {accept();};Module.waitForLoad = () => p;
diff --git a/public/dc.module.js b/public/dc.module.js
new file mode 100644
index 0000000000..6b2b74a31c
--- /dev/null
+++ b/public/dc.module.js
@@ -0,0 +1,3 @@
+var Module=typeof Module!="undefined"?Module:{};var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_PTHREAD=Module["ENVIRONMENT_IS_PTHREAD"]||false;var _scriptDir=typeof document!="undefined"&&document.currentScript?document.currentScript.src:undefined;if(ENVIRONMENT_IS_WORKER){_scriptDir=self.location.href}else if(ENVIRONMENT_IS_NODE){_scriptDir=__filename}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err("exiting due to exception: "+toLog)}var fs;var nodePath;var requireNodeFS;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require("path").dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}requireNodeFS=()=>{if(!nodePath){fs=require("fs");nodePath=require("path")}};read_=function shell_read(filename,binary){requireNodeFS();filename=nodePath["normalize"](filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{requireNodeFS();filename=nodePath["normalize"](filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);if(typeof module!="undefined"){module["exports"]=Module}process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"};let nodeWorkerThreads;try{nodeWorkerThreads=require("worker_threads")}catch(e){console.error('The "worker_threads" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}global.Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!ENVIRONMENT_IS_NODE){read_=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance=="undefined"){global.performance=require("perf_hooks").performance}}var defaultPrint=console.log.bind(console);var defaultPrintErr=console.warn.bind(console);if(ENVIRONMENT_IS_NODE){requireNodeFS();defaultPrint=str=>fs.writeSync(1,str+"\n");defaultPrintErr=str=>fs.writeSync(2,str+"\n")}var out=Module["print"]||defaultPrint;var err=Module["printErr"]||defaultPrintErr;Object.assign(Module,moduleOverrides);moduleOverrides=null;if(Module["arguments"])arguments_=Module["arguments"];if(Module["thisProgram"])thisProgram=Module["thisProgram"];if(Module["quit"])quit_=Module["quit"];function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;err(text)}}var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module["wasmBinary"])wasmBinary=Module["wasmBinary"];var noExitRuntime=Module["noExitRuntime"]||true;if(typeof WebAssembly!="object"){abort("no native wasm support detected")}var wasmMemory;var wasmModule;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.buffer instanceof SharedArrayBuffer?heapOrArray.slice(idx,endPtr):heapOrArray.subarray(idx,endPtr))}else{var str="";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):""}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;if(ENVIRONMENT_IS_PTHREAD){buffer=Module["buffer"]}function updateGlobalBufferAndViews(buf){buffer=buf;Module["HEAP8"]=HEAP8=new Int8Array(buf);Module["HEAP16"]=HEAP16=new Int16Array(buf);Module["HEAP32"]=HEAP32=new Int32Array(buf);Module["HEAPU8"]=HEAPU8=new Uint8Array(buf);Module["HEAPU16"]=HEAPU16=new Uint16Array(buf);Module["HEAPU32"]=HEAPU32=new Uint32Array(buf);Module["HEAPF32"]=HEAPF32=new Float32Array(buf);Module["HEAPF64"]=HEAPF64=new Float64Array(buf)}var INITIAL_MEMORY=Module["INITIAL_MEMORY"]||536870912;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module["wasmMemory"];buffer=Module["buffer"]}else{if(Module["wasmMemory"]){wasmMemory=Module["wasmMemory"]}else{wasmMemory=new WebAssembly.Memory({"initial":INITIAL_MEMORY/65536,"maximum":INITIAL_MEMORY/65536,"shared":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err("requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag");if(ENVIRONMENT_IS_NODE){console.log("(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)")}throw Error("bad memory")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;if(ENVIRONMENT_IS_PTHREAD)return;if(!Module["noFSInit"]&&!FS.init.initialized)FS.init();FS.ignorePermissions=false;TTY.init();callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function getUniqueRunDependency(id){return id}function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}function abort(what){if(ENVIRONMENT_IS_PTHREAD){postMessage({"cmd":"onAbort","arg":what})}else{if(Module["onAbort"]){Module["onAbort"](what)}}what="Aborted("+what+")";err(what);ABORT=true;EXITSTATUS=1;what+=". Build with -sASSERTIONS for more info.";var e=new WebAssembly.RuntimeError(what);throw e}var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith("file://")}var wasmBinaryFile;wasmBinaryFile="dc.wasm";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}else{throw"both async and sync fetching of the wasm failed"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(typeof fetch=="function"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){if(!response["ok"]){throw"failed to load wasm binary file at '"+wasmBinaryFile+"'"}return response["arrayBuffer"]()}).catch(function(){return getBinary(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={"a":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module["asm"]=exports;registerTLSInit(Module["asm"]["Z"]);wasmTable=Module["asm"]["X"];addOnInit(Module["asm"]["A"]);wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency("wasm-instantiate")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency("wasm-instantiate")}function receiveInstantiationResult(result){receiveInstance(result["instance"],result["module"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).then(receiver,function(reason){err("failed to asynchronously prepare wasm: "+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming=="function"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&!ENVIRONMENT_IS_NODE&&typeof fetch=="function"){return fetch(wasmBinaryFile,{credentials:"same-origin"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err("wasm streaming compile failed: "+reason);err("falling back to ArrayBuffer instantiation");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module["instantiateWasm"]){try{var exports=Module["instantiateWasm"](info,receiveInstance);return exports}catch(e){err("Module.instantiateWasm callback failed with error: "+e);return false}}instantiateAsync();return{}}var tempDouble;var tempI64;var ASM_CONSTS={33132:()=>{console.log("task queue destructor")},33174:($0,$1)=>{handleResult($0,$1)}};function killThread(pthread_ptr){var pthread=PThread.pthreads[pthread_ptr];delete PThread.pthreads[pthread_ptr];pthread.worker.terminate();__emscripten_thread_free_data(pthread_ptr);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function cancelThread(pthread_ptr){var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({"cmd":"cancel"})}function cleanupThread(pthread_ptr){var pthread=PThread.pthreads[pthread_ptr];assert(pthread);var worker=pthread.worker;PThread.returnWorkerToPool(worker)}function zeroMemory(address,size){HEAPU8.fill(0,address,address+size)}function spawnThread(threadParams){var worker=PThread.getNewWorker();if(!worker){return 6}PThread.runningWorkers.push(worker);var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,threadInfoStruct:threadParams.pthread_ptr};worker.pthread=pthread;var msg={"cmd":"run","start_routine":threadParams.startRoutine,"arg":threadParams.arg,"threadInfoStruct":threadParams.pthread_ptr};worker.runPthread=()=>{msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}return 0}function _exit(status){exit(status)}function handleException(e){if(e instanceof ExitStatus||e=="unwind"){return EXITSTATUS}quit_(1,e)}var PThread={unusedWorkers:[],runningWorkers:[],tlsInitFunctions:[],init:function(){if(ENVIRONMENT_IS_PTHREAD){PThread.initWorker()}else{PThread.initMainThread()}},initMainThread:function(){var pthreadPoolSize=8;for(var i=0;i{var d=e["data"];var cmd=d["cmd"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d["targetThread"]&&d["targetThread"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(d,d["transferList"])}else{err('Internal error! Worker sent a message "'+cmd+'" to target pthread '+d["targetThread"]+", but that thread no longer exists!")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd==="processProxyingQueue"){executeNotifiedProxyingQueue(d["queue"])}else if(cmd==="spawnThread"){spawnThread(d)}else if(cmd==="cleanupThread"){cleanupThread(d["thread"])}else if(cmd==="killThread"){killThread(d["thread"])}else if(cmd==="cancelThread"){cancelThread(d["thread"])}else if(cmd==="loaded"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd==="print"){out("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="printErr"){err("Thread "+d["threadId"]+": "+d["text"])}else if(cmd==="alert"){alert("Thread "+d["threadId"]+": "+d["text"])}else if(d.target==="setimmediate"){worker.postMessage(d)}else if(cmd==="onAbort"){if(Module["onAbort"]){Module["onAbort"](d["arg"])}}else if(cmd){err("worker sent an unknown command "+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=e=>{var message="worker sent an error!";err(message+" "+e.filename+":"+e.lineno+": "+e.message);throw e};if(ENVIRONMENT_IS_NODE){worker.on("message",function(data){worker.onmessage({data:data})});worker.on("error",function(e){worker.onerror(e)});worker.on("detachedExit",function(){})}worker.postMessage({"cmd":"load","urlOrBlob":Module["mainScriptUrlOrBlob"]||_scriptDir,"wasmMemory":wasmMemory,"wasmModule":wasmModule})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile("dc.worker.js");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}return PThread.unusedWorkers.pop()}};Module["PThread"]=PThread;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback(Module);continue}var func=callback.func;if(typeof func=="number"){if(callback.arg===undefined){getWasmTableEntry(func)()}else{getWasmTableEntry(func)(callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}function withStackSave(f){var stack=stackSave();var ret=f();stackRestore(stack);return ret}function establishStackSpace(){var pthread_ptr=_pthread_self();var stackTop=HEAP32[pthread_ptr+44>>2];var stackSize=HEAP32[pthread_ptr+48>>2];var stackMax=stackTop-stackSize;_emscripten_stack_set_limits(stackTop,stackMax);stackRestore(stackTop)}Module["establishStackSpace"]=establishStackSpace;function exitOnMainThread(returnCode){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,0,returnCode);try{_exit(returnCode)}catch(e){handleException(e)}}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function invokeEntryPoint(ptr,arg){var result=getWasmTableEntry(ptr)(arg);if(keepRuntimeAlive()){PThread.setExitStatus(result)}else{__emscripten_thread_exit(result)}}Module["invokeEntryPoint"]=invokeEntryPoint;function registerTLSInit(tlsInitFunc){PThread.tlsInitFunctions.push(tlsInitFunc)}function ___cxa_allocate_exception(size){return _malloc(size+24)+24}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){Atomics.add(HEAP32,this.ptr+0>>2,1)};this.release_ref=function(){var prev=Atomics.sub(HEAP32,this.ptr+0>>2,1);return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}function ___emscripten_init_main_thread_js(tb){__emscripten_thread_init(tb,!ENVIRONMENT_IS_WORKER,1,!ENVIRONMENT_IS_WEB);PThread.threadInitTLS()}function ___emscripten_thread_cleanup(thread){if(!ENVIRONMENT_IS_PTHREAD)cleanupThread(thread);else postMessage({"cmd":"cleanupThread","thread":thread})}function pthreadCreateProxied(pthread_ptr,attr,start_routine,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,pthread_ptr,attr,start_routine,arg);return ___pthread_create_js(pthread_ptr,attr,start_routine,arg)}function ___pthread_create_js(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer=="undefined"){err("Current environment does not support SharedArrayBuffer, pthreads are not available!");return 6}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return pthreadCreateProxied(pthread_ptr,attr,start_routine,arg)}if(error)return error;var threadParams={startRoutine:start_routine,pthread_ptr:pthread_ptr,arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd="spawnThread";postMessage(threadParams,transferList);return 0}return spawnThread(threadParams)}function __emscripten_default_pthread_stack_size(){return 2097152}function executeNotifiedProxyingQueue(queue){Atomics.store(HEAP32,queue>>2,1);if(_pthread_self()){__emscripten_proxy_execute_task_queue(queue)}Atomics.compareExchange(HEAP32,queue>>2,1,0)}Module["executeNotifiedProxyingQueue"]=executeNotifiedProxyingQueue;function __emscripten_notify_task_queue(targetThreadId,currThreadId,mainThreadId,queue){if(targetThreadId==currThreadId){setTimeout(()=>executeNotifiedProxyingQueue(queue))}else if(ENVIRONMENT_IS_PTHREAD){postMessage({"targetThread":targetThreadId,"cmd":"processProxyingQueue","queue":queue})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({"cmd":"processProxyingQueue","queue":queue})}return 1}function __emscripten_set_offscreencanvas_size(target,width,height){return-1}function _abort(){abort("")}var readAsmConstArgsArray=[];function readAsmConstArgs(sigPtr,buf){readAsmConstArgsArray.length=0;var ch;buf>>=2;while(ch=HEAPU8[sigPtr++]){buf+=ch!=105&buf;readAsmConstArgsArray.push(ch==105?HEAP32[buf]:HEAPF64[buf++>>1]);++buf}return readAsmConstArgsArray}function mainThreadEM_ASM(code,sigPtr,argbuf,sync){var args=readAsmConstArgs(sigPtr,argbuf);if(ENVIRONMENT_IS_PTHREAD){return _emscripten_proxy_to_main_thread_js.apply(null,[-1-code,sync].concat(args))}return ASM_CONSTS[code].apply(null,args)}function _emscripten_asm_const_async_on_main_thread(code,sigPtr,argbuf){return mainThreadEM_ASM(code,sigPtr,argbuf,0)}function _emscripten_asm_const_int(code,sigPtr,argbuf){var args=readAsmConstArgs(sigPtr,argbuf);return ASM_CONSTS[code].apply(null,args)}function _emscripten_check_blocking_allowed(){if(ENVIRONMENT_IS_NODE)return;if(ENVIRONMENT_IS_WORKER)return;warnOnce("Blocking on the main thread is very dangerous, see https://emscripten.org/docs/porting/pthreads.html#blocking-on-the-main-browser-thread")}var _emscripten_get_now;if(ENVIRONMENT_IS_NODE){_emscripten_get_now=()=>{var t=process["hrtime"]();return t[0]*1e3+t[1]/1e6}}else if(ENVIRONMENT_IS_PTHREAD){_emscripten_get_now=()=>performance.now()-Module["__performance_now_clock_drift"]}else _emscripten_get_now=()=>performance.now();function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var outerArgs=arguments;return withStackSave(function(){var serializedNumCallArgs=numCallArgs;var args=stackAlloc(serializedNumCallArgs*8);var b=args>>3;for(var i=0;i>3;for(var i=0;i>>0;abortOnCannotGrowMemory(requestedSize)}function _emscripten_unwind_to_js_event_loop(){throw"unwind"}var ENV={};function getExecutableName(){return thisProgram||"./this.program"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8";var env={"USER":"web_user","LOGNAME":"web_user","PATH":"/","PWD":"/","HOME":"/home/web_user","LANG":lang,"_":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+"="+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}var PATH={isAbs:path=>path.charAt(0)==="/",splitPath:filename=>{var splitPathRe=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:(parts,allowAboveRoot)=>{var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last==="."){parts.splice(i,1)}else if(last===".."){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift("..")}}return parts},normalize:path=>{var isAbsolute=PATH.isAbs(path),trailingSlash=path.substr(-1)==="/";path=PATH.normalizeArray(path.split("/").filter(p=>!!p),!isAbsolute).join("/");if(!path&&!isAbsolute){path="."}if(path&&trailingSlash){path+="/"}return(isAbsolute?"/":"")+path},dirname:path=>{var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return"."}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:path=>{if(path==="/")return"/";path=PATH.normalize(path);path=path.replace(/\/$/,"");var lastSlash=path.lastIndexOf("/");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join("/"))},join2:(l,r)=>{return PATH.normalize(l+"/"+r)}};function getRandomDevice(){if(typeof crypto=="object"&&typeof crypto["getRandomValues"]=="function"){var randomBuffer=new Uint8Array(1);return function(){crypto.getRandomValues(randomBuffer);return randomBuffer[0]}}else if(ENVIRONMENT_IS_NODE){try{var crypto_module=require("crypto");return function(){return crypto_module["randomBytes"](1)[0]}}catch(e){}}return function(){abort("randomDevice")}}var PATH_FS={resolve:function(){var resolvedPath="",resolvedAbsolute=false;for(var i=arguments.length-1;i>=-1&&!resolvedAbsolute;i--){var path=i>=0?arguments[i]:FS.cwd();if(typeof path!="string"){throw new TypeError("Arguments to path.resolve must be strings")}else if(!path){return""}resolvedPath=path+"/"+resolvedPath;resolvedAbsolute=PATH.isAbs(path)}resolvedPath=PATH.normalizeArray(resolvedPath.split("/").filter(p=>!!p),!resolvedAbsolute).join("/");return(resolvedAbsolute?"/":"")+resolvedPath||"."},relative:(from,to)=>{from=PATH_FS.resolve(from).substr(1);to=PATH_FS.resolve(to).substr(1);function trim(arr){var start=0;for(;start=0;end--){if(arr[end]!=="")break}if(start>end)return[];return arr.slice(start,end-start+1)}var fromParts=trim(from.split("/"));var toParts=trim(to.split("/"));var length=Math.min(fromParts.length,toParts.length);var samePartsLength=length;for(var i=0;i0){result=buf.slice(0,bytesRead).toString("utf-8")}else{result=null}}else if(typeof window!="undefined"&&typeof window.prompt=="function"){result=window.prompt("Input: ");if(result!==null){result+="\n"}}else if(typeof readline=="function"){result=readline();if(result!==null){result+="\n"}}if(!result){return null}tty.input=intArrayFromString(result,true)}return tty.input.shift()},put_char:function(tty,val){if(val===null||val===10){out(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){out(UTF8ArrayToString(tty.output,0));tty.output=[]}}},default_tty1_ops:{put_char:function(tty,val){if(val===null||val===10){err(UTF8ArrayToString(tty.output,0));tty.output=[]}else{if(val!=0)tty.output.push(val)}},flush:function(tty){if(tty.output&&tty.output.length>0){err(UTF8ArrayToString(tty.output,0));tty.output=[]}}}};function alignMemory(size,alignment){return Math.ceil(size/alignment)*alignment}function mmapAlloc(size){size=alignMemory(size,65536);var ptr=_emscripten_builtin_memalign(65536,size);if(!ptr)return 0;zeroMemory(ptr,size);return ptr}var MEMFS={ops_table:null,mount:function(mount){return MEMFS.createNode(null,"/",16384|511,0)},createNode:function(parent,name,mode,dev){if(FS.isBlkdev(mode)||FS.isFIFO(mode)){throw new FS.ErrnoError(63)}if(!MEMFS.ops_table){MEMFS.ops_table={dir:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,lookup:MEMFS.node_ops.lookup,mknod:MEMFS.node_ops.mknod,rename:MEMFS.node_ops.rename,unlink:MEMFS.node_ops.unlink,rmdir:MEMFS.node_ops.rmdir,readdir:MEMFS.node_ops.readdir,symlink:MEMFS.node_ops.symlink},stream:{llseek:MEMFS.stream_ops.llseek}},file:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:{llseek:MEMFS.stream_ops.llseek,read:MEMFS.stream_ops.read,write:MEMFS.stream_ops.write,allocate:MEMFS.stream_ops.allocate,mmap:MEMFS.stream_ops.mmap,msync:MEMFS.stream_ops.msync}},link:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr,readlink:MEMFS.node_ops.readlink},stream:{}},chrdev:{node:{getattr:MEMFS.node_ops.getattr,setattr:MEMFS.node_ops.setattr},stream:FS.chrdev_stream_ops}}}var node=FS.createNode(parent,name,mode,dev);if(FS.isDir(node.mode)){node.node_ops=MEMFS.ops_table.dir.node;node.stream_ops=MEMFS.ops_table.dir.stream;node.contents={}}else if(FS.isFile(node.mode)){node.node_ops=MEMFS.ops_table.file.node;node.stream_ops=MEMFS.ops_table.file.stream;node.usedBytes=0;node.contents=null}else if(FS.isLink(node.mode)){node.node_ops=MEMFS.ops_table.link.node;node.stream_ops=MEMFS.ops_table.link.stream}else if(FS.isChrdev(node.mode)){node.node_ops=MEMFS.ops_table.chrdev.node;node.stream_ops=MEMFS.ops_table.chrdev.stream}node.timestamp=Date.now();if(parent){parent.contents[name]=node;parent.timestamp=node.timestamp}return node},getFileDataAsTypedArray:function(node){if(!node.contents)return new Uint8Array(0);if(node.contents.subarray)return node.contents.subarray(0,node.usedBytes);return new Uint8Array(node.contents)},expandFileStorage:function(node,newCapacity){var prevCapacity=node.contents?node.contents.length:0;if(prevCapacity>=newCapacity)return;var CAPACITY_DOUBLING_MAX=1024*1024;newCapacity=Math.max(newCapacity,prevCapacity*(prevCapacity>>0);if(prevCapacity!=0)newCapacity=Math.max(newCapacity,256);var oldContents=node.contents;node.contents=new Uint8Array(newCapacity);if(node.usedBytes>0)node.contents.set(oldContents.subarray(0,node.usedBytes),0)},resizeFileStorage:function(node,newSize){if(node.usedBytes==newSize)return;if(newSize==0){node.contents=null;node.usedBytes=0}else{var oldContents=node.contents;node.contents=new Uint8Array(newSize);if(oldContents){node.contents.set(oldContents.subarray(0,Math.min(newSize,node.usedBytes)))}node.usedBytes=newSize}},node_ops:{getattr:function(node){var attr={};attr.dev=FS.isChrdev(node.mode)?node.id:1;attr.ino=node.id;attr.mode=node.mode;attr.nlink=1;attr.uid=0;attr.gid=0;attr.rdev=node.rdev;if(FS.isDir(node.mode)){attr.size=4096}else if(FS.isFile(node.mode)){attr.size=node.usedBytes}else if(FS.isLink(node.mode)){attr.size=node.link.length}else{attr.size=0}attr.atime=new Date(node.timestamp);attr.mtime=new Date(node.timestamp);attr.ctime=new Date(node.timestamp);attr.blksize=4096;attr.blocks=Math.ceil(attr.size/attr.blksize);return attr},setattr:function(node,attr){if(attr.mode!==undefined){node.mode=attr.mode}if(attr.timestamp!==undefined){node.timestamp=attr.timestamp}if(attr.size!==undefined){MEMFS.resizeFileStorage(node,attr.size)}},lookup:function(parent,name){throw FS.genericErrors[44]},mknod:function(parent,name,mode,dev){return MEMFS.createNode(parent,name,mode,dev)},rename:function(old_node,new_dir,new_name){if(FS.isDir(old_node.mode)){var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(new_node){for(var i in new_node.contents){throw new FS.ErrnoError(55)}}}delete old_node.parent.contents[old_node.name];old_node.parent.timestamp=Date.now();old_node.name=new_name;new_dir.contents[new_name]=old_node;new_dir.timestamp=old_node.parent.timestamp;old_node.parent=new_dir},unlink:function(parent,name){delete parent.contents[name];parent.timestamp=Date.now()},rmdir:function(parent,name){var node=FS.lookupNode(parent,name);for(var i in node.contents){throw new FS.ErrnoError(55)}delete parent.contents[name];parent.timestamp=Date.now()},readdir:function(node){var entries=[".",".."];for(var key in node.contents){if(!node.contents.hasOwnProperty(key)){continue}entries.push(key)}return entries},symlink:function(parent,newname,oldpath){var node=MEMFS.createNode(parent,newname,511|40960,0);node.link=oldpath;return node},readlink:function(node){if(!FS.isLink(node.mode)){throw new FS.ErrnoError(28)}return node.link}},stream_ops:{read:function(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=stream.node.usedBytes)return 0;var size=Math.min(stream.node.usedBytes-position,length);if(size>8&&contents.subarray){buffer.set(contents.subarray(position,position+size),offset)}else{for(var i=0;i0||position+length{path=PATH_FS.resolve(FS.cwd(),path);if(!path)return{path:"",node:null};var defaults={follow_mount:true,recurse_count:0};opts=Object.assign(defaults,opts);if(opts.recurse_count>8){throw new FS.ErrnoError(32)}var parts=PATH.normalizeArray(path.split("/").filter(p=>!!p),false);var current=FS.root;var current_path="/";for(var i=0;i40){throw new FS.ErrnoError(32)}}}}return{path:current_path,node:current}},getPath:node=>{var path;while(true){if(FS.isRoot(node)){var mount=node.mount.mountpoint;if(!path)return mount;return mount[mount.length-1]!=="/"?mount+"/"+path:mount+path}path=path?node.name+"/"+path:node.name;node=node.parent}},hashName:(parentid,name)=>{var hash=0;for(var i=0;i>>0)%FS.nameTable.length},hashAddNode:node=>{var hash=FS.hashName(node.parent.id,node.name);node.name_next=FS.nameTable[hash];FS.nameTable[hash]=node},hashRemoveNode:node=>{var hash=FS.hashName(node.parent.id,node.name);if(FS.nameTable[hash]===node){FS.nameTable[hash]=node.name_next}else{var current=FS.nameTable[hash];while(current){if(current.name_next===node){current.name_next=node.name_next;break}current=current.name_next}}},lookupNode:(parent,name)=>{var errCode=FS.mayLookup(parent);if(errCode){throw new FS.ErrnoError(errCode,parent)}var hash=FS.hashName(parent.id,name);for(var node=FS.nameTable[hash];node;node=node.name_next){var nodeName=node.name;if(node.parent.id===parent.id&&nodeName===name){return node}}return FS.lookup(parent,name)},createNode:(parent,name,mode,rdev)=>{var node=new FS.FSNode(parent,name,mode,rdev);FS.hashAddNode(node);return node},destroyNode:node=>{FS.hashRemoveNode(node)},isRoot:node=>{return node===node.parent},isMountpoint:node=>{return!!node.mounted},isFile:mode=>{return(mode&61440)===32768},isDir:mode=>{return(mode&61440)===16384},isLink:mode=>{return(mode&61440)===40960},isChrdev:mode=>{return(mode&61440)===8192},isBlkdev:mode=>{return(mode&61440)===24576},isFIFO:mode=>{return(mode&61440)===4096},isSocket:mode=>{return(mode&49152)===49152},flagModes:{"r":0,"r+":2,"w":577,"w+":578,"a":1089,"a+":1090},modeStringToFlags:str=>{var flags=FS.flagModes[str];if(typeof flags=="undefined"){throw new Error("Unknown file open mode: "+str)}return flags},flagsToPermissionString:flag=>{var perms=["r","w","rw"][flag&3];if(flag&512){perms+="w"}return perms},nodePermissions:(node,perms)=>{if(FS.ignorePermissions){return 0}if(perms.includes("r")&&!(node.mode&292)){return 2}else if(perms.includes("w")&&!(node.mode&146)){return 2}else if(perms.includes("x")&&!(node.mode&73)){return 2}return 0},mayLookup:dir=>{var errCode=FS.nodePermissions(dir,"x");if(errCode)return errCode;if(!dir.node_ops.lookup)return 2;return 0},mayCreate:(dir,name)=>{try{var node=FS.lookupNode(dir,name);return 20}catch(e){}return FS.nodePermissions(dir,"wx")},mayDelete:(dir,name,isdir)=>{var node;try{node=FS.lookupNode(dir,name)}catch(e){return e.errno}var errCode=FS.nodePermissions(dir,"wx");if(errCode){return errCode}if(isdir){if(!FS.isDir(node.mode)){return 54}if(FS.isRoot(node)||FS.getPath(node)===FS.cwd()){return 10}}else{if(FS.isDir(node.mode)){return 31}}return 0},mayOpen:(node,flags)=>{if(!node){return 44}if(FS.isLink(node.mode)){return 32}else if(FS.isDir(node.mode)){if(FS.flagsToPermissionString(flags)!=="r"||flags&512){return 31}}return FS.nodePermissions(node,FS.flagsToPermissionString(flags))},MAX_OPEN_FDS:4096,nextfd:(fd_start=0,fd_end=FS.MAX_OPEN_FDS)=>{for(var fd=fd_start;fd<=fd_end;fd++){if(!FS.streams[fd]){return fd}}throw new FS.ErrnoError(33)},getStream:fd=>FS.streams[fd],createStream:(stream,fd_start,fd_end)=>{if(!FS.FSStream){FS.FSStream=function(){this.shared={}};FS.FSStream.prototype={object:{get:function(){return this.node},set:function(val){this.node=val}},isRead:{get:function(){return(this.flags&2097155)!==1}},isWrite:{get:function(){return(this.flags&2097155)!==0}},isAppend:{get:function(){return this.flags&1024}},flags:{get:function(){return this.shared.flags},set:function(val){this.shared.flags=val}},position:{get function(){return this.shared.position},set:function(val){this.shared.position=val}}}}stream=Object.assign(new FS.FSStream,stream);var fd=FS.nextfd(fd_start,fd_end);stream.fd=fd;FS.streams[fd]=stream;return stream},closeStream:fd=>{FS.streams[fd]=null},chrdev_stream_ops:{open:stream=>{var device=FS.getDevice(stream.node.rdev);stream.stream_ops=device.stream_ops;if(stream.stream_ops.open){stream.stream_ops.open(stream)}},llseek:()=>{throw new FS.ErrnoError(70)}},major:dev=>dev>>8,minor:dev=>dev&255,makedev:(ma,mi)=>ma<<8|mi,registerDevice:(dev,ops)=>{FS.devices[dev]={stream_ops:ops}},getDevice:dev=>FS.devices[dev],getMounts:mount=>{var mounts=[];var check=[mount];while(check.length){var m=check.pop();mounts.push(m);check.push.apply(check,m.mounts)}return mounts},syncfs:(populate,callback)=>{if(typeof populate=="function"){callback=populate;populate=false}FS.syncFSRequests++;if(FS.syncFSRequests>1){err("warning: "+FS.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work")}var mounts=FS.getMounts(FS.root.mount);var completed=0;function doCallback(errCode){FS.syncFSRequests--;return callback(errCode)}function done(errCode){if(errCode){if(!done.errored){done.errored=true;return doCallback(errCode)}return}if(++completed>=mounts.length){doCallback(null)}}mounts.forEach(mount=>{if(!mount.type.syncfs){return done(null)}mount.type.syncfs(mount,populate,done)})},mount:(type,opts,mountpoint)=>{var root=mountpoint==="/";var pseudo=!mountpoint;var node;if(root&&FS.root){throw new FS.ErrnoError(10)}else if(!root&&!pseudo){var lookup=FS.lookupPath(mountpoint,{follow_mount:false});mountpoint=lookup.path;node=lookup.node;if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}if(!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}}var mount={type:type,opts:opts,mountpoint:mountpoint,mounts:[]};var mountRoot=type.mount(mount);mountRoot.mount=mount;mount.root=mountRoot;if(root){FS.root=mountRoot}else if(node){node.mounted=mount;if(node.mount){node.mount.mounts.push(mount)}}return mountRoot},unmount:mountpoint=>{var lookup=FS.lookupPath(mountpoint,{follow_mount:false});if(!FS.isMountpoint(lookup.node)){throw new FS.ErrnoError(28)}var node=lookup.node;var mount=node.mounted;var mounts=FS.getMounts(mount);Object.keys(FS.nameTable).forEach(hash=>{var current=FS.nameTable[hash];while(current){var next=current.name_next;if(mounts.includes(current.mount)){FS.destroyNode(current)}current=next}});node.mounted=null;var idx=node.mount.mounts.indexOf(mount);node.mount.mounts.splice(idx,1)},lookup:(parent,name)=>{return parent.node_ops.lookup(parent,name)},mknod:(path,mode,dev)=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);if(!name||name==="."||name===".."){throw new FS.ErrnoError(28)}var errCode=FS.mayCreate(parent,name);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.mknod){throw new FS.ErrnoError(63)}return parent.node_ops.mknod(parent,name,mode,dev)},create:(path,mode)=>{mode=mode!==undefined?mode:438;mode&=4095;mode|=32768;return FS.mknod(path,mode,0)},mkdir:(path,mode)=>{mode=mode!==undefined?mode:511;mode&=511|512;mode|=16384;return FS.mknod(path,mode,0)},mkdirTree:(path,mode)=>{var dirs=path.split("/");var d="";for(var i=0;i{if(typeof dev=="undefined"){dev=mode;mode=438}mode|=8192;return FS.mknod(path,mode,dev)},symlink:(oldpath,newpath)=>{if(!PATH_FS.resolve(oldpath)){throw new FS.ErrnoError(44)}var lookup=FS.lookupPath(newpath,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var newname=PATH.basename(newpath);var errCode=FS.mayCreate(parent,newname);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.symlink){throw new FS.ErrnoError(63)}return parent.node_ops.symlink(parent,newname,oldpath)},rename:(old_path,new_path)=>{var old_dirname=PATH.dirname(old_path);var new_dirname=PATH.dirname(new_path);var old_name=PATH.basename(old_path);var new_name=PATH.basename(new_path);var lookup,old_dir,new_dir;lookup=FS.lookupPath(old_path,{parent:true});old_dir=lookup.node;lookup=FS.lookupPath(new_path,{parent:true});new_dir=lookup.node;if(!old_dir||!new_dir)throw new FS.ErrnoError(44);if(old_dir.mount!==new_dir.mount){throw new FS.ErrnoError(75)}var old_node=FS.lookupNode(old_dir,old_name);var relative=PATH_FS.relative(old_path,new_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(28)}relative=PATH_FS.relative(new_path,old_dirname);if(relative.charAt(0)!=="."){throw new FS.ErrnoError(55)}var new_node;try{new_node=FS.lookupNode(new_dir,new_name)}catch(e){}if(old_node===new_node){return}var isdir=FS.isDir(old_node.mode);var errCode=FS.mayDelete(old_dir,old_name,isdir);if(errCode){throw new FS.ErrnoError(errCode)}errCode=new_node?FS.mayDelete(new_dir,new_name,isdir):FS.mayCreate(new_dir,new_name);if(errCode){throw new FS.ErrnoError(errCode)}if(!old_dir.node_ops.rename){throw new FS.ErrnoError(63)}if(FS.isMountpoint(old_node)||new_node&&FS.isMountpoint(new_node)){throw new FS.ErrnoError(10)}if(new_dir!==old_dir){errCode=FS.nodePermissions(old_dir,"w");if(errCode){throw new FS.ErrnoError(errCode)}}FS.hashRemoveNode(old_node);try{old_dir.node_ops.rename(old_node,new_dir,new_name)}catch(e){throw e}finally{FS.hashAddNode(old_node)}},rmdir:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,true);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.rmdir){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.rmdir(parent,name);FS.destroyNode(node)},readdir:path=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;if(!node.node_ops.readdir){throw new FS.ErrnoError(54)}return node.node_ops.readdir(node)},unlink:path=>{var lookup=FS.lookupPath(path,{parent:true});var parent=lookup.node;if(!parent){throw new FS.ErrnoError(44)}var name=PATH.basename(path);var node=FS.lookupNode(parent,name);var errCode=FS.mayDelete(parent,name,false);if(errCode){throw new FS.ErrnoError(errCode)}if(!parent.node_ops.unlink){throw new FS.ErrnoError(63)}if(FS.isMountpoint(node)){throw new FS.ErrnoError(10)}parent.node_ops.unlink(parent,name);FS.destroyNode(node)},readlink:path=>{var lookup=FS.lookupPath(path);var link=lookup.node;if(!link){throw new FS.ErrnoError(44)}if(!link.node_ops.readlink){throw new FS.ErrnoError(28)}return PATH_FS.resolve(FS.getPath(link.parent),link.node_ops.readlink(link))},stat:(path,dontFollow)=>{var lookup=FS.lookupPath(path,{follow:!dontFollow});var node=lookup.node;if(!node){throw new FS.ErrnoError(44)}if(!node.node_ops.getattr){throw new FS.ErrnoError(63)}return node.node_ops.getattr(node)},lstat:path=>{return FS.stat(path,true)},chmod:(path,mode,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{mode:mode&4095|node.mode&~4095,timestamp:Date.now()})},lchmod:(path,mode)=>{FS.chmod(path,mode,true)},fchmod:(fd,mode)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chmod(stream.node,mode)},chown:(path,uid,gid,dontFollow)=>{var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:!dontFollow});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}node.node_ops.setattr(node,{timestamp:Date.now()})},lchown:(path,uid,gid)=>{FS.chown(path,uid,gid,true)},fchown:(fd,uid,gid)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}FS.chown(stream.node,uid,gid)},truncate:(path,len)=>{if(len<0){throw new FS.ErrnoError(28)}var node;if(typeof path=="string"){var lookup=FS.lookupPath(path,{follow:true});node=lookup.node}else{node=path}if(!node.node_ops.setattr){throw new FS.ErrnoError(63)}if(FS.isDir(node.mode)){throw new FS.ErrnoError(31)}if(!FS.isFile(node.mode)){throw new FS.ErrnoError(28)}var errCode=FS.nodePermissions(node,"w");if(errCode){throw new FS.ErrnoError(errCode)}node.node_ops.setattr(node,{size:len,timestamp:Date.now()})},ftruncate:(fd,len)=>{var stream=FS.getStream(fd);if(!stream){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(28)}FS.truncate(stream.node,len)},utime:(path,atime,mtime)=>{var lookup=FS.lookupPath(path,{follow:true});var node=lookup.node;node.node_ops.setattr(node,{timestamp:Math.max(atime,mtime)})},open:(path,flags,mode)=>{if(path===""){throw new FS.ErrnoError(44)}flags=typeof flags=="string"?FS.modeStringToFlags(flags):flags;mode=typeof mode=="undefined"?438:mode;if(flags&64){mode=mode&4095|32768}else{mode=0}var node;if(typeof path=="object"){node=path}else{path=PATH.normalize(path);try{var lookup=FS.lookupPath(path,{follow:!(flags&131072)});node=lookup.node}catch(e){}}var created=false;if(flags&64){if(node){if(flags&128){throw new FS.ErrnoError(20)}}else{node=FS.mknod(path,mode,0);created=true}}if(!node){throw new FS.ErrnoError(44)}if(FS.isChrdev(node.mode)){flags&=~512}if(flags&65536&&!FS.isDir(node.mode)){throw new FS.ErrnoError(54)}if(!created){var errCode=FS.mayOpen(node,flags);if(errCode){throw new FS.ErrnoError(errCode)}}if(flags&512&&!created){FS.truncate(node,0)}flags&=~(128|512|131072);var stream=FS.createStream({node:node,path:FS.getPath(node),flags:flags,seekable:true,position:0,stream_ops:node.stream_ops,ungotten:[],error:false});if(stream.stream_ops.open){stream.stream_ops.open(stream)}if(Module["logReadFiles"]&&!(flags&1)){if(!FS.readFiles)FS.readFiles={};if(!(path in FS.readFiles)){FS.readFiles[path]=1}}return stream},close:stream=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(stream.getdents)stream.getdents=null;try{if(stream.stream_ops.close){stream.stream_ops.close(stream)}}catch(e){throw e}finally{FS.closeStream(stream.fd)}stream.fd=null},isClosed:stream=>{return stream.fd===null},llseek:(stream,offset,whence)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(!stream.seekable||!stream.stream_ops.llseek){throw new FS.ErrnoError(70)}if(whence!=0&&whence!=1&&whence!=2){throw new FS.ErrnoError(28)}stream.position=stream.stream_ops.llseek(stream,offset,whence);stream.ungotten=[];return stream.position},read:(stream,buffer,offset,length,position)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.read){throw new FS.ErrnoError(28)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesRead=stream.stream_ops.read(stream,buffer,offset,length,position);if(!seeking)stream.position+=bytesRead;return bytesRead},write:(stream,buffer,offset,length,position,canOwn)=>{if(length<0||position<0){throw new FS.ErrnoError(28)}if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(FS.isDir(stream.node.mode)){throw new FS.ErrnoError(31)}if(!stream.stream_ops.write){throw new FS.ErrnoError(28)}if(stream.seekable&&stream.flags&1024){FS.llseek(stream,0,2)}var seeking=typeof position!="undefined";if(!seeking){position=stream.position}else if(!stream.seekable){throw new FS.ErrnoError(70)}var bytesWritten=stream.stream_ops.write(stream,buffer,offset,length,position,canOwn);if(!seeking)stream.position+=bytesWritten;return bytesWritten},allocate:(stream,offset,length)=>{if(FS.isClosed(stream)){throw new FS.ErrnoError(8)}if(offset<0||length<=0){throw new FS.ErrnoError(28)}if((stream.flags&2097155)===0){throw new FS.ErrnoError(8)}if(!FS.isFile(stream.node.mode)&&!FS.isDir(stream.node.mode)){throw new FS.ErrnoError(43)}if(!stream.stream_ops.allocate){throw new FS.ErrnoError(138)}stream.stream_ops.allocate(stream,offset,length)},mmap:(stream,length,position,prot,flags)=>{if((prot&2)!==0&&(flags&2)===0&&(stream.flags&2097155)!==2){throw new FS.ErrnoError(2)}if((stream.flags&2097155)===1){throw new FS.ErrnoError(2)}if(!stream.stream_ops.mmap){throw new FS.ErrnoError(43)}return stream.stream_ops.mmap(stream,length,position,prot,flags)},msync:(stream,buffer,offset,length,mmapFlags)=>{if(!stream||!stream.stream_ops.msync){return 0}return stream.stream_ops.msync(stream,buffer,offset,length,mmapFlags)},munmap:stream=>0,ioctl:(stream,cmd,arg)=>{if(!stream.stream_ops.ioctl){throw new FS.ErrnoError(59)}return stream.stream_ops.ioctl(stream,cmd,arg)},readFile:(path,opts={})=>{opts.flags=opts.flags||0;opts.encoding=opts.encoding||"binary";if(opts.encoding!=="utf8"&&opts.encoding!=="binary"){throw new Error('Invalid encoding type "'+opts.encoding+'"')}var ret;var stream=FS.open(path,opts.flags);var stat=FS.stat(path);var length=stat.size;var buf=new Uint8Array(length);FS.read(stream,buf,0,length,0);if(opts.encoding==="utf8"){ret=UTF8ArrayToString(buf,0)}else if(opts.encoding==="binary"){ret=buf}FS.close(stream);return ret},writeFile:(path,data,opts={})=>{opts.flags=opts.flags||577;var stream=FS.open(path,opts.flags,opts.mode);if(typeof data=="string"){var buf=new Uint8Array(lengthBytesUTF8(data)+1);var actualNumBytes=stringToUTF8Array(data,buf,0,buf.length);FS.write(stream,buf,0,actualNumBytes,undefined,opts.canOwn)}else if(ArrayBuffer.isView(data)){FS.write(stream,data,0,data.byteLength,undefined,opts.canOwn)}else{throw new Error("Unsupported data type")}FS.close(stream)},cwd:()=>FS.currentPath,chdir:path=>{var lookup=FS.lookupPath(path,{follow:true});if(lookup.node===null){throw new FS.ErrnoError(44)}if(!FS.isDir(lookup.node.mode)){throw new FS.ErrnoError(54)}var errCode=FS.nodePermissions(lookup.node,"x");if(errCode){throw new FS.ErrnoError(errCode)}FS.currentPath=lookup.path},createDefaultDirectories:()=>{FS.mkdir("/tmp");FS.mkdir("/home");FS.mkdir("/home/web_user")},createDefaultDevices:()=>{FS.mkdir("/dev");FS.registerDevice(FS.makedev(1,3),{read:()=>0,write:(stream,buffer,offset,length,pos)=>length});FS.mkdev("/dev/null",FS.makedev(1,3));TTY.register(FS.makedev(5,0),TTY.default_tty_ops);TTY.register(FS.makedev(6,0),TTY.default_tty1_ops);FS.mkdev("/dev/tty",FS.makedev(5,0));FS.mkdev("/dev/tty1",FS.makedev(6,0));var random_device=getRandomDevice();FS.createDevice("/dev","random",random_device);FS.createDevice("/dev","urandom",random_device);FS.mkdir("/dev/shm");FS.mkdir("/dev/shm/tmp")},createSpecialDirectories:()=>{FS.mkdir("/proc");var proc_self=FS.mkdir("/proc/self");FS.mkdir("/proc/self/fd");FS.mount({mount:()=>{var node=FS.createNode(proc_self,"fd",16384|511,73);node.node_ops={lookup:(parent,name)=>{var fd=+name;var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);var ret={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:()=>stream.path}};ret.parent=ret;return ret}};return node}},{},"/proc/self/fd")},createStandardStreams:()=>{if(Module["stdin"]){FS.createDevice("/dev","stdin",Module["stdin"])}else{FS.symlink("/dev/tty","/dev/stdin")}if(Module["stdout"]){FS.createDevice("/dev","stdout",null,Module["stdout"])}else{FS.symlink("/dev/tty","/dev/stdout")}if(Module["stderr"]){FS.createDevice("/dev","stderr",null,Module["stderr"])}else{FS.symlink("/dev/tty1","/dev/stderr")}var stdin=FS.open("/dev/stdin",0);var stdout=FS.open("/dev/stdout",1);var stderr=FS.open("/dev/stderr",1)},ensureErrnoError:()=>{if(FS.ErrnoError)return;FS.ErrnoError=function ErrnoError(errno,node){this.node=node;this.setErrno=function(errno){this.errno=errno};this.setErrno(errno);this.message="FS error"};FS.ErrnoError.prototype=new Error;FS.ErrnoError.prototype.constructor=FS.ErrnoError;[44].forEach(code=>{FS.genericErrors[code]=new FS.ErrnoError(code);FS.genericErrors[code].stack=""})},staticInit:()=>{FS.ensureErrnoError();FS.nameTable=new Array(4096);FS.mount(MEMFS,{},"/");FS.createDefaultDirectories();FS.createDefaultDevices();FS.createSpecialDirectories();FS.filesystems={"MEMFS":MEMFS}},init:(input,output,error)=>{FS.init.initialized=true;FS.ensureErrnoError();Module["stdin"]=input||Module["stdin"];Module["stdout"]=output||Module["stdout"];Module["stderr"]=error||Module["stderr"];FS.createStandardStreams()},quit:()=>{FS.init.initialized=false;for(var i=0;i{var mode=0;if(canRead)mode|=292|73;if(canWrite)mode|=146;return mode},findObject:(path,dontResolveLastLink)=>{var ret=FS.analyzePath(path,dontResolveLastLink);if(ret.exists){return ret.object}else{return null}},analyzePath:(path,dontResolveLastLink)=>{try{var lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});path=lookup.path}catch(e){}var ret={isRoot:false,exists:false,error:0,name:null,path:null,object:null,parentExists:false,parentPath:null,parentObject:null};try{var lookup=FS.lookupPath(path,{parent:true});ret.parentExists=true;ret.parentPath=lookup.path;ret.parentObject=lookup.node;ret.name=PATH.basename(path);lookup=FS.lookupPath(path,{follow:!dontResolveLastLink});ret.exists=true;ret.path=lookup.path;ret.object=lookup.node;ret.name=lookup.node.name;ret.isRoot=lookup.path==="/"}catch(e){ret.error=e.errno}return ret},createPath:(parent,path,canRead,canWrite)=>{parent=typeof parent=="string"?parent:FS.getPath(parent);var parts=path.split("/").reverse();while(parts.length){var part=parts.pop();if(!part)continue;var current=PATH.join2(parent,part);try{FS.mkdir(current)}catch(e){}parent=current}return current},createFile:(parent,name,properties,canRead,canWrite)=>{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(canRead,canWrite);return FS.create(path,mode)},createDataFile:(parent,name,data,canRead,canWrite,canOwn)=>{var path=name;if(parent){parent=typeof parent=="string"?parent:FS.getPath(parent);path=name?PATH.join2(parent,name):parent}var mode=FS.getMode(canRead,canWrite);var node=FS.create(path,mode);if(data){if(typeof data=="string"){var arr=new Array(data.length);for(var i=0,len=data.length;i{var path=PATH.join2(typeof parent=="string"?parent:FS.getPath(parent),name);var mode=FS.getMode(!!input,!!output);if(!FS.createDevice.major)FS.createDevice.major=64;var dev=FS.makedev(FS.createDevice.major++,0);FS.registerDevice(dev,{open:stream=>{stream.seekable=false},close:stream=>{if(output&&output.buffer&&output.buffer.length){output(10)}},read:(stream,buffer,offset,length,pos)=>{var bytesRead=0;for(var i=0;i{for(var i=0;i{if(obj.isDevice||obj.isFolder||obj.link||obj.contents)return true;if(typeof XMLHttpRequest!="undefined"){throw new Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.")}else if(read_){try{obj.contents=intArrayFromString(read_(obj.url),true);obj.usedBytes=obj.contents.length}catch(e){throw new FS.ErrnoError(29)}}else{throw new Error("Cannot load without read() or XMLHttpRequest.")}},createLazyFile:(parent,name,url,canRead,canWrite)=>{function LazyUint8Array(){this.lengthKnown=false;this.chunks=[]}LazyUint8Array.prototype.get=function LazyUint8Array_get(idx){if(idx>this.length-1||idx<0){return undefined}var chunkOffset=idx%this.chunkSize;var chunkNum=idx/this.chunkSize|0;return this.getter(chunkNum)[chunkOffset]};LazyUint8Array.prototype.setDataGetter=function LazyUint8Array_setDataGetter(getter){this.getter=getter};LazyUint8Array.prototype.cacheLength=function LazyUint8Array_cacheLength(){var xhr=new XMLHttpRequest;xhr.open("HEAD",url,false);xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);var datalength=Number(xhr.getResponseHeader("Content-length"));var header;var hasByteServing=(header=xhr.getResponseHeader("Accept-Ranges"))&&header==="bytes";var usesGzip=(header=xhr.getResponseHeader("Content-Encoding"))&&header==="gzip";var chunkSize=1024*1024;if(!hasByteServing)chunkSize=datalength;var doXHR=(from,to)=>{if(from>to)throw new Error("invalid range ("+from+", "+to+") or no bytes requested!");if(to>datalength-1)throw new Error("only "+datalength+" bytes available! programmer error!");var xhr=new XMLHttpRequest;xhr.open("GET",url,false);if(datalength!==chunkSize)xhr.setRequestHeader("Range","bytes="+from+"-"+to);xhr.responseType="arraybuffer";if(xhr.overrideMimeType){xhr.overrideMimeType("text/plain; charset=x-user-defined")}xhr.send(null);if(!(xhr.status>=200&&xhr.status<300||xhr.status===304))throw new Error("Couldn't load "+url+". Status: "+xhr.status);if(xhr.response!==undefined){return new Uint8Array(xhr.response||[])}else{return intArrayFromString(xhr.responseText||"",true)}};var lazyArray=this;lazyArray.setDataGetter(chunkNum=>{var start=chunkNum*chunkSize;var end=(chunkNum+1)*chunkSize-1;end=Math.min(end,datalength-1);if(typeof lazyArray.chunks[chunkNum]=="undefined"){lazyArray.chunks[chunkNum]=doXHR(start,end)}if(typeof lazyArray.chunks[chunkNum]=="undefined")throw new Error("doXHR failed!");return lazyArray.chunks[chunkNum]});if(usesGzip||!datalength){chunkSize=datalength=1;datalength=this.getter(0).length;chunkSize=datalength;out("LazyFiles on gzip forces download of the whole file when length is accessed")}this._length=datalength;this._chunkSize=chunkSize;this.lengthKnown=true};if(typeof XMLHttpRequest!="undefined"){if(!ENVIRONMENT_IS_WORKER)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var lazyArray=new LazyUint8Array;Object.defineProperties(lazyArray,{length:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._length}},chunkSize:{get:function(){if(!this.lengthKnown){this.cacheLength()}return this._chunkSize}}});var properties={isDevice:false,contents:lazyArray}}else{var properties={isDevice:false,url:url}}var node=FS.createFile(parent,name,properties,canRead,canWrite);if(properties.contents){node.contents=properties.contents}else if(properties.url){node.contents=null;node.url=properties.url}Object.defineProperties(node,{usedBytes:{get:function(){return this.contents.length}}});var stream_ops={};var keys=Object.keys(node.stream_ops);keys.forEach(key=>{var fn=node.stream_ops[key];stream_ops[key]=function forceLoadLazyFile(){FS.forceLoadFile(node);return fn.apply(null,arguments)}});function writeChunks(stream,buffer,offset,length,position){var contents=stream.node.contents;if(position>=contents.length)return 0;var size=Math.min(contents.length-position,length);if(contents.slice){for(var i=0;i{FS.forceLoadFile(node);return writeChunks(stream,buffer,offset,length,position)};stream_ops.mmap=(stream,length,position,prot,flags)=>{FS.forceLoadFile(node);var ptr=mmapAlloc(length);if(!ptr){throw new FS.ErrnoError(48)}writeChunks(stream,HEAP8,ptr,length,position);return{ptr:ptr,allocated:true}};node.stream_ops=stream_ops;return node},createPreloadedFile:(parent,name,url,canRead,canWrite,onload,onerror,dontCreateFile,canOwn,preFinish)=>{var fullname=name?PATH_FS.resolve(PATH.join2(parent,name)):parent;var dep=getUniqueRunDependency("cp "+fullname);function processData(byteArray){function finish(byteArray){if(preFinish)preFinish();if(!dontCreateFile){FS.createDataFile(parent,name,byteArray,canRead,canWrite,canOwn)}if(onload)onload();removeRunDependency(dep)}if(Browser.handledByPreloadPlugin(byteArray,fullname,finish,()=>{if(onerror)onerror();removeRunDependency(dep)})){return}finish(byteArray)}addRunDependency(dep);if(typeof url=="string"){asyncLoad(url,byteArray=>processData(byteArray),onerror)}else{processData(url)}},indexedDB:()=>{return window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB},DB_NAME:()=>{return"EM_FS_"+window.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=()=>{out("creating db");var db=openRequest.result;db.createObjectStore(FS.DB_STORE_NAME)};openRequest.onsuccess=()=>{var db=openRequest.result;var transaction=db.transaction([FS.DB_STORE_NAME],"readwrite");var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var putRequest=files.put(FS.analyzePath(path).object.contents,path);putRequest.onsuccess=()=>{ok++;if(ok+fail==total)finish()};putRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror},loadFilesFromDB:(paths,onload,onerror)=>{onload=onload||(()=>{});onerror=onerror||(()=>{});var indexedDB=FS.indexedDB();try{var openRequest=indexedDB.open(FS.DB_NAME(),FS.DB_VERSION)}catch(e){return onerror(e)}openRequest.onupgradeneeded=onerror;openRequest.onsuccess=()=>{var db=openRequest.result;try{var transaction=db.transaction([FS.DB_STORE_NAME],"readonly")}catch(e){onerror(e);return}var files=transaction.objectStore(FS.DB_STORE_NAME);var ok=0,fail=0,total=paths.length;function finish(){if(fail==0)onload();else onerror()}paths.forEach(path=>{var getRequest=files.get(path);getRequest.onsuccess=()=>{if(FS.analyzePath(path).exists){FS.unlink(path)}FS.createDataFile(PATH.dirname(path),PATH.basename(path),getRequest.result,true,true,true);ok++;if(ok+fail==total)finish()};getRequest.onerror=()=>{fail++;if(ok+fail==total)finish()}});transaction.onerror=onerror};openRequest.onerror=onerror}};var SYSCALLS={DEFAULT_POLLMASK:5,calculateAt:function(dirfd,path,allowEmpty){if(PATH.isAbs(path)){return path}var dir;if(dirfd===-100){dir=FS.cwd()}else{var dirstream=FS.getStream(dirfd);if(!dirstream)throw new FS.ErrnoError(8);dir=dirstream.path}if(path.length==0){if(!allowEmpty){throw new FS.ErrnoError(44)}return dir}return PATH.join2(dir,path)},doStat:function(func,path,buf){try{var stat=func(path)}catch(e){if(e&&e.node&&PATH.normalize(path)!==PATH.normalize(FS.getPath(e.node))){return-54}throw e}HEAP32[buf>>2]=stat.dev;HEAP32[buf+4>>2]=0;HEAP32[buf+8>>2]=stat.ino;HEAP32[buf+12>>2]=stat.mode;HEAP32[buf+16>>2]=stat.nlink;HEAP32[buf+20>>2]=stat.uid;HEAP32[buf+24>>2]=stat.gid;HEAP32[buf+28>>2]=stat.rdev;HEAP32[buf+32>>2]=0;tempI64=[stat.size>>>0,(tempDouble=stat.size,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+40>>2]=tempI64[0],HEAP32[buf+44>>2]=tempI64[1];HEAP32[buf+48>>2]=4096;HEAP32[buf+52>>2]=stat.blocks;HEAP32[buf+56>>2]=stat.atime.getTime()/1e3|0;HEAP32[buf+60>>2]=0;HEAP32[buf+64>>2]=stat.mtime.getTime()/1e3|0;HEAP32[buf+68>>2]=0;HEAP32[buf+72>>2]=stat.ctime.getTime()/1e3|0;HEAP32[buf+76>>2]=0;tempI64=[stat.ino>>>0,(tempDouble=stat.ino,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[buf+80>>2]=tempI64[0],HEAP32[buf+84>>2]=tempI64[1];return 0},doMsync:function(addr,stream,len,flags,offset){var buffer=HEAPU8.slice(addr,addr+len);FS.msync(stream,buffer,offset,len,flags)},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},getStreamFromFD:function(fd){var stream=FS.getStream(fd);if(!stream)throw new FS.ErrnoError(8);return stream}};function _environ_get(__environ,environ_buf){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,__environ,environ_buf);var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,penviron_count,penviron_buf_size);var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd);try{var stream=SYSCALLS.getStreamFromFD(fd);FS.close(stream);return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doReadv(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.read(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr;if(curr>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function convertI32PairToI53Checked(lo,hi){return hi+2097152>>>0<4194305-!!lo?(lo>>>0)+hi*4294967296:NaN}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(7,1,fd,offset_low,offset_high,whence,newOffset);try{var offset=convertI32PairToI53Checked(offset_low,offset_high);if(isNaN(offset))return 61;var stream=SYSCALLS.getStreamFromFD(fd);FS.llseek(stream,offset,whence);tempI64=[stream.position>>>0,(tempDouble=stream.position,+Math.abs(tempDouble)>=1?tempDouble>0?(Math.min(+Math.floor(tempDouble/4294967296),4294967295)|0)>>>0:~~+Math.ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[newOffset>>2]=tempI64[0],HEAP32[newOffset+4>>2]=tempI64[1];if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function doWritev(stream,iov,iovcnt,offset){var ret=0;for(var i=0;i>2];var len=HEAPU32[iov+4>>2];iov+=8;var curr=FS.write(stream,HEAP8,ptr,len,offset);if(curr<0)return-1;ret+=curr}return ret}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(8,1,fd,iov,iovcnt,pnum);try{var stream=SYSCALLS.getStreamFromFD(fd);var num=doWritev(stream,iov,iovcnt);HEAPU32[pnum>>2]=num;return 0}catch(e){if(typeof FS=="undefined"||!(e instanceof FS.ErrnoError))throw e;return e.errno}}function __isLeapYear(year){return year%4===0&&(year%100!==0||year%400===0)}function __arraySum(array,index){var sum=0;for(var i=0;i<=index;sum+=array[i++]){}return sum}var __MONTH_DAYS_LEAP=[31,29,31,30,31,30,31,31,30,31,30,31];var __MONTH_DAYS_REGULAR=[31,28,31,30,31,30,31,31,30,31,30,31];function __addDays(date,days){var newDate=new Date(date.getTime());while(days>0){var leap=__isLeapYear(newDate.getFullYear());var currentMonth=newDate.getMonth();var daysInCurrentMonth=(leap?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR)[currentMonth];if(days>daysInCurrentMonth-newDate.getDate()){days-=daysInCurrentMonth-newDate.getDate()+1;newDate.setDate(1);if(currentMonth<11){newDate.setMonth(currentMonth+1)}else{newDate.setMonth(0);newDate.setFullYear(newDate.getFullYear()+1)}}else{newDate.setDate(newDate.getDate()+days);return newDate}}return newDate}function _strftime(s,maxsize,format,tm){var tm_zone=HEAP32[tm+40>>2];var date={tm_sec:HEAP32[tm>>2],tm_min:HEAP32[tm+4>>2],tm_hour:HEAP32[tm+8>>2],tm_mday:HEAP32[tm+12>>2],tm_mon:HEAP32[tm+16>>2],tm_year:HEAP32[tm+20>>2],tm_wday:HEAP32[tm+24>>2],tm_yday:HEAP32[tm+28>>2],tm_isdst:HEAP32[tm+32>>2],tm_gmtoff:HEAP32[tm+36>>2],tm_zone:tm_zone?UTF8ToString(tm_zone):""};var pattern=UTF8ToString(format);var EXPANSION_RULES_1={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var rule in EXPANSION_RULES_1){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_1[rule])}var WEEKDAYS=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var MONTHS=["January","February","March","April","May","June","July","August","September","October","November","December"];function leadingSomething(value,digits,character){var str=typeof value=="number"?value.toString():value||"";while(str.length0?1:0}var compare;if((compare=sgn(date1.getFullYear()-date2.getFullYear()))===0){if((compare=sgn(date1.getMonth()-date2.getMonth()))===0){compare=sgn(date1.getDate()-date2.getDate())}}return compare}function getFirstWeekStartDate(janFourth){switch(janFourth.getDay()){case 0:return new Date(janFourth.getFullYear()-1,11,29);case 1:return janFourth;case 2:return new Date(janFourth.getFullYear(),0,3);case 3:return new Date(janFourth.getFullYear(),0,2);case 4:return new Date(janFourth.getFullYear(),0,1);case 5:return new Date(janFourth.getFullYear()-1,11,31);case 6:return new Date(janFourth.getFullYear()-1,11,30)}}function getWeekBasedYear(date){var thisDate=__addDays(new Date(date.tm_year+1900,0,1),date.tm_yday);var janFourthThisYear=new Date(thisDate.getFullYear(),0,4);var janFourthNextYear=new Date(thisDate.getFullYear()+1,0,4);var firstWeekStartThisYear=getFirstWeekStartDate(janFourthThisYear);var firstWeekStartNextYear=getFirstWeekStartDate(janFourthNextYear);if(compareByDay(firstWeekStartThisYear,thisDate)<=0){if(compareByDay(firstWeekStartNextYear,thisDate)<=0){return thisDate.getFullYear()+1}else{return thisDate.getFullYear()}}else{return thisDate.getFullYear()-1}}var EXPANSION_RULES_2={"%a":function(date){return WEEKDAYS[date.tm_wday].substring(0,3)},"%A":function(date){return WEEKDAYS[date.tm_wday]},"%b":function(date){return MONTHS[date.tm_mon].substring(0,3)},"%B":function(date){return MONTHS[date.tm_mon]},"%C":function(date){var year=date.tm_year+1900;return leadingNulls(year/100|0,2)},"%d":function(date){return leadingNulls(date.tm_mday,2)},"%e":function(date){return leadingSomething(date.tm_mday,2," ")},"%g":function(date){return getWeekBasedYear(date).toString().substring(2)},"%G":function(date){return getWeekBasedYear(date)},"%H":function(date){return leadingNulls(date.tm_hour,2)},"%I":function(date){var twelveHour=date.tm_hour;if(twelveHour==0)twelveHour=12;else if(twelveHour>12)twelveHour-=12;return leadingNulls(twelveHour,2)},"%j":function(date){return leadingNulls(date.tm_mday+__arraySum(__isLeapYear(date.tm_year+1900)?__MONTH_DAYS_LEAP:__MONTH_DAYS_REGULAR,date.tm_mon-1),3)},"%m":function(date){return leadingNulls(date.tm_mon+1,2)},"%M":function(date){return leadingNulls(date.tm_min,2)},"%n":function(){return"\n"},"%p":function(date){if(date.tm_hour>=0&&date.tm_hour<12){return"AM"}else{return"PM"}},"%S":function(date){return leadingNulls(date.tm_sec,2)},"%t":function(){return"\t"},"%u":function(date){return date.tm_wday||7},"%U":function(date){var days=date.tm_yday+7-date.tm_wday;return leadingNulls(Math.floor(days/7),2)},"%V":function(date){var val=Math.floor((date.tm_yday+7-(date.tm_wday+6)%7)/7);if((date.tm_wday+371-date.tm_yday-2)%7<=2){val++}if(!val){val=52;var dec31=(date.tm_wday+7-date.tm_yday-1)%7;if(dec31==4||dec31==5&&__isLeapYear(date.tm_year%400-1)){val++}}else if(val==53){var jan1=(date.tm_wday+371-date.tm_yday)%7;if(jan1!=4&&(jan1!=3||!__isLeapYear(date.tm_year)))val=1}return leadingNulls(val,2)},"%w":function(date){return date.tm_wday},"%W":function(date){var days=date.tm_yday+7-(date.tm_wday+6)%7;return leadingNulls(Math.floor(days/7),2)},"%y":function(date){return(date.tm_year+1900).toString().substring(2)},"%Y":function(date){return date.tm_year+1900},"%z":function(date){var off=date.tm_gmtoff;var ahead=off>=0;off=Math.abs(off)/60;off=off/60*100+off%60;return(ahead?"+":"-")+String("0000"+off).slice(-4)},"%Z":function(date){return date.tm_zone},"%%":function(){return"%"}};pattern=pattern.replace(/%%/g,"\0\0");for(var rule in EXPANSION_RULES_2){if(pattern.includes(rule)){pattern=pattern.replace(new RegExp(rule,"g"),EXPANSION_RULES_2[rule](date))}}pattern=pattern.replace(/\0\0/g,"%");var bytes=intArrayFromString(pattern,false);if(bytes.length>maxsize){return 0}writeArrayToMemory(bytes,s);return bytes.length-1}function _strftime_l(s,maxsize,format,tm){return _strftime(s,maxsize,format,tm)}PThread.init();var FSNode=function(parent,name,mode,rdev){if(!parent){parent=this}this.parent=parent;this.mount=parent.mount;this.mounted=null;this.id=FS.nextInode++;this.name=name;this.mode=mode;this.node_ops={};this.stream_ops={};this.rdev=rdev};var readMode=292|73;var writeMode=146;Object.defineProperties(FSNode.prototype,{read:{get:function(){return(this.mode&readMode)===readMode},set:function(val){val?this.mode|=readMode:this.mode&=~readMode}},write:{get:function(){return(this.mode&writeMode)===writeMode},set:function(val){val?this.mode|=writeMode:this.mode&=~writeMode}},isFolder:{get:function(){return FS.isDir(this.mode)}},isDevice:{get:function(){return FS.isChrdev(this.mode)}}});FS.FSNode=FSNode;FS.staticInit();var proxiedFunctionTable=[null,exitOnMainThread,pthreadCreateProxied,_environ_get,_environ_sizes_get,_fd_close,_fd_read,_fd_seek,_fd_write];function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}var asmLibraryArg={"e":___cxa_allocate_exception,"d":___cxa_throw,"y":___emscripten_init_main_thread_js,"h":___emscripten_thread_cleanup,"v":___pthread_create_js,"w":__emscripten_default_pthread_stack_size,"k":__emscripten_notify_task_queue,"i":__emscripten_set_offscreencanvas_size,"c":_abort,"l":_emscripten_asm_const_async_on_main_thread,"m":_emscripten_asm_const_int,"f":_emscripten_check_blocking_allowed,"b":_emscripten_get_now,"j":_emscripten_memcpy_big,"z":_emscripten_receive_on_main_thread_js,"t":_emscripten_resize_heap,"x":_emscripten_unwind_to_js_event_loop,"p":_environ_get,"q":_environ_sizes_get,"u":_exit,"r":_fd_close,"s":_fd_read,"n":_fd_seek,"g":_fd_write,"a":wasmMemory,"o":_strftime_l};var asm=createWasm();var ___wasm_call_ctors=Module["___wasm_call_ctors"]=function(){return(___wasm_call_ctors=Module["___wasm_call_ctors"]=Module["asm"]["A"]).apply(null,arguments)};var _initialize=Module["_initialize"]=function(){return(_initialize=Module["_initialize"]=Module["asm"]["B"]).apply(null,arguments)};var _createInstance=Module["_createInstance"]=function(){return(_createInstance=Module["_createInstance"]=Module["asm"]["C"]).apply(null,arguments)};var _destroyInstance=Module["_destroyInstance"]=function(){return(_destroyInstance=Module["_destroyInstance"]=Module["asm"]["D"]).apply(null,arguments)};var _getChunkHeightfieldAsync=Module["_getChunkHeightfieldAsync"]=function(){return(_getChunkHeightfieldAsync=Module["_getChunkHeightfieldAsync"]=Module["asm"]["E"]).apply(null,arguments)};var _getChunkSkylightAsync=Module["_getChunkSkylightAsync"]=function(){return(_getChunkSkylightAsync=Module["_getChunkSkylightAsync"]=Module["asm"]["F"]).apply(null,arguments)};var _getChunkAoAsync=Module["_getChunkAoAsync"]=function(){return(_getChunkAoAsync=Module["_getChunkAoAsync"]=Module["asm"]["G"]).apply(null,arguments)};var _createGrassSplatAsync=Module["_createGrassSplatAsync"]=function(){return(_createGrassSplatAsync=Module["_createGrassSplatAsync"]=Module["asm"]["H"]).apply(null,arguments)};var _createVegetationSplatAsync=Module["_createVegetationSplatAsync"]=function(){return(_createVegetationSplatAsync=Module["_createVegetationSplatAsync"]=Module["asm"]["I"]).apply(null,arguments)};var _createMobSplatAsync=Module["_createMobSplatAsync"]=function(){return(_createMobSplatAsync=Module["_createMobSplatAsync"]=Module["asm"]["J"]).apply(null,arguments)};var _createTerrainChunkMeshAsync=Module["_createTerrainChunkMeshAsync"]=function(){return(_createTerrainChunkMeshAsync=Module["_createTerrainChunkMeshAsync"]=Module["asm"]["K"]).apply(null,arguments)};var _createLiquidChunkMeshAsync=Module["_createLiquidChunkMeshAsync"]=function(){return(_createLiquidChunkMeshAsync=Module["_createLiquidChunkMeshAsync"]=Module["asm"]["L"]).apply(null,arguments)};var _drawSphereDamage=Module["_drawSphereDamage"]=function(){return(_drawSphereDamage=Module["_drawSphereDamage"]=Module["asm"]["M"]).apply(null,arguments)};var _eraseSphereDamage=Module["_eraseSphereDamage"]=function(){return(_eraseSphereDamage=Module["_eraseSphereDamage"]=Module["asm"]["N"]).apply(null,arguments)};var _drawCubeDamage=Module["_drawCubeDamage"]=function(){return(_drawCubeDamage=Module["_drawCubeDamage"]=Module["asm"]["O"]).apply(null,arguments)};var _eraseCubeDamage=Module["_eraseCubeDamage"]=function(){return(_eraseCubeDamage=Module["_eraseCubeDamage"]=Module["asm"]["P"]).apply(null,arguments)};var _setClipRange=Module["_setClipRange"]=function(){return(_setClipRange=Module["_setClipRange"]=Module["asm"]["Q"]).apply(null,arguments)};var _cancelTask=Module["_cancelTask"]=function(){return(_cancelTask=Module["_cancelTask"]=Module["asm"]["R"]).apply(null,arguments)};var _doMalloc=Module["_doMalloc"]=function(){return(_doMalloc=Module["_doMalloc"]=Module["asm"]["S"]).apply(null,arguments)};var _malloc=Module["_malloc"]=function(){return(_malloc=Module["_malloc"]=Module["asm"]["T"]).apply(null,arguments)};var _doFree=Module["_doFree"]=function(){return(_doFree=Module["_doFree"]=Module["asm"]["U"]).apply(null,arguments)};var _runLoop=Module["_runLoop"]=function(){return(_runLoop=Module["_runLoop"]=Module["asm"]["V"]).apply(null,arguments)};var _main=Module["_main"]=function(){return(_main=Module["_main"]=Module["asm"]["W"]).apply(null,arguments)};var _pthread_self=Module["_pthread_self"]=function(){return(_pthread_self=Module["_pthread_self"]=Module["asm"]["Y"]).apply(null,arguments)};var __emscripten_tls_init=Module["__emscripten_tls_init"]=function(){return(__emscripten_tls_init=Module["__emscripten_tls_init"]=Module["asm"]["Z"]).apply(null,arguments)};var _emscripten_builtin_memalign=Module["_emscripten_builtin_memalign"]=function(){return(_emscripten_builtin_memalign=Module["_emscripten_builtin_memalign"]=Module["asm"]["_"]).apply(null,arguments)};var __emscripten_thread_init=Module["__emscripten_thread_init"]=function(){return(__emscripten_thread_init=Module["__emscripten_thread_init"]=Module["asm"]["$"]).apply(null,arguments)};var __emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=function(){return(__emscripten_thread_crashed=Module["__emscripten_thread_crashed"]=Module["asm"]["aa"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module["_emscripten_run_in_main_runtime_thread_js"]=Module["asm"]["ba"]).apply(null,arguments)};var __emscripten_proxy_execute_task_queue=Module["__emscripten_proxy_execute_task_queue"]=function(){return(__emscripten_proxy_execute_task_queue=Module["__emscripten_proxy_execute_task_queue"]=Module["asm"]["ca"]).apply(null,arguments)};var __emscripten_thread_free_data=Module["__emscripten_thread_free_data"]=function(){return(__emscripten_thread_free_data=Module["__emscripten_thread_free_data"]=Module["asm"]["da"]).apply(null,arguments)};var __emscripten_thread_exit=Module["__emscripten_thread_exit"]=function(){return(__emscripten_thread_exit=Module["__emscripten_thread_exit"]=Module["asm"]["ea"]).apply(null,arguments)};var _emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=function(){return(_emscripten_stack_set_limits=Module["_emscripten_stack_set_limits"]=Module["asm"]["fa"]).apply(null,arguments)};var stackSave=Module["stackSave"]=function(){return(stackSave=Module["stackSave"]=Module["asm"]["ga"]).apply(null,arguments)};var stackRestore=Module["stackRestore"]=function(){return(stackRestore=Module["stackRestore"]=Module["asm"]["ha"]).apply(null,arguments)};var stackAlloc=Module["stackAlloc"]=function(){return(stackAlloc=Module["stackAlloc"]=Module["asm"]["ia"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=function(){return(___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=Module["asm"]["ja"]).apply(null,arguments)};Module["keepRuntimeAlive"]=keepRuntimeAlive;Module["wasmMemory"]=wasmMemory;Module["ExitStatus"]=ExitStatus;var calledRun;function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module["_main"];var argc=0;var argv=0;try{var ret=entryFunction(argc,argv);exit(ret,true);return ret}catch(e){return handleException(e)}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}if(ENVIRONMENT_IS_PTHREAD){initRuntime();postMessage({"cmd":"loaded"});return}preRun();if(runDependencies>0){return}function doRun(){if(calledRun)return;calledRun=true;Module["calledRun"]=true;if(ABORT)return;initRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();if(shouldRunNow)callMain(args);postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout(function(){setTimeout(function(){Module["setStatus"]("")},1);doRun()},1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){EXITSTATUS=status;if(!implicit){if(ENVIRONMENT_IS_PTHREAD){exitOnMainThread(status);throw"unwind"}else{}}procExit(status)}function procExit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){PThread.terminateAllThreads();if(Module["onExit"])Module["onExit"](code);ABORT=true}quit_(code,new ExitStatus(code))}if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}var shouldRunNow=true;if(Module["noInitialRun"])shouldRunNow=false;run();
+let accept, reject;const p = new Promise((a, r) => {accept = a; reject = r;});Module.postRun = () => {accept();};Module.waitForLoad = () => p;
+export default Module;
diff --git a/public/dc.wasm b/public/dc.wasm
new file mode 100644
index 0000000000..14fa38e381
Binary files /dev/null and b/public/dc.wasm differ
diff --git a/public/dc.worker.js b/public/dc.worker.js
new file mode 100644
index 0000000000..ae8dd85afd
--- /dev/null
+++ b/public/dc.worker.js
@@ -0,0 +1 @@
+"use strict";var Module={};var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";if(ENVIRONMENT_IS_NODE){var nodeWorkerThreads=require("worker_threads");var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var fs=require("fs");Object.assign(global,{self:global,require:require,Module:Module,location:{href:__filename},Worker:nodeWorkerThreads.Worker,importScripts:function(f){(0,eval)(fs.readFileSync(f,"utf8"))},postMessage:function(msg){parentPort.postMessage(msg)},performance:global.performance||{now:function(){return Date.now()}}})}var initializedJS=false;var pendingNotifiedProxyingQueues=[];function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");if(ENVIRONMENT_IS_NODE){fs.writeSync(2,text+"\n");return}console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:Module["_pthread_self"]()})}var err=threadPrintErr;self.alert=threadAlert;Module["instantiateWasm"]=(info,receiveInstance)=>{var instance=new WebAssembly.Instance(Module["wasmModule"],info);receiveInstance(instance);Module["wasmModule"]=null;return instance.exports};self.onmessage=e=>{try{if(e.data.cmd==="load"){Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob=="string"){e.data.urlOrBlob="/dc.js";importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;Module["__emscripten_thread_init"](e.data.threadInfoStruct,0,0,1);Module["establishStackSpace"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].threadInitTLS();if(!initializedJS){pendingNotifiedProxyingQueues.forEach(queue=>{Module["executeNotifiedProxyingQueue"](queue)});pendingNotifiedProxyingQueues=[];initializedJS=true}try{Module["invokeEntryPoint"](e.data.start_routine,e.data.arg)}catch(ex){if(ex!="unwind"){if(ex instanceof Module["ExitStatus"]){if(Module["keepRuntimeAlive"]()){}else{Module["__emscripten_thread_exit"](ex.status)}}else{throw ex}}}}else if(e.data.cmd==="cancel"){if(Module["_pthread_self"]()){Module["__emscripten_thread_exit"](-1)}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processProxyingQueue"){if(initializedJS){Module["executeNotifiedProxyingQueue"](e.data.queue)}else{pendingNotifiedProxyingQueues.push(e.data.queue)}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex&&ex.stack)err(ex.stack);if(Module["__emscripten_thread_crashed"]){Module["__emscripten_thread_crashed"]()}throw ex}};
diff --git a/public/fonts/SF Movie Poster Bold.ttf b/public/fonts/SF Movie Poster Bold.ttf
new file mode 100644
index 0000000000..b2cf25cb45
Binary files /dev/null and b/public/fonts/SF Movie Poster Bold.ttf differ
diff --git a/public/fonts/SF Movie Poster.ttf b/public/fonts/SF Movie Poster.ttf
new file mode 100644
index 0000000000..2e58e26485
Binary files /dev/null and b/public/fonts/SF Movie Poster.ttf differ
diff --git a/public/images/arc-white.svg b/public/images/arc-white.svg
new file mode 100644
index 0000000000..db8839d5de
--- /dev/null
+++ b/public/images/arc-white.svg
@@ -0,0 +1,5 @@
+
diff --git a/public/images/cardback-01.svg b/public/images/cardback-01.svg
new file mode 100644
index 0000000000..a6e20f6495
--- /dev/null
+++ b/public/images/cardback-01.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/fantasy-arrow.png b/public/images/fantasy-arrow.png
new file mode 100644
index 0000000000..16a767d42c
Binary files /dev/null and b/public/images/fantasy-arrow.png differ
diff --git a/public/images/fantasy-arrow.svg b/public/images/fantasy-arrow.svg
new file mode 100644
index 0000000000..75d9b3c060
--- /dev/null
+++ b/public/images/fantasy-arrow.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/fantasy-arrow2.svg b/public/images/fantasy-arrow2.svg
new file mode 100644
index 0000000000..27f0b59060
--- /dev/null
+++ b/public/images/fantasy-arrow2.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/items/HP-01.svg b/public/images/items/HP-01.svg
new file mode 100644
index 0000000000..e02e5b14a0
--- /dev/null
+++ b/public/images/items/HP-01.svg
@@ -0,0 +1 @@
+
diff --git a/public/images/items/HP_negative-01.svg b/public/images/items/HP_negative-01.svg
new file mode 100644
index 0000000000..99c5ec5f91
--- /dev/null
+++ b/public/images/items/HP_negative-01.svg
@@ -0,0 +1 @@
+
diff --git a/public/images/items/MP_green-01.svg b/public/images/items/MP_green-01.svg
new file mode 100644
index 0000000000..683d7658b0
--- /dev/null
+++ b/public/images/items/MP_green-01.svg
@@ -0,0 +1 @@
+
diff --git a/public/images/items/MP_purple-01.svg b/public/images/items/MP_purple-01.svg
new file mode 100644
index 0000000000..83dace65b4
--- /dev/null
+++ b/public/images/items/MP_purple-01.svg
@@ -0,0 +1 @@
+
diff --git a/public/images/items/XP-01.svg b/public/images/items/XP-01.svg
new file mode 100644
index 0000000000..c23c72a506
--- /dev/null
+++ b/public/images/items/XP-01.svg
@@ -0,0 +1 @@
+
diff --git a/public/images/items/XP_negative-01.svg b/public/images/items/XP_negative-01.svg
new file mode 100644
index 0000000000..ceb1d11b21
--- /dev/null
+++ b/public/images/items/XP_negative-01.svg
@@ -0,0 +1 @@
+
diff --git a/public/images/items/noun-fruit-4617781.svg b/public/images/items/noun-fruit-4617781.svg
new file mode 100644
index 0000000000..093338e7e3
--- /dev/null
+++ b/public/images/items/noun-fruit-4617781.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/items/noun-poison-4837113.svg b/public/images/items/noun-poison-4837113.svg
new file mode 100644
index 0000000000..9a86aa640d
--- /dev/null
+++ b/public/images/items/noun-poison-4837113.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/items/noun-potion-3097512.svg b/public/images/items/noun-potion-3097512.svg
new file mode 100644
index 0000000000..8451e4efd9
--- /dev/null
+++ b/public/images/items/noun-potion-3097512.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/items/noun-root-4617773.svg b/public/images/items/noun-root-4617773.svg
new file mode 100644
index 0000000000..5320c21160
--- /dev/null
+++ b/public/images/items/noun-root-4617773.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/ui/down.svg b/public/images/ui/down.svg
new file mode 100644
index 0000000000..c9492a783e
--- /dev/null
+++ b/public/images/ui/down.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/public/images/ui/left-red.svg b/public/images/ui/left-red.svg
new file mode 100644
index 0000000000..c028eca841
--- /dev/null
+++ b/public/images/ui/left-red.svg
@@ -0,0 +1,15 @@
+
diff --git a/public/images/ui/left.svg b/public/images/ui/left.svg
new file mode 100644
index 0000000000..84c6b1133a
--- /dev/null
+++ b/public/images/ui/left.svg
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/public/images/ui/rainbow-line.svg b/public/images/ui/rainbow-line.svg
new file mode 100644
index 0000000000..7ea0073703
--- /dev/null
+++ b/public/images/ui/rainbow-line.svg
@@ -0,0 +1,23 @@
+
diff --git a/public/sounds/combat/OOT_Bomb_Blow.wav b/public/sounds/combat/OOT_Bomb_Blow.wav
new file mode 100644
index 0000000000..0d097c3d61
Binary files /dev/null and b/public/sounds/combat/OOT_Bomb_Blow.wav differ
diff --git a/public/sounds/combat/OOT_Bush_Cut.wav b/public/sounds/combat/OOT_Bush_Cut.wav
new file mode 100644
index 0000000000..267d3bcd14
Binary files /dev/null and b/public/sounds/combat/OOT_Bush_Cut.wav differ
diff --git a/public/sounds/combat/OOT_Bush_Pickup.wav b/public/sounds/combat/OOT_Bush_Pickup.wav
new file mode 100644
index 0000000000..b1053ab044
Binary files /dev/null and b/public/sounds/combat/OOT_Bush_Pickup.wav differ
diff --git a/public/sounds/combat/OOT_Bush_Walk.wav b/public/sounds/combat/OOT_Bush_Walk.wav
new file mode 100644
index 0000000000..9d76bf7af6
Binary files /dev/null and b/public/sounds/combat/OOT_Bush_Walk.wav differ
diff --git a/public/sounds/combat/OOT_Fanfare_Item.wav b/public/sounds/combat/OOT_Fanfare_Item.wav
new file mode 100644
index 0000000000..e4de361562
Binary files /dev/null and b/public/sounds/combat/OOT_Fanfare_Item.wav differ
diff --git a/public/sounds/combat/OOT_Fanfare_SmallItem.wav b/public/sounds/combat/OOT_Fanfare_SmallItem.wav
new file mode 100644
index 0000000000..63385d3b1f
Binary files /dev/null and b/public/sounds/combat/OOT_Fanfare_SmallItem.wav differ
diff --git a/public/sounds/combat/OOT_Fire.wav b/public/sounds/combat/OOT_Fire.wav
new file mode 100644
index 0000000000..c406b58642
Binary files /dev/null and b/public/sounds/combat/OOT_Fire.wav differ
diff --git a/public/sounds/combat/OOT_FireRing_Loop.wav b/public/sounds/combat/OOT_FireRing_Loop.wav
new file mode 100644
index 0000000000..0e32d934fd
Binary files /dev/null and b/public/sounds/combat/OOT_FireRing_Loop.wav differ
diff --git a/public/sounds/combat/OOT_FireRing_Start.wav b/public/sounds/combat/OOT_FireRing_Start.wav
new file mode 100644
index 0000000000..6a9d362260
Binary files /dev/null and b/public/sounds/combat/OOT_FireRing_Start.wav differ
diff --git a/public/sounds/combat/OOT_FireWall_Loop.wav b/public/sounds/combat/OOT_FireWall_Loop.wav
new file mode 100644
index 0000000000..9137644046
Binary files /dev/null and b/public/sounds/combat/OOT_FireWall_Loop.wav differ
diff --git a/public/sounds/combat/OOT_FireWall_Start.wav b/public/sounds/combat/OOT_FireWall_Start.wav
new file mode 100644
index 0000000000..da9a0cfec9
Binary files /dev/null and b/public/sounds/combat/OOT_FireWall_Start.wav differ
diff --git a/public/sounds/combat/OOT_Fire_Flames.wav b/public/sounds/combat/OOT_Fire_Flames.wav
new file mode 100644
index 0000000000..4d4a268f3f
Binary files /dev/null and b/public/sounds/combat/OOT_Fire_Flames.wav differ
diff --git a/public/sounds/combat/OOT_Fire_Ignite.wav b/public/sounds/combat/OOT_Fire_Ignite.wav
new file mode 100644
index 0000000000..bd2305d829
Binary files /dev/null and b/public/sounds/combat/OOT_Fire_Ignite.wav differ
diff --git a/public/sounds/combat/OOT_Get_Heart.wav b/public/sounds/combat/OOT_Get_Heart.wav
new file mode 100644
index 0000000000..64c330dc4a
Binary files /dev/null and b/public/sounds/combat/OOT_Get_Heart.wav differ
diff --git a/public/sounds/combat/OOT_Get_SmallItem1.wav b/public/sounds/combat/OOT_Get_SmallItem1.wav
new file mode 100644
index 0000000000..4f3b4f1178
Binary files /dev/null and b/public/sounds/combat/OOT_Get_SmallItem1.wav differ
diff --git a/public/sounds/combat/OOT_Get_SmallItem2.wav b/public/sounds/combat/OOT_Get_SmallItem2.wav
new file mode 100644
index 0000000000..ceb46bb4cf
Binary files /dev/null and b/public/sounds/combat/OOT_Get_SmallItem2.wav differ
diff --git a/public/sounds/combat/OOT_Sword_Away.wav b/public/sounds/combat/OOT_Sword_Away.wav
new file mode 100644
index 0000000000..ffab1ccc28
Binary files /dev/null and b/public/sounds/combat/OOT_Sword_Away.wav differ
diff --git a/public/sounds/combat/OOT_Sword_Charge.wav b/public/sounds/combat/OOT_Sword_Charge.wav
new file mode 100644
index 0000000000..cd3c89e8e2
Binary files /dev/null and b/public/sounds/combat/OOT_Sword_Charge.wav differ
diff --git a/public/sounds/combat/OOT_Sword_Draw.wav b/public/sounds/combat/OOT_Sword_Draw.wav
new file mode 100644
index 0000000000..02551b82b0
Binary files /dev/null and b/public/sounds/combat/OOT_Sword_Draw.wav differ
diff --git a/public/sounds/combat/OOT_Sword_Spin.wav b/public/sounds/combat/OOT_Sword_Spin.wav
new file mode 100644
index 0000000000..8e3455b212
Binary files /dev/null and b/public/sounds/combat/OOT_Sword_Spin.wav differ
diff --git a/public/sounds/combat/OOT_Sword_Spin_Magic1.wav b/public/sounds/combat/OOT_Sword_Spin_Magic1.wav
new file mode 100644
index 0000000000..9f330d2c87
Binary files /dev/null and b/public/sounds/combat/OOT_Sword_Spin_Magic1.wav differ
diff --git a/public/sounds/combat/OOT_Sword_Spin_Magic2.wav b/public/sounds/combat/OOT_Sword_Spin_Magic2.wav
new file mode 100644
index 0000000000..5fe9c10275
Binary files /dev/null and b/public/sounds/combat/OOT_Sword_Spin_Magic2.wav differ
diff --git a/public/sounds/combat/beep.wav b/public/sounds/combat/beep.wav
new file mode 100644
index 0000000000..73e95174d3
Binary files /dev/null and b/public/sounds/combat/beep.wav differ
diff --git a/public/sounds/combat/boop.wav b/public/sounds/combat/boop.wav
new file mode 100644
index 0000000000..446aa5b643
Binary files /dev/null and b/public/sounds/combat/boop.wav differ
diff --git a/public/sounds/combat/sword_slash0-1.wav b/public/sounds/combat/sword_slash0-1.wav
index 672aa7cdad..7982bd70c9 100644
Binary files a/public/sounds/combat/sword_slash0-1.wav and b/public/sounds/combat/sword_slash0-1.wav differ
diff --git a/public/sounds/combat/sword_slash0-2.wav b/public/sounds/combat/sword_slash0-2.wav
index 61a8c17e91..78d5512476 100644
Binary files a/public/sounds/combat/sword_slash0-2.wav and b/public/sounds/combat/sword_slash0-2.wav differ
diff --git a/public/sounds/combat/sword_slash0-3.wav b/public/sounds/combat/sword_slash0-3.wav
index 33471397d5..d58c53d570 100644
Binary files a/public/sounds/combat/sword_slash0-3.wav and b/public/sounds/combat/sword_slash0-3.wav differ
diff --git a/public/sounds/combat/sword_slash0-4.wav b/public/sounds/combat/sword_slash0-4.wav
index 82c10c6bf9..fc0eb6c0fa 100644
Binary files a/public/sounds/combat/sword_slash0-4.wav and b/public/sounds/combat/sword_slash0-4.wav differ
diff --git a/public/sounds/combat/sword_slash1-1.wav b/public/sounds/combat/sword_slash1-1.wav
index b48e2709e8..a378b3eaba 100644
Binary files a/public/sounds/combat/sword_slash1-1.wav and b/public/sounds/combat/sword_slash1-1.wav differ
diff --git a/public/sounds/combat/sword_slash1-2.wav b/public/sounds/combat/sword_slash1-2.wav
index d68aa212ab..928e797593 100644
Binary files a/public/sounds/combat/sword_slash1-2.wav and b/public/sounds/combat/sword_slash1-2.wav differ
diff --git a/public/sounds/combat/sword_slash1-3.wav b/public/sounds/combat/sword_slash1-3.wav
index 73070c09f3..b5b404a916 100644
Binary files a/public/sounds/combat/sword_slash1-3.wav and b/public/sounds/combat/sword_slash1-3.wav differ
diff --git a/public/sounds/combat/sword_slash1-4.wav b/public/sounds/combat/sword_slash1-4.wav
index 899088e671..064c2d3167 100644
Binary files a/public/sounds/combat/sword_slash1-4.wav and b/public/sounds/combat/sword_slash1-4.wav differ
diff --git a/public/sounds/combat/sword_slash2-1.wav b/public/sounds/combat/sword_slash2-1.wav
index b5da59e095..419cc15138 100644
Binary files a/public/sounds/combat/sword_slash2-1.wav and b/public/sounds/combat/sword_slash2-1.wav differ
diff --git a/public/sounds/combat/sword_slash2-2.wav b/public/sounds/combat/sword_slash2-2.wav
index 06997099d3..3a33db9138 100644
Binary files a/public/sounds/combat/sword_slash2-2.wav and b/public/sounds/combat/sword_slash2-2.wav differ
diff --git a/public/sounds/combat/sword_slash2-3.wav b/public/sounds/combat/sword_slash2-3.wav
index 00ad9fa0c8..6ce0c3c9f9 100644
Binary files a/public/sounds/combat/sword_slash2-3.wav and b/public/sounds/combat/sword_slash2-3.wav differ
diff --git a/public/sounds/combat/sword_slash2-4.wav b/public/sounds/combat/sword_slash2-4.wav
index 134dedd80b..d82b5ffd18 100644
Binary files a/public/sounds/combat/sword_slash2-4.wav and b/public/sounds/combat/sword_slash2-4.wav differ
diff --git a/public/sounds/combat/sword_slash3-1.wav b/public/sounds/combat/sword_slash3-1.wav
index d98aaa2705..4b375d471c 100644
Binary files a/public/sounds/combat/sword_slash3-1.wav and b/public/sounds/combat/sword_slash3-1.wav differ
diff --git a/public/sounds/combat/sword_slash3-2.wav b/public/sounds/combat/sword_slash3-2.wav
index c5e0a4b43c..c21fb48005 100644
Binary files a/public/sounds/combat/sword_slash3-2.wav and b/public/sounds/combat/sword_slash3-2.wav differ
diff --git a/public/sounds/combat/sword_slash3-3.wav b/public/sounds/combat/sword_slash3-3.wav
index 7433a4b43c..336909187a 100644
Binary files a/public/sounds/combat/sword_slash3-3.wav and b/public/sounds/combat/sword_slash3-3.wav differ
diff --git a/public/sounds/combat/sword_slash3-4.wav b/public/sounds/combat/sword_slash3-4.wav
index fa443dd779..69e77d5fb5 100644
Binary files a/public/sounds/combat/sword_slash3-4.wav and b/public/sounds/combat/sword_slash3-4.wav differ
diff --git a/public/sounds/navi/navi_danger3.wav b/public/sounds/navi/navi_danger3.wav
new file mode 100644
index 0000000000..c0f93dd918
Binary files /dev/null and b/public/sounds/navi/navi_danger3.wav differ
diff --git a/public/sounds/navi/navi_friendly1.wav b/public/sounds/navi/navi_friendly1.wav
new file mode 100644
index 0000000000..18e4195af4
Binary files /dev/null and b/public/sounds/navi/navi_friendly1.wav differ
diff --git a/public/sounds/navi/navi_hey1.wav b/public/sounds/navi/navi_hey1.wav
new file mode 100644
index 0000000000..9b88d17a7a
Binary files /dev/null and b/public/sounds/navi/navi_hey1.wav differ
diff --git a/public/sounds/navi/navi_item3.wav b/public/sounds/navi/navi_item3.wav
new file mode 100644
index 0000000000..b9b953de9f
Binary files /dev/null and b/public/sounds/navi/navi_item3.wav differ
diff --git a/public/sounds/navi/navi_watchout1.wav b/public/sounds/navi/navi_watchout1.wav
new file mode 100644
index 0000000000..c0fc298666
Binary files /dev/null and b/public/sounds/navi/navi_watchout1.wav differ
diff --git a/public/sounds/sound-files.json b/public/sounds/sound-files.json
index 5a2260b345..fe6fd928d6 100644
--- a/public/sounds/sound-files.json
+++ b/public/sounds/sound-files.json
@@ -55,1043 +55,1108 @@
"duration": 0.2206875
},
{
- "name": "combat/OOT_Carrot.wav",
+ "name": "combat/OOT_Bomb_Blow.wav",
"offset": 4.703625,
+ "duration": 1.591
+ },
+ {
+ "name": "combat/OOT_Bush_Cut.wav",
+ "offset": 6.294625,
+ "duration": 0.6845416666666667
+ },
+ {
+ "name": "combat/OOT_Bush_Pickup.wav",
+ "offset": 6.979166666666667,
+ "duration": 0.4748541666666667
+ },
+ {
+ "name": "combat/OOT_Bush_Walk.wav",
+ "offset": 7.454020833333334,
+ "duration": 1.521375
+ },
+ {
+ "name": "combat/OOT_Carrot.wav",
+ "offset": 8.975395833333334,
"duration": 0.28379166666666666
},
{
"name": "combat/OOT_Dialogue_Done.wav",
- "offset": 4.987416666666666,
+ "offset": 9.2591875,
"duration": 0.99875
},
{
"name": "combat/OOT_Dialogue_Next.wav",
- "offset": 5.986166666666667,
+ "offset": 10.257937499999999,
"duration": 0.53
},
{
"name": "combat/OOT_Dialogue_No.wav",
- "offset": 6.516166666666667,
+ "offset": 10.787937499999998,
"duration": 0.53
},
+ {
+ "name": "combat/OOT_Fanfare_Item.wav",
+ "offset": 11.317937499999998,
+ "duration": 2.6973125
+ },
+ {
+ "name": "combat/OOT_Fanfare_SmallItem.wav",
+ "offset": 14.015249999999998,
+ "duration": 2.762166666666667
+ },
+ {
+ "name": "combat/OOT_Fire.wav",
+ "offset": 16.777416666666664,
+ "duration": 3.329854166666667
+ },
+ {
+ "name": "combat/OOT_FireRing_Loop.wav",
+ "offset": 20.10727083333333,
+ "duration": 3.7475
+ },
+ {
+ "name": "combat/OOT_FireRing_Start.wav",
+ "offset": 23.85477083333333,
+ "duration": 1.323625
+ },
+ {
+ "name": "combat/OOT_FireWall_Loop.wav",
+ "offset": 25.17839583333333,
+ "duration": 1.20325
+ },
+ {
+ "name": "combat/OOT_FireWall_Start.wav",
+ "offset": 26.38164583333333,
+ "duration": 1.8316666666666668
+ },
+ {
+ "name": "combat/OOT_Fire_Flames.wav",
+ "offset": 28.213312499999997,
+ "duration": 4.5940625
+ },
+ {
+ "name": "combat/OOT_Fire_Ignite.wav",
+ "offset": 32.80737499999999,
+ "duration": 0.7415
+ },
+ {
+ "name": "combat/OOT_Get_Heart.wav",
+ "offset": 33.548874999999995,
+ "duration": 0.4118541666666667
+ },
+ {
+ "name": "combat/OOT_Get_SmallItem1.wav",
+ "offset": 33.96072916666666,
+ "duration": 0.9999791666666666
+ },
+ {
+ "name": "combat/OOT_Get_SmallItem2.wav",
+ "offset": 34.96070833333333,
+ "duration": 1.3153125
+ },
{
"name": "combat/OOT_Link_Item.wav",
- "offset": 7.046166666666667,
+ "offset": 36.27602083333333,
"duration": 0.41870833333333335
},
{
"name": "combat/OOT_Link_Item_Away.wav",
- "offset": 7.464875,
+ "offset": 36.69472916666666,
"duration": 0.33920833333333333
},
{
"name": "combat/OOT_Link_Roll_Wall.wav",
- "offset": 7.804083333333334,
+ "offset": 37.03393749999999,
"duration": 0.1666875
},
{
"name": "combat/OOT_MagicRefill.wav",
- "offset": 7.970770833333334,
+ "offset": 37.200624999999995,
"duration": 3.31125
},
{
"name": "combat/OOT_PauseMenu_Close.wav",
- "offset": 11.282020833333334,
+ "offset": 40.511874999999996,
"duration": 0.639375
},
{
"name": "combat/OOT_PauseMenu_Cursor.wav",
- "offset": 11.921395833333333,
+ "offset": 41.15125,
"duration": 0.3034375
},
{
"name": "combat/OOT_PauseMenu_Open.wav",
- "offset": 12.224833333333333,
+ "offset": 41.4546875,
"duration": 1.0925
},
{
"name": "combat/OOT_PauseMenu_Select.wav",
- "offset": 13.317333333333332,
+ "offset": 42.5471875,
"duration": 0.7175
},
{
"name": "combat/OOT_PauseMenu_Turn_Left.wav",
- "offset": 14.034833333333331,
+ "offset": 43.2646875,
"duration": 0.9210625
},
{
"name": "combat/OOT_PauseMenu_Turn_Right.wav",
- "offset": 14.955895833333331,
+ "offset": 44.18575,
"duration": 0.92025
},
+ {
+ "name": "combat/OOT_Sword_Away.wav",
+ "offset": 45.106,
+ "duration": 0.4455
+ },
+ {
+ "name": "combat/OOT_Sword_Charge.wav",
+ "offset": 45.551500000000004,
+ "duration": 5.5475
+ },
+ {
+ "name": "combat/OOT_Sword_Draw.wav",
+ "offset": 51.099000000000004,
+ "duration": 0.6045625
+ },
+ {
+ "name": "combat/OOT_Sword_Spin.wav",
+ "offset": 51.703562500000004,
+ "duration": 1.0582083333333334
+ },
+ {
+ "name": "combat/OOT_Sword_Spin_Magic1.wav",
+ "offset": 52.76177083333334,
+ "duration": 0.9169791666666667
+ },
+ {
+ "name": "combat/OOT_Sword_Spin_Magic2.wav",
+ "offset": 53.67875,
+ "duration": 1.4866041666666667
+ },
{
"name": "combat/OOT_ZTarget_Cancel.wav",
- "offset": 15.87614583333333,
+ "offset": 55.16535416666667,
"duration": 0.2573125
},
{
"name": "combat/OOT_ZTarget_Center1.wav",
- "offset": 16.13345833333333,
+ "offset": 55.422666666666665,
"duration": 0.6442083333333334
},
{
"name": "combat/OOT_ZTarget_Center2.wav",
- "offset": 16.777666666666665,
+ "offset": 56.066874999999996,
"duration": 0.6090833333333333
},
{
"name": "combat/OOT_ZTarget_Enemy.wav",
- "offset": 17.38675,
+ "offset": 56.67595833333333,
"duration": 1.03
},
{
"name": "combat/OOT_ZTarget_Object.wav",
- "offset": 18.41675,
+ "offset": 57.70595833333333,
"duration": 0.6206875
},
{
"name": "combat/Plant_Impact_1_v1.wav",
- "offset": 19.0374375,
+ "offset": 58.32664583333333,
"duration": 0.7164375
},
{
"name": "combat/Plant_Impact_1_v2.wav",
- "offset": 19.753875,
+ "offset": 59.04308333333333,
"duration": 0.8949375
},
{
"name": "combat/Plant_Impact_1_v3.wav",
- "offset": 20.648812500000002,
+ "offset": 59.938020833333326,
"duration": 0.849
},
{
"name": "combat/Plant_Impact_1_v4.wav",
- "offset": 21.497812500000002,
+ "offset": 60.78702083333332,
"duration": 0.7643333333333333
},
{
"name": "combat/Plant_Impact_1_v5.wav",
- "offset": 22.262145833333335,
+ "offset": 61.551354166666655,
"duration": 0.8252916666666666
},
{
"name": "combat/Plant_Impact_1_v6.wav",
- "offset": 23.0874375,
+ "offset": 62.37664583333332,
"duration": 0.908
},
{
"name": "combat/Punch_Type_1_Heavier_v1.wav",
- "offset": 23.9954375,
+ "offset": 63.28464583333332,
"duration": 0.33666666666666667
},
{
"name": "combat/Punch_Type_1_Heavier_v2.wav",
- "offset": 24.332104166666667,
+ "offset": 63.62131249999999,
"duration": 0.43866666666666665
},
{
"name": "combat/Punch_Type_1_Heavier_v3.wav",
- "offset": 24.770770833333334,
+ "offset": 64.05997916666665,
"duration": 0.41870833333333335
},
{
"name": "combat/Punch_Type_1_Heavier_v4.wav",
- "offset": 25.18947916666667,
+ "offset": 64.47868749999998,
"duration": 0.4801875
},
{
"name": "combat/Punch_Type_1_Light_v1.wav",
- "offset": 25.669666666666668,
+ "offset": 64.95887499999998,
"duration": 0.29004166666666664
},
{
"name": "combat/Punch_Type_1_Light_v2.wav",
- "offset": 25.959708333333335,
+ "offset": 65.24891666666664,
"duration": 0.3790208333333333
},
{
"name": "combat/Punch_Type_1_Light_v3.wav",
- "offset": 26.338729166666667,
+ "offset": 65.62793749999997,
"duration": 0.40547916666666667
},
{
"name": "combat/Punch_Type_1_Light_v4.wav",
- "offset": 26.744208333333333,
+ "offset": 66.03341666666664,
"duration": 0.46989583333333335
},
{
"name": "combat/Punch_Type_2_Heavy_v1.wav",
- "offset": 27.214104166666665,
+ "offset": 66.50331249999998,
"duration": 0.40779166666666666
},
{
"name": "combat/Punch_Type_2_Heavy_v2.wav",
- "offset": 27.621895833333333,
+ "offset": 66.91110416666665,
"duration": 0.44027083333333333
},
{
"name": "combat/Punch_Type_2_Heavy_v3.wav",
- "offset": 28.062166666666666,
+ "offset": 67.35137499999998,
"duration": 0.4231666666666667
},
{
"name": "combat/Punch_Type_2_Heavy_v4.wav",
- "offset": 28.485333333333333,
+ "offset": 67.77454166666664,
"duration": 0.4650208333333333
},
{
"name": "combat/Punch_Type_2_Light_v1.wav",
- "offset": 28.950354166666667,
+ "offset": 68.23956249999996,
"duration": 0.3397291666666667
},
{
"name": "combat/Punch_Type_2_Light_v2.wav",
- "offset": 29.290083333333335,
+ "offset": 68.57929166666663,
"duration": 0.2826666666666667
},
{
"name": "combat/Punch_Type_2_Light_v3.wav",
- "offset": 29.572750000000003,
+ "offset": 68.8619583333333,
"duration": 0.3018958333333333
},
{
"name": "combat/Punch_Type_2_Light_v4.wav",
- "offset": 29.874645833333336,
+ "offset": 69.16385416666664,
"duration": 0.40329166666666666
},
{
"name": "combat/Punch_Type_3_Brighter_v2.wav",
- "offset": 30.277937500000004,
+ "offset": 69.5671458333333,
"duration": 0.2878541666666667
},
{
"name": "combat/Punch_Type_3_Brighter_v3.wav",
- "offset": 30.56579166666667,
+ "offset": 69.85499999999996,
"duration": 0.3454375
},
{
"name": "combat/Punch_Type_3_Natural_v1.wav",
- "offset": 30.91122916666667,
+ "offset": 70.20043749999996,
"duration": 0.37597916666666664
},
{
"name": "combat/Punch_Type_3_Natural_v2.wav",
- "offset": 31.287208333333336,
+ "offset": 70.57641666666663,
"duration": 0.37597916666666664
},
{
"name": "combat/Punch_Type_3_Natural_v3.wav",
- "offset": 31.663187500000003,
+ "offset": 70.9523958333333,
"duration": 0.321375
},
{
"name": "combat/Ricochet1.wav",
- "offset": 31.984562500000003,
+ "offset": 71.2737708333333,
"duration": 1.1521666666666666
},
{
"name": "combat/Ricochet2.wav",
- "offset": 33.13672916666667,
+ "offset": 72.42593749999997,
"duration": 1.03
},
{
"name": "combat/Ricochet3.wav",
- "offset": 34.16672916666667,
+ "offset": 73.45593749999998,
"duration": 1.53
},
{
"name": "combat/Ricochet4.wav",
- "offset": 35.69672916666667,
+ "offset": 74.98593749999998,
"duration": 0.53
},
{
"name": "combat/Ricochet5.wav",
- "offset": 36.22672916666667,
+ "offset": 75.51593749999998,
"duration": 1.1550208333333334
},
{
"name": "combat/Ricochet6.wav",
- "offset": 37.381750000000004,
+ "offset": 76.67095833333332,
"duration": 1.0612708333333334
},
{
"name": "combat/Ricochet7.wav",
- "offset": 38.443020833333335,
+ "offset": 77.73222916666666,
"duration": 0.78
},
{
"name": "combat/Ricochet8.wav",
- "offset": 39.22302083333334,
+ "offset": 78.51222916666666,
"duration": 1.3425208333333334
},
{
"name": "combat/Subtle_Slash_1.wav",
- "offset": 40.56554166666667,
+ "offset": 79.85475,
"duration": 0.7135416666666666
},
{
"name": "combat/Subtle_Slash_2.wav",
- "offset": 41.27908333333333,
+ "offset": 80.56829166666667,
"duration": 0.5727708333333333
},
{
"name": "combat/Subtle_Slash_3.wav",
- "offset": 41.85185416666667,
+ "offset": 81.1410625,
"duration": 0.6279166666666667
},
{
"name": "combat/Subtle_Slash_4.wav",
- "offset": 42.47977083333333,
+ "offset": 81.76897916666667,
"duration": 0.47989583333333335
},
{
"name": "combat/Weapon_Whoosh_Low_1.wav",
- "offset": 42.959666666666664,
+ "offset": 82.248875,
"duration": 0.42472916666666666
},
{
"name": "combat/Weapon_Whoosh_Low_2.wav",
- "offset": 43.38439583333333,
+ "offset": 82.67360416666666,
"duration": 1.1677708333333334
},
{
"name": "combat/arrow-hit1.wav",
- "offset": 44.552166666666665,
+ "offset": 83.841375,
"duration": 0.2615
},
{
"name": "combat/arrow-hit2.wav",
- "offset": 44.81366666666666,
+ "offset": 84.102875,
"duration": 0.14485416666666667
},
+ {
+ "name": "combat/beep.wav",
+ "offset": 84.24772916666666,
+ "duration": 0.3600833333333333
+ },
+ {
+ "name": "combat/boop.wav",
+ "offset": 84.6078125,
+ "duration": 0.3913333333333333
+ },
{
"name": "combat/bow_draw.wav",
- "offset": 44.95852083333333,
+ "offset": 84.99914583333333,
"duration": 0.74875
},
{
"name": "combat/bow_release1.wav",
- "offset": 45.70727083333333,
+ "offset": 85.74789583333333,
"duration": 0.264375
},
{
"name": "combat/bow_release2.wav",
- "offset": 45.97164583333333,
+ "offset": 86.01227083333333,
"duration": 0.264375
},
{
"name": "combat/bow_release3.wav",
- "offset": 46.236020833333335,
+ "offset": 86.27664583333333,
"duration": 0.264375
},
{
"name": "combat/bow_release4.wav",
- "offset": 46.500395833333336,
+ "offset": 86.54102083333333,
"duration": 0.264375
},
{
"name": "combat/bow_release5.wav",
- "offset": 46.76477083333334,
+ "offset": 86.80539583333334,
"duration": 0.264375
},
{
"name": "combat/bow_release6.wav",
- "offset": 47.02914583333334,
+ "offset": 87.06977083333334,
"duration": 0.264375
},
{
"name": "combat/bow_release7.wav",
- "offset": 47.29352083333334,
+ "offset": 87.33414583333334,
"duration": 0.264375
},
{
"name": "combat/bow_release8.wav",
- "offset": 47.55789583333334,
+ "offset": 87.59852083333334,
"duration": 0.264375
},
{
"name": "combat/bow_release9.wav",
- "offset": 47.82227083333334,
+ "offset": 87.86289583333334,
"duration": 0.264375
},
{
"name": "combat/ff7_battle_transition.wav",
- "offset": 48.08664583333334,
+ "offset": 88.12727083333334,
"duration": 2.2415416666666665
},
{
"name": "combat/ff7_cursor_back.wav",
- "offset": 50.32818750000001,
+ "offset": 90.3688125,
"duration": 0.10210416666666666
},
{
"name": "combat/ff7_cursor_ready.wav",
- "offset": 50.430291666666676,
+ "offset": 90.47091666666667,
"duration": 0.42904166666666665
},
{
"name": "combat/ff7_cut.wav",
- "offset": 50.859333333333346,
+ "offset": 90.89995833333333,
"duration": 0.6117291666666667
},
{
"name": "combat/ff7_enemy_death.wav",
- "offset": 51.471062500000016,
+ "offset": 91.5116875,
"duration": 1.3713541666666667
},
{
"name": "combat/ff7_limit_break.wav",
- "offset": 52.842416666666686,
+ "offset": 92.88304166666666,
"duration": 1.7655833333333333
},
{
"name": "combat/ff7_magic.wav",
- "offset": 54.60800000000002,
+ "offset": 94.648625,
"duration": 2.1117291666666667
},
{
"name": "combat/ff7_save.wav",
- "offset": 56.71972916666668,
+ "offset": 96.76035416666666,
"duration": 0.6838541666666667
},
{
"name": "combat/ff8_click.wav",
- "offset": 57.40358333333335,
+ "offset": 97.44420833333332,
"duration": 0.16966666666666666
},
{
"name": "combat/ff8_convert.wav",
- "offset": 57.573250000000016,
+ "offset": 97.613875,
"duration": 0.5514166666666667
},
{
"name": "combat/ff8_item.wav",
- "offset": 58.124666666666684,
+ "offset": 98.16529166666666,
"duration": 0.8059166666666666
},
{
"name": "combat/ff8_junction.wav",
- "offset": 58.93058333333335,
+ "offset": 98.97120833333332,
"duration": 0.4241666666666667
},
{
"name": "combat/ff8_key_item.wav",
- "offset": 59.35475000000002,
+ "offset": 99.39537499999999,
"duration": 0.9331666666666667
},
{
"name": "combat/ff8_limit.wav",
- "offset": 60.28791666666668,
+ "offset": 100.32854166666665,
"duration": 1.8663333333333334
},
{
"name": "combat/ff8_limit_ready.wav",
- "offset": 62.15425000000002,
+ "offset": 102.19487499999998,
"duration": 0.63625
},
{
"name": "combat/ff8_menu_back.wav",
- "offset": 62.790500000000016,
+ "offset": 102.83112499999999,
"duration": 0.21208333333333335
},
{
"name": "combat/ff8_menu_ok.wav",
- "offset": 63.00258333333335,
+ "offset": 103.04320833333333,
"duration": 0.2545
},
{
"name": "combat/ff8_menu_open.wav",
- "offset": 63.25708333333335,
+ "offset": 103.29770833333332,
"duration": 1.3149166666666667
},
{
"name": "combat/ff8_menu_open2.wav",
- "offset": 64.57200000000002,
+ "offset": 104.61262499999998,
"duration": 1.2300833333333334
},
{
"name": "combat/ff8_menu_ready.wav",
- "offset": 65.80208333333336,
+ "offset": 105.84270833333332,
"duration": 0.46658333333333335
},
{
"name": "combat/ff8_notification.wav",
- "offset": 66.26866666666669,
+ "offset": 106.30929166666665,
"duration": 0.7635
},
{
"name": "combat/ff8_save.wav",
- "offset": 67.03216666666668,
+ "offset": 107.07279166666665,
"duration": 0.46658333333333335
},
{
"name": "combat/ff8_sword.wav",
- "offset": 67.49875000000002,
+ "offset": 107.53937499999998,
"duration": 0.8483333333333334
},
{
"name": "combat/ff8_sword_critical.wav",
- "offset": 68.34708333333334,
+ "offset": 108.38770833333331,
"duration": 0.63625
},
{
"name": "combat/rifle.wav",
- "offset": 68.98333333333335,
+ "offset": 109.02395833333331,
"duration": 0.814125
},
{
"name": "combat/sword_slash0-1.wav",
- "offset": 69.79745833333335,
+ "offset": 109.83808333333332,
"duration": 0.53
},
{
"name": "combat/sword_slash0-2.wav",
- "offset": 70.32745833333335,
+ "offset": 110.36808333333332,
"duration": 0.53
},
{
"name": "combat/sword_slash0-3.wav",
- "offset": 70.85745833333335,
+ "offset": 110.89808333333332,
"duration": 0.53
},
{
"name": "combat/sword_slash0-4.wav",
- "offset": 71.38745833333336,
+ "offset": 111.42808333333332,
"duration": 0.53
},
{
"name": "combat/sword_slash1-1.wav",
- "offset": 71.91745833333336,
+ "offset": 111.95808333333332,
"duration": 0.405
},
{
"name": "combat/sword_slash1-2.wav",
- "offset": 72.32245833333336,
+ "offset": 112.36308333333332,
"duration": 0.405
},
{
"name": "combat/sword_slash1-3.wav",
- "offset": 72.72745833333336,
+ "offset": 112.76808333333332,
"duration": 0.405
},
{
"name": "combat/sword_slash1-4.wav",
- "offset": 73.13245833333336,
+ "offset": 113.17308333333332,
"duration": 0.405
},
{
"name": "combat/sword_slash2-1.wav",
- "offset": 73.53745833333336,
+ "offset": 113.57808333333332,
"duration": 0.37375
},
{
"name": "combat/sword_slash2-2.wav",
- "offset": 73.91120833333336,
+ "offset": 113.95183333333333,
"duration": 0.37375
},
{
"name": "combat/sword_slash2-3.wav",
- "offset": 74.28495833333336,
+ "offset": 114.32558333333333,
"duration": 0.37375
},
{
"name": "combat/sword_slash2-4.wav",
- "offset": 74.65870833333337,
+ "offset": 114.69933333333333,
"duration": 0.37375
},
{
"name": "combat/sword_slash3-1.wav",
- "offset": 75.03245833333337,
+ "offset": 115.07308333333333,
"duration": 0.3425
},
{
"name": "combat/sword_slash3-2.wav",
- "offset": 75.37495833333337,
+ "offset": 115.41558333333333,
"duration": 0.3425
},
{
"name": "combat/sword_slash3-3.wav",
- "offset": 75.71745833333337,
+ "offset": 115.75808333333333,
"duration": 0.3425
},
{
"name": "combat/sword_slash3-4.wav",
- "offset": 76.05995833333337,
+ "offset": 116.10058333333333,
"duration": 0.3425
},
{
"name": "food/HP_potion.wav",
- "offset": 76.40245833333337,
+ "offset": 116.44308333333333,
"duration": 1.05675
},
{
"name": "food/MP_Potion.wav",
- "offset": 77.45920833333336,
+ "offset": 117.49983333333333,
"duration": 1.26075
},
{
"name": "food/chomp1.wav",
- "offset": 78.71995833333337,
+ "offset": 118.76058333333333,
"duration": 0.18627083333333333
},
{
"name": "food/chomp2.wav",
- "offset": 78.9062291666667,
+ "offset": 118.94685416666667,
"duration": 0.18627083333333333
},
{
"name": "food/chomp3.wav",
- "offset": 79.09250000000004,
+ "offset": 119.133125,
"duration": 0.18627083333333333
},
{
"name": "food/gulp1.wav",
- "offset": 79.27877083333338,
+ "offset": 119.31939583333335,
"duration": 0.43627083333333333
},
{
"name": "food/gulp2.wav",
- "offset": 79.71504166666672,
+ "offset": 119.75566666666668,
"duration": 0.43627083333333333
},
{
"name": "food/gulp3.wav",
- "offset": 80.15131250000006,
+ "offset": 120.19193750000002,
"duration": 0.43627083333333333
},
{
"name": "jump/jump1.wav",
- "offset": 80.5875833333334,
+ "offset": 120.62820833333336,
"duration": 0.7415416666666667
},
{
"name": "jump/jump2.wav",
- "offset": 81.32912500000006,
+ "offset": 121.36975000000002,
"duration": 0.5444166666666667
},
{
"name": "jump/jump3.wav",
- "offset": 81.87354166666672,
+ "offset": 121.91416666666669,
"duration": 0.539625
},
{
"name": "land/land1.wav",
- "offset": 82.41316666666673,
+ "offset": 122.45379166666669,
"duration": 1.4060208333333333
},
{
"name": "land/land2.wav",
- "offset": 83.81918750000006,
+ "offset": 123.85981250000002,
"duration": 1.2353541666666668
},
{
"name": "land/land3.wav",
- "offset": 85.05454166666672,
+ "offset": 125.09516666666669,
"duration": 1.664375
},
{
"name": "narutoRun/narutoRun1.wav",
- "offset": 86.71891666666673,
+ "offset": 126.75954166666669,
"duration": 0.6128958333333333
},
{
"name": "narutoRun/narutoRun10.wav",
- "offset": 87.33181250000007,
+ "offset": 127.37243750000003,
"duration": 0.5894583333333333
},
{
"name": "narutoRun/narutoRun11.wav",
- "offset": 87.92127083333341,
+ "offset": 127.96189583333337,
"duration": 0.5600416666666667
},
{
"name": "narutoRun/narutoRun12.wav",
- "offset": 88.48131250000007,
+ "offset": 128.52193750000004,
"duration": 0.5938958333333333
},
{
"name": "narutoRun/narutoRun2.wav",
- "offset": 89.0752083333334,
+ "offset": 129.11583333333337,
"duration": 0.5762083333333333
},
{
"name": "narutoRun/narutoRun3.wav",
- "offset": 89.65141666666673,
+ "offset": 129.6920416666667,
"duration": 0.582625
},
{
"name": "narutoRun/narutoRun4.wav",
- "offset": 90.23404166666673,
+ "offset": 130.27466666666672,
"duration": 0.5662083333333333
},
{
"name": "narutoRun/narutoRun5.wav",
- "offset": 90.80025000000006,
+ "offset": 130.84087500000004,
"duration": 0.5749166666666666
},
{
"name": "narutoRun/narutoRun6.wav",
- "offset": 91.37516666666673,
+ "offset": 131.4157916666667,
"duration": 0.576
},
{
"name": "narutoRun/narutoRun7.wav",
- "offset": 91.95116666666672,
+ "offset": 131.9917916666667,
"duration": 0.57525
},
{
"name": "narutoRun/narutoRun8.wav",
- "offset": 92.52641666666672,
+ "offset": 132.5670416666667,
"duration": 0.5814583333333333
},
{
"name": "narutoRun/narutoRun9.wav",
- "offset": 93.10787500000005,
+ "offset": 133.14850000000004,
"duration": 0.5692291666666667
},
+ {
+ "name": "navi/navi_danger3.wav",
+ "offset": 133.71772916666671,
+ "duration": 0.576875
+ },
+ {
+ "name": "navi/navi_friendly1.wav",
+ "offset": 134.29460416666672,
+ "duration": 0.576875
+ },
+ {
+ "name": "navi/navi_hey1.wav",
+ "offset": 134.87147916666672,
+ "duration": 0.5549791666666667
+ },
+ {
+ "name": "navi/navi_item3.wav",
+ "offset": 135.4264583333334,
+ "duration": 0.56125
+ },
+ {
+ "name": "navi/navi_watchout1.wav",
+ "offset": 135.9877083333334,
+ "duration": 0.71125
+ },
{
"name": "run/run1.wav",
- "offset": 93.67710416666672,
+ "offset": 136.6989583333334,
"duration": 0.3978541666666667
},
{
"name": "run/run10.wav",
- "offset": 94.07495833333338,
+ "offset": 137.09681250000006,
"duration": 0.3498541666666667
},
{
"name": "run/run11.wav",
- "offset": 94.42481250000004,
+ "offset": 137.44666666666672,
"duration": 0.3336875
},
{
"name": "run/run12.wav",
- "offset": 94.75850000000004,
+ "offset": 137.7803541666667,
"duration": 0.34029166666666666
},
{
"name": "run/run2.wav",
- "offset": 95.09879166666671,
+ "offset": 138.12064583333338,
"duration": 0.3670833333333333
},
{
"name": "run/run3.wav",
- "offset": 95.46587500000004,
+ "offset": 138.48772916666672,
"duration": 0.3517708333333333
},
{
"name": "run/run4.wav",
- "offset": 95.81764583333337,
+ "offset": 138.83950000000007,
"duration": 0.354375
},
{
"name": "run/run5.wav",
- "offset": 96.17202083333338,
+ "offset": 139.19387500000008,
"duration": 0.3444583333333333
},
{
"name": "run/run6.wav",
- "offset": 96.51647916666671,
+ "offset": 139.5383333333334,
"duration": 0.3345208333333333
},
{
"name": "run/run7.wav",
- "offset": 96.85100000000004,
+ "offset": 139.87285416666674,
"duration": 0.3349375
},
{
"name": "run/run8.wav",
- "offset": 97.18593750000004,
+ "offset": 140.20779166666674,
"duration": 0.3460625
},
{
"name": "run/run9.wav",
- "offset": 97.53200000000004,
+ "offset": 140.55385416666672,
"duration": 0.3280625
},
{
"name": "silkWorms/worm_attack.wav",
- "offset": 97.86006250000004,
+ "offset": 140.8819166666667,
"duration": 0.5035833333333334
},
{
"name": "silkWorms/worm_biterattack.wav",
- "offset": 98.36364583333338,
+ "offset": 141.38550000000004,
"duration": 0.8425
},
{
"name": "silkWorms/worm_biterdie.wav",
- "offset": 99.20614583333338,
+ "offset": 142.22800000000004,
"duration": 0.6926666666666667
},
{
"name": "silkWorms/worm_bloaterattack.wav",
- "offset": 99.89881250000005,
+ "offset": 142.9206666666667,
"duration": 0.8357083333333334
},
{
"name": "silkWorms/worm_bloaterdie.wav",
- "offset": 100.73452083333338,
+ "offset": 143.75637500000005,
"duration": 0.7175
},
{
"name": "silkWorms/worm_die.wav",
- "offset": 101.45202083333338,
+ "offset": 144.47387500000005,
"duration": 0.4675
},
{
"name": "silkWorms/worm_queenattack.wav",
- "offset": 101.91952083333338,
+ "offset": 144.94137500000005,
"duration": 0.78
},
{
"name": "silkWorms/worm_queendie.wav",
- "offset": 102.69952083333338,
+ "offset": 145.72137500000005,
"duration": 2.405
},
{
"name": "silkWorms/worm_runnerattack.wav",
- "offset": 105.10452083333338,
+ "offset": 148.12637500000005,
"duration": 0.905
},
{
"name": "silkWorms/worm_runnerdie.wav",
- "offset": 106.00952083333338,
+ "offset": 149.03137500000005,
"duration": 0.74875
},
{
"name": "silkWorms/worm_slasherattack.wav",
- "offset": 106.75827083333338,
+ "offset": 149.78012500000006,
"duration": 0.78
},
{
"name": "silkWorms/worm_slasherdie.wav",
- "offset": 107.53827083333339,
+ "offset": 150.56012500000006,
"duration": 0.7175
},
{
"name": "sonicBoom/SonicBoomBoom.wav",
- "offset": 108.25577083333339,
+ "offset": 151.27762500000006,
"duration": 0.94875
},
{
"name": "sonicBoom/SonicBoomStop.wav",
- "offset": 109.20452083333339,
+ "offset": 152.22637500000005,
"duration": 0.6185833333333334
},
{
"name": "sonicBoom/SonicBoomTrail.wav",
- "offset": 109.82310416666672,
+ "offset": 152.84495833333338,
"duration": 7.53
},
{
"name": "sonicBoom/SonicBoomTurn.wav",
- "offset": 117.35310416666672,
+ "offset": 160.37495833333338,
"duration": 1.0533125
},
{
"name": "spells/Buff_Shield_02.wav",
- "offset": 118.40641666666673,
+ "offset": 161.42827083333339,
"duration": 0.9820208333333333
},
{
"name": "spells/Charging_Punch_One_Shot_v1.wav",
- "offset": 119.38843750000007,
+ "offset": 162.41029166666672,
"duration": 0.8101875
},
{
"name": "spells/Charging_Punch_One_Shot_v2.wav",
- "offset": 120.19862500000006,
+ "offset": 163.22047916666673,
"duration": 0.707125
},
{
"name": "spells/Charging_Punch_One_Shot_v3.wav",
- "offset": 120.90575000000007,
+ "offset": 163.92760416666673,
"duration": 0.7878333333333334
},
{
"name": "spells/Heal_Dark_01.wav",
- "offset": 121.69358333333341,
+ "offset": 164.71543750000006,
"duration": 2.3403958333333335
},
{
"name": "spells/Heal_Dark_02.wav",
- "offset": 124.03397916666674,
+ "offset": 167.0558333333334,
"duration": 2.9499166666666667
},
{
"name": "spells/Heal_Small_01.wav",
- "offset": 126.9838958333334,
+ "offset": 170.00575000000006,
"duration": 1.6553958333333334
},
{
"name": "spells/Heal_Small_02.wav",
- "offset": 128.63929166666674,
+ "offset": 171.6611458333334,
"duration": 1.7831041666666667
},
{
"name": "spells/Heal_Small_03.wav",
- "offset": 130.4223958333334,
+ "offset": 173.44425000000007,
"duration": 1.5857291666666666
},
{
"name": "spells/Heal_Small_04_1.wav",
- "offset": 132.00812500000006,
+ "offset": 175.02997916666672,
"duration": 1.968875
},
{
"name": "spells/Heal_Small_04_2.wav",
- "offset": 133.97700000000006,
+ "offset": 176.99885416666672,
"duration": 1.7482708333333334
},
{
"name": "spells/S2_Big_End_Impact_1.wav",
- "offset": 135.72527083333338,
+ "offset": 178.74712500000004,
"duration": 2.5455833333333335
},
{
"name": "spells/S2_Big_End_Impact_2.wav",
- "offset": 138.2708541666667,
+ "offset": 181.29270833333337,
"duration": 1.5786666666666667
},
- {
- "name": "ui/GUI_Notification 07 1.wav",
- "offset": 139.84952083333337,
- "duration": 0.5198541666666666
- },
- {
- "name": "ui/GUI_Notification 09 1.wav",
- "offset": 140.36937500000005,
- "duration": 0.42375
- },
- {
- "name": "ui/GUI_Notification 14 1.wav",
- "offset": 140.79312500000006,
- "duration": 2.5565625
- },
- {
- "name": "ui/GUI_Notification 16 1.wav",
- "offset": 143.34968750000007,
- "duration": 0.489375
- },
- {
- "name": "ui/GUI_Scroll Sound 27 1.wav",
- "offset": 143.83906250000007,
- "duration": 0.11725
- },
- {
- "name": "ui/GUI_Swipe 06 1.wav",
- "offset": 143.95631250000008,
- "duration": 0.489375
- },
- {
- "name": "ui/GUI_Swipe 07 1.wav",
- "offset": 144.44568750000008,
- "duration": 0.489375
- },
- {
- "name": "ui/GUI_Swipe 08 1.wav",
- "offset": 144.93506250000007,
- "duration": 0.489375
- },
- {
- "name": "ui/GUI_Swipe 09 1.wav",
- "offset": 145.42443750000007,
- "duration": 0.489375
- },
- {
- "name": "ui/GUI_Swipe 10 1.wav",
- "offset": 145.91381250000006,
- "duration": 0.5467916666666667
- },
- {
- "name": "ui/GUI_Swipe 11 1.wav",
- "offset": 146.46060416666674,
- "duration": 0.5467916666666667
- },
- {
- "name": "ui/GUI_Transition 03.wav",
- "offset": 147.00739583333342,
- "duration": 0.489375
- },
- {
- "name": "ui/GUI_Transition 11.wav",
- "offset": 147.49677083333341,
- "duration": 0.6329375
- },
- {
- "name": "ui/UI_Button_Select.wav",
- "offset": 148.1297083333334,
- "duration": 1.0581041666666666
- },
- {
- "name": "ui/UI_Error.wav",
- "offset": 149.1878125000001,
- "duration": 0.34725
- },
- {
- "name": "ui/UI_Get_Item.wav",
- "offset": 149.5350625000001,
- "duration": 0.5
- },
{
"name": "walk/walk1.wav",
- "offset": 150.0350625000001,
+ "offset": 182.87137500000003,
"duration": 0.6793541666666667
},
{
"name": "walk/walk10.wav",
- "offset": 150.71441666666675,
+ "offset": 183.55072916666668,
"duration": 0.7184583333333333
},
{
"name": "walk/walk11.wav",
- "offset": 151.43287500000008,
+ "offset": 184.26918750000002,
"duration": 0.665
},
{
"name": "walk/walk12.wav",
- "offset": 152.09787500000007,
+ "offset": 184.9341875,
"duration": 0.6535416666666667
},
{
"name": "walk/walk2.wav",
- "offset": 152.75141666666673,
+ "offset": 185.58772916666666,
"duration": 0.7319166666666667
},
{
"name": "walk/walk3.wav",
- "offset": 153.4833333333334,
+ "offset": 186.31964583333334,
"duration": 0.6551666666666667
},
{
"name": "walk/walk4.wav",
- "offset": 154.13850000000008,
+ "offset": 186.9748125,
"duration": 0.6797083333333334
},
{
"name": "walk/walk5.wav",
- "offset": 154.81820833333342,
+ "offset": 187.65452083333335,
"duration": 0.6698958333333334
},
{
"name": "walk/walk6.wav",
- "offset": 155.48810416666674,
+ "offset": 188.32441666666668,
"duration": 0.653875
},
{
"name": "walk/walk7.wav",
- "offset": 156.14197916666674,
+ "offset": 188.97829166666668,
"duration": 0.6346666666666667
},
{
"name": "walk/walk8.wav",
- "offset": 156.77664583333342,
+ "offset": 189.61295833333335,
"duration": 0.6982291666666667
},
{
"name": "walk/walk9.wav",
- "offset": 157.47487500000008,
+ "offset": 190.31118750000002,
"duration": 0.6119166666666667
}
]
diff --git a/public/sounds/sounds.mp3 b/public/sounds/sounds.mp3
index cc53c9512b..0871c11091 100644
Binary files a/public/sounds/sounds.mp3 and b/public/sounds/sounds.mp3 differ
diff --git a/raycast-manager.js b/raycast-manager.js
new file mode 100644
index 0000000000..8169950d86
--- /dev/null
+++ b/raycast-manager.js
@@ -0,0 +1,200 @@
+import * as THREE from 'three';
+import {getRenderer, camera} from './renderer.js';
+import cameraManager from './camera-manager.js';
+import {world} from './world.js';
+// import physx from './physx.js';
+import physicsManager from './physics-manager.js';
+import domRenderer from './dom-renderer.jsx';
+import transformControls from './transform-controls.js';
+
+const localVector = new THREE.Vector3();
+const localQuaternion = new THREE.Quaternion();
+
+//
+
+const physicsScene = physicsManager.getScene();
+
+//
+
+class FakeMouseEvent {
+ constructor(clientX = 0, clientY = 0, deltaX = 0, deltaY = 0, inside = false) {
+ this.clientX = clientX;
+ this.clientY = clientY;
+ this.deltaX = deltaX;
+ this.deltaY = deltaY;
+ this.inside = inside;
+ }
+}
+class Collision {
+ constructor() {
+ this.app = null;
+ this.physicsObject = null;
+ this.physicsId = null;
+ this.point = new THREE.Vector3();
+ this.valid = false;
+ }
+ set(app, physicsObject, physicsId, point) {
+ this.app = app;
+ this.physicsObject = physicsObject;
+ this.physicsId = physicsId;
+ point && this.point.copy(point);
+ this.valid = !!app;
+ }
+}
+
+class RaycastManager extends EventTarget {
+ constructor() {
+ super();
+
+ this.lastMouseEvent = new FakeMouseEvent();
+ this.collision = new Collision();
+ this.lastDomHover = false;
+ }
+ getLastMouseEvent() {
+ return this.lastMouseEvent;
+ }
+ setLastMouseEvent(e) {
+ if (e) {
+ this.lastMouseEvent.clientX = e.clientX;
+ this.lastMouseEvent.clientY = e.clientY;
+ this.lastMouseEvent.deltaX = e.deltaX;
+ this.lastMouseEvent.deltaY = e.deltaY;
+ this.lastMouseEvent.inside = true;
+ } else {
+ this.lastMouseEvent.inside = false;
+ }
+ }
+ getMouseRaycaster = (() => {
+ const localVector2D = new THREE.Vector2();
+ const localVector2D2 = new THREE.Vector2();
+ const localRaycaster = new THREE.Raycaster();
+
+ return function(e = this.lastMouseEvent) {
+ const {clientX, clientY} = e;
+ const renderer = getRenderer();
+ if (renderer) {
+ renderer.getSize(localVector2D2);
+ localVector2D.set(
+ (clientX / localVector2D2.x) * 2 - 1,
+ -(clientY / localVector2D2.y) * 2 + 1
+ );
+ if (
+ localVector2D.x >= -1 && localVector2D.x <= 1 &&
+ localVector2D.y >= -1 && localVector2D.y <= 1
+ ) {
+ /*const result = */localRaycaster.setFromCamera(localVector2D, camera);
+ // console.log('return raycaster', result);
+ return localRaycaster;
+ } else {
+ // console.log('out of range');
+ return null;
+ }
+ } else {
+ // console.log('no renderer');
+ return null;
+ }
+ };
+ })();
+ getCenterEvent = (() =>{
+ const fakeCenterEvent = new FakeMouseEvent();
+ const localVector2D2 = new THREE.Vector2();
+
+ return function() {
+ const renderer = getRenderer();
+ if (renderer) {
+ const size = renderer.getSize(localVector2D2);
+ fakeCenterEvent.clientX = size.width / 2;
+ fakeCenterEvent.clientY = size.height / 2;
+ return fakeCenterEvent;
+ } else {
+ return null;
+ }
+ };
+ })();
+ getCollision() {
+ return this.collision.valid ? this.collision : null;
+ }
+ update() {
+ // console.log('update');
+
+ // try {
+
+ const mouseEvent = cameraManager.pointerLockElement ? this.getCenterEvent() : this.lastMouseEvent;
+
+ let mouseHoverApp = null;
+ let mouseHoverPhysicsObject = null;
+ // let mouseSelectedObject = null;
+ let mouseHoverPhysicsId = 0;
+ // let htmlHover = false;
+ let domHover = false;
+
+ domRenderer.onBeforeRaycast();
+
+ const raycaster = this.getMouseRaycaster(mouseEvent);
+ let point = null;
+ if (raycaster) {
+ transformControls.handleMouseMove(raycaster);
+
+ const position = raycaster.ray.origin;
+ const quaternion = localQuaternion.setFromUnitVectors(
+ localVector.set(0, 0, -1),
+ raycaster.ray.direction
+ );
+
+ const result = physicsScene.raycast(position, quaternion);
+ if (result) {
+ // console.log('raycast', result);
+
+ // check world apps
+ const pair = world.appManager.getPairByPhysicsId(result.objectId);
+ if (pair) {
+ const [app, physicsObject] = pair;
+ point = localVector.fromArray(result.point);
+
+ /* if (object.isHtml) {
+ htmlHover = true;
+ } else { */
+ // if (game.hoverEnabled) {
+ mouseHoverApp = app;
+ mouseHoverPhysicsObject = physicsObject;
+ mouseHoverPhysicsId = result.objectId;
+ // }
+ // }
+ } else {
+ // check dom renderer
+ const object = domRenderer.getPhysicsObjects().find(o => o.physicsId === result.objectId);
+ if (object) {
+ // console.log('got dom renderer object hit', object);
+ // XXX
+ domHover = true;
+ }
+ }
+ }
+
+ domRenderer.onAfterRaycast();
+ } /* else {
+ console.log('no result');
+ } */
+ this.collision.set(mouseHoverApp, mouseHoverPhysicsObject, mouseHoverPhysicsId, point);
+ /* const renderer = getRenderer();
+ if (htmlHover) {
+ renderer.domElement.classList.add('hover');
+ } else {
+ renderer.domElement.classList.remove('hover');
+ } */
+
+ // } catch (e) {
+ // debugger;
+ // }
+ if (domHover !== this.lastDomHover) {
+ this.dispatchEvent(new MessageEvent('domhoverchange', {
+ data: {
+ domHover,
+ },
+ }));
+ this.lastDomHover = domHover;
+ }
+ }
+}
+const raycastManager = new RaycastManager();
+export default raycastManager;
\ No newline at end of file
diff --git a/renderer.js b/renderer.js
index 151edd093d..9740eab09b 100644
--- a/renderer.js
+++ b/renderer.js
@@ -87,6 +87,10 @@ const sceneHighPriority = new THREE.Scene();
sceneHighPriority.name = 'highPriorioty';
const sceneLowPriority = new THREE.Scene();
sceneLowPriority.name = 'lowPriorioty';
+const sceneLowerPriority = new THREE.Scene();
+sceneLowerPriority.name = 'lowerPriorioty';
+const sceneLowestPriority = new THREE.Scene();
+sceneLowestPriority.name = 'lowestPriorioty';
const rootScene = new THREE.Scene();
rootScene.name = 'root';
rootScene.autoUpdate = false;
@@ -97,6 +101,8 @@ rootScene.autoUpdate = false;
rootScene.add(sceneHighPriority);
rootScene.add(scene);
rootScene.add(sceneLowPriority);
+rootScene.add(sceneLowerPriority);
+rootScene.add(sceneLowestPriority);
// const orthographicScene = new THREE.Scene();
// const avatarScene = new THREE.Scene();
@@ -223,6 +229,8 @@ export {
/*orbitControls, renderer2,*/
sceneHighPriority,
sceneLowPriority,
+ sceneLowerPriority,
+ sceneLowestPriority,
// iframeContainer,
// iframeContainer2,
// appManager,
diff --git a/scene-cruncher.js b/scene-cruncher.js
index 1425a964d0..8e44220ebd 100644
--- a/scene-cruncher.js
+++ b/scene-cruncher.js
@@ -2,7 +2,7 @@ import * as THREE from 'three';
import {getRenderer} from './renderer.js';
import renderSettingsManager from './rendersettings-manager.js';
import {WebaverseShaderMaterial} from './materials.js';
-import {localPlayer} from './players.js';
+import {getLocalPlayer} from './players.js';
import physicsManager from './physics-manager.js';
const localVector = new THREE.Vector3();
@@ -382,6 +382,7 @@ export function snapshotMapChunk(
) {
const worldDepthResolutionP3 = worldDepthResolution.clone().add(new THREE.Vector2(3, 3));
const worldDepthVoxelSize = new THREE.Vector2(worldSize.x, worldSize.y).divide(worldDepthResolution);
+ const localPlayer = getLocalPlayer();
const _makeMesh = (position, quaternion, ethers) => {
const colorRenderTarget = new THREE.WebGLRenderTarget(
diff --git a/scenes/battalion.scn b/scenes/battalion.scn
index 9604d82a05..4072fa8732 100644
--- a/scenes/battalion.scn
+++ b/scenes/battalion.scn
@@ -74,17 +74,13 @@
0,
0
],
- "start_url": "/avatars/drake_hacker_v3_vian.vrm",
- "components": [
- {
- "key": "npc",
- "value": {
- "name": "Drake",
- "voice": "Shining Armor",
- "bio": "His nickname is DRK. 15/M hacker. Loves guns. Likes plotting new hacks. He has the best equipment and is always ready for a fight."
- }
- }
- ]
+ "type": "application/npc",
+ "content": {
+ "name": "Drake",
+ "avatarUrl": "/avatars/drake_hacker_v3_vian.vrm",
+ "voice": "Shining Armor",
+ "bio": "His nickname is DRK. 15/M hacker. Loves guns. Likes plotting new hacks. He has the best equipment and is always ready for a fight."
+ }
},
{
"position": [
diff --git a/scenes/hangout.scn b/scenes/hangout.scn
index aabb20be81..8658531cfe 100644
--- a/scenes/hangout.scn
+++ b/scenes/hangout.scn
@@ -134,17 +134,13 @@
0,
1
],
- "start_url": "/avatars/scillia_drophunter_v15_vian.vrm",
- "components": [
- {
- "key": "npc",
- "value": {
- "name": "Scillia",
- "voice": "Sweetie Belle",
- "bio": "Her nickname is Scilly or SLY. 13/F drop hunter. She is an adventurer, swordfighter and fan of potions. She is exceptionally skilled and can go Super Saiyan."
- }
- }
- ]
+ "type": "application/npc",
+ "content": {
+ "name": "Scillia",
+ "avatarUrl": "/avatars/scillia_drophunter_v15_vian.vrm",
+ "voice": "Sweetie Belle",
+ "bio": "Her nickname is Scilly or SLY. 13/F drop hunter. She is an adventurer, swordfighter and fan of potions. She is exceptionally skilled and can go Super Saiyan."
+ }
},
{
"position": [
@@ -158,17 +154,13 @@
0,
1
],
- "start_url": "/avatars/drake_hacker_v3_vian.vrm",
- "components": [
- {
- "key": "npc",
- "value": {
- "name": "Drake",
- "voice": "Shining Armor",
- "bio": "His nickname is DRK. 15/M hacker. Loves guns. Likes plotting new hacks. He has the best equipment and is always ready for a fight."
- }
- }
- ]
+ "type": "application/npc",
+ "content": {
+ "name": "Drake",
+ "avatarUrl": "/avatars/drake_hacker_v3_vian.vrm",
+ "voice": "Shining Armor",
+ "bio": "His nickname is DRK. 15/M hacker. Loves guns. Likes plotting new hacks. He has the best equipment and is always ready for a fight."
+ }
},
{
"position": [
@@ -182,17 +174,13 @@
0,
1
],
- "start_url": "/avatars/hya_influencer_v2_vian.vrm",
- "components": [
- {
- "key": "npc",
- "value": {
- "name": "Hyacinth",
- "voice": "Maud Pie",
- "bio": "Scillia's mentor. 15/F beast tamer. She is quite famous."
- }
- }
- ]
+ "type": "application/npc",
+ "content": {
+ "name": "Hyacinth",
+ "avatarUrl": "/avatars/hya_influencer_v2_vian.vrm",
+ "voice": "Maud Pie",
+ "bio": "Scillia's mentor. 15/F beast tamer. She is quite famous."
+ }
},
{
"position": [
@@ -206,17 +194,13 @@
0,
1
],
- "start_url": "/avatars/jun_engineer_v1_vian.vrm",
- "components": [
- {
- "key": "npc",
- "value": {
- "name": "Juniper",
- "voice": "Cadance",
- "bio": "She is an engineer. 17/F engineer. She is new on the street."
- }
- }
- ]
+ "type": "application/npc",
+ "content": {
+ "name": "Juniper",
+ "avatarUrl": "/avatars/jun_engineer_v1_vian.vrm",
+ "voice": "Cadance",
+ "bio": "She is an engineer. 17/F engineer. She is new on the street."
+ }
},
{
"position": [
diff --git a/scenes/street.scn b/scenes/street.scn
index f9181b1156..effba55c9c 100644
--- a/scenes/street.scn
+++ b/scenes/street.scn
@@ -15,6 +15,16 @@
"position": [1, 2, 3]
}
},
+ {
+ "type": "application/wind",
+ "content": {
+ "windType": "directional",
+ "direction": [-1, 0, 0],
+ "windForce": 0.5,
+ "noiseScale": 1,
+ "windFrequency": 1
+ }
+ },
{
"position": [
0,
@@ -75,8 +85,18 @@
0,
0.7071067811865475
],
- "start_url": "https://avatar-models.exokit.org/model49.vrm",
- "dynamic": true
+ "type": "application/npc",
+ "content": {
+ "name": "Ann",
+ "avatarUrl": "/avatars/ann.vrm",
+ "voice": "Maud Pie",
+ "bio": "13/F Lisk Witch (black mage). She is 100% quirky and is always creating crazy new potions. She has a dark streak and is known to torment her teachers when they give her bad grades.",
+ "wear": [
+ {
+ "start_url": "https://webaverse.github.io/character-stats-banner/"
+ }
+ ]
+ }
},
{
"position": [
diff --git a/scripts/build-megatexture-atlas.sh b/scripts/build-megatexture-atlas.sh
new file mode 100644
index 0000000000..b23a8c7810
--- /dev/null
+++ b/scripts/build-megatexture-atlas.sh
@@ -0,0 +1,13 @@
+# run processes and store pids in array
+for f in "Base_Color.png" "Emissive.png"; do
+ ~/app/bin/basisu "$f" -ktx2 -mipmap -q 255 -comp_level 3 &
+done
+for f in "Normal.png"; do
+ ~/app/bin/basisu "$f" -ktx2 -mipmap -normal_map -q 255 -comp_level 3 &
+done
+for f in "Height.png" "Roughness.png" "Ambient_Occlusion.png"; do
+ ~/app/bin/basisu "$f" -ktx2 -mipmap -linear -q 255 -comp_level 3 &
+done
+
+# wait for all pids
+wait
diff --git a/sounds.js b/sounds.js
index 322214799e..ce5c3d65b2 100644
--- a/sounds.js
+++ b/sounds.js
@@ -26,10 +26,13 @@ const soundFiles = {
menuDone: _getSoundFiles(/OOT_Dialogue_Done/),
menuClick: _getSoundFiles(/ff8_click/),
menuOk: _getSoundFiles(/ff8_menu_ok/),
+ menuSelect: _getSoundFiles(/PauseMenu_Select/),
menuBack: _getSoundFiles(/ff8_menu_back/),
menuLeft: _getSoundFiles(/PauseMenu_Turn_Left/),
menuRight: _getSoundFiles(/PauseMenu_Turn_Right/),
menuReady: _getSoundFiles(/ff7_cursor_ready/),
+ menuBeep: _getSoundFiles(/beep/),
+ menuBoop: _getSoundFiles(/boop/),
itemEquip: _getSoundFiles(/Link_Item\.wav/),
itemUnequip: _getSoundFiles(/Link_Item_Away/),
zTargetCenter: _getSoundFiles(/ZTarget_Center/),
@@ -39,6 +42,18 @@ const soundFiles = {
battleTransition: _getSoundFiles(/ff7_battle_transition/),
limitBreak: _getSoundFiles(/ff7_limit_break/),
limitBreakReady: _getSoundFiles(/ff8_limit_ready/),
+ naviHey: _getSoundFiles(/navi_hey/),
+ naviWatchout: _getSoundFiles(/navi_watchout/),
+ naviFriendly: _getSoundFiles(/navi_friendly/),
+ naviItem: _getSoundFiles(/navi_item/),
+ naviDanger: _getSoundFiles(/navi_danger/),
+ bushCut: _getSoundFiles(/OOT_Bush_Cut/),
+ // bushPickup: _getSoundFiles(/OOT_Bush_Pickup/),
+ // bushWalk: _getSoundFiles(/OOT_Bush_Walk/),
+ hpPickup: _getSoundFiles(/OOT_Get_Heart/),
+ mpPickup: _getSoundFiles(/OOT_Get_SmallItem1/),
+ refill: _getSoundFiles(/OOT_MagicRefill/),
+ explosion: _getSoundFiles(/OOT_Bomb_Blow/),
};
let soundFileAudioBuffer;
@@ -66,9 +81,13 @@ const playSoundName = name => {
const snds = soundFiles[name];
if (snds) {
const sound = snds[Math.floor(Math.random() * snds.length)];
+ if (!sound) {
+ debugger;
+ }
playSound(sound);
return true;
} else {
+ debugger;
return false;
}
};
diff --git a/spritesheet-manager.js b/spritesheet-manager.js
index 6b1ec735cd..5a0ccb8525 100644
--- a/spritesheet-manager.js
+++ b/spritesheet-manager.js
@@ -8,8 +8,11 @@ class SpritesheetManager {
`\
import {createObjectSpriteAsync} from './object-spriter.js';
import metaversefile from './metaversefile-api.js';
+ import physx from './physx.js';
`,
async function(appUrl, opts) {
+ await physx.waitForLoad();
+
const app = await metaversefile.createAppAsync({
start_url: appUrl,
});
@@ -29,7 +32,7 @@ class SpritesheetManager {
async getSpriteSheetForAppUrlAsync(appUrl, opts) {
let spritesheet = this.spritesheetCache.get(appUrl);
if (!spritesheet) {
- spritesheet = await this.getSpriteSheetForAppUrlInternal(appUrl, opts);
+ spritesheet = await this.getSpriteSheetForAppUrlInternal([appUrl, opts]);
this.spritesheetCache.set(appUrl, spritesheet);
}
return spritesheet;
diff --git a/src/AvatarIcon.jsx b/src/AvatarIcon.jsx
index c927554113..f8d924bc30 100644
--- a/src/AvatarIcon.jsx
+++ b/src/AvatarIcon.jsx
@@ -11,7 +11,8 @@ import {
} from '../player-stats.js';
import styles from './AvatarIcon.module.css';
-import { localPlayer } from '../players.js';
+import {PlaceholderImg} from './PlaceholderImg.jsx';
+import { getLocalPlayer } from '../players.js';
import { AvatarIconer } from '../avatar-iconer.js';
import cameraManager from '../camera-manager.js'
import * as sounds from '../sounds.js'
@@ -26,6 +27,7 @@ const CharacterIcon = () => {
useEffect(() => {
const canvas = canvasRef.current;
if (canvas) {
+ const localPlayer = getLocalPlayer();
const avatarIconer = new AvatarIconer(localPlayer, {
width: characterIconSize * pixelRatio,
height: characterIconSize * pixelRatio,
@@ -50,7 +52,7 @@ const CharacterIcon = () => {
avatarIconer.removeEventListener('enabledchange', enabledchange);
};
}
- }, [canvasRef.current]);
+ }, [canvasRef]);
return (
{
height={characterIconSize * pixelRatio}
ref={canvasRef}
/>
-

+
@@ -107,7 +109,7 @@ const CharacterIcon = () => {
);
};
-export const AvatarIcon = ({ className }) => {
+export const AvatarIcon = () => {
const { state, setState } = useContext( AppContext );
const handleCharacterBtnClick = () => {
@@ -124,7 +126,7 @@ export const AvatarIcon = ({ className }) => {
return (
);
-};
+};
\ No newline at end of file
diff --git a/src/AvatarIcon.module.css b/src/AvatarIcon.module.css
index 158c34501c..89cf02e8ad 100644
--- a/src/AvatarIcon.module.css
+++ b/src/AvatarIcon.module.css
@@ -1,14 +1,3 @@
-@keyframes rotate {
- 0% {
- transform: rotate(0deg);
- }
- 50% {
- transform: rotate(180deg);
- }
- 100% {
- transform: rotate(360deg);
- }
-}
@keyframes hueRotate {
0% {
filter: hue-rotate(0deg);
@@ -53,23 +42,17 @@
transform: scale(1.4);
} */
-.characterIcon.loaded .placeholderImg {
- display: none;
-}
.characterIcon .placeholderImg {
position: absolute;
top: 10px;
left: 10px;
width: calc( var(--canvas-size) - 10px * 2);
height: calc( var(--canvas-size) - 10px * 2);
-
- animation-name: rotate;
- animation-duration: 1s;
- animation-iteration-count: infinite;
- animation-timing-function: linear;
-
z-index: 1;
}
+.characterIcon.loaded .placeholderImg {
+ display: none;
+}
.avatarIcon .characterIcon {
display: flex;
diff --git a/src/BigButton.jsx b/src/BigButton.jsx
new file mode 100644
index 0000000000..c5c4627539
--- /dev/null
+++ b/src/BigButton.jsx
@@ -0,0 +1,18 @@
+import React, { useEffect, useState, useRef, useContext } from 'react';
+import classnames from 'classnames';
+import styles from './BigButton.module.css';
+
+export const BigButton = ({
+ highlight = false,
+ onClick,
+ children,
+}) => {
+ return (
+
+ {children}
+
+ );
+};
\ No newline at end of file
diff --git a/src/BigButton.module.css b/src/BigButton.module.css
new file mode 100644
index 0000000000..2dcb70eda7
--- /dev/null
+++ b/src/BigButton.module.css
@@ -0,0 +1,49 @@
+@keyframes highlight {
+ 0% {
+ border-color: #FFF;
+ }
+ 50% {
+ border-color: #808080;
+ }
+ 100% {
+ border-color: #808080;
+ }
+}
+@keyframes highlight2 {
+ 0% {
+ background-color: #FFF;
+ color: #000;
+ }
+ 50% {
+ background-color: #000;
+ color: #FFF;
+ }
+ 100% {
+ background-color: #000;
+ color: #FFF;
+ }
+}
+.bigButton {
+ display: flex;
+ margin: 15px 30px;
+ margin-top: auto;
+ padding: 10px;
+ border: 2px solid #FFF;
+ font-family: 'GeoSans';
+ font-size: 20px;
+ justify-content: center;
+ color: #FFF;
+ cursor: pointer;
+ opacity: 0.3;
+ animation: highlight 1s step-end infinite;
+ transition: opacity 0.3s ease-out;
+}
+.bigButton:hover {
+ animation: none;
+ opacity: 1;
+ transition: opacity 1s cubic-bezier(0, 1, 0, 1);
+}
+.bigButton.highlight {
+ animation: highlight2 0.15s step-end infinite;
+ opacity: 1;
+}
\ No newline at end of file
diff --git a/src/CachedLoader.jsx b/src/CachedLoader.jsx
new file mode 100644
index 0000000000..bad9cfc06b
--- /dev/null
+++ b/src/CachedLoader.jsx
@@ -0,0 +1,53 @@
+export class CachedLoader extends EventTarget {
+ constructor({
+ loadFn,
+ }) {
+ super();
+
+ this.loadFn = loadFn;
+ this.loading = false;
+ this.cache = new Map();
+ this.promiseCache = new Map();
+ }
+ #setLoading(loading) {
+ this.loading = loading;
+ this.dispatchEvent(new MessageEvent('loadingchange', {
+ data: {
+ loading,
+ },
+ }));
+ }
+ async loadItem(url, value, {signal = null} = {}) {
+ this.#setLoading(true);
+
+ try {
+ let promise = this.promiseCache.get(url);
+ if (!promise) {
+ promise = this.loadFn(url, value, {signal})
+ .catch(err => {
+ // console.warn(err);
+ return null;
+ })
+ .then(result => {
+ signal.removeEventListener('abort', abort);
+ return result;
+ });
+ this.promiseCache.set(url, promise);
+ const abort = () => {
+ this.promiseCache.delete(url);
+ };
+ signal.addEventListener('abort', abort);
+ }
+
+ const result = await promise;
+ return result;
+ } finally {
+ this.#setLoading(false);
+ }
+ }
+ destroy() {
+ for (const url of this.promiseCache.keys()) {
+ URL.revokeObjectURL(url);
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/CharacterBanner.jsx b/src/CharacterBanner.jsx
new file mode 100644
index 0000000000..4536a7af7d
--- /dev/null
+++ b/src/CharacterBanner.jsx
@@ -0,0 +1,15 @@
+import React from 'react';
+import styles from './CharacterBanner.module.css';
+
+export const CharacterBanner = () => {
+ return (
+
+
Ann's shop
+
You break it you buy it!
+
+ );
+};
\ No newline at end of file
diff --git a/src/CharacterBanner.module.css b/src/CharacterBanner.module.css
new file mode 100644
index 0000000000..f0ca45be68
--- /dev/null
+++ b/src/CharacterBanner.module.css
@@ -0,0 +1,20 @@
+.menu {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ background-image: linear-gradient(to bottom, #333, #000);
+ font-family: 'PlazaRegular';
+ color: #FFF;
+ font-size: 36px;
+}
+.menu h1,
+.menu p
+{
+ margin: 30px;
+}
+.menu h1 {
+ font-size: 50px;
+ font-family: 'WinchesterCaps';
+}
\ No newline at end of file
diff --git a/src/ClaimsNotification.jsx b/src/ClaimsNotification.jsx
new file mode 100644
index 0000000000..b2e3d99e17
--- /dev/null
+++ b/src/ClaimsNotification.jsx
@@ -0,0 +1,60 @@
+// import * as THREE from 'three';
+import React, {useState, useEffect, useContext} from 'react';
+import classnames from 'classnames';
+// import style from './DragAndDrop.module.css';
+// import {world} from '../world.js';
+// import {getRandomString, handleUpload} from '../util.js';
+// import {registerIoEventHandler, unregisterIoEventHandler} from './components/general/io-handler/IoHandler.jsx';
+// import {registerLoad} from './LoadingBox.jsx';
+// import {ObjectPreview} from './ObjectPreview.jsx';
+// import game from '../game.js';
+// import {getRenderer} from '../renderer.js';
+// import metaversefile from 'metaversefile';
+import { AppContext } from './components/app';
+
+import styles from './ClaimsNotification.module.css';
+
+import dropManager from '../drop-manager.js';
+
+const ClaimsNotification = () => {
+ const {state, setState} = useContext(AppContext);
+ const [numClaims, setNumClaims] = useState(0);
+
+ useEffect(() => {
+ const claimschange = e => {
+ console.log('set num claims', e.data.claims.length);
+ setNumClaims(e.data.claims.length);
+ };
+ dropManager.addEventListener('claimschange', claimschange);
+ return () => {
+ dropManager.removeEventListener('claimschange', claimschange);
+ };
+ }, []);
+
+ const open = numClaims > 0 && state.openedPanel === null;
+
+ const onClick = e => {
+ e.preventDefault();
+ e.stopPropagation();
+
+ setState({
+ openedPanel: 'CharacterPanel',
+ });
+ };
+
+ return (
+
+ );
+};
+export {
+ ClaimsNotification,
+};
\ No newline at end of file
diff --git a/src/ClaimsNotification.module.css b/src/ClaimsNotification.module.css
new file mode 100644
index 0000000000..3de9e880b2
--- /dev/null
+++ b/src/ClaimsNotification.module.css
@@ -0,0 +1,78 @@
+@keyframes flash {
+ 0% {
+ transform: translate3d(0, 0, 0);
+ opacity: 1;
+ }
+ 50% {
+ transform: translate3d(-77px, 30px, 300px) rotateZ(45deg);
+ opacity: 1;
+ }
+ 75% {
+ opacity: 1;
+ }
+ 100% {
+ transform: translate3d(-60px, -50px, -500px) rotateX(90deg) rotateZ(45deg);
+ opacity: 0;
+ }
+}
+
+.claimsNotification {
+ --height: 70px;
+ --margin: 10px;
+
+ position: fixed;
+ display: flex;
+ left: 350px;
+ bottom: -120px;
+ height: var(--height);
+ margin-bottom: 45px;
+ padding-right: 500px;
+ background-image: linear-gradient(to bottom, #333, #111);
+ border-radius: 10px;
+ color: #FFF;
+ font-size: 22px;
+ font-family: 'WinchesterCaps';
+ letter-spacing: 1px;
+ align-items: center;
+ cursor: pointer;
+ transition: transform 0.5s cubic-bezier(0, 1, 0, 1);
+}
+.claimsNotification.open {
+ transform: translateY(-110px);
+}
+.claimsNotification:hover {
+ background-image: linear-gradient(to bottom, #444, #222);
+}
+.claimsNotification .icon {
+ --size: 28px;
+
+ height: var(--size);
+ width: var(--size);
+ margin: 0 10px;
+}
+/* .claimsNotification .icon,
+.claimsNotification .label
+{
+ padding-right: 10px;
+} */
+.claimsNotification .value {
+ --size: 28px;
+
+ display: flex;
+ width: var(--size);
+ height: var(--size);
+ padding: 0 10px;
+ margin-left: 10px;
+ align-items: center;
+ /* background: #FFF; */
+ background-image: radial-gradient(#3a3a3a, transparent);
+ border-radius: 1000px;
+ box-shadow: inset 0 0 8px #000000a0;
+ /* color: #000; */
+ font-family: 'PlazaRegular';
+ font-size: 22px;
+ justify-content: center;
+}
+.claimsNotification .label {
+ margin: 0 10px;
+}
\ No newline at end of file
diff --git a/src/DomRenderer.jsx b/src/DomRenderer.jsx
new file mode 100644
index 0000000000..0570b47e42
--- /dev/null
+++ b/src/DomRenderer.jsx
@@ -0,0 +1,306 @@
+import * as THREE from 'three';
+import React, {useState, useEffect, useRef} from 'react';
+import gameManager from '../game.js';
+import {camera} from '../renderer.js';
+import cameraManager from '../camera-manager.js';
+import {getLocalPlayer} from '../players.js';
+
+// import {CharacterBanner} from './CharacterBanner.jsx';
+import domRenderEngine, {DomRenderEngine} from '../dom-renderer.jsx';
+
+const floatFactor = 0.05;
+const floatTime = 3000;
+const transtionTime = 1000;
+const scaleEpsilon = 0.01;
+
+const localVector = new THREE.Vector3();
+const localVector2 = new THREE.Vector3();
+const localQuaternion = new THREE.Quaternion();
+const localMatrix = new THREE.Matrix4();
+const localMatrix2 = new THREE.Matrix4();
+const localMatrix3 = new THREE.Matrix4();
+
+const scaleMatrix = new THREE.Matrix4().makeScale(1 + scaleEpsilon, 1 + scaleEpsilon, 1 + scaleEpsilon);
+
+const _getFov = () => camera.projectionMatrix.elements[ 5 ] * (window.innerHeight / 2);
+
+function epsilon(value) {
+ return value;
+ // return Math.abs(value) < 1e-10 ? 0 : value;
+}
+function getObjectCSSMatrix( matrix, cameraCSSMatrix ) {
+ var elements = matrix.elements;
+ var matrix3d = 'matrix3d(' +
+ epsilon( elements[ 0 ] ) + ',' +
+ epsilon( elements[ 1 ] ) + ',' +
+ epsilon( elements[ 2 ] ) + ',' +
+ epsilon( elements[ 3 ] ) + ',' +
+ epsilon( - elements[ 4 ] ) + ',' +
+ epsilon( - elements[ 5 ] ) + ',' +
+ epsilon( - elements[ 6 ] ) + ',' +
+ epsilon( - elements[ 7 ] ) + ',' +
+ epsilon( elements[ 8 ] ) + ',' +
+ epsilon( elements[ 9 ] ) + ',' +
+ epsilon( elements[ 10 ] ) + ',' +
+ epsilon( elements[ 11 ] ) + ',' +
+ epsilon( elements[ 12 ] ) + ',' +
+ epsilon( elements[ 13 ] ) + ',' +
+ epsilon( elements[ 14 ] ) + ',' +
+ epsilon( elements[ 15 ] ) +
+ ')';
+
+ /* if ( isIE ) {
+
+ return 'translate(-50%,-50%)' +
+ 'translate(' + _widthHalf + 'px,' + _heightHalf + 'px)' +
+ cameraCSSMatrix +
+ matrix3d;
+
+ } */
+
+ return matrix3d;
+}
+function getCameraCSSMatrix( matrix ) {
+ const {elements} = matrix;
+ return 'matrix3d(' +
+ epsilon( elements[ 0 ] ) + ',' +
+ epsilon( - elements[ 1 ] ) + ',' +
+ epsilon( elements[ 2 ] ) + ',' +
+ epsilon( elements[ 3 ] ) + ',' +
+ epsilon( elements[ 4 ] ) + ',' +
+ epsilon( - elements[ 5 ] ) + ',' +
+ epsilon( elements[ 6 ] ) + ',' +
+ epsilon( elements[ 7 ] ) + ',' +
+ epsilon( elements[ 8 ] ) + ',' +
+ epsilon( - elements[ 9 ] ) + ',' +
+ epsilon( elements[ 10 ] ) + ',' +
+ epsilon( elements[ 11 ] ) + ',' +
+ epsilon( elements[ 12 ] ) + ',' +
+ epsilon( - elements[ 13 ] ) + ',' +
+ epsilon( elements[ 14 ] ) + ',' +
+ epsilon( elements[ 15 ] ) +
+ ')';
+}
+
+const DomRendererChild = ({
+ dom,
+ innerWidth,
+ innerHeight,
+ range = 5,
+}) => {
+ const {width, height} = dom;
+ const scaleFactor = DomRenderEngine.getScaleFactor(width, height);
+ const [visible, setVisible] = useState(false);
+ const iframeContainer2Ref = useRef();
+
+ // tracking
+ useEffect(() => {
+ const iframeContainer2 = iframeContainer2Ref.current;
+
+ if (iframeContainer2) {
+ const frame = e => {
+ const {timestamp} = e.data;
+
+ const _animateMenuFloat = () => {
+ const now = timestamp;
+
+ dom.floatNode.position.set(0, 0, 0);
+ dom.floatNode.position.y += Math.sin((now % floatTime)/floatTime * 2 * Math.PI) * floatFactor;
+ dom.floatNode.position.y += Math.cos(((now / 2) % floatTime)/floatTime * 2 * Math.PI) * floatFactor/2;
+ dom.floatNode.position.y += Math.sin(((now / 4) % floatTime)/floatTime * 2 * Math.PI) * floatFactor/4;
+ dom.floatNode.updateMatrixWorld();
+ };
+ _animateMenuFloat();
+
+ const floatNodeMatrixWorld = localMatrix3
+ .multiplyMatrices(dom.floatNode.matrixWorld, scaleMatrix);
+
+ const _updateCameraContainerMatrix = () => {
+ const fov = _getFov();
+ const cameraCSSMatrix = getCameraCSSMatrix(
+ localMatrix.copy(camera.matrixWorldInverse)
+ .premultiply(
+ localMatrix2.makeTranslation(0, 0, fov)
+ )
+ .multiply(
+ floatNodeMatrixWorld
+ )
+ );
+ iframeContainer2.style.transform = cameraCSSMatrix;
+ };
+ _updateCameraContainerMatrix();
+ };
+ gameManager.addEventListener('frame', frame);
+
+ return () => {
+ gameManager.removeEventListener('frame', frame);
+ };
+ }
+ }, [iframeContainer2Ref]);
+
+ // visibility
+ useEffect(() => {
+ const frame = e => {
+ const {timestamp} = e.data;
+ const startTime = timestamp;
+ const endTime = startTime + transtionTime;
+
+ const _updateVisibility = () => {
+ const localPlayer = getLocalPlayer();
+ const distance = localPlayer.position.distanceTo(dom.position);
+ const isInRange = distance < range;
+ if (isInRange && !visible) {
+ setVisible(true);
+ dom.startAnimation(true, startTime, endTime);
+ } else if (visible && !isInRange) {
+ setVisible(false);
+ dom.startAnimation(false, startTime, endTime);
+ }
+ };
+ _updateVisibility();
+
+ const _updateAnimation = () => {
+ dom.update(timestamp)
+ };
+ _updateAnimation();
+ };
+ gameManager.addEventListener('frame', frame);
+
+ return () => {
+ gameManager.removeEventListener('frame', frame);
+ };
+ }, [visible]);
+
+ const preventDefault = e => {
+ // e.preventDefault();
+ e.stopPropagation();
+ };
+
+ return (
+
+ );
+}
+
+const DomRendererChildren = ({
+ domRenderEngine,
+ innerWidth,
+ innerHeight,
+ fov,
+}) => {
+ const [epoch, setEpoch] = useState(0);
+
+ useEffect(() => {
+ const update = () => {
+ setEpoch(epoch + 1);
+ };
+ domRenderEngine.addEventListener('update', update);
+ return () => {
+ domRenderEngine.removeEventListener('update', update);
+ };
+ }, [epoch]);
+
+ return <>
+ {domRenderEngine.doms.map((dom, i) => {
+ return (
+
+ );
+ })}
+ >
+};
+
+const DomRenderer = props => {
+ const [innerWidth, setInnerWidth] = useState(window.innerWidth);
+ const [innerHeight, setInnerHeight] = useState(window.innerHeight);
+ const [fov, setFov] = useState(_getFov);
+ const iframeContainerRef = useRef();
+
+ useEffect(() => {
+ const resize = e => {
+ setInnerWidth(window.innerWidth);
+ setInnerHeight(window.innerHeight);
+ setFov(_getFov());
+ };
+ window.addEventListener('resize', resize);
+ const fovchange = (/*e*/) => {
+ // const {fov} = e.data;
+ setFov(_getFov());
+ };
+ cameraManager.addEventListener('fovchange', fovchange);
+ return () => {
+ window.removeEventListener('resize', resize);
+ cameraManager.removeEventListener('fovchange', fovchange);
+ };
+ }, []);
+
+ return (
+
+
+
+ );
+};
+export {
+ DomRenderer,
+};
\ No newline at end of file
diff --git a/src/DomRenderer.module.css b/src/DomRenderer.module.css
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/src/Header.jsx b/src/Header.jsx
index 55fb96e22b..84f488d5de 100644
--- a/src/Header.jsx
+++ b/src/Header.jsx
@@ -14,10 +14,10 @@ import { Tokens } from './tabs/tokens';
import { registerIoEventHandler, unregisterIoEventHandler } from './components/general/io-handler';
import { AppContext } from './components/app';
import { AvatarIcon } from './AvatarIcon';
+import { StoryTime } from './StoryTime';
import { User } from './User';
import styles from './Header.module.css';
-import { UIMode } from './components/general/ui-mode/index.jsx';
//
@@ -262,17 +262,14 @@ export default function Header() {
localPlayer={localPlayer}
npcs={npcs}
/>
+
{/*
*/}
-
-
-
-
-
-
+
+
{
+ const frontCanvasRef = useRef();
+ const backCanvasRef = useRef();
+
+ useEffect(() => {
+ const canvas = frontCanvasRef.current;
+ if (canvas) {
+ const ctx = canvas.getContext('2d');
+ if (imageBitmap) {
+ ctx.drawImage(imageBitmap, 0, 0);
+ } else {
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
+ }
+ }
+ }, [frontCanvasRef, imageBitmap]);
+
+ useEffect(() => {
+ const canvas = backCanvasRef.current;
+ if (canvas) {
+ const ctx = canvas.getContext('2d');
+ if (backImageBitmap) {
+ ctx.drawImage(backImageBitmap, 0, 0);
+ } else {
+ ctx.clearRect(0, 0, canvas.width, canvas.height);
+ }
+ }
+ }, [backCanvasRef, backImageBitmap]);
+
+ const _getStyle = front => {
+ return {
+ transform: `rotateY(${(rotateY + ((+flip ^ +front) ? 0 : Math.PI)).toFixed(8)}rad) rotateX(${rotateX.toFixed(8)}rad)`,
+ };
+ };
+
+ return (
+
+ {backImageBitmap ? (
+
+ ) : null}
+ {imageBitmap ? (
+
+ ) : null}
+
+ );
+};
\ No newline at end of file
diff --git a/src/ImageBitmapCanvas.module.css b/src/ImageBitmapCanvas.module.css
new file mode 100644
index 0000000000..b6bca039a2
--- /dev/null
+++ b/src/ImageBitmapCanvas.module.css
@@ -0,0 +1,15 @@
+.imageBitmapCanvas {
+ position: relative;
+ display: flex;
+}
+.imageBitmapCanvas .canvas {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: inherit;
+ height: inherit;
+ backface-visibility: hidden;
+}
+.imageBitmapCanvas .backCanvas {
+ transform: rotateY(180deg);
+}
\ No newline at end of file
diff --git a/src/LightArrow.jsx b/src/LightArrow.jsx
index cf42be3f97..9944d20615 100644
--- a/src/LightArrow.jsx
+++ b/src/LightArrow.jsx
@@ -191,13 +191,16 @@ const _downloadArrowImage = async () => {
};
export const LightArrow = function({
+ className,
enabled = true,
+ up = false,
down = false,
animate = false,
x,
y,
ax,
ay,
+ onClick,
}) {
const canvasRef = useRef();
@@ -244,13 +247,16 @@ export const LightArrow = function({
className={classnames(
styles.lightArrowContainer,
enabled ? styles.enabled : null,
+ up ? styles.up : null,
down ? styles.down : null,
+ className,
)}
style={{
transform: `translate(${x}px, ${y}px)`,
left: ax,
top: ay,
}}
+ onClick={onClick}
>
{
+ return (
+

+ );
+};
\ No newline at end of file
diff --git a/src/PlaceholderImg.module.css b/src/PlaceholderImg.module.css
new file mode 100644
index 0000000000..c23fe4bcd8
--- /dev/null
+++ b/src/PlaceholderImg.module.css
@@ -0,0 +1,18 @@
+@keyframes rotate {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 50% {
+ transform: rotate(180deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+.placeholderImg {
+ animation-name: rotate;
+ animation-duration: 1s;
+ animation-iteration-count: infinite;
+ animation-timing-function: linear;
+}
\ No newline at end of file
diff --git a/src/QuickMenu.jsx b/src/QuickMenu.jsx
index 8698853d34..3a1b909012 100644
--- a/src/QuickMenu.jsx
+++ b/src/QuickMenu.jsx
@@ -51,13 +51,21 @@ const chevronSize = 50;
export default function QuickMenu() {
const [open, setOpen] = useState(false);
const [down, setDown] = useState(false);
- const [selectedSlice, setSelectedSlice] = useState(-1);
+ const [selectedSlice, _setSelectedSlice] = useState(-1);
const [selectedDepth, setSelectedDepth] = useState(-1);
const [coords, setCoords] = useState([0, 0]);
const [emoteIconImages, setEmoteIconImages] = useState(null);
const [chevronImage, setChevronImage] = useState(null);
const canvasRef = useRef();
+ const setSelectedSlice = v => {
+ if (v !== selectedSlice) {
+ _setSelectedSlice(v);
+ // XXX this needs to be quieter (configurable per-sound volume)
+ // sounds.playSoundName('menuClick');
+ }
+ };
+
const _getSelectedEmote = () => {
if (selectedSlice !== -1 && selectedDepth !== -1) {
return emotes[selectedSlice].name + (selectedDepth === 0 ? 'Soft' : '');
@@ -86,7 +94,7 @@ export default function QuickMenu() {
if (game.inputFocused()) return true;
if (!e.repeat) {
- if (e.keyCode === 81) { // Q
+ if (e.keyCode === 81 && !e.ctrlKey) { // Q
cameraManager.requestPointerLock();
setOpen(true);
diff --git a/src/RpgText.jsx b/src/RpgText.jsx
index 6b869f884a..0cc3c94d0e 100644
--- a/src/RpgText.jsx
+++ b/src/RpgText.jsx
@@ -8,10 +8,11 @@ export const RpgText = ({
text,
textSpeed = chatTextSpeed,
}) => {
+ const [lastText, setLastText] = useState(text);
const [progressText, setProgressText] = useState('');
useEffect(() => {
- if (text.length === 0) {
+ if (!text.startsWith(lastText)) {
setProgressText('');
} else if (progressText.length < text.length) {
const timeout = setTimeout(() => {
@@ -23,7 +24,10 @@ export const RpgText = ({
clearTimeout(timeout);
};
}
- }, [text, progressText]);
+ if (text !== lastText) {
+ setLastText(text);
+ }
+ }, [text, progressText, lastText]);
return
0 ? styles.open : null)}>{progressText}
;
};
\ No newline at end of file
diff --git a/src/StoryTime.jsx b/src/StoryTime.jsx
new file mode 100644
index 0000000000..e8c9c89f15
--- /dev/null
+++ b/src/StoryTime.jsx
@@ -0,0 +1,141 @@
+// import * as THREE from 'three';
+import React, {useState, useEffect} from 'react';
+import * as sounds from '../sounds.js';
+import storyManager from '../story.js';
+import {registerIoEventHandler, unregisterIoEventHandler} from './components/general/io-handler';
+import {MegaChatBox} from './components/play-mode/mega-chat-box';
+
+import styles from './StoryTime.module.css';
+
+const _progressConversation = () => {
+ const conversation = storyManager.getConversation();
+ conversation.progress();
+
+ sounds.playSoundName('menuNext');
+};
+
+export const StoryTime = () => {
+ const [message, setMessage] = useState(null);
+ const [options, setOptions] = useState(null);
+ const [option, setOption] = useState(null);
+ const [hoverIndex, setHoverIndex] = useState(null);
+ const [progressing, setProgressing] = useState(false);
+ const [finished, setFinished] = useState(false);
+
+ const _continue = () => {
+ if (!progressing) {
+ _progressConversation();
+ }
+ };
+
+ useEffect(() => {
+ function conversationstart(e) {
+ const {conversation} = e.data;
+ conversation.addEventListener('message', e => {
+ const {message} = e.data;
+ setFinished(false);
+ setMessage(message);
+ });
+ conversation.addEventListener('options', e => {
+ const {options} = e.data;
+ if (options) {
+ setOptions(options);
+ setOption(null);
+ }
+ });
+ conversation.addEventListener('hoverindex', e => {
+ const {hoverIndex} = e.data;
+ setHoverIndex(hoverIndex);
+
+ sounds.playSoundName('menuMove');
+ });
+ conversation.addEventListener('option', e => {
+ const {option} = e.data;
+ setOption(option);
+ });
+
+ conversation.addEventListener('progressstart', e => {
+ setProgressing(true);
+ });
+ conversation.addEventListener('progressend', e => {
+ setProgressing(false);
+ });
+
+ conversation.addEventListener('finish', e => {
+ setFinished(true);
+
+ sounds.playSoundName('menuDone');
+ });
+
+ conversation.addEventListener('close', e => {
+ setMessage(null);
+ });
+ }
+ storyManager.addEventListener('conversationstart', conversationstart);
+
+ return () => {
+ storyManager.removeEventListener('conversationstart', conversationstart);
+ };
+ }, []);
+
+ useEffect(() => {
+ if (message) {
+ const handleKeyDown = event => {
+
+ if (event.which === 13) { // enter
+ _continue();
+
+ return false;
+ }
+ };
+
+ registerIoEventHandler('keydown', handleKeyDown);
+
+ return () => {
+ unregisterIoEventHandler('keydown', handleKeyDown);
+ };
+ }
+ }, [message, progressing]);
+
+ useEffect(() => {
+ // console.log('check options', options, option);
+ if (options && option) {
+ // console.log('set timeout', options, option);
+ const timeout = setTimeout(() => {
+ // console.log('clear options');
+ setOptions(null);
+ setOption(null);
+ setHoverIndex(null);
+ }, 1000);
+
+ return () => {
+ // console.log('clear options timeout');
+ clearTimeout(timeout);
+ };
+ }
+ }, [options, option]);
+
+ return (
+
+ {
+ const conversation = storyManager.getConversation();
+ conversation.progressOptionSelect(option);
+
+ sounds.playSoundName('menuSelect');
+ }}
+ onClick={e => {
+ if (!progressing) {
+ _progressConversation();
+ }
+ }}
+ />
+
+ );
+};
\ No newline at end of file
diff --git a/src/StoryTime.module.css b/src/StoryTime.module.css
new file mode 100644
index 0000000000..ea1ea3cee0
--- /dev/null
+++ b/src/StoryTime.module.css
@@ -0,0 +1,11 @@
+.storyTime {
+ display: flex;
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ right: 0;
+ pointer-events: none;
+
+ --width: 350px;
+}
\ No newline at end of file
diff --git a/src/User.jsx b/src/User.jsx
index a846d37335..84a50369b9 100644
--- a/src/User.jsx
+++ b/src/User.jsx
@@ -16,7 +16,7 @@ import * as sounds from '../sounds.js';
//
-export const User = ({ className, address, setAddress, setLoginFrom }) => {
+export const User = ({ address, setAddress, setLoginFrom }) => {
const { state, setState } = useContext( AppContext );
const [ensName, setEnsName] = useState('');
@@ -224,10 +224,9 @@ export const User = ({ className, address, setAddress, setLoginFrom }) => {
open ? styles.open : null,
loggedIn ? styles.loggedIn : null,
loggingIn ? styles.loggingIn : null,
- className
) }
>
-
{
+
{
e.preventDefault();
e.stopPropagation();
diff --git a/src/User.module.css b/src/User.module.css
index d79ce5096d..5c558ff690 100644
--- a/src/User.module.css
+++ b/src/User.module.css
@@ -46,19 +46,14 @@
/* */
.user .keyWrap {
+ position: absolute;
top: 0;
right: 0;
width: 180px;
perspective: 400px;
perspective-origin: -100px 100px;
pointer-events: all;
- transition: transform 200ms cubic-bezier( 0, 1, 0, 1 );
-}
-
-.user .keyWrap.hiddenUI {
- transform: translateX( 100% );
}
-
.user:not(.loggedIn) .keyWrap {
cursor: pointer;
}
diff --git a/src/components/app/App.jsx b/src/components/app/App.jsx
index 92f4ef1cee..506caf16bb 100644
--- a/src/components/app/App.jsx
+++ b/src/components/app/App.jsx
@@ -1,7 +1,8 @@
import React, { useState, useEffect, useRef, createContext } from 'react';
+import classnames from 'classnames';
-import { defaultAvatarUrl } from '../../../constants';
+import { defaultPlayerSpec } from '../../../constants';
import game from '../../../game';
import sceneNames from '../../../scenes/scenes.json';
@@ -11,7 +12,6 @@ import universe from '../../../universe.js';
import metaversefileApi from '../../../metaversefile-api';
import cameraManager from '../../../camera-manager';
import { world } from '../../../world';
-import { handleStoryKeyControls } from '../../../story';
import { ActionMenu } from '../general/action-menu';
import { Crosshair } from '../general/crosshair';
@@ -29,10 +29,14 @@ import { PlayMode } from '../play-mode';
import { EditorMode } from '../editor-mode';
import Header from '../../Header.jsx';
import QuickMenu from '../../QuickMenu.jsx';
-import { UIMode } from '../general/ui-mode';
+import {ClaimsNotification} from '../../ClaimsNotification.jsx';
+import {DomRenderer} from '../../DomRenderer.jsx';
+// import * as voices from '../../../voices';
+import {handleStoryKeyControls} from '../../../story';
import styles from './App.module.css';
import '../../fonts.css';
+import raycastManager from '../../../raycast-manager';
//
@@ -49,7 +53,8 @@ const _startApp = async ( weba, canvas ) => {
await weba.startLoop();
const localPlayer = metaversefileApi.useLocalPlayer();
- await localPlayer.setAvatarUrl( defaultAvatarUrl );
+ // console.log('set player spec', defaultPlayerSpec);
+ await localPlayer.setPlayerSpec(defaultPlayerSpec);
};
@@ -79,29 +84,53 @@ const _getCurrentRoom = () => {
export const AppContext = createContext();
const useWebaverseApp = (() => {
+ let webaverse = null;
+ return () => {
+ if ( webaverse === null ) {
+ webaverse = new Webaverse();
+ }
+ return webaverse;
+ };
+})();
- let webaverse = null;
+const Canvas = ({
+ app,
+}) => {
+ const canvasRef = useRef( null );
+ const [domHover, setDomHover] = useState( null );
- return () => {
+ useEffect( () => {
- if ( webaverse === null ) {
+ if ( canvasRef.current ) {
- webaverse = new Webaverse();
+ _startApp( app, canvasRef.current );
}
- return webaverse;
+ }, [ app, canvasRef ] );
- };
+ useEffect( () => {
+ const domhoverchange = e => {
+ const {domHover} = e.data;
+ // console.log('dom hover change', domHover);
+ setDomHover( domHover );
+ };
+ raycastManager.addEventListener('domhoverchange', domhoverchange);
-})();
+ return () => {
+ raycastManager.removeEventListener('domhoverchange', domhoverchange);
+ };
+ }, []);
+
+ return (
+
+ );
+};
export const App = () => {
const [ state, setState ] = useState({ openedPanel: null });
- const [ uiMode, setUIMode ] = useState( 'normal' );
- const canvasRef = useRef( null );
const app = useWebaverseApp();
const [ selectedApp, setSelectedApp ] = useState( null );
const [ selectedScene, setSelectedScene ] = useState( _getCurrentSceneSrc() );
@@ -134,24 +163,13 @@ export const App = () => {
}
- if ( state.openedPanel ) {
-
- setUIMode( 'normal' );
-
- }
-
}, [ state.openedPanel ] );
useEffect( () => {
const handleStoryKeyUp = ( event ) => {
- if ( game.inputFocused() ) {
-
- return;
-
- }
-
+ if ( game.inputFocused() ) return;
handleStoryKeyControls( event );
};
@@ -166,37 +184,6 @@ export const App = () => {
}, [] );
- useEffect( () => {
-
- if ( uiMode === 'none' ) {
-
- setState({ openedPanel: null });
-
- }
-
- const handleKeyDown = ( event ) => {
-
- if ( event.ctrlKey && event.code === 'KeyH' ) {
-
- setUIMode( uiMode === 'normal' ? 'none' : 'normal' );
- return false;
-
- }
-
- return true;
-
- };
-
- registerIoEventHandler( 'keydown', handleKeyDown );
-
- return () => {
-
- unregisterIoEventHandler( 'keydown', handleKeyDown );
-
- };
-
- }, [ uiMode ] );
-
useEffect( () => {
const handleClick = () => {
@@ -268,16 +255,6 @@ export const App = () => {
useEffect( _loadUrlState, [] );
- useEffect( () => {
-
- if ( canvasRef.current ) {
-
- _startApp( app, canvasRef.current );
-
- }
-
- }, [ canvasRef ] );
-
//
const onDragOver = e => {
@@ -299,15 +276,20 @@ export const App = () => {
onDragEnd={onDragEnd}
onDragOver={onDragOver}
>
-
+
-
+
+
+
-
-
-
+
+
-
+
+
{
-
);
diff --git a/src/components/app/App.module.css b/src/components/app/App.module.css
index 098c8f9747..1887250a5b 100644
--- a/src/components/app/App.module.css
+++ b/src/components/app/App.module.css
@@ -1,56 +1,60 @@
* {
- box-sizing: border-box;
+ box-sizing: border-box;
}
@keyframes spin {
- 0% { transform: rotate(0deg); }
- 100% { transform: rotate(360deg); }
+ 0% { transform: rotate(0deg); }
+ 100% { transform: rotate(360deg); }
}
html, body {
- position: fixed;
- width: 100%;
- height: 100%;
- overflow: hidden;
+ position: fixed;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
- margin: 0;
- font-family: 'Muli';
- font-size: 12px;
+ margin: 0;
+ font-family: 'Muli';
+ font-size: 12px;
- --color: #ec407a;
- --color2: #ffa726;
- --color3: #42a5f5;
+ --color: #ec407a;
+ --color2: #ffa726;
+ --color3: #42a5f5;
}
-body {
- background-color: #000;
-}
+/* body {
+ background-color: #000;
+} */
.App {
- height: 100%;
- width: 100%;
- /* text-align: center; */
+ height: 100%;
+ width: 100%;
+ /* text-align: center; */
}
.canvas {
- position: fixed;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- width: 100vw;
- height: 100vh;
+ position: fixed;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ width: 100vw;
+ height: 100vh;
+}
+
+.canvas.domHover {
+ pointer-events: none;
}
/* */
::-webkit-scrollbar {
- width: 1em;
+ width: 1em;
}
::-webkit-scrollbar-track {
- box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
+ box-shadow: inset 0 0 6px rgba(0, 0, 0, 0.3);
}
::-webkit-scrollbar-thumb {
- background-color: darkgrey;
- outline: 1px solid slategrey;
+ background-color: darkgrey;
+ outline: 1px solid slategrey;
}
\ No newline at end of file
diff --git a/src/components/editor-mode/index.jsx b/src/components/editor-mode/index.jsx
index 92009ca2ac..7e12065352 100644
--- a/src/components/editor-mode/index.jsx
+++ b/src/components/editor-mode/index.jsx
@@ -4,7 +4,6 @@ import React from 'react';
import { MagicMenu } from './magic-menu';
import { SceneMenu } from './scene-menu';
import { Inspector } from './inspector';
-import { UIMode } from '../general/ui-mode';
//
@@ -16,15 +15,13 @@ export const EditorMode = ({ selectedScene, setSelectedScene, selectedRoom, setS
return (
-
-
-
+
diff --git a/src/components/editor-mode/scene-menu/SceneMenu.jsx b/src/components/editor-mode/scene-menu/SceneMenu.jsx
index 2548d8a6e6..d9edd99dd3 100644
--- a/src/components/editor-mode/scene-menu/SceneMenu.jsx
+++ b/src/components/editor-mode/scene-menu/SceneMenu.jsx
@@ -2,7 +2,6 @@
import React, { useState, useEffect, useContext, useRef } from 'react';
import classnames from 'classnames';
-import { world } from '../../../../world'
import universe from '../../../../universe'
import voiceInput from '../../../../voice-input/voice-input';
import sceneNames from '../../../../scenes/scenes.json';
@@ -23,7 +22,7 @@ sceneNames.forEach( ( name ) => {
//
-export const SceneMenu = ({ className, multiplayerConnected, selectedScene, setSelectedScene, selectedRoom, setSelectedRoom }) => {
+export const SceneMenu = ({ multiplayerConnected, selectedScene, setSelectedScene, selectedRoom, setSelectedRoom }) => {
const { state, setState } = useContext( AppContext );
const sceneNameInputRef = useRef( null );
@@ -127,7 +126,7 @@ export const SceneMenu = ({ className, multiplayerConnected, selectedScene, setS
setState({ openedPanel: null });
- if ( ! world.isConnected() ) {
+ if ( ! universe.isConnected() ) {
universe.pushUrl( `/?src=${ encodeURIComponent( selectedScene ) }&room=${ room.name }` );
@@ -261,7 +260,7 @@ export const SceneMenu = ({ className, multiplayerConnected, selectedScene, setS
//
return (
-
+
);
diff --git a/src/components/general/equipment/equipment.module.css b/src/components/general/equipment/equipment.module.css
index e7b157a9b1..ac4283fde9 100644
--- a/src/components/general/equipment/equipment.module.css
+++ b/src/components/general/equipment/equipment.module.css
@@ -145,7 +145,7 @@
/* */
-.item {
+.object {
--size: 80px;
display: flex;
@@ -155,8 +155,8 @@
cursor: pointer;
user-select: none;
}
-.item .background,
-.item .highlight
+.object .background,
+.object .highlight
{
position: absolute;
width: var(--size);
@@ -164,57 +164,74 @@
border-radius: 1000px;
transform-origin: 50% 50%;
}
-.item .background {
+.object .background {
background-color: #111;
}
-.item .highlight {
+.object .highlight {
background-color: #FFF;
transform: scale(0, 0);
transition: transform 0.3s cubic-bezier(0, 1, 0, 1);
}
-.item:hover .highlight,
-.item.selected .highlight
+.object:hover .highlight,
+.object.selected .highlight
{
transform: none;
}
-.item:active .highlight,
-.item:active .background
+.object:active .highlight,
+.object:active .background
{
transform: scale(0.9, 0.9);
}
-.item.selected .highlight {
+.object.selected .highlight {
background-image: radial-gradient(#7e57c2, #512da8);
}
-.item .canvas,
-.item .name,
-.item .level {
+.object.highlighted {
+ background-image: linear-gradient(to bottom, #ff7043, #e64a19);
+}
+.object.highlighted .background {
+ background-color: #7e57c2;
+}
+.object .canvas,
+.object .name,
+.object .level {
pointer-events: none;
}
-.item .canvas {
+.object .canvas {
position: relative;
width: var(--size);
height: var(--size);
}
-.item .row {
+.object .row {
display: flex;
align-items: baseline;
}
-.item .name,
-.item .level
+.object .name,
+.object .level
{
font-family: 'PlazaRegular';
}
-.item .name {
+.object .name {
margin-right: auto;
font-size: 18px;
}
-.item .level {
+.object .level {
font-size: 13px;
color: #666;
}
/* */
+.land {
+
+}
+.land .canvas {
+ --size: 300px;
+ width: var(--size);
+ height: var(--size);
+}
+
+/* */
+
.menuFooter {
--item-size: 100px;
diff --git a/src/components/general/io-handler/IoHandler.jsx b/src/components/general/io-handler/IoHandler.jsx
index 7bb3302dbb..60df22f46a 100644
--- a/src/components/general/io-handler/IoHandler.jsx
+++ b/src/components/general/io-handler/IoHandler.jsx
@@ -5,7 +5,7 @@ import ioManager from '../../../../io-manager.js';
//
-const types = [ 'keydown', 'keypress', 'keyup', 'click', 'mousedown', 'mouseup', 'mousemove', 'mouseenter', 'mouseleave', 'wheel', 'paste' ];
+const types = [ 'keydown', 'keypress', 'keyup', 'click', 'dblclick', 'mousedown', 'mouseup', 'mousemove', 'mouseenter', 'mouseleave', 'wheel', 'paste' ];
const ioEventHandlers = {};
for ( const type of types.concat(['']) ) {
diff --git a/src/components/general/map-gen/MapGen.jsx b/src/components/general/map-gen/MapGen.jsx
index 8d22b75016..8e93b6f061 100644
--- a/src/components/general/map-gen/MapGen.jsx
+++ b/src/components/general/map-gen/MapGen.jsx
@@ -2,54 +2,79 @@ import * as THREE from 'three';
import React, { useState, useEffect, useRef, useContext } from 'react';
import classnames from 'classnames';
import metaversefile from 'metaversefile';
-const {useLocalPlayer, useLoreAIScene, useSceneCruncher} = metaversefile;
+const {useLocalPlayer, useLoreAIScene} = metaversefile;
// import {world} from '../../../../world.js';
// import webaverse from '../../../../webaverse.js';
import {registerIoEventHandler, unregisterIoEventHandler} from '../io-handler';
import {MiniHup} from '../../../MiniHup.jsx';
// import {RpgText} from '../../../RpgText.jsx';
-import {getRenderer, rootScene, scene} from '../../../../renderer.js';
+import {getRenderer, rootScene, scene, sceneLowPriority} from '../../../../renderer.js';
import game from '../../../../game.js';
import {world} from '../../../../world.js';
import universe from '../../../../universe.js';
import cameraManager from '../../../../camera-manager.js';
+import story from '../../../../story.js';
+// import raycastManager from '../../../../raycast-manager.js';
import {snapshotMapChunk} from '../../../../scene-cruncher.js';
import {Text} from 'troika-three-text';
// import alea from '../../../../alea.js';
// import easing from '../../../../easing.js';
import musicManager from '../../../../music-manager.js';
+import {buildMaterial} from '../../../../shaders.js';
import {chatManager} from '../../../../chat-manager.js';
+import physicsManager from '../../../../physics-manager.js';
import {
makeRng,
- numBlocksPerChunk,
- voxelPixelSize,
+ // numBlocksPerChunk,
+ // voxelPixelSize,
chunkWorldSize,
placeNames,
- MapBlock,
+ // MapBlock,
createMapChunk,
createMapChunkMesh,
} from '../../../../procgen/procgen.js';
import styles from './map-gen.module.css';
import { AppContext } from '../../app';
+//
+
const localVector = new THREE.Vector3();
const localVector2 = new THREE.Vector3();
// const localVector3 = new THREE.Vector3();
-const localVectorX = new THREE.Vector3();
-const localVectorX2 = new THREE.Vector3();
+// const localVectorX = new THREE.Vector3();
+// const localVectorX2 = new THREE.Vector3();
const localVector2D = new THREE.Vector2();
const localQuaternion = new THREE.Quaternion();
+const localEuler = new THREE.Euler();
const localVector4D = new THREE.Vector4();
const localMatrix = new THREE.Matrix4();
-const localMatrix2 = new THREE.Matrix4();
-const localArray = [];
+// const localMatrix2 = new THREE.Matrix4();
+// const localArray = [];
// const localColor = new THREE.Color();
const localRaycaster = new THREE.Raycaster();
+const localPlane = new THREE.Plane();
+
+//
+const fakeGeometry = new THREE.BufferGeometry();
+const forwardDirection = new THREE.Vector3(0, 0, -1);
+const oneVector = new THREE.Vector3(1, 1, 1);
+const zeroVector = new THREE.Vector3(0, 0, 0);
+const upVector = new THREE.Vector3(0, 1, 0);
const downQuaternion = new THREE.Quaternion().setFromAxisAngle(
new THREE.Vector3(1, 0, 0),
-Math.PI / 2,
);
+const renderY = 60;
+
+//
+
+const seed = 'lol';
+const physicsInstance = 'map';
+const physicsScene = physicsManager.getScene(physicsInstance);
+
+(physicsInstance);
+const voxelPixelSize = 16;
//
@@ -187,19 +212,44 @@ export const MapGen = () => {
const { state, setState } = useContext( AppContext );
const [width, setWidth] = useState(window.innerWidth);
const [height, setHeight] = useState(window.innerHeight);
- const [position, setPosition] = useState(new THREE.Vector3(0, 0, 0));
- const [scale, setScale] = useState(1);
+ // const [position, setPosition] = useState(() => new THREE.Vector3(0, 100, 0));
+ // const [quaternion, setQuaternion] = useState(() => downQuaternion.clone());
+ // const [target, setTarget] = useState(() => position.clone().add(new THREE.Vector3(0, 0, -10).applyQuaternion(quaternion)));
+ // const [scale, setScale] = useState(1);
const [mouseState, setMouseState] = useState(null);
const [mapScene, setMapScene] = useState(() => new THREE.Scene());
- const [camera, setCamera] = useState(() => new THREE.OrthographicCamera());
- const [chunks, setChunks] = useState([]);
+ const [camera, setCamera] = useState(() => {
+ const camera = new THREE.PerspectiveCamera(45, width / height, 0.1, 10 * 1000);
+ camera.position.y = 100;
+ camera.quaternion.copy(downQuaternion);
+ camera.updateMatrixWorld();
+ return camera;
+ });
+ // const [chunks, setChunks] = useState([]);
const [hoveredObject, setHoveredObject] = useState(null);
const [selectedChunk, setSelectedChunk] = useState(null);
const [selectedObject, setSelectedObject] = useState(null);
const [lastSelectTime, setLastSelectTime] = useState(-Infinity);
- const [chunkCache, setChunkCache] = useState(new Map());
+ // const [chunkCache, setChunkCache] = useState(new Map());
const [text, setText] = useState('');
+ const [firedropMeshApp, setFiredropMeshApp] = useState(null);
const [haloMeshApp, setHaloMeshApp] = useState(null);
+ const [silksMeshApp, setSilksMeshApp] = useState(null);
+ const [cometMeshApp, setCometMeshApp] = useState(null);
+ const [flareMeshApp, setFlareMeshApp] = useState(null);
+ const [magicMeshApp, setMagicMeshApp] = useState(null);
+ const [limitMeshApp, setLimitMeshApp] = useState(null);
+ const [terrainApp, setTerrainApp] = useState(null);
+ const [hoveredPhysicsMesh, setHighlightPhysicsMesh] = useState(null);
+ const [selectedPhysicsMesh, setSelectedPhysicsMesh] = useState(null);
+ const [loaded, setLoaded] = useState(false);
+
+ const [hoveredPhysicsObject, setHoveredPhysicsObject] = useState(null);
+ const [hoveredPoint, setHoveredPoint] = useState(null);
+ const [selectedPhysicsObject, setSelectedPhysicsObject] = useState(null);
+
+ const [animation, setAnimation] = useState(null);
+
const canvasRef = useRef();
//
@@ -207,15 +257,19 @@ export const MapGen = () => {
const open = state.openedPanel === 'MapGenPanel';
const selectedObjectName = selectedObject ? selectedObject.name : '';
+ // const renderer = getRenderer();
+ // const pixelRatio = renderer.getPixelRatio();
+ const pixelRatio = window.devicePixelRatio;
+
//
- useEffect(() => {
+ /* useEffect(() => {
if (open) {
- musicManager.playCurrentMusic('overworld', {
+ musicManager.playCurrentMusicName('overworld', {
repeat: true,
});
} else { musicManager.stopCurrentMusic(); }
- }, [open]);
+ }, [open]); */
//
@@ -225,24 +279,48 @@ export const MapGen = () => {
};
+ const getRenderPosition = () => {
+ return camera.position.clone()
+ .add(new THREE.Vector3(0, 0, -16).applyQuaternion(camera.quaternion))
+ .toArray();
+ };
+ const _updateTerrainApp = () => {
+ if (terrainApp) {
+ const renderPosition = getRenderPosition();
+ terrainApp.setComponent('renderPosition', renderPosition);
+ }
+ };
+ const setPosition = p => {
+ camera.position.copy(p);
+ camera.updateMatrixWorld();
+
+ _updateTerrainApp();
+ };
+ const setQuaternion = q => {
+ camera.quaternion.copy(q);
+ camera.updateMatrixWorld();
+
+ _updateTerrainApp();
+ };
const updateCamera = () => {
+ debugger;
const renderer = getRenderer();
- const pixelRatio = renderer.getPixelRatio();
+ // const pixelRatio = renderer.getPixelRatio();
- camera.position.set(-position.x / voxelPixelSize, 1, -position.z / voxelPixelSize);
- camera.quaternion.copy(downQuaternion);
- camera.scale.setScalar(pixelRatio * scale);
- camera.updateMatrixWorld();
+ setPosition(position);
+ setQuaternion(quaternion);
+ // camera.scale.setScalar(pixelRatio * scale);
+ // camera.updateMatrixWorld();
- camera.left = -(width / voxelPixelSize) / 2;
+ /* camera.left = -(width / voxelPixelSize) / 2;
camera.right = (width / voxelPixelSize) / 2;
camera.top = (height / voxelPixelSize) / 2;
camera.bottom = -(height / voxelPixelSize) / 2;
camera.near = 0;
- camera.far = 1000;
- camera.updateProjectionMatrix();
+ camera.far = 10 * 1000;
+ camera.updateProjectionMatrix(); */
};
- const getChunksInRange = () => {
+ /* const getChunksInRange = () => {
const chunks = [];
const bottomLeft = localVectorX.set(-1, 1, 0)
.unproject(camera)
@@ -266,15 +344,15 @@ export const MapGen = () => {
}
return chunks;
- };
+ }; */
const setRaycasterFromEvent = (raycaster, e) => {
const width = window.innerWidth;
const height = window.innerHeight;
- const renderer = getRenderer();
- const pixelRatio = renderer.getPixelRatio();
+ // const renderer = getRenderer();
+ // const pixelRatio = renderer.getPixelRatio();
const mouse = localVector2D.set(
- (e.clientX / pixelRatio / width) * 2 - 1,
- -(e.clientY / pixelRatio / height) * 2 + 1
+ (e.clientX / width) * 2 - 1,
+ -(e.clientY / height) * 2 + 1
);
raycaster.setFromCamera(mouse, camera);
};
@@ -300,7 +378,7 @@ export const MapGen = () => {
(async () => {
const localPlayer = useLocalPlayer();
const aiScene = useLoreAIScene();
- const comment = await aiScene.generateComment(selectedChunk.name);
+ const comment = await aiScene.generateLocationComment(selectedChunk.name);
const message = `${selectedChunk.name}. ${comment}`;
const preloadedMessage = localPlayer.voicer.preloadMessage(message);
await chatManager.waitForVoiceTurn(() => {
@@ -312,50 +390,144 @@ export const MapGen = () => {
}
};
- /* useEffect(() => {
- if (text) {
- const timeout = setTimeout(() => {
- setText('');
- }, 5000);
- return () => {
- clearTimeout(timeout);
- };
- }
- }, [text]); */
+ const _addHacks = () => {
+ // open
+ useEffect( () => {
- // open
- useEffect( () => {
+ function handleKeyUp ( event ) {
- function handleKeyUp ( event ) {
+ if (game.inputFocused()) return true;
- if (game.inputFocused()) return true;
+ switch ( event.which ) {
- switch ( event.which ) {
+ case 74: { // J
- case 75: { // K
+ if (!firedropMeshApp) {
+ const localPlayer = useLocalPlayer();
+ const position = localPlayer.position.clone()
+ .add(new THREE.Vector3(0, 0, -3).applyQuaternion(localPlayer.quaternion));
+
+ const firedropMeshApp = metaversefile.createApp({
+ position,
+ });
+ (async () => {
+ const {modules} = metaversefile.useDefaultModules();
+ const m = modules['firedrop'];
+ await firedropMeshApp.addModule(m);
+ })();
+ scene.add(firedropMeshApp);
+
+ setFiredropMeshApp(firedropMeshApp);
+ } else {
+ firedropMeshApp.parent.remove(firedropMeshApp);
+ firedropMeshApp.destroy();
- if (!haloMeshApp) {
- const haloMeshApp = metaversefile.createApp();
- (async () => {
- const {modules} = metaversefile.useDefaultModules();
- const m = modules['halo'];
- await haloMeshApp.addModule(m);
- })();
- scene.add(haloMeshApp);
+ setFiredropMeshApp(null);
+ }
+
+ return false;
+ }
+
+ case 75: { // K
- setHaloMeshApp(haloMeshApp);
- } else {
- scene.remove(haloMeshApp);
- haloMeshApp.destroy();
+ if (!haloMeshApp) {
+ const haloMeshApp = metaversefile.createApp();
+ (async () => {
+ const {modules} = metaversefile.useDefaultModules();
+ const m = modules['halo'];
+ await haloMeshApp.addModule(m);
+ })();
+ scene.add(haloMeshApp);
- setHaloMeshApp(null);
+ setHaloMeshApp(haloMeshApp);
+ } else {
+ haloMeshApp.parent.remove(haloMeshApp);
+ haloMeshApp.destroy();
+
+ setHaloMeshApp(null);
+ }
+
+ return false;
}
- return false;
+ case 76: { // L
+
+ if (!silksMeshApp) {
+ const silksMeshApp = metaversefile.createApp();
+ (async () => {
+ const {modules} = metaversefile.useDefaultModules();
+ const m = modules['silks'];
+ await silksMeshApp.addModule(m);
+ })();
+ scene.add(silksMeshApp);
+
+ setSilksMeshApp(silksMeshApp);
+ } else {
+ silksMeshApp.parent.remove(silksMeshApp);
+ silksMeshApp.destroy();
+
+ setSilksMeshApp(null);
+ }
+
+ return false;
+
+ }
+
+ case 80: { // P
+
+ if (!cometMeshApp) {
+ const cometMeshApp = metaversefile.createApp();
+ (async () => {
+ const {modules} = metaversefile.useDefaultModules();
+ const m = modules['comet'];
+ await cometMeshApp.addModule(m);
+ })();
+ scene.add(cometMeshApp);
+ const localPlayer = useLocalPlayer();
+ cometMeshApp.position.copy(localPlayer.position)
+ .add(new THREE.Vector3(0, 3, -3).applyQuaternion(localPlayer.quaternion));
+ localEuler.setFromQuaternion(localPlayer.quaternion, 'YXZ');
+ localEuler.x = 0;
+ localEuler.z = 0;
+ cometMeshApp.quaternion.setFromEuler(localEuler);
+ cometMeshApp.updateMatrixWorld();
+
+ setCometMeshApp(cometMeshApp);
+ } else {
+ cometMeshApp.parent.remove(cometMeshApp);
+ cometMeshApp.destroy();
+
+ setCometMeshApp(null);
+ }
+
+ return false;
+
}
- case 76: { // L
-
+ case 186: { // ;
+
+ if (!flareMeshApp) {
+ const flareMeshApp = metaversefile.createApp();
+ (async () => {
+ const {modules} = metaversefile.useDefaultModules();
+ const m = modules['flare'];
+ await flareMeshApp.addModule(m);
+ })();
+ scene.add(flareMeshApp);
+
+ setFlareMeshApp(flareMeshApp);
+ } else {
+ flareMeshApp.parent.remove(flareMeshApp);
+ flareMeshApp.destroy();
+
+ setFlareMeshApp(null);
+ }
+
+ return false;
+
+ }
+ case 222: { // '
+
(async () => {
const chunkWorldSize = new THREE.Vector3(64, 64, 64);
const chunkWorldResolution = new THREE.Vector2(2048, 2048);
@@ -371,54 +543,109 @@ export const MapGen = () => {
);
scene.add(mesh);
})();
-
+
return false;
- }
+ }
- case 77: { // M
+ case 188: { // ,
- if ( state.openedPanel === 'MapGenPanel' ) {
+ if (!magicMeshApp) {
+ const magicMeshApp = metaversefile.createApp();
+ (async () => {
+ const {modules} = metaversefile.useDefaultModules();
+ const m = modules['magic'];
+ await magicMeshApp.addModule(m);
+ })();
+ sceneLowPriority.add(magicMeshApp);
- setState({ openedPanel: null });
+ setMagicMeshApp(magicMeshApp);
+ } else {
+ magicMeshApp.parent.remove(magicMeshApp);
+ magicMeshApp.destroy();
+
+ setMagicMeshApp(null);
+ }
+
+ return false;
- if ( ! cameraManager.pointerLockElement ) {
+ }
- cameraManager.requestPointerLock();
+ case 190: { // .
- }
+ if (!limitMeshApp) {
+ const limitMeshApp = metaversefile.createApp();
+ (async () => {
+ const {modules} = metaversefile.useDefaultModules();
+ const m = modules['limit'];
+ await limitMeshApp.addModule(m);
+ })();
+ sceneLowPriority.add(limitMeshApp);
+ setLimitMeshApp(limitMeshApp);
} else {
+ limitMeshApp.parent.remove(limitMeshApp);
+ limitMeshApp.destroy();
- if ( cameraManager.pointerLockElement ) {
+ setLimitMeshApp(null);
+ }
- cameraManager.exitPointerLock();
+ return false;
- }
+ }
- setState({ openedPanel: 'MapGenPanel' });
+ case 77: { // M
- }
+ if ( state.openedPanel === 'MapGenPanel' ) {
- return false;
+ setState({ openedPanel: null });
- }
+ if ( ! cameraManager.pointerLockElement ) {
- }
+ cameraManager.requestPointerLock();
- return true;
+ }
- }
+ } else {
- registerIoEventHandler( 'keyup', handleKeyUp );
+ if ( cameraManager.pointerLockElement ) {
- return () => {
+ cameraManager.exitPointerLock();
- unregisterIoEventHandler( 'keyup', handleKeyUp );
+ }
- };
+ setState({ openedPanel: 'MapGenPanel' });
+
+ }
+
+ return false;
+
+ }
+
+ case 219: { // [
+
+ story.startCinematicIntro();
+
+ return false;
+ }
+
+ }
+
+ return true;
+
+ }
+
+ registerIoEventHandler( 'keyup', handleKeyUp );
+
+ return () => {
- }, [ state.openedPanel, haloMeshApp ]);
+ unregisterIoEventHandler( 'keyup', handleKeyUp );
+
+ };
+
+ }, [ state.openedPanel, firedropMeshApp, haloMeshApp, silksMeshApp, cometMeshApp, flareMeshApp, magicMeshApp, limitMeshApp ]);
+ };
+ _addHacks();
// resize
useEffect(() => {
@@ -435,27 +662,123 @@ export const MapGen = () => {
// mousemove
useEffect(() => {
function mouseMove(e) {
+ // console.log('mouse move', !!mouseState);
if (mouseState) {
- const dx = e.movementX;
- const dy = e.movementY;
+ const totalX = mouseState.startX - e.clientX;
+ const totalY = mouseState.startY - e.clientY;
+
+ // console.log('move button', e.button, e.buttons, e);
+ if (
+ !!(mouseState.buttons & 1) || // left click
+ (e.shiftKey && !!(mouseState.buttons & 4)) // shift + right click
+ ) {
+ const {forwardTarget} = mouseState;
+
+ const backDirection = new THREE.Vector3(0, 0, 1).applyQuaternion(camera.quaternion);
+ localPlane.setFromNormalAndCoplanarPoint(backDirection, forwardTarget);
+
+ const oldEvent = {
+ clientX: mouseState.x,
+ clientY: mouseState.y,
+ };
+ setRaycasterFromEvent(localRaycaster, oldEvent);
+
+ const startIntersectionPoint = localRaycaster.ray.intersectPlane(localPlane, localVector);
+
+ setRaycasterFromEvent(localRaycaster, e);
+ const endIntersectionPoint = localRaycaster.ray.intersectPlane(localPlane, localVector2);
+
+ if (startIntersectionPoint && endIntersectionPoint) {
+ const intersectionDelta = endIntersectionPoint.clone().sub(startIntersectionPoint);
+ const p = camera.position.clone()
+ .sub(intersectionDelta);
+ setPosition(p);
+ }
- const renderer = getRenderer();
- const pixelRatio = renderer.getPixelRatio();
- setPosition(new THREE.Vector3(
- position.x + dx * scale / pixelRatio,
- 0,
- position.z + dy * scale / pixelRatio
- ));
+ /* const p = position.clone()
+ .add(new THREE.Vector3(-dx, dy, 0).applyQuaternion(quaternion));
+ setPosition(p); */
+ } else if (mouseState.buttons & 4) { // middle click
+ // setRaycasterFromEvent(localRaycaster, e);
+
+ // const dx = e.movementX;
+ // const dy = e.movementY;
+
+ const {startPosition, startQuaternion, forwardTarget} = mouseState;
+ // const offset = startPosition.clone().sub(forwardTarget);
+ // const offsetNegative = offset.clone().negate();
+ /* const target = position.clone()
+ .add(offset.clone().applyQuaternion(quaternion)); */
+ // localEuler.setFromQuaternion(quaternion, 'YXZ');
+ localEuler.setFromQuaternion(startQuaternion, 'YXZ');
+ localEuler.x += totalY * Math.PI * 2 * 0.001;
+ localEuler.y += totalX * Math.PI * 2 * 0.001;
+ localQuaternion.setFromEuler(localEuler)
+ // .multiply(startQuaternion);
+
+ const d = startPosition.distanceTo(forwardTarget);
+
+ const p = forwardTarget.clone()
+ .add(
+ new THREE.Vector3(0, 0, d)
+ .applyQuaternion(localQuaternion)
+ );
+ const q = localQuaternion.clone(); /* new THREE.Quaternion().setFromRotationMatrix(
+ localMatrix.lookAt(
+ p,
+ forwardTarget,
+ upVector
+ )
+ ); */
+
+ setPosition(p);
+ setQuaternion(q);
+ } else if (mouseState.buttons & 2) { // right click
+ /* const p = position.clone();
+ const q = quaternion.clone();
+
+ setPosition(p);
+ setQuaternion(q); */
+ }
setMouseState({
x: e.clientX,
y: e.clientY,
+ // totalX,
+ // totalY,
+ startX: mouseState.startX,
+ startY: mouseState.startY,
+ buttons: mouseState.buttons,
+ startPosition: mouseState.startPosition,
+ startQuaternion: mouseState.startQuaternion,
+ forwardTarget: mouseState.forwardTarget,
moved: true,
});
} else {
- setRaycasterFromEvent(localRaycaster, e);
+ let physicsObject = null;
+ let hoveredPoint = null;
+
+ // console.log('try hit', !!terrainApp, !!hoveredPhysicsMesh);
+ if (terrainApp) {
+ setRaycasterFromEvent(localRaycaster, e);
+
+ localQuaternion.setFromUnitVectors(forwardDirection, localRaycaster.ray.direction);
+ const raycastResult = physicsScene.raycast(localRaycaster.ray.origin, localQuaternion);
+ if (raycastResult) {
+ // window.raycastResult = raycastResult;
+ const physicsId = raycastResult.objectId;
+ const physicsObjects = terrainApp.getPhysicsObjects();
+ physicsObject = physicsObjects.find(physicsObject => physicsObject.physicsId === physicsId);
+ if (physicsObject) {
+ hoveredPoint = new THREE.Vector3().fromArray(raycastResult.point);
+ }
+ }
+ }
- localArray.length = 0;
+ setHoveredPhysicsObject(physicsObject);
+ setHoveredPoint(hoveredPoint);
+
+ /* localArray.length = 0;
const intersections = localRaycaster.intersectObjects(mapScene.children, false, localArray);
if (intersections.length > 0) {
const {object} = intersections[0];
@@ -467,7 +790,7 @@ export const MapGen = () => {
setHoveredObject(object);
} else {
setHoveredObject(null);
- }
+ } */
}
}
// listen on document to handle mouse move outside of window
@@ -475,52 +798,175 @@ export const MapGen = () => {
return () => {
document.removeEventListener('mousemove', mouseMove);
};
- }, [mouseState, chunks, position.x, position.z, scale]);
+ }, [
+ mouseState,
+ /* chunks, */
+ terrainApp,
+ // position.x, position.y, position.z,
+ // quaternion.x, quaternion.y, quaternion.z, quaternion.w,
+ // target.x, target.y, target.z,
+ // scale,
+ ]);
+
+ // physics objects
+ useEffect(() => {
+ if (hoveredPhysicsMesh) {
+ if (hoveredPhysicsObject) {
+ const {physicsMesh} = hoveredPhysicsObject;
+ const timestamp = performance.now();
+
+ hoveredPhysicsMesh.geometry = physicsMesh.geometry;
+ hoveredPhysicsMesh.matrixWorld.copy(physicsMesh.matrixWorld)
+ .decompose(hoveredPhysicsMesh.position, hoveredPhysicsMesh.quaternion, hoveredPhysicsMesh.scale);
+
+ hoveredPhysicsMesh.material.uniforms.uTime.value = (timestamp%1500)/1500;
+ hoveredPhysicsMesh.material.uniforms.uTime.needsUpdate = true;
+ hoveredPhysicsMesh.material.uniforms.uColor.value.setHex(buildMaterial.uniforms.uColor.value.getHex());
+ hoveredPhysicsMesh.material.uniforms.uColor.needsUpdate = true;
+ hoveredPhysicsMesh.visible = true;
+ hoveredPhysicsMesh.updateMatrixWorld();
+ } else {
+ hoveredPhysicsMesh.visible = false;
+ }
+ }
+ }, [hoveredPhysicsMesh, hoveredPhysicsObject]);
+
+ useEffect(() => {
+ if (selectedPhysicsMesh) {
+ if (selectedPhysicsObject) {
+ const {physicsMesh} = selectedPhysicsObject;
+ const timestamp = performance.now();
+
+ selectedPhysicsMesh.geometry = physicsMesh.geometry;
+ selectedPhysicsMesh.matrixWorld.copy(physicsMesh.matrixWorld)
+ .decompose(selectedPhysicsMesh.position, selectedPhysicsMesh.quaternion, selectedPhysicsMesh.scale);
+
+ selectedPhysicsMesh.material.uniforms.uTime.value = (timestamp%1500)/1500;
+ selectedPhysicsMesh.material.uniforms.uTime.needsUpdate = true;
+ selectedPhysicsMesh.material.uniforms.uColor.value.setHex(0x66bb6a);
+ selectedPhysicsMesh.material.uniforms.uColor.needsUpdate = true;
+ selectedPhysicsMesh.visible = true;
+ selectedPhysicsMesh.updateMatrixWorld();
+ } else {
+ selectedPhysicsMesh.visible = false;
+ }
+ }
+ }, [selectedPhysicsMesh, selectedPhysicsObject]);
// wheel
useEffect(() => {
if ( state.openedPanel === 'MapGenPanel' ) {
function wheel(e) {
- setRaycasterFromEvent(localRaycaster, e);
- localRaycaster.ray.origin.multiplyScalar(voxelPixelSize);
-
- const oldScale = scale;
- const newScale = Math.min(Math.max(scale * (1 + e.deltaY * 0.001), 0.01), 20);
- const scaleFactor = newScale / oldScale;
-
- localMatrix.compose(
- position,
- downQuaternion,
- localVector2.setScalar(scaleFactor)
- )
- .premultiply(
- localMatrix2.makeTranslation(localRaycaster.ray.origin.x, 0, localRaycaster.ray.origin.z)
- )
- .premultiply(
- localMatrix2.makeScale(scaleFactor, scaleFactor, scaleFactor)
+ if (!mouseState) {
+ setRaycasterFromEvent(localRaycaster, e);
+ // localRaycaster.ray.origin.multiplyScalar(voxelPixelSize);
+
+ /* const target = localRaycaster.ray.origin.clone()
+ .add(localRaycaster.ray.direction.clone().multiplyScalar(3)); */
+
+ const backDirection = localRaycaster.ray.direction.clone()
+ .multiplyScalar(-1);
+ // console.log('got back direction', backDirection.toArray().join(','));
+ const p = camera.position.clone()
+ .add(backDirection.clone().multiplyScalar(e.deltaY * 0.1));
+ setPosition(p);
+
+ /* const oldScale = scale;
+ const newScale = Math.min(Math.max(scale * (1 + e.deltaY * 0.001), 0.01), 20);
+ const scaleFactor = newScale / oldScale;
+
+ localMatrix.compose(
+ position,
+ downQuaternion,
+ localVector2.setScalar(scaleFactor)
)
- .premultiply(
- localMatrix2.makeTranslation(-localRaycaster.ray.origin.x, 0, -localRaycaster.ray.origin.z)
- )
- .decompose(localVector, localQuaternion, localVector2);
-
- setPosition(localVector.clone());
- setScale(newScale);
- setMouseState(null);
+ .premultiply(
+ localMatrix2.makeTranslation(localRaycaster.ray.origin.x, 0, localRaycaster.ray.origin.z)
+ )
+ .premultiply(
+ localMatrix2.makeScale(scaleFactor, scaleFactor, scaleFactor)
+ )
+ .premultiply(
+ localMatrix2.makeTranslation(-localRaycaster.ray.origin.x, 0, -localRaycaster.ray.origin.z)
+ )
+ .decompose(localVector, localQuaternion, localVector2);
+
+ setPosition(localVector.clone());
+ setScale(newScale); */
+
+ setPosition(p);
+ setMouseState(null);
+ }
return false;
+
}
registerIoEventHandler('wheel', wheel);
return () => {
unregisterIoEventHandler('wheel', wheel);
};
}
- }, [state.openedPanel, mouseState, position.x, position.z, scale]);
+ }, [state.openedPanel, mouseState]);
// click
useEffect(() => {
- function click(e) {
+ /* function click(e) {
+ console.log('click', e);
if ( state.openedPanel === 'MapGenPanel' ) {
+ return false;
+ } else {
+ return true;
+ }
+ } */
+ function dblclick(e) {
+ // console.log('dbl click', e);
+ if ( state.openedPanel === 'MapGenPanel' ) {
+ setSelectedPhysicsObject(hoveredPhysicsObject);
+
+ if (hoveredPhysicsObject) {
+ const {physicsMesh} = hoveredPhysicsObject;
+ const {geometry} = physicsMesh;
+ const {boundingBox} = geometry;
+
+ // window.hoveredPhysicsObject = hoveredPhysicsObject;
+
+ const center = boundingBox.getCenter(new THREE.Vector3());
+ const offset = camera.position.clone().sub(center);
+
+ const endPosition = center.clone()
+ .add(
+ offset.clone()
+ .normalize()
+ .multiplyScalar(16 * 2)
+ )
+ /* .add(
+ new THREE.Vector3(0, 16/2, 0)
+ ); */
+ const endQuaternion = new THREE.Quaternion().setFromRotationMatrix(
+ new THREE.Matrix4()
+ .lookAt(
+ camera.position,
+ center,
+ upVector
+ )
+ );
+
+ const now = performance.now();
+ const startTime = now;
+ const endTime = startTime + 1000;
+ const animation = {
+ startTime,
+ endTime,
+ startPosition: camera.position.clone(),
+ startQuaternion: camera.quaternion.clone(),
+ endPosition,
+ endQuaternion,
+ };
+ setAnimation(animation);
+ } else {
+ setAnimation(null);
+ }
+
return false;
} else {
return true;
@@ -528,8 +974,15 @@ export const MapGen = () => {
}
function mouseUp(e) {
if ( state.openedPanel === 'MapGenPanel') {
- if (mouseState && !mouseState.moved && hoveredObject) {
- selectObject();
+ if (mouseState && !mouseState.moved) {
+ const chunk = terrainApp?.getChunkForPhysicsObject(hoveredPhysicsObject);
+ if (chunk) {
+ // console.log('got chunk', chunk, hoveredPhysicsObject);
+ setSelectedPhysicsObject(selectedPhysicsObject !== hoveredPhysicsObject ? hoveredPhysicsObject : null);
+ } else {
+ // console.log('did not get chunk', hoveredPhysicsObject);
+ setSelectedPhysicsObject(null);
+ }
}
setMouseState(null);
return false;
@@ -537,49 +990,141 @@ export const MapGen = () => {
return true;
}
}
- registerIoEventHandler('click', click);
+ // registerIoEventHandler('click', click);
+ registerIoEventHandler('dblclick', dblclick);
registerIoEventHandler('mouseup', mouseUp);
return () => {
- unregisterIoEventHandler('click', click);
+ // unregisterIoEventHandler('click', click);
+ unregisterIoEventHandler('dblclick', dblclick);
unregisterIoEventHandler('mouseup', mouseUp);
};
- }, [ state.openedPanel, mouseState, hoveredObject ] );
+ }, [ state.openedPanel, terrainApp, mouseState, /*hoveredObject, */ hoveredPhysicsObject, selectedPhysicsObject ] );
- // update chunks
+ // initialize terrain
+ useEffect(async () => {
+ if (state.openedPanel === 'MapGenPanel' && !loaded) {
+ setLoaded(true);
+
+ // lights
+ const ambientLight = new THREE.AmbientLight(0xffffff, 2);
+ mapScene.add(ambientLight);
+ const directionalLight = new THREE.DirectionalLight(0xffffff, 2);
+ directionalLight.position.set(1, 2, 3);
+ mapScene.add(directionalLight);
+
+ // highlight physics meshes
+ const hoveredPhysicsMesh = new THREE.Mesh(
+ fakeGeometry,
+ buildMaterial.clone()
+ );
+ hoveredPhysicsMesh.frustumCulled = false;
+ mapScene.add(hoveredPhysicsMesh);
+ setHighlightPhysicsMesh(hoveredPhysicsMesh);
+
+ const selectedPhysicsMesh = new THREE.Mesh(
+ fakeGeometry,
+ buildMaterial.clone()
+ );
+ selectedPhysicsMesh.frustumCulled = false;
+ mapScene.add(selectedPhysicsMesh);
+ setSelectedPhysicsMesh(selectedPhysicsMesh);
+
+ // apps
+ await Promise.all([
+ (async () => {
+ // street base
+ const streetBaseApp = await metaversefile.createAppAsync({
+ start_url: '../street-base/',
+ components: {
+ seed: 'lol',
+ },
+ });
+ mapScene.add(streetBaseApp);
+ // setStreetBaseApp(streetBaseApp);
+ })(),
+ (async () => {
+ // terrain app
+ const terrainApp = await metaversefile.createAppAsync({
+ start_url: '../metaverse_modules/land/',
+ components: {
+ seed,
+ physicsInstance,
+ renderPosition: getRenderPosition(),
+ minLodRange: 3,
+ lods: 3,
+ }
+ });
+ mapScene.add(terrainApp);
+ setTerrainApp(terrainApp);
+ })(),
+ ]);
+ }
+ }, [state.openedPanel, loaded]);
+
+ // update camera
useEffect(() => {
- if ( state.openedPanel === 'MapGenPanel' ) {
- updateCamera();
+ if (state.openedPanel === 'MapGenPanel') {
+ // updateCamera();
- const newChunks = getChunksInRange();
- setChunks(newChunks);
+ // const newChunks = getChunksInRange();
+ // setChunks(newChunks);
}
- }, [canvasRef, state.openedPanel, width, height, position.x, position.z, scale]);
+ }, [
+ canvasRef,
+ state.openedPanel,
+ width, height,
+ // position.x, position.y, position.z,
+ // quaternion.x, quaternion.y, quaternion.z, quaternion.w,
+ // scale,
+ ]);
// render
useEffect(() => {
const canvas = canvasRef.current;
if (canvas && state.openedPanel === 'MapGenPanel') {
- updateCamera();
+ // updateCamera();
const ctx = canvas.getContext('2d');
- async function render(e) {
- const {timestamp, timeDiff} = e.data;
- const renderer = getRenderer();
-
+ function update() {
+ if (animation) {
+ const now = performance.now();
+ const factor = (now - animation.startTime) / (animation.endTime - animation.startTime);
+
+ setPosition(
+ animation.startPosition.clone()
+ .lerp(animation.endPosition, factor)
+ );
+ setQuaternion(
+ animation.startQuaternion.clone()
+ .slerp(animation.endQuaternion, factor)
+ );
+ // camera.updateMatrixWorld();
+
+ if (factor >= 1) {
+ setAnimation(null);
+ }
+ }
+ }
+ function render(e) {
+ // const {timestamp, timeDiff} = e.data;
+
+ update();
+
// push state
+ const renderer = getRenderer();
const oldViewport = renderer.getViewport(localVector4D);
- for (const chunk of chunks) {
+ /* for (const chunk of chunks) {
chunk.update(timestamp, timeDiff);
- }
+ } */
renderer.setViewport(0, 0, width, height);
// renderer.setClearColor(0xFF0000, 1);
renderer.clear();
renderer.render(mapScene, camera);
- ctx.clearRect(0, 0, width, height);
+ ctx.clearRect(0, 0, width * pixelRatio, height * pixelRatio);
ctx.drawImage(renderer.domElement, 0, 0);
// pop state
@@ -590,17 +1135,49 @@ export const MapGen = () => {
world.appManager.removeEventListener('frame', render);
};
}
- }, [canvasRef, state.openedPanel, width, height, chunks, position.x, position.z, scale]);
+ }, [canvasRef, state.openedPanel, width, height, /* chunks, */ animation]);
function mouseDown(e) {
e.preventDefault();
e.stopPropagation();
+ const maxDistance = 100;
+
+ const startPosition = camera.position.clone();
+ const startQuaternion = camera.quaternion.clone();
+ const forwardTarget = (() => {
+ if (hoveredPoint) {
+ const distance = camera.position.distanceTo(hoveredPoint);
+ return camera.position.clone()
+ .add(new THREE.Vector3(0, 0, -distance).applyQuaternion(camera.quaternion));
+ } else {
+ localPlane.setFromNormalAndCoplanarPoint(upVector, localVector.set(0, renderY, 0));
+ setRaycasterFromEvent(localRaycaster, e);
+ const startIntersectionPoint = localRaycaster.ray.intersectPlane(localPlane, localVector);
+ const distance = startIntersectionPoint ? camera.position.distanceTo(startIntersectionPoint) : Infinity;
+ if (distance < maxDistance) {
+ return camera.position.clone()
+ .add(new THREE.Vector3(0, 0, -distance).applyQuaternion(camera.quaternion));
+ } else {
+ return camera.position.clone()
+ .add(new THREE.Vector3(0, 0, -maxDistance).applyQuaternion(camera.quaternion));
+ }
+ }
+ })();
+
+ // console.log('new mouse state');
setMouseState({
x: e.clientX,
y: e.clientY,
+ startX: e.clientX,
+ startY: e.clientY,
+ buttons: e.buttons,
+ startPosition,
+ startQuaternion,
+ forwardTarget,
moved: false,
});
+ setAnimation(null);
}
function goClick(e) {
e.preventDefault();
@@ -635,8 +1212,8 @@ export const MapGen = () => {