@fluidframework/datastore 2.41.0-338401 → 2.41.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.cjs +1 -4
- package/CHANGELOG.md +4 -0
- package/dist/channelContext.d.ts +7 -5
- package/dist/channelContext.d.ts.map +1 -1
- package/dist/channelContext.js +3 -1
- package/dist/channelContext.js.map +1 -1
- package/dist/channelDeltaConnection.d.ts +5 -5
- package/dist/channelDeltaConnection.d.ts.map +1 -1
- package/dist/channelDeltaConnection.js +7 -6
- package/dist/channelDeltaConnection.js.map +1 -1
- package/dist/channelStorageService.js +2 -2
- package/dist/channelStorageService.js.map +1 -1
- package/dist/dataStoreRuntime.d.ts.map +1 -1
- package/dist/dataStoreRuntime.js +65 -37
- package/dist/dataStoreRuntime.js.map +1 -1
- package/dist/fluidHandle.d.ts.map +1 -1
- package/dist/fluidHandle.js +6 -2
- package/dist/fluidHandle.js.map +1 -1
- package/dist/localChannelContext.d.ts +8 -6
- package/dist/localChannelContext.d.ts.map +1 -1
- package/dist/localChannelContext.js +8 -6
- package/dist/localChannelContext.js.map +1 -1
- package/dist/localChannelStorageService.d.ts.map +1 -1
- package/dist/localChannelStorageService.js +6 -4
- package/dist/localChannelStorageService.js.map +1 -1
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/remoteChannelContext.d.ts +7 -5
- package/dist/remoteChannelContext.d.ts.map +1 -1
- package/dist/remoteChannelContext.js +5 -4
- package/dist/remoteChannelContext.js.map +1 -1
- package/lib/channelContext.d.ts +7 -5
- package/lib/channelContext.d.ts.map +1 -1
- package/lib/channelContext.js +3 -1
- package/lib/channelContext.js.map +1 -1
- package/lib/channelDeltaConnection.d.ts +5 -5
- package/lib/channelDeltaConnection.d.ts.map +1 -1
- package/lib/channelDeltaConnection.js +7 -6
- package/lib/channelDeltaConnection.js.map +1 -1
- package/lib/channelStorageService.js +2 -2
- package/lib/channelStorageService.js.map +1 -1
- package/lib/dataStoreRuntime.d.ts.map +1 -1
- package/lib/dataStoreRuntime.js +65 -37
- package/lib/dataStoreRuntime.js.map +1 -1
- package/lib/fluidHandle.d.ts.map +1 -1
- package/lib/fluidHandle.js +6 -2
- package/lib/fluidHandle.js.map +1 -1
- package/lib/localChannelContext.d.ts +8 -6
- package/lib/localChannelContext.d.ts.map +1 -1
- package/lib/localChannelContext.js +8 -6
- package/lib/localChannelContext.js.map +1 -1
- package/lib/localChannelStorageService.d.ts.map +1 -1
- package/lib/localChannelStorageService.js +6 -4
- package/lib/localChannelStorageService.js.map +1 -1
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/remoteChannelContext.d.ts +7 -5
- package/lib/remoteChannelContext.d.ts.map +1 -1
- package/lib/remoteChannelContext.js +5 -4
- package/lib/remoteChannelContext.js.map +1 -1
- package/package.json +15 -15
- package/src/channelContext.ts +7 -5
- package/src/channelDeltaConnection.ts +19 -19
- package/src/channelStorageService.ts +3 -3
- package/src/dataStoreRuntime.ts +100 -64
- package/src/fluidHandle.ts +7 -3
- package/src/localChannelContext.ts +18 -16
- package/src/localChannelStorageService.ts +6 -4
- package/src/packageVersion.ts +1 -1
- package/src/remoteChannelContext.ts +19 -19
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelStorageService.js","sourceRoot":"","sources":["../src/channelStorageService.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAM7D,OAAO,EAAE,mCAAmC,EAAE,MAAM,wCAAwC,CAAC;AAG7F,MAAM,OAAO,qBAAqB;IACzB,MAAM,CAAC,WAAW,CACzB,IAAY,EACZ,IAAmB,EACnB,OAAmC;QAEnC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1D,qBAAqB,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QACxE,CAAC;QAED,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7D,OAAO,CAAC,GAAG,IAAI,GAAG,QAAQ,EAAE,CAAC,GAAG,MAAM,CAAC;QACxC,CAAC;IACF,CAAC;IAID,YACkB,IAA+B,EAC/B,OAAkD,EAClD,MAA2B,EAC3B,UAAyC;QAHzC,SAAI,GAAJ,IAAI,CAA2B;QAC/B,YAAO,GAAP,OAAO,CAA2C;QAClD,WAAM,GAAN,MAAM,CAAqB;QAC3B,eAAU,GAAV,UAAU,CAA+B;QAE1D,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,mCAAmC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACxB,qBAAqB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACjE,CAAC;IACF,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAY;QACjC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,CAAC,EAAE,KAAK,SAAS,EAAE,KAAK,CAAC,yDAAyD,CAAC,CAAC;QAC1F,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"channelStorageService.js","sourceRoot":"","sources":["../src/channelStorageService.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { IChannelStorageService } from \"@fluidframework/datastore-definitions/internal\";\nimport {\n\tIDocumentStorageService,\n\tISnapshotTree,\n} from \"@fluidframework/driver-definitions/internal\";\nimport { getNormalizedObjectStoragePathParts } from \"@fluidframework/runtime-utils/internal\";\nimport { ITelemetryLoggerExt } from \"@fluidframework/telemetry-utils/internal\";\n\nexport class ChannelStorageService implements IChannelStorageService {\n\tprivate static flattenTree(\n\t\tbase: string,\n\t\ttree: ISnapshotTree,\n\t\tresults: { [path: string]: string },\n\t): void {\n\t\tfor (const [path, subtree] of Object.entries(tree.trees)) {\n\t\t\tChannelStorageService.flattenTree(`${base}${path}/`, subtree, results);\n\t\t}\n\n\t\tfor (const [blobName, blobId] of Object.entries(tree.blobs)) {\n\t\t\tresults[`${base}${blobName}`] = blobId;\n\t\t}\n\t}\n\n\tprivate readonly flattenedTree: { [path: string]: string };\n\n\tconstructor(\n\t\tprivate readonly tree: ISnapshotTree | undefined,\n\t\tprivate readonly storage: Pick<IDocumentStorageService, \"readBlob\">,\n\t\tprivate readonly logger: ITelemetryLoggerExt,\n\t\tprivate readonly extraBlobs?: Map<string, ArrayBufferLike>,\n\t) {\n\t\tthis.flattenedTree = {};\n\t\t// Create a map from paths to blobs\n\t\tif (tree !== undefined) {\n\t\t\tChannelStorageService.flattenTree(\"\", tree, this.flattenedTree);\n\t\t}\n\t}\n\n\tpublic async contains(path: string): Promise<boolean> {\n\t\treturn this.flattenedTree[path] !== undefined;\n\t}\n\n\tpublic async readBlob(path: string): Promise<ArrayBufferLike> {\n\t\tconst id = await this.getIdForPath(path);\n\t\tassert(id !== undefined, 0x9d7 /* id is undefined in ChannelStorageService.readBlob() */);\n\t\tconst blob = this.extraBlobs === undefined ? undefined : this.extraBlobs.get(id);\n\n\t\tif (blob !== undefined) {\n\t\t\treturn blob;\n\t\t}\n\t\tconst blobP = this.storage.readBlob(id);\n\t\tblobP.catch((error) =>\n\t\t\tthis.logger.sendErrorEvent({ eventName: \"ChannelStorageBlobError\" }, error),\n\t\t);\n\n\t\treturn blobP;\n\t}\n\n\tpublic async list(path: string): Promise<string[]> {\n\t\tlet tree = this.tree;\n\t\tconst pathParts = getNormalizedObjectStoragePathParts(path);\n\t\twhile (tree !== undefined && pathParts.length > 0) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tconst part = pathParts.shift()!;\n\t\t\ttree = tree.trees[part];\n\t\t}\n\t\tif (tree === undefined || pathParts.length > 0) {\n\t\t\tthrow new Error(\"path does not exist\");\n\t\t}\n\n\t\treturn Object.keys(tree?.blobs ?? {});\n\t}\n\n\tprivate async getIdForPath(path: string): Promise<string | undefined> {\n\t\treturn this.flattenedTree[path];\n\t}\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataStoreRuntime.d.ts","sourceRoot":"","sources":["../src/dataStoreRuntime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAA4B,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EACN,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAQrF,OAAO,EACN,QAAQ,EACR,eAAe,EACf,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACN,cAAc,EACd,cAAc,EAId,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,gBAAgB,EAEhB,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACN,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EAKtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EAEf,qBAAqB,EACrB,KAAK,yBAAyB,EAM9B,KAAK,uBAAuB,EAC5B,MAAM,8CAA8C,CAAC;AAkBtD,OAAO,EACN,mBAAmB,EASnB,MAAM,0CAA0C,CAAC;AAkClD;;;GAGG;AACH,oBAAY,oBAAoB;IAE/B,MAAM,WAAW;IACjB,SAAS,OAAO;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAGrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;CAC/C;AAMD;;;;GAIG;AACH,qBAAa,qBACZ,SAAQ,iBAAiB,CAAC,4BAA4B,CACtD,YAAW,sBAAsB,EAAE,sBAAsB,EAAE,mBAAmB;
|
|
1
|
+
{"version":3,"file":"dataStoreRuntime.d.ts","sourceRoot":"","sources":["../src/dataStoreRuntime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAA4B,MAAM,8BAA8B,CAAC;AAC3F,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EACN,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,SAAS,EACT,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAQrF,OAAO,EACN,QAAQ,EACR,eAAe,EACf,sBAAsB,EACtB,4BAA4B,EAC5B,KAAK,mBAAmB,EACxB,MAAM,gDAAgD,CAAC;AACxD,OAAO,EACN,cAAc,EACd,cAAc,EAId,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACN,gBAAgB,EAEhB,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACN,qBAAqB,EACrB,iBAAiB,EACjB,sBAAsB,EAKtB,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EAEf,qBAAqB,EACrB,KAAK,yBAAyB,EAM9B,KAAK,uBAAuB,EAC5B,MAAM,8CAA8C,CAAC;AAkBtD,OAAO,EACN,mBAAmB,EASnB,MAAM,0CAA0C,CAAC;AAkClD;;;GAGG;AACH,oBAAY,oBAAoB;IAE/B,MAAM,WAAW;IACjB,SAAS,OAAO;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IAGrC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;CAC/C;AAMD;;;;GAIG;AACH,qBAAa,qBACZ,SAAQ,iBAAiB,CAAC,4BAA4B,CACtD,YAAW,sBAAsB,EAAE,sBAAsB,EAAE,mBAAmB;IAqI7E,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IApItC;;OAEG;IACH,SAAgB,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC,CAAC;IAE9D,IAAW,SAAS,IAAI,OAAO,CAE9B;IAED,SAAgB,QAAQ,EAAE,uBAAuB,CAAC;IAElD;;OAEG;IACH,SAAgB,UAAU,QAAO,OAAO,CAAmB;IAE3D,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;IAED,IAAW,aAAa,IAAI,cAAc,CAEzC;IAED,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,IAAW,WAAW,IAAI,WAAW,CAEpC;IAED,IAAW,YAAY,IAAI,MAAM,CAEhC;IAED,IAAW,YAAY,IAAI,mBAAmB,CAE7C;IAED,IAAW,YAAY,IAAI,aAAa,GAAG,SAAS,CAEnD;IAKD,IAAW,mBAAmB,IAAI,IAAI,CAErC;IAED,IAAW,kBAAkB,IAAI,IAAI,CAEpC;IACD,IAAW,sBAAsB,IAAI,IAAI,CAExC;IACD,IAAW,qBAAqB,IAAI,IAAI,CAEvC;IAED,OAAO,CAAC,SAAS,CAAS;IAC1B,IAAW,QAAQ,IAAI,OAAO,CAE7B;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IAEnD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAwB;IACzD,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAA8C;IACvF,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAqB;IACjE,OAAO,CAAC,YAAY,CAAc;IAC3B,eAAe,EAAE,eAAe,CAAC;IAGxC,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAwC;IAEpF,SAAgB,EAAE,EAAE,MAAM,CAAC;IAI3B,SAAgB,OAAO,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAAE,GAAG,CAAC,CAAC;IACtD,SAAgB,oBAAoB,EAAE,aAAa,CAClD,yBAAyB,EACzB,gBAAgB,CAChB,CAAC;IACF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;IACxC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAY;IACrC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAoB;IACvC,IAAW,MAAM,IAAI,mBAAmB,CAEvC;IAED;;;;OAIG;IACH,OAAO,CAAC,0BAA0B,CAAS;IAE3C;;;;;;OAMG;IACH,SAAgB,mBAAmB,CAAC,EAAE,OAAO,CAAoC;IAEjF;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,oCAAoC,CAAU;IAE/D;;;;;;;;;;OAUG;gBAEe,gBAAgB,EAAE,sBAAsB,EACxC,oBAAoB,EAAE,qBAAqB,EAC5D,QAAQ,EAAE,OAAO,EACjB,iBAAiB,EAAE,CAAC,OAAO,EAAE,sBAAsB,KAAK,OAAO,CAAC,WAAW,CAAC,EAC5E,QAAQ,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IA8I5C,IAAI,YAAY,IAAI,mBAAmB,CAEtC;IAEM,OAAO,IAAI,IAAI;IAUT,aAAa,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAIpD,OAAO,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IA4C9C,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAWtD;;;;;OAKG;IACH,SAAS,CAAC,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAS7C;;;;;;OAMG;IACI,UAAU,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IAmBnC,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,QAAQ;IAiDvE,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,mCAAmC;IAmB3C;;;;OAIG;IACI,WAAW,CAAC,OAAO,EAAE,QAAQ,GAAG,IAAI;IA+B3C;;;;;;;;;;OAUG;IACI,yBAAyB,IAAI,IAAI;IAaxC;;OAEG;IACI,WAAW,IAAI,IAAI;IAInB,IAAI,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAShC,kBAAkB,CAAC,SAAS,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAUtE,OAAO,CAAC,SAAS,CAAU;IAC3B;;;;OAIG;IACI,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAQ5C,SAAS,IAAI,cAAc;IAI3B,WAAW,IAAI,SAAS;IAIlB,UAAU,CACtB,IAAI,EAAE,eAAe,EACrB,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,CAAC;IAMzC,OAAO,CAAC,0BAA0B;IA0BlC;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAkD9B,OAAO,CAAC,qBAAqB;IAsC7B;;;OAGG;IACI,eAAe,CAAC,iBAAiB,EAAE,yBAAyB,GAAG,IAAI;IA6BnE,aAAa,CAAC,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAI1E,OAAO,CAAC,iBAAiB;IAczB;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAQzB;;;;;OAKG;IACH,OAAO,CAAC,aAAa;IASrB;;;;;OAKG;IACU,SAAS,CACrB,QAAQ,GAAE,OAAe,EACzB,UAAU,GAAE,OAAc,EAC1B,gBAAgB,CAAC,EAAE,iBAAiB,GAClC,OAAO,CAAC,qBAAqB,CAAC;IAWjC;;;;;;;;;;;;;;OAcG;IACU,SAAS,CAAC,MAAM,GAAE,OAAe,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAchF;;;;OAIG;IACI,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI;IAkB5C,gBAAgB,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,qBAAqB;IAiCpF;;OAEG;IACI,eAAe,CAAC,gBAAgB,CAAC,EAAE,iBAAiB,GAAG,sBAAsB;IAkBpF;;;OAGG;YACW,0BAA0B;IAWxC;;;OAGG;IACH,OAAO,CAAC,mCAAmC;IAgDpC,aAAa,CACnB,IAAI,EAAE,oBAAoB,EAG1B,OAAO,EAAE,GAAG,EACZ,eAAe,EAAE,OAAO,GACtB,IAAI;IAIP;;;;;OAKG;IACI,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlF;;OAEG;IACU,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C;;;OAGG;IACH,OAAO,CAAC,yBAAyB;IA2CjC,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,MAAM;IASd;;;;;;OAMG;IACI,QAAQ,CACd,IAAI,EAAE,oBAAoB,EAG1B,OAAO,EAAE,GAAG,EACZ,eAAe,EAAE,OAAO,EACxB,MAAM,CAAC,EAAE,OAAO,GACd,IAAI;IAuBP;;;;OAIG;IACI,QAAQ,CAAC,CACf,IAAI,EAAE,oBAAoB,EAG1B,OAAO,EAAE,GAAG,EACZ,eAAe,EAAE,OAAO,GACtB,IAAI;IAoBM,cAAc,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAwC3D,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,cAAc;IAkBtB,OAAO,CAAC,eAAe;IAMvB;;;;OAIG;IACH,OAAO,CAAC,+BAA+B;IAyBhC,cAAc,CAAC,WAAW,EAAE,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC,QAAQ,GAAG,IAAI;CA+CtF;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,mBACf,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,qBAAqB,KAAK,QAAQ,SAAS,CAAC,SACnF,4BAA4B,KAChC,4BAS+B,CAAC;AAEnC;;;;;;;GAOG;AACH,eAAO,MAAM,mBAAmB,YACtB,CACR,OAAO,EAAE,qBAAqB,KAC1B,QAAQ;IAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAAC,SACvD,4BAA4B,KAChC,4BAyC+B,CAAC"}
|
package/lib/dataStoreRuntime.js
CHANGED
|
@@ -66,6 +66,8 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
66
66
|
get idCompressor() {
|
|
67
67
|
return this.dataStoreContext.idCompressor;
|
|
68
68
|
}
|
|
69
|
+
// TODO: the methods below should have more specific return typing, per the interfaces they are implementing.
|
|
70
|
+
// Doing so would be a breaking change.
|
|
69
71
|
get IFluidHandleContext() {
|
|
70
72
|
return this;
|
|
71
73
|
}
|
|
@@ -150,10 +152,10 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
150
152
|
const tree = dataStoreContext.baseSnapshot;
|
|
151
153
|
// Must always receive the data store type inside of the attributes
|
|
152
154
|
if (tree?.trees !== undefined) {
|
|
153
|
-
Object.entries(tree.trees)
|
|
155
|
+
for (const [path, subtree] of Object.entries(tree.trees)) {
|
|
154
156
|
// Issue #4414
|
|
155
157
|
if (path === "_search") {
|
|
156
|
-
|
|
158
|
+
continue;
|
|
157
159
|
}
|
|
158
160
|
let channelContext;
|
|
159
161
|
// If already exists on storage, then create a remote channel. However, if it is case of rehydrating a
|
|
@@ -165,11 +167,11 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
165
167
|
// data store, if the data store is loaded after the container is attached, then we missed making
|
|
166
168
|
// the channel visible. So do it now. Otherwise, add it to local channel context queue, so
|
|
167
169
|
// that it can be make it visible later with the data store.
|
|
168
|
-
if (dataStoreContext.attachState
|
|
169
|
-
|
|
170
|
+
if (dataStoreContext.attachState === AttachState.Detached) {
|
|
171
|
+
this.localChannelContextQueue.set(path, channelContext);
|
|
170
172
|
}
|
|
171
173
|
else {
|
|
172
|
-
|
|
174
|
+
channelContext.makeVisible();
|
|
173
175
|
}
|
|
174
176
|
}
|
|
175
177
|
else {
|
|
@@ -178,7 +180,7 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
178
180
|
}));
|
|
179
181
|
}
|
|
180
182
|
this.contexts.set(path, channelContext);
|
|
181
|
-
}
|
|
183
|
+
}
|
|
182
184
|
}
|
|
183
185
|
this.entryPoint = new FluidObjectHandle(new LazyPromise(async () => provideEntryPoint(this)), "", this.objectsRoutingContext);
|
|
184
186
|
this.attachListener();
|
|
@@ -320,11 +322,7 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
320
322
|
}
|
|
321
323
|
createChannel(idArg, type) {
|
|
322
324
|
let id;
|
|
323
|
-
if (idArg
|
|
324
|
-
id = idArg;
|
|
325
|
-
this.validateChannelId(id);
|
|
326
|
-
}
|
|
327
|
-
else {
|
|
325
|
+
if (idArg === undefined) {
|
|
328
326
|
/**
|
|
329
327
|
* Return uuid if short-ids are explicitly disabled via feature flags.
|
|
330
328
|
*/
|
|
@@ -338,19 +336,23 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
338
336
|
// - uuids
|
|
339
337
|
// In first two cases we will encode result as strings in more compact form, with leading underscore,
|
|
340
338
|
// to ensure no overlap with user-provided DDS names (see validateChannelId())
|
|
341
|
-
if (this.visibilityState
|
|
342
|
-
// container is detached, only one client observes content, no way to hit collisions with other clients.
|
|
343
|
-
id = encodeCompactIdToString(2 * this.contexts.size, "_");
|
|
344
|
-
}
|
|
345
|
-
else {
|
|
339
|
+
if (this.visibilityState === VisibilityState.GloballyVisible) {
|
|
346
340
|
// Due to back-compat, we could not depend yet on generateDocumentUniqueId() being there.
|
|
347
341
|
// We can remove the need to leverage uuid() as fall-back in couple releases.
|
|
348
342
|
const res = this.dataStoreContext.containerRuntime.generateDocumentUniqueId?.() ?? uuid();
|
|
349
343
|
id = typeof res === "number" ? encodeCompactIdToString(2 * res + 1, "_") : res;
|
|
350
344
|
}
|
|
345
|
+
else {
|
|
346
|
+
// container is detached, only one client observes content, no way to hit collisions with other clients.
|
|
347
|
+
id = encodeCompactIdToString(2 * this.contexts.size, "_");
|
|
348
|
+
}
|
|
351
349
|
}
|
|
352
350
|
assert(!id.includes("/"), 0x8fc /* slash */);
|
|
353
351
|
}
|
|
352
|
+
else {
|
|
353
|
+
id = idArg;
|
|
354
|
+
this.validateChannelId(id);
|
|
355
|
+
}
|
|
354
356
|
this.verifyNotClosed();
|
|
355
357
|
assert(!this.contexts.has(id), 0x179 /* "createChannel() with existing ID" */);
|
|
356
358
|
assert(type !== undefined, 0x209 /* "Factory Type should be defined" */);
|
|
@@ -414,9 +416,9 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
414
416
|
return;
|
|
415
417
|
}
|
|
416
418
|
this.visibilityState = VisibilityState.LocallyVisible;
|
|
417
|
-
this.pendingHandlesToMakeVisible
|
|
419
|
+
for (const handle of this.pendingHandlesToMakeVisible) {
|
|
418
420
|
handle.attachGraph();
|
|
419
|
-
}
|
|
421
|
+
}
|
|
420
422
|
this.pendingHandlesToMakeVisible.clear();
|
|
421
423
|
this.dataStoreContext.makeLocallyVisible();
|
|
422
424
|
}
|
|
@@ -482,7 +484,7 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
482
484
|
*/
|
|
483
485
|
let currentAddress;
|
|
484
486
|
let currentMessagesContent = [];
|
|
485
|
-
const { messagesContent, local } = messageCollection;
|
|
487
|
+
const { messagesContent, local, envelope } = messageCollection;
|
|
486
488
|
const sendBunchedMessages = () => {
|
|
487
489
|
// Current address will be undefined for the first message in the list.
|
|
488
490
|
if (currentAddress === undefined) {
|
|
@@ -492,7 +494,7 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
492
494
|
const channelContext = this.contexts.get(currentAddress);
|
|
493
495
|
assert(!!channelContext, 0xa6b /* Channel context not found */);
|
|
494
496
|
channelContext.processMessages({
|
|
495
|
-
envelope
|
|
497
|
+
envelope,
|
|
496
498
|
messagesContent: currentMessagesContent,
|
|
497
499
|
local,
|
|
498
500
|
});
|
|
@@ -550,12 +552,14 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
550
552
|
const { envelope, messagesContent } = messageCollection;
|
|
551
553
|
try {
|
|
552
554
|
switch (envelope.type) {
|
|
553
|
-
case DataStoreMessageType.ChannelOp:
|
|
555
|
+
case DataStoreMessageType.ChannelOp: {
|
|
554
556
|
this.processChannelMessages(messageCollection);
|
|
555
557
|
break;
|
|
556
|
-
|
|
558
|
+
}
|
|
559
|
+
case DataStoreMessageType.Attach: {
|
|
557
560
|
this.processAttachMessages(messageCollection);
|
|
558
561
|
break;
|
|
562
|
+
}
|
|
559
563
|
default:
|
|
560
564
|
}
|
|
561
565
|
}
|
|
@@ -757,7 +761,10 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
757
761
|
}
|
|
758
762
|
}
|
|
759
763
|
}
|
|
760
|
-
submitMessage(type,
|
|
764
|
+
submitMessage(type,
|
|
765
|
+
// TODO: use something other than `any` here (breaking change)
|
|
766
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
767
|
+
content, localOpMetadata) {
|
|
761
768
|
this.submit(type, content, localOpMetadata);
|
|
762
769
|
}
|
|
763
770
|
/**
|
|
@@ -768,7 +775,7 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
768
775
|
*/
|
|
769
776
|
submitSignal(type, content, targetClientId) {
|
|
770
777
|
this.verifyNotClosed();
|
|
771
|
-
|
|
778
|
+
this.dataStoreContext.submitSignal(type, content, targetClientId);
|
|
772
779
|
}
|
|
773
780
|
/**
|
|
774
781
|
* Will return when the data store is attached.
|
|
@@ -820,7 +827,10 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
820
827
|
* @param content - The content of the original message.
|
|
821
828
|
* @param localOpMetadata - The local metadata associated with the original message.
|
|
822
829
|
*/
|
|
823
|
-
reSubmit(type,
|
|
830
|
+
reSubmit(type,
|
|
831
|
+
// TODO: use something other than `any` here (breaking change)
|
|
832
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
833
|
+
content, localOpMetadata, squash) {
|
|
824
834
|
this.verifyNotClosed();
|
|
825
835
|
switch (type) {
|
|
826
836
|
case DataStoreMessageType.ChannelOp: {
|
|
@@ -831,12 +841,14 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
831
841
|
channelContext.reSubmit(envelope.contents, localOpMetadata, squash);
|
|
832
842
|
break;
|
|
833
843
|
}
|
|
834
|
-
case DataStoreMessageType.Attach:
|
|
844
|
+
case DataStoreMessageType.Attach: {
|
|
835
845
|
// For Attach messages, just submit them again.
|
|
836
846
|
this.submit(type, content, localOpMetadata);
|
|
837
847
|
break;
|
|
838
|
-
|
|
848
|
+
}
|
|
849
|
+
default: {
|
|
839
850
|
unreachableCase(type);
|
|
851
|
+
}
|
|
840
852
|
}
|
|
841
853
|
}
|
|
842
854
|
/**
|
|
@@ -844,7 +856,10 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
844
856
|
* @param content - The content of the original message.
|
|
845
857
|
* @param localOpMetadata - The local metadata associated with the original message.
|
|
846
858
|
*/
|
|
847
|
-
rollback(type,
|
|
859
|
+
rollback(type,
|
|
860
|
+
// TODO: use something other than `any` here (breaking change)
|
|
861
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
862
|
+
content, localOpMetadata) {
|
|
848
863
|
this.verifyNotClosed();
|
|
849
864
|
switch (type) {
|
|
850
865
|
case DataStoreMessageType.ChannelOp: {
|
|
@@ -855,14 +870,19 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
855
870
|
channelContext.rollback(envelope.contents, localOpMetadata);
|
|
856
871
|
break;
|
|
857
872
|
}
|
|
858
|
-
default:
|
|
873
|
+
default: {
|
|
859
874
|
throw new LoggingError(`Can't rollback ${type} message`);
|
|
875
|
+
}
|
|
860
876
|
}
|
|
861
877
|
}
|
|
878
|
+
// TODO: use something other than `any` here
|
|
879
|
+
// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any
|
|
862
880
|
async applyStashedOp(content) {
|
|
881
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
863
882
|
const type = content?.type;
|
|
864
883
|
switch (type) {
|
|
865
884
|
case DataStoreMessageType.Attach: {
|
|
885
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
866
886
|
const attachMessage = content.content;
|
|
867
887
|
const flatBlobs = new Map();
|
|
868
888
|
const snapshotTree = buildSnapshotTree(attachMessage.snapshot.entries, flatBlobs);
|
|
@@ -879,14 +899,16 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
879
899
|
return;
|
|
880
900
|
}
|
|
881
901
|
case DataStoreMessageType.ChannelOp: {
|
|
902
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
882
903
|
const envelope = content.content;
|
|
883
904
|
const channelContext = this.contexts.get(envelope.address);
|
|
884
905
|
assert(!!channelContext, 0x184 /* "There should be a channel context for the op" */);
|
|
885
906
|
await channelContext.getChannel();
|
|
886
907
|
return channelContext.applyStashedOp(envelope.contents);
|
|
887
908
|
}
|
|
888
|
-
default:
|
|
909
|
+
default: {
|
|
889
910
|
unreachableCase(type);
|
|
911
|
+
}
|
|
890
912
|
}
|
|
891
913
|
}
|
|
892
914
|
setChannelDirty(address) {
|
|
@@ -897,11 +919,13 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
897
919
|
this.setMaxListeners(Number.MAX_SAFE_INTEGER);
|
|
898
920
|
// back-compat, to be removed in the future.
|
|
899
921
|
// Added in "2.0.0-rc.2.0.0" timeframe.
|
|
922
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-explicit-any
|
|
900
923
|
this.dataStoreContext.once?.("attaching", () => {
|
|
901
924
|
this.setAttachState(AttachState.Attaching);
|
|
902
925
|
});
|
|
903
926
|
// back-compat, to be removed in the future.
|
|
904
927
|
// Added in "2.0.0-rc.2.0.0" timeframe.
|
|
928
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-explicit-any
|
|
905
929
|
this.dataStoreContext.once?.("attached", () => {
|
|
906
930
|
this.setAttachState(AttachState.Attached);
|
|
907
931
|
});
|
|
@@ -937,7 +961,7 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
937
961
|
}
|
|
938
962
|
setAttachState(attachState) {
|
|
939
963
|
switch (attachState) {
|
|
940
|
-
case AttachState.Attaching:
|
|
964
|
+
case AttachState.Attaching: {
|
|
941
965
|
/**
|
|
942
966
|
* back-compat 0.59.1000 - Ideally, attachGraph() should have already been called making the data store
|
|
943
967
|
* locally visible. However, before visibility state was added, this may not have been the case and data
|
|
@@ -952,21 +976,24 @@ export class FluidDataStoreRuntime extends TypedEventEmitter {
|
|
|
952
976
|
assert(this.visibilityState === VisibilityState.LocallyVisible, 0x2d1 /* "Data store should be locally visible before it can become globally visible." */);
|
|
953
977
|
// Mark the data store globally visible and make its child channels visible as well.
|
|
954
978
|
this.visibilityState = VisibilityState.GloballyVisible;
|
|
955
|
-
this.localChannelContextQueue
|
|
979
|
+
for (const [, channel] of this.localChannelContextQueue) {
|
|
956
980
|
channel.makeVisible();
|
|
957
|
-
}
|
|
981
|
+
}
|
|
958
982
|
this.localChannelContextQueue.clear();
|
|
959
983
|
// This promise resolution will be moved to attached event once we fix the scheduler.
|
|
960
984
|
this.deferredAttached.resolve();
|
|
961
985
|
this.emit("attaching");
|
|
962
986
|
break;
|
|
963
|
-
|
|
987
|
+
}
|
|
988
|
+
case AttachState.Attached: {
|
|
964
989
|
assert(this.visibilityState === VisibilityState.GloballyVisible, 0x2d2 /* "Data store should be globally visible when its attached." */);
|
|
965
990
|
this._attachState = AttachState.Attached;
|
|
966
991
|
this.emit("attached");
|
|
967
992
|
break;
|
|
968
|
-
|
|
993
|
+
}
|
|
994
|
+
default: {
|
|
969
995
|
unreachableCase(attachState, "unreached");
|
|
996
|
+
}
|
|
970
997
|
}
|
|
971
998
|
}
|
|
972
999
|
}
|
|
@@ -1017,6 +1044,7 @@ export const mixinSummaryHandler = (handler, Base = FluidDataStoreRuntime) => cl
|
|
|
1017
1044
|
summary.summary.tree[firstName] = blob;
|
|
1018
1045
|
}
|
|
1019
1046
|
async summarize(...args) {
|
|
1047
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-argument
|
|
1020
1048
|
const summary = await super.summarize(...args);
|
|
1021
1049
|
try {
|
|
1022
1050
|
const content = await handler(this);
|
|
@@ -1024,9 +1052,9 @@ export const mixinSummaryHandler = (handler, Base = FluidDataStoreRuntime) => cl
|
|
|
1024
1052
|
this.addBlob(summary, content.path, content.content);
|
|
1025
1053
|
}
|
|
1026
1054
|
}
|
|
1027
|
-
catch (
|
|
1055
|
+
catch (error) {
|
|
1028
1056
|
// Any error coming from app-provided handler should be marked as DataProcessingError
|
|
1029
|
-
throw DataProcessingError.wrapIfUnrecognized(
|
|
1057
|
+
throw DataProcessingError.wrapIfUnrecognized(error, "mixinSummaryHandler");
|
|
1030
1058
|
}
|
|
1031
1059
|
return summary;
|
|
1032
1060
|
}
|