diff --git a/package-lock.json b/package-lock.json index 8ba39bcf..296b5e7b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,6 +9,7 @@ "version": "22.2.22", "license": "SEE LICENSE IN LICENSE", "dependencies": { + "@fluidframework/azure-client": "^1.1.1", "@microsoft/generator-powerpages": "1.21.19", "@types/jwt-decode": "2.2.0", "@types/node-fetch": "^2.6.2", @@ -16,6 +17,7 @@ "cockatiel": "^3.1.1", "command-exists": "^1.2.9", "find-process": "^1.4.7", + "fluid-framework": "^1.3.7", "glob": "^7.1.7", "gpt-tokenizer": "^2.1.1", "liquidjs": "^10.2.0", @@ -33,6 +35,7 @@ "@istanbuljs/nyc-config-typescript": "1.0.2", "@types/chai": "^4.2.14", "@types/command-exists": "^1.2.0", + "@types/debug": "^4.1.9", "@types/fs-extra": "^9.0.11", "@types/glob": "^7.1.3", "@types/mocha": "^8.0.3", @@ -635,6 +638,1459 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/@fluidframework/aqueduct": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/aqueduct/-/aqueduct-1.3.7.tgz", + "integrity": "sha512-eXWGpzXnATNUIta5xJauwW8QDqw7sCjaVsF2yk5me3aeRZ9vi5a6bWeHuheADMARyYPrTWoDVINFR0H3EXFnjg==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-loader": "^1.3.7", + "@fluidframework/container-runtime": "^1.3.7", + "@fluidframework/container-runtime-definitions": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore": "^1.3.7", + "@fluidframework/datastore-definitions": "^1.3.7", + "@fluidframework/map": "^1.3.7", + "@fluidframework/request-handler": "^1.3.7", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7", + "@fluidframework/synthesize": "^1.3.7", + "@fluidframework/view-interfaces": "^1.3.7", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/aqueduct/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/aqueduct/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/azure-client": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@fluidframework/azure-client/-/azure-client-1.1.1.tgz", + "integrity": "sha512-2raaGv2nWxdMbcrw9kuDhHd8coqqVloIoM7X19NmcCVP7FLkT7n8Fj2O/7gg8ccqsaMSXNWCRhbtMpca/lcD8g==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^1.0.0", + "@fluidframework/container-definitions": "^1.3.3", + "@fluidframework/container-loader": "^1.3.3", + "@fluidframework/core-interfaces": "^1.3.3", + "@fluidframework/driver-definitions": "^1.3.3", + "@fluidframework/driver-utils": "^1.3.3", + "@fluidframework/fluid-static": "^1.3.3", + "@fluidframework/map": "^1.3.3", + "@fluidframework/protocol-definitions": "^1.0.0", + "@fluidframework/routerlicious-driver": "^1.3.3", + "@fluidframework/runtime-utils": "^1.3.3", + "@fluidframework/server-services-client": "^0.1036.5001", + "axios": "^0.21.2", + "uuid": "^8.3.1" + }, + "peerDependencies": { + "fluid-framework": "^1.3.3" + } + }, + "node_modules/@fluidframework/common-definitions": { + "version": "0.20.1", + "resolved": "https://registry.npmjs.org/@fluidframework/common-definitions/-/common-definitions-0.20.1.tgz", + "integrity": "sha512-KaoQ7w2MDH5OeRKVatL5yVOCFg+9wD6bLSLFh1/TV1EZM46l49iBqO7UVjUtPE6BIm0jvvOzJXULGVSpzokX3g==" + }, + "node_modules/@fluidframework/common-utils": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-1.1.1.tgz", + "integrity": "sha512-XCPEFE1JAg+juQZYQQVZjHZJlM5+Wm9NxRbsnsix05M1tSq0p3SLqwgfaSGssXhLLX5QtG+aF1QD5a3LA1qtNQ==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/common-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/container-definitions": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/container-definitions/-/container-definitions-1.3.7.tgz", + "integrity": "sha512-ESO6uI6n6Xy6gk4Yee9BoVh0JjgnG7SIh79JFKIgGLOk9mQ2j3A8glHPtWTwMxgtvfr+NCHdcE6yleWGWnBU7g==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "events": "^3.1.0" + } + }, + "node_modules/@fluidframework/container-definitions/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/container-loader": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/container-loader/-/container-loader-1.3.7.tgz", + "integrity": "sha512-BDAW9cCD4VOV8vAHjv7/n6Bl9TOumkvBcvBJQfg9tXBnBDCxwgjvB5Azpg/rKlxZn9LXLArbTUd1oeT5i1B01g==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-utils": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/driver-utils": "^1.3.7", + "@fluidframework/protocol-base": "^0.1036.5001", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/telemetry-utils": "^1.3.7", + "abort-controller": "^3.0.0", + "double-ended-queue": "^2.1.0-0", + "events": "^3.1.0", + "lodash": "^4.17.21", + "url": "^0.11.0", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/container-loader/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/container-loader/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/container-loader/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/container-runtime": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/container-runtime/-/container-runtime-1.3.7.tgz", + "integrity": "sha512-dqzcvJlcSWfIS8iTWiqFk3uk+LInZK+gOcNUS2QWR+nOwzI70lQV+UqCb1lxErG1zRcQotga1yn+KSzccZlRxg==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-runtime-definitions": "^1.3.7", + "@fluidframework/container-utils": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/driver-utils": "^1.3.7", + "@fluidframework/garbage-collector": "^1.3.7", + "@fluidframework/protocol-base": "^0.1036.5001", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7", + "@fluidframework/telemetry-utils": "^1.3.7", + "double-ended-queue": "^2.1.0-0", + "events": "^3.1.0", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/container-runtime-definitions": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/container-runtime-definitions/-/container-runtime-definitions-1.3.7.tgz", + "integrity": "sha512-86RzJm/2/j0es+4oKiJTSsC2/zkp2KGFR/2ALccl58Hru+zttnRMn31DIcc2c7YDNHB6IuaZ7V2UKh26AAnkAg==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7" + } + }, + "node_modules/@fluidframework/container-runtime-definitions/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/container-runtime/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/container-runtime/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/container-runtime/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/container-utils": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/container-utils/-/container-utils-1.3.7.tgz", + "integrity": "sha512-XFt6iSD6RzJ+1dafwwzFgWA9U0yEvda0328zAGNT//c5H6cNSipxDuos7CJrDJWy2goQkBuyTYxpiSzsi7dNWg==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/telemetry-utils": "^1.3.7" + } + }, + "node_modules/@fluidframework/container-utils/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/container-utils/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/container-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/core-interfaces": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/core-interfaces/-/core-interfaces-1.3.7.tgz", + "integrity": "sha512-Rzsb1xK4h5imIddai+BW+XNWnpM1FEZR9UBWSKb+vMr0PCVBJwe4BTi6vxA7+o8OgdzVMOmOZhqnivKNUrGYKw==" + }, + "node_modules/@fluidframework/datastore": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/datastore/-/datastore-1.3.7.tgz", + "integrity": "sha512-RaGLO3VUCIQhbh5D6h2PLnZ79Fw2aUbZSCltiQdKBWbBp4FzUgP+qqrtzSTd62waIzCod50aODUBNoYP+MqqoA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-utils": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore-definitions": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/driver-utils": "^1.3.7", + "@fluidframework/garbage-collector": "^1.3.7", + "@fluidframework/protocol-base": "^0.1036.5001", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7", + "@fluidframework/telemetry-utils": "^1.3.7", + "lodash": "^4.17.21", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/datastore-definitions": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/datastore-definitions/-/datastore-definitions-1.3.7.tgz", + "integrity": "sha512-ucco5cnYvJEVBtzdeB2vYrdnDswjYAyX2H/OnL4+3gffUcJWCIuXQuON+AHv3uw/ESrOP0CUhuYv6ulT1SajNQ==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7" + } + }, + "node_modules/@fluidframework/datastore-definitions/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/datastore-definitions/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/datastore-definitions/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/datastore/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/datastore/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/datastore/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/driver-base": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/driver-base/-/driver-base-1.3.7.tgz", + "integrity": "sha512-egZTjkAAQXATbIj5K5Ou7mNfthIKpQzogjrU+l//lHVsXyKJhShsowl4mTLs9VvYfNE5NLove7fdSEoh1coyLA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/driver-utils": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/telemetry-utils": "^1.3.7" + } + }, + "node_modules/@fluidframework/driver-base/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/driver-base/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/driver-base/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/driver-definitions": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/driver-definitions/-/driver-definitions-1.3.7.tgz", + "integrity": "sha512-JZfOgfkOA9sdmMDDs1L83UtU1Zoe73E0QFXu3hlL3JUllDEmMvwzZkwJf+H82PdpHTu/gR99lPMz3GVtWoU5hQ==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000" + } + }, + "node_modules/@fluidframework/driver-definitions/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/driver-utils": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/driver-utils/-/driver-utils-1.3.7.tgz", + "integrity": "sha512-N8dHnrgZJrvbC8DSY0MAbcFNhRJeoryQKYz0b7fjO3P/RE1GRQfU5phlBWlkQwJKPo5Zh+I9o2S6kQY1oz6DcQ==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/gitresources": "^0.1036.5001", + "@fluidframework/protocol-base": "^0.1036.5001", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/telemetry-utils": "^1.3.7", + "axios": "^0.26.0", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/driver-utils/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/driver-utils/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/driver-utils/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/@fluidframework/driver-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/fluid-static": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/fluid-static/-/fluid-static-1.3.7.tgz", + "integrity": "sha512-Rnuvx/xjy6GuA2/VN2J3I2RLkVMLch1QVqlN5UWZqpSFUx3O8+NPTVC9pocTOnTJTvhO3dqgPmGpJgIigZizbQ==", + "dependencies": { + "@fluidframework/aqueduct": "^1.3.7", + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-loader": "^1.3.7", + "@fluidframework/container-runtime-definitions": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore-definitions": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/request-handler": "^1.3.7", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7" + } + }, + "node_modules/@fluidframework/fluid-static/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/fluid-static/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/fluid-static/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/garbage-collector": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/garbage-collector/-/garbage-collector-1.3.7.tgz", + "integrity": "sha512-w9FRDXN+/vWnL3JHBteGqY4Df1VvUXJ6DVR/PWJLh1pUyVUvpDAXya9ldxhmPw1CRja+TSc1nxwMWennJVAywQ==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/runtime-definitions": "^1.3.7" + } + }, + "node_modules/@fluidframework/garbage-collector/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/garbage-collector/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/gitresources": { + "version": "0.1036.5001", + "resolved": "https://registry.npmjs.org/@fluidframework/gitresources/-/gitresources-0.1036.5001.tgz", + "integrity": "sha512-Beg1A/eR7wCPYYb5u5iqqc092NkWnSvl4XCn2ImA4FDKtnYggD2/KYd9Hp0feM6Z99aU4FYSBidL2NewWlvF7A==" + }, + "node_modules/@fluidframework/map": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/map/-/map-1.3.7.tgz", + "integrity": "sha512-O9YYytm3OIkl6BuC3WGQQtwJZnh50BjfkRGECvhJtMSgEvGE1U6STpk1xuOwnjcK7SsnrkNQd9hMCTZgUMe0VQ==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-utils": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore-definitions": "^1.3.7", + "@fluidframework/driver-utils": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7", + "@fluidframework/shared-object-base": "^1.3.7", + "path-browserify": "^1.0.1" + } + }, + "node_modules/@fluidframework/map/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/map/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/map/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/merge-tree": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/merge-tree/-/merge-tree-1.3.7.tgz", + "integrity": "sha512-YA9/fRrTN8LkSw2H1/CgjkfWY1hW6PreHRJbBYZVVC469vXzMGOf+A8xBWS33A4U3oDNBj4ymVb9Ijy87vTKIA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-utils": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore-definitions": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7", + "@fluidframework/shared-object-base": "^1.3.7", + "@fluidframework/telemetry-utils": "^1.3.7" + } + }, + "node_modules/@fluidframework/merge-tree/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/merge-tree/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/merge-tree/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/protocol-base": { + "version": "0.1036.5001", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-base/-/protocol-base-0.1036.5001.tgz", + "integrity": "sha512-Btjy2bWVbVsmzNTBxTQZ9l/WXljsjDpGbBgJsn9GLacrTG9aDDtIVMXuwLAcEV1IVkxGcIipXryvfhbPHDYcMg==", + "dependencies": { + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/gitresources": "^0.1036.5001", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "lodash": "^4.17.21" + } + }, + "node_modules/@fluidframework/protocol-base/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/protocol-base/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/protocol-base/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/protocol-definitions": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-1.2.0.tgz", + "integrity": "sha512-2/GoupA8mjHD8gcjyn4SedqJStKlQAZxga5PtDBoh+xHsuugQRhsAHJCX+8tdqbSK4ZOo9z8iq/vWKVLUi5Dzw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/request-handler": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/request-handler/-/request-handler-1.3.7.tgz", + "integrity": "sha512-bR1VsJ+KISQ+iklRrjy0OGnYYC/fwsDZcTOG9wbfslFGYt7GIIkFZhsaYDlIjYXBIDQhbZzXCeclxmTzrs2hAQ==", + "dependencies": { + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-runtime-definitions": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7" + } + }, + "node_modules/@fluidframework/request-handler/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/request-handler/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/routerlicious-driver": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/routerlicious-driver/-/routerlicious-driver-1.3.7.tgz", + "integrity": "sha512-mYBOCEaKdgrLihlBSzx7FMdRdjmu3MkIU5bWswEIaBiyBmrv+cVoqtKIaH30Myi+a7KQkmToFQ+ZSJ8kFVukJg==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/driver-base": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/driver-utils": "^1.3.7", + "@fluidframework/gitresources": "^0.1036.5001", + "@fluidframework/protocol-base": "^0.1036.5001", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/server-services-client": "^0.1036.5001", + "@fluidframework/telemetry-utils": "^1.3.7", + "cross-fetch": "^3.1.5", + "json-stringify-safe": "5.0.1", + "querystring": "^0.2.0", + "socket.io-client": "^4.4.1", + "url-parse": "^1.5.8", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/routerlicious-driver/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/routerlicious-driver/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/routerlicious-driver/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/runtime-definitions": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/runtime-definitions/-/runtime-definitions-1.3.7.tgz", + "integrity": "sha512-AXE1FDgCl9nF5O4RCn7vdMzTIM4y7fXArAx6HpKMbaWZIVy/fsrGBJ+XFiKCblKtMKhcgv3TrbQlM3nUMSa6Iw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000" + } + }, + "node_modules/@fluidframework/runtime-definitions/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/runtime-definitions/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/runtime-definitions/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/runtime-utils": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/runtime-utils/-/runtime-utils-1.3.7.tgz", + "integrity": "sha512-CKzkYYaaYYxscU0NazuYu1gF1tiQxvZ5mHbTE5FxxxydGMEHcqKQ92eFwDdFYEpfJ8TyWBWpnYgyrU4g7dp89A==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-runtime-definitions": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore-definitions": "^1.3.7", + "@fluidframework/garbage-collector": "^1.3.7", + "@fluidframework/protocol-base": "^0.1036.5001", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/telemetry-utils": "^1.3.7" + } + }, + "node_modules/@fluidframework/runtime-utils/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/runtime-utils/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/runtime-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/sequence": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/sequence/-/sequence-1.3.7.tgz", + "integrity": "sha512-ctBdXecq4y+EZnAAtE/bHSj+jkByusqfemqUhA+NMM8pgIzD3oOO1JWpuIE/dZAjQLTamnXOmrOL4UkyB3dnmw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-utils": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore-definitions": "^1.3.7", + "@fluidframework/merge-tree": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7", + "@fluidframework/shared-object-base": "^1.3.7", + "@fluidframework/telemetry-utils": "^1.3.7", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/sequence/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/sequence/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/sequence/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/server-services-client": { + "version": "0.1036.5001", + "resolved": "https://registry.npmjs.org/@fluidframework/server-services-client/-/server-services-client-0.1036.5001.tgz", + "integrity": "sha512-e+Zk2uPcds9yqlalAZ0PpfEAKPPUIpIoQb3YSm42ZVpAgQmLYIRqTpXrmTC7qdeQnSGFJUAliW4DfHBEwpSXlQ==", + "dependencies": { + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/gitresources": "^0.1036.5001", + "@fluidframework/protocol-base": "^0.1036.5001", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "axios": "^0.26.0", + "crc-32": "1.2.0", + "debug": "^4.1.1", + "json-stringify-safe": "^5.0.1", + "jsrsasign": "^10.2.0", + "jwt-decode": "^3.0.0", + "querystring": "^0.2.0", + "sillyname": "^0.1.0", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/server-services-client/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/server-services-client/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/server-services-client/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/@fluidframework/server-services-client/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/server-services-client/node_modules/jwt-decode": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/jwt-decode/-/jwt-decode-3.1.2.tgz", + "integrity": "sha512-UfpWE/VZn0iP50d8cz9NrZLM9lSWhcJ+0Gt/nm4by88UL+J1SiKN8/5dkjMmbEzwL2CAe+67GsegCbIKtbp75A==" + }, + "node_modules/@fluidframework/shared-object-base": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/shared-object-base/-/shared-object-base-1.3.7.tgz", + "integrity": "sha512-16ShEElTu60ZNxD4Em1PBbh77v//bHPHIaPJ9Tj8iI0zXGVIhhaY3RjhZScjhQFDhHEwJ0+rv/50X/xUzUXJ/w==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-runtime": "^1.3.7", + "@fluidframework/container-utils": "^1.3.7", + "@fluidframework/core-interfaces": "^1.3.7", + "@fluidframework/datastore": "^1.3.7", + "@fluidframework/datastore-definitions": "^1.3.7", + "@fluidframework/protocol-definitions": "^0.1028.2000", + "@fluidframework/runtime-definitions": "^1.3.7", + "@fluidframework/runtime-utils": "^1.3.7", + "@fluidframework/telemetry-utils": "^1.3.7", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/shared-object-base/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/shared-object-base/node_modules/@fluidframework/protocol-definitions": { + "version": "0.1028.2000", + "resolved": "https://registry.npmjs.org/@fluidframework/protocol-definitions/-/protocol-definitions-0.1028.2000.tgz", + "integrity": "sha512-ZUPCmPFcK7UAK4RkfVWfzQPAWFvYNm6ywP51V42YC38gCGye+Epvyr3beA+FSaHPIZGxm5+Uw52+ykTvmDb2UA==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1" + } + }, + "node_modules/@fluidframework/shared-object-base/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/synthesize": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/synthesize/-/synthesize-1.3.7.tgz", + "integrity": "sha512-hojZEcVPM6ymDTiJkfYpDxQS28BaCjAA9KOqEa4a9RKljUXkxhVKl/flavofYWry/CgBw441e5KnXAZsAbmyoA==" + }, + "node_modules/@fluidframework/telemetry-utils": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/telemetry-utils/-/telemetry-utils-1.3.7.tgz", + "integrity": "sha512-zM+GDOhZ2XKjPUm6PcGS9IDq3BvoiltH5X3j0dzODRR12xGtZIO2VBHTWlVtDjELw4n/TL/2Ftw+Kk2q/nIooQ==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@fluidframework/common-utils": "^0.32.2", + "debug": "^4.1.1", + "events": "^3.1.0", + "uuid": "^8.3.1" + } + }, + "node_modules/@fluidframework/telemetry-utils/node_modules/@fluidframework/common-utils": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@fluidframework/common-utils/-/common-utils-0.32.2.tgz", + "integrity": "sha512-PoGX7/l0vWKt5JaAxcgFOdGje30Q6qSE06YzFIKh9Ba3oq7B60+TFqu7c2ErQt6sNddmvcAcAiLVNaTGAip3vw==", + "dependencies": { + "@fluidframework/common-definitions": "^0.20.1", + "@types/events": "^3.0.0", + "base64-js": "^1.5.1", + "buffer": "^6.0.3", + "events": "^3.1.0", + "lodash": "^4.17.21", + "sha.js": "^2.4.11" + } + }, + "node_modules/@fluidframework/telemetry-utils/node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/@fluidframework/view-interfaces": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/@fluidframework/view-interfaces/-/view-interfaces-1.3.7.tgz", + "integrity": "sha512-9GlMGSkOZDLT7q7AHEd72Mjx15sKV43dZ61K91cK8Whx1eKx4vez/FFhXJl81bom37W+Gsl6iTy7ZRh8T1yj8g==", + "dependencies": { + "@fluidframework/core-interfaces": "^1.3.7" + } + }, "node_modules/@gulp-sourcemaps/identity-map": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/@gulp-sourcemaps/identity-map/-/identity-map-1.0.2.tgz", @@ -1525,6 +2981,11 @@ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==", "dev": true }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", + "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==" + }, "node_modules/@tootallnate/once": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", @@ -1612,6 +3073,15 @@ "integrity": "sha512-ugsxEJfsCuqMLSuCD4PIJkp5Uk2z6TCMRCgYVuhRo5cYQY3+1xXTQkSlPtkpGHuvWMjS2KTeVQXxkXRACMbM6A==", "dev": true }, + "node_modules/@types/debug": { + "version": "4.1.9", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.9.tgz", + "integrity": "sha512-8Hz50m2eoS56ldRlepxSBa6PWEVCtzUo/92HgLc2qTMnotJNIm7xP+UZhyWoYsyOdd5dxZ+NZLb24rsKyFs2ow==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/eslint": { "version": "8.4.10", "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.10.tgz", @@ -1638,6 +3108,11 @@ "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, + "node_modules/@types/events": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.1.tgz", + "integrity": "sha512-QfUFdKjGSc+iCf8OFZhqJKfDuqB6lP57kSMkPw8ba3yNDANicUwCdaPt5ytZ4nDXXVFxQkvT8v73I4stSVrCxA==" + }, "node_modules/@types/expect": { "version": "1.20.4", "resolved": "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz", @@ -1686,6 +3161,12 @@ "integrity": "sha512-ekGvFhFgrc2zYQoX4JeZPmVzZxw6Dtllga7iGHzfbYIYkAMUx/sAFP2GdFpLff+vdHXu5fl7WX9AT+TtqYcsyw==", "dev": true }, + "node_modules/@types/ms": { + "version": "0.7.32", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz", + "integrity": "sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g==", + "dev": true + }, "node_modules/@types/node": { "version": "14.18.34", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.18.34.tgz", @@ -2552,6 +4033,17 @@ "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" }, + "node_modules/abort-controller": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", + "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", + "dependencies": { + "event-target-shim": "^5.0.0" + }, + "engines": { + "node": ">=6.5" + } + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -3286,6 +4778,14 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, "node_modules/azure-devops-node-api": { "version": "11.2.0", "resolved": "https://registry.npmjs.org/azure-devops-node-api/-/azure-devops-node-api-11.2.0.tgz", @@ -3833,7 +5333,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "get-intrinsic": "^1.0.2" @@ -4437,6 +5936,21 @@ "node": ">=14" } }, + "node_modules/crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.0.tgz", + "integrity": "sha512-1uBwHxF+Y/4yF5G48fwnKq6QsIXheor3ZLPT80yGBV1oEUwpPojlEhQbWKVw1VwcTQyMGHK1/XMmTjmlsmTTGA==", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -4892,6 +6406,11 @@ "url": "https://github.com/fb55/domutils?sponsor=1" } }, + "node_modules/double-ended-queue": { + "version": "2.1.0-0", + "resolved": "https://registry.npmjs.org/double-ended-queue/-/double-ended-queue-2.1.0-0.tgz", + "integrity": "sha512-+BNfZ+deCo8hMNpDqDnvT+c0XpJ5cUa6mqYq89bho2Ifze4URTqRkcwR399hWoTrTkbZ/XJYDgP6rc7pRgffEQ==" + }, "node_modules/duplexify": { "version": "3.7.1", "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", @@ -4996,6 +6515,46 @@ "once": "^1.4.0" } }, + "node_modules/engine.io-client": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.2.tgz", + "integrity": "sha512-CQZqbrpEYnrpGqC07a9dJDz4gePZUgTPMU3NKJPSeQOyw27Tst4Pl3FemKoFGAlHzgZmKjoRmiJvbWfhCXUlIg==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.11.0", + "xmlhttprequest-ssl": "~2.0.0" + } + }, + "node_modules/engine.io-client/node_modules/ws": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.11.0.tgz", + "integrity": "sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg==", + "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 + } + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.1.tgz", + "integrity": "sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/enhanced-resolve": { "version": "5.12.0", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz", @@ -5395,11 +6954,18 @@ "es5-ext": "~0.10.14" } }, + "node_modules/event-target-shim": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", + "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", + "engines": { + "node": ">=6" + } + }, "node_modules/events": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", - "dev": true, "engines": { "node": ">=0.8.x" } @@ -5448,6 +7014,14 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz", + "integrity": "sha512-h2z5mrROTxce56S+pnvAV890uu7ls7f1kEvVGJbw1OlFH3/mlJ5bkXu0KRyW94v37zzHPiUd55iLn3DA7TjWpw==", + "engines": { + "node": ">=0.8" + } + }, "node_modules/expand-brackets": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", @@ -6123,6 +7697,19 @@ "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", "dev": true }, + "node_modules/fluid-framework": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/fluid-framework/-/fluid-framework-1.3.7.tgz", + "integrity": "sha512-NobiWALl9iz4rZnQT+Z0Kr583+Umaub7Ocp8LnCVEpr97hdlvnwpCrLj03cvwxZgpsuobHHTRTpGxabuZtehDQ==", + "dependencies": { + "@fluidframework/container-definitions": "^1.3.7", + "@fluidframework/container-loader": "^1.3.7", + "@fluidframework/driver-definitions": "^1.3.7", + "@fluidframework/fluid-static": "^1.3.7", + "@fluidframework/map": "^1.3.7", + "@fluidframework/sequence": "^1.3.7" + } + }, "node_modules/flush-write-stream": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", @@ -6133,6 +7720,25 @@ "readable-stream": "^2.3.6" } }, + "node_modules/follow-redirects": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", + "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, "node_modules/for-each": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", @@ -6366,7 +7972,6 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, "dependencies": { "function-bind": "^1.1.1", "has": "^1.0.3", @@ -7854,7 +9459,6 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true, "engines": { "node": ">= 0.4" }, @@ -8952,6 +10556,11 @@ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", "dev": true }, + "node_modules/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==" + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -8989,6 +10598,14 @@ "node >= 0.2.0" ] }, + "node_modules/jsrsasign": { + "version": "10.8.6", + "resolved": "https://registry.npmjs.org/jsrsasign/-/jsrsasign-10.8.6.tgz", + "integrity": "sha512-bQmbVtsfbgaKBTWCKiDCPlUPbdlRIK/FzSwT3BzIgZl/cU6TqXu6pZJsCI/dJVrZ9Gir5GC4woqw9shH/v7MBw==", + "funding": { + "url": "https://github.com/kjur/jsrsasign#donations" + } + }, "node_modules/jszip": { "version": "3.10.1", "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.1.tgz", @@ -11403,7 +13020,6 @@ "version": "1.12.3", "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", - "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -11858,8 +13474,7 @@ "node_modules/path-browserify": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", - "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", - "dev": true + "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==" }, "node_modules/path-dirname": { "version": "1.0.2", @@ -12229,6 +13844,17 @@ "node": ">= 0.8" } }, + "node_modules/printj": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/printj/-/printj-1.1.2.tgz", + "integrity": "sha512-zA2SmoLaxZyArQTOPj5LXecR+RagfPSU5Kw1qP+jkWeNlrq+eJZyY2oS68SU1Z/7/myXM4lo9716laOFAVStCQ==", + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/proc-log": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", @@ -12486,10 +14112,9 @@ } }, "node_modules/qs": { - "version": "6.11.1", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.1.tgz", - "integrity": "sha512-0wsrzgTz/kAVIeuxSjnpGC56rzYtr6JT/2BwEvMaPhFIoYa1aGO8LbzuU1R0uUYQkLpWBTOj0l/CLAJB64J6nQ==", - "dev": true, + "version": "6.11.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.2.tgz", + "integrity": "sha512-tDNIz22aBzCDxLtVH++VnTfzxlfeK5CbqohpSqpJgj1Wg/cQbStNAz3NuqCs5vV+pjBsK4x4pN9HlVh7rcYRiA==", "dependencies": { "side-channel": "^1.0.4" }, @@ -12500,6 +14125,20 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/querystring": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.1.tgz", + "integrity": "sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", + "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==" + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -13147,6 +14786,11 @@ "integrity": "sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug==", "dev": true }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==" + }, "node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -13369,7 +15013,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -13503,6 +15146,18 @@ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, "node_modules/shallow-clone": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", @@ -13568,7 +15223,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, "dependencies": { "call-bind": "^1.0.0", "get-intrinsic": "^1.0.2", @@ -13599,6 +15253,11 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, + "node_modules/sillyname": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/sillyname/-/sillyname-0.1.0.tgz", + "integrity": "sha512-GWA0Zont13ov+cMNw4T7nU4SCyW8jdhD3vjA5+qs8jr+09sCPxOf+FPS5zE0c9pYlCwD+NU/CiMimY462lgG9g==" + }, "node_modules/simple-concat": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", @@ -13871,6 +15530,32 @@ "node": ">=0.10.0" } }, + "node_modules/socket.io-client": { + "version": "4.7.2", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.2.tgz", + "integrity": "sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.5.2", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", @@ -15396,12 +17081,35 @@ "deprecated": "Please see https://github.com/lydell/urix#deprecated", "dev": true }, + "node_modules/url": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.3.tgz", + "integrity": "sha512-6hxOLGfZASQK/cijlZnZJTq8OXAkt/3YGfQX45vvMYXpZoo8NdWZcY73K108Jf759lS1Bv/8wXnHDTSz17dSRw==", + "dependencies": { + "punycode": "^1.4.1", + "qs": "^6.11.2" + } + }, "node_modules/url-join": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/url-join/-/url-join-4.0.1.tgz", "integrity": "sha512-jk1+QP6ZJqyOiuEI9AEWQfju/nB2Pw466kbA0LEZljHwKeMgd9WrAEgEGxjPDD2+TNbbb37rTyhEfrCXfuKXnA==", "dev": true }, + "node_modules/url-parse": { + "version": "1.5.10", + "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", + "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==" + }, "node_modules/use": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", @@ -16088,6 +17796,14 @@ "node": ">=4.0" } }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", + "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/xtend": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", diff --git a/package.json b/package.json index 6bc8a996..3dcab8d9 100644 --- a/package.json +++ b/package.json @@ -968,6 +968,7 @@ "@istanbuljs/nyc-config-typescript": "1.0.2", "@types/chai": "^4.2.14", "@types/command-exists": "^1.2.0", + "@types/debug": "^4.1.9", "@types/fs-extra": "^9.0.11", "@types/glob": "^7.1.3", "@types/mocha": "^8.0.3", @@ -1025,6 +1026,7 @@ "yargs": "^16.2.0" }, "dependencies": { + "@fluidframework/azure-client": "^1.1.1", "@microsoft/generator-powerpages": "1.21.19", "@types/jwt-decode": "2.2.0", "@types/node-fetch": "^2.6.2", @@ -1032,6 +1034,7 @@ "cockatiel": "^3.1.1", "command-exists": "^1.2.9", "find-process": "^1.4.7", + "fluid-framework": "^1.3.7", "glob": "^7.1.7", "gpt-tokenizer": "^2.1.1", "liquidjs": "^10.2.0", diff --git a/src/web/client/common/DataverseTokenProvider.ts b/src/web/client/common/DataverseTokenProvider.ts new file mode 100644 index 00000000..a0ea6ca9 --- /dev/null +++ b/src/web/client/common/DataverseTokenProvider.ts @@ -0,0 +1,46 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +import { ITokenProvider, ITokenResponse } from "@fluidframework/azure-client"; + +module.exports = class DataverseTokenProvider implements ITokenProvider { + private cachedAccessToken: string; + + private readonly fetchAccessToken: () => Promise; + + public constructor( + accessToken: string, + fetchAccessToken: () => Promise + ) { + this.cachedAccessToken = accessToken; + this.fetchAccessToken = fetchAccessToken; + } + + public async fetchOrdererToken( + tenantId: string, + documentId?: string, + refresh?: boolean + ): Promise { + if (refresh) { + this.cachedAccessToken = await this.fetchAccessToken(); + } + return { + jwt: this.cachedAccessToken, + }; + } + + public async fetchStorageToken( + tenantId: string, + documentId: string, + refresh?: boolean + ): Promise { + if (refresh) { + this.cachedAccessToken = await this.fetchAccessToken(); + } + return { + jwt: this.cachedAccessToken, + }; + } +}; diff --git a/src/web/client/common/worker/webworker.js b/src/web/client/common/worker/webworker.js new file mode 100644 index 00000000..ce55678a --- /dev/null +++ b/src/web/client/common/worker/webworker.js @@ -0,0 +1,169 @@ +/* + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +// eslint-disable-next-line no-undef +self.window = self; +// eslint-disable-next-line @typescript-eslint/no-var-requires +const fluid = require("fluid-framework"); +// eslint-disable-next-line @typescript-eslint/no-var-requires +const { AzureClient } = require("@fluidframework/azure-client"); +// eslint-disable-next-line @typescript-eslint/no-var-requires +const DataverseTokenProvider = require("../DataverseTokenProvider"); + +const { SharedMap, ConnectionState } = fluid; + +const objectTypes = [ + SharedMap +] + +const containerSchema = { + dynamicObjectTypes: objectTypes, + initialObjects: { + sharedState: SharedMap, + }, +}; + +let initial = false; + +class AzureFluidClient { + static _clientInstance; + static _container; + static _audience; + static _userSharedMap; + + static getInstance(config) { + if (!this._clientInstance) { + const afrClientProps = { + connection: { + type: "remote", + tenantId: config.swptenantId, + tokenProvider: new DataverseTokenProvider( + config.swpAccessToken, + () => this.fetchAccessToken() + ), + endpoint: config.discoveryendpoint, + }, + }; + + AzureFluidClient._clientInstance = new AzureClient(afrClientProps); + } + return this._clientInstance; + } + + static async fetchContainerAndService(config, id) { + if ( + this._container?.connectionState !== ConnectionState.Connected + ) { + const azureClient = this.getInstance(config); + const { container, services } = await azureClient.getContainer( + id, + containerSchema + ); + if (container.connectionState !== ConnectionState.Connected) { + await new Promise((resolve) => { + container.once("connected", () => { + resolve(); + }); + }); + } + this._container = container; + this._audience = services.audience; + this._userSharedMap = container.initialObjects.sharedState; + } + return { + container: this._container, + audience: this._audience, + map: this._userSharedMap, + }; + } +} + +async function loadContainer(config, id, swpId) { + try { + const { container, audience, map } = + await AzureFluidClient.fetchContainerAndService(config, swpId); + + const existingMembers = audience.getMembers(); + + // TODO: yet to be decided how entity id will be passed in container from vscode side + + audience.on("memberRemoved", (clientId, member) => { + if (!existingMembers.get(member.userId)) { + self.postMessage({ + type: "member-removed", + userId: member.userId, + }); + } + }); + + if (!initial) { + existingMembers.forEach(async (value, key) => { + const otherUser = value; + const connectionArray = otherUser.connections; + + const entityId = []; + + const connectionIdInContainer = await (container.initialObjects.sharedState.get('selection').get()); + + connectionArray.forEach((connectionId) => { + entityId.push(connectionIdInContainer.get(connectionId)); + }); + + self.postMessage({ + type: "client-data", + userName: otherUser.userName, + userId: key, + containerId: swpId, + entityId: entityId, + }); + }); + initial = true; + } + + map.on("valueChanged", async (changed, local) => { + if (local) { + return; + } else { + const otherUser = map.get(changed.key); + const connectionArray = otherUser.connections; + + const entityId = []; + + const connectionIdInContainer = await (container.initialObjects.sharedState.get('selection').get()); + + connectionArray.forEach((connectionId) => { + entityId.push(connectionIdInContainer.get(connectionId)); + }); + + // eslint-disable-next-line no-undef + await self.postMessage({ + type: "client-data", + userId: changed.key, + userName: otherUser.userName, + containerId: swpId, + entityId: entityId, + }); + } + }); + } catch (error) { + // TODO: add telemetry + } +} + +function runFluidApp() { + // Listen for messages from the extension + // eslint-disable-next-line no-undef + self.addEventListener("message", async (event) => { + const message = event.data; + + await loadContainer( + message.afrConfig, + message.containerId, + message.afrConfig.swpId, + ); + }); +} + +runFluidApp();