@fluidframework/datastore
Advanced tools
@@ -113,4 +113,2 @@ ## Alpha API Report File for "@fluidframework/datastore" | ||
| attachGraph(): void; | ||
| // @deprecated (undocumented) | ||
| bind(handle: IFluidHandleInternal): void; | ||
| get(): Promise<any>; | ||
@@ -117,0 +115,0 @@ get isAttached(): boolean; |
+8
-0
| # @fluidframework/datastore | ||
| ## 2.50.0 | ||
| ### Minor Changes | ||
| - IFluidHandleInternal.bind (deprecated) has been removed ([#24974](https://github.com/microsoft/FluidFramework/pull/24974)) [07e183795f](https://github.com/microsoft/FluidFramework/commit/07e183795fa8118fae717c118ab7a7945ac1ad57) | ||
| `IFluidHandleInternal.bind` was deprecated in 2.40 and has now been removed. See [release notes entry](https://github.com/microsoft/FluidFramework/releases/tag/client_v2.40.0#user-content-ifluidhandleinternalbind-has-been-deprecated-24553) for more details. | ||
| ## 2.43.0 | ||
@@ -4,0 +12,0 @@ |
@@ -6,3 +6,2 @@ /*! | ||
| import { FluidObject } from "@fluidframework/core-interfaces"; | ||
| import type { IFluidHandleInternal } from "@fluidframework/core-interfaces/internal"; | ||
| import { IFluidHandleContext } from "@fluidframework/core-interfaces/internal"; | ||
@@ -19,3 +18,2 @@ import { FluidHandleBase } from "@fluidframework/runtime-utils/internal"; | ||
| readonly routeContext: IFluidHandleContext; | ||
| private readonly pendingHandlesToMakeVisible; | ||
| /** | ||
@@ -30,10 +28,2 @@ * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.absolutePath} | ||
| /** | ||
| * Tells whether the object of this handle is visible in the container locally or globally. | ||
| */ | ||
| private get visible(); | ||
| /** | ||
| * Tracks whether this handle is locally visible in the container. | ||
| */ | ||
| private locallyVisible; | ||
| /** | ||
| * Creates a new `FluidObjectHandle`. | ||
@@ -55,8 +45,3 @@ * | ||
| attachGraph(): void; | ||
| /** | ||
| * @deprecated No replacement provided. Arbitrary handles may not serve as a bind source. | ||
| * @privateRemarks This implementation will be moved to SharedObjectHandle once this is removed. | ||
| */ | ||
| bind(handle: IFluidHandleInternal): void; | ||
| } | ||
| //# sourceMappingURL=fluidHandle.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fluidHandle.d.ts","sourceRoot":"","sources":["../src/fluidHandle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAEN,eAAe,EACf,MAAM,wCAAwC,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,iBAAiB,CAC7B,CAAC,SAAS,WAAW,GAAG,WAAW,CAClC,SAAQ,eAAe,CAAC,CAAC,CAAC;IAgD1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;aACxB,IAAI,EAAE,MAAM;aACZ,YAAY,EAAE,mBAAmB;IAjDlD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAwC;IAEpF;;OAEG;IACH,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;OAEG;IACH,OAAO,KAAK,OAAO,GAclB;IAED;;OAEG;IACH,OAAO,CAAC,cAAc,CAAkB;IAExC;;;;;;;OAOG;gBAEiB,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,mBAAmB;IAMlD;;OAEG;IAIU,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAKhC;;OAEG;IACI,WAAW,IAAI,IAAI;IAiB1B;;;OAGG;IACI,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;CAQ/C"} | ||
| {"version":3,"file":"fluidHandle.d.ts","sourceRoot":"","sources":["../src/fluidHandle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAEN,eAAe,EACf,MAAM,wCAAwC,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,iBAAiB,CAC7B,CAAC,SAAS,WAAW,GAAG,WAAW,CAClC,SAAQ,eAAe,CAAC,CAAC,CAAC;IAsB1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;aACxB,IAAI,EAAE,MAAM;aACZ,YAAY,EAAE,mBAAmB;IAvBlD;;OAEG;IACH,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;;;;;OAOG;gBAEiB,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,mBAAmB;IAMlD;;OAEG;IAIU,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAKhC;;OAEG;IACI,WAAW,IAAI,IAAI;CAG1B"} |
+0
-46
@@ -22,20 +22,2 @@ "use strict"; | ||
| /** | ||
| * Tells whether the object of this handle is visible in the container locally or globally. | ||
| */ | ||
| get visible() { | ||
| /** | ||
| * If the object of this handle is attached, it is visible in the container. Ideally, checking local visibility | ||
| * should be enough for a handle. However, there are scenarios where the object becomes locally visible but the | ||
| * handle does not know this - This will happen is attachGraph is never called on the handle. Couple of examples | ||
| * where this can happen: | ||
| * | ||
| * 1. Handles to DDS other than the default handle won't know if the DDS becomes visible after the handle was | ||
| * created. | ||
| * | ||
| * 2. Handles to root data stores will never know that it was visible because the handle will not be stores in | ||
| * another DDS and so, attachGraph will never be called on it. | ||
| */ | ||
| return this.isAttached || this.locallyVisible; | ||
| } | ||
| /** | ||
| * Creates a new `FluidObjectHandle`. | ||
@@ -53,7 +35,2 @@ * | ||
| this.routeContext = routeContext; | ||
| this.pendingHandlesToMakeVisible = new Set(); | ||
| /** | ||
| * Tracks whether this handle is locally visible in the container. | ||
| */ | ||
| this.locallyVisible = false; | ||
| this.absolutePath = (0, internal_1.generateHandleContextPath)(path, this.routeContext); | ||
@@ -75,29 +52,6 @@ } | ||
| attachGraph() { | ||
| // start legacy bind/attach flow | ||
| if (this.visible) { | ||
| return; | ||
| } | ||
| this.locallyVisible = true; | ||
| for (const handle of this.pendingHandlesToMakeVisible) { | ||
| handle.attachGraph(); | ||
| } | ||
| this.pendingHandlesToMakeVisible.clear(); | ||
| // end legacy bind/attach flow | ||
| this.routeContext.attachGraph(); | ||
| } | ||
| // eslint-disable-next-line jsdoc/require-description | ||
| /** | ||
| * @deprecated No replacement provided. Arbitrary handles may not serve as a bind source. | ||
| * @privateRemarks This implementation will be moved to SharedObjectHandle once this is removed. | ||
| */ | ||
| bind(handle) { | ||
| // If this handle is visible, attach the graph of the incoming handle as well. | ||
| if (this.visible) { | ||
| handle.attachGraph(); | ||
| return; | ||
| } | ||
| this.pendingHandlesToMakeVisible.add(handle); | ||
| } | ||
| } | ||
| exports.FluidObjectHandle = FluidObjectHandle; | ||
| //# sourceMappingURL=fluidHandle.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fluidHandle.js","sourceRoot":"","sources":["../src/fluidHandle.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKH,qEAGgD;AAEhD;;;;GAIG;AACH,MAAa,iBAEX,SAAQ,0BAAkB;IAQ3B;;OAEG;IACH,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAY,OAAO;QAClB;;;;;;;;;;;WAWG;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC;IAC/C,CAAC;IAOD;;;;;;;OAOG;IACH,YACoB,KAAqB,EACxB,IAAY,EACZ,YAAiC;QAEjD,KAAK,EAAE,CAAC;QAJW,UAAK,GAAL,KAAK,CAAgB;QACxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAqB;QAjDjC,gCAA2B,GAA8B,IAAI,GAAG,EAAE,CAAC;QAiCpF;;WAEG;QACK,mBAAc,GAAY,KAAK,CAAC;QAgBvC,IAAI,CAAC,YAAY,GAAG,IAAA,oCAAyB,EAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,uDAAuD;IACvD,8FAA8F;IAC9F,8DAA8D;IACvD,KAAK,CAAC,GAAG;QACf,yGAAyG;QACzG,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,gCAAgC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACvD,MAAM,CAAC,WAAW,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QACzC,8BAA8B;QAE9B,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,qDAAqD;IACrD;;;OAGG;IACI,IAAI,CAAC,MAA4B;QACvC,8EAA8E;QAC9E,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;CACD;AArGD,8CAqGC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FluidObject } from \"@fluidframework/core-interfaces\";\nimport type { IFluidHandleInternal } from \"@fluidframework/core-interfaces/internal\";\nimport { IFluidHandleContext } from \"@fluidframework/core-interfaces/internal\";\nimport {\n\tgenerateHandleContextPath,\n\tFluidHandleBase,\n} from \"@fluidframework/runtime-utils/internal\";\n\n/**\n * Handle for a shared {@link @fluidframework/core-interfaces#FluidObject}.\n * @legacy\n * @alpha\n */\nexport class FluidObjectHandle<\n\tT extends FluidObject = FluidObject,\n> extends FluidHandleBase<T> {\n\tprivate readonly pendingHandlesToMakeVisible: Set<IFluidHandleInternal> = new Set();\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.absolutePath}\n\t */\n\tpublic readonly absolutePath: string;\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.isAttached}\n\t */\n\tpublic get isAttached(): boolean {\n\t\treturn this.routeContext.isAttached;\n\t}\n\n\t/**\n\t * Tells whether the object of this handle is visible in the container locally or globally.\n\t */\n\tprivate get visible(): boolean {\n\t\t/**\n\t\t * If the object of this handle is attached, it is visible in the container. Ideally, checking local visibility\n\t\t * should be enough for a handle. However, there are scenarios where the object becomes locally visible but the\n\t\t * handle does not know this - This will happen is attachGraph is never called on the handle. Couple of examples\n\t\t * where this can happen:\n\t\t *\n\t\t * 1. Handles to DDS other than the default handle won't know if the DDS becomes visible after the handle was\n\t\t * created.\n\t\t *\n\t\t * 2. Handles to root data stores will never know that it was visible because the handle will not be stores in\n\t\t * another DDS and so, attachGraph will never be called on it.\n\t\t */\n\t\treturn this.isAttached || this.locallyVisible;\n\t}\n\n\t/**\n\t * Tracks whether this handle is locally visible in the container.\n\t */\n\tprivate locallyVisible: boolean = false;\n\n\t/**\n\t * Creates a new `FluidObjectHandle`.\n\t *\n\t * @param value - The {@link @fluidframework/core-interfaces#FluidObject} object this handle is for.\n\t * @param path - The path to this handle relative to the `routeContext`.\n\t * @param routeContext - The parent {@link @fluidframework/core-interfaces#IFluidHandleContext} that has a route\n\t * to this handle.\n\t */\n\tconstructor(\n\t\tprotected readonly value: T | Promise<T>,\n\t\tpublic readonly path: string,\n\t\tpublic readonly routeContext: IFluidHandleContext,\n\t) {\n\t\tsuper();\n\t\tthis.absolutePath = generateHandleContextPath(path, this.routeContext);\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.get}\n\t */\n\t// TODO: Return `Promise<T>` instead of `Promise<any>`.\n\t// This was clearly the intended typing of this API, but fixing it would be a breaking change.\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic async get(): Promise<any> {\n\t\t// Note that this return works whether we received a T or a Promise<T> for this.value in the constructor.\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.attachGraph }\n\t */\n\tpublic attachGraph(): void {\n\t\t// start legacy bind/attach flow\n\t\tif (this.visible) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.locallyVisible = true;\n\t\tfor (const handle of this.pendingHandlesToMakeVisible) {\n\t\t\thandle.attachGraph();\n\t\t}\n\t\tthis.pendingHandlesToMakeVisible.clear();\n\t\t// end legacy bind/attach flow\n\n\t\tthis.routeContext.attachGraph();\n\t}\n\n\t// eslint-disable-next-line jsdoc/require-description\n\t/**\n\t * @deprecated No replacement provided. Arbitrary handles may not serve as a bind source.\n\t * @privateRemarks This implementation will be moved to SharedObjectHandle once this is removed.\n\t */\n\tpublic bind(handle: IFluidHandleInternal): void {\n\t\t// If this handle is visible, attach the graph of the incoming handle as well.\n\t\tif (this.visible) {\n\t\t\thandle.attachGraph();\n\t\t\treturn;\n\t\t}\n\t\tthis.pendingHandlesToMakeVisible.add(handle);\n\t}\n}\n"]} | ||
| {"version":3,"file":"fluidHandle.js","sourceRoot":"","sources":["../src/fluidHandle.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,qEAGgD;AAEhD;;;;GAIG;AACH,MAAa,iBAEX,SAAQ,0BAAkB;IAM3B;;OAEG;IACH,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACH,YACoB,KAAqB,EACxB,IAAY,EACZ,YAAiC;QAEjD,KAAK,EAAE,CAAC;QAJW,UAAK,GAAL,KAAK,CAAgB;QACxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAqB;QAGjD,IAAI,CAAC,YAAY,GAAG,IAAA,oCAAyB,EAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,uDAAuD;IACvD,8FAA8F;IAC9F,8DAA8D;IACvD,KAAK,CAAC,GAAG;QACf,yGAAyG;QACzG,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;CACD;AAjDD,8CAiDC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FluidObject } from \"@fluidframework/core-interfaces\";\nimport { IFluidHandleContext } from \"@fluidframework/core-interfaces/internal\";\nimport {\n\tgenerateHandleContextPath,\n\tFluidHandleBase,\n} from \"@fluidframework/runtime-utils/internal\";\n\n/**\n * Handle for a shared {@link @fluidframework/core-interfaces#FluidObject}.\n * @legacy\n * @alpha\n */\nexport class FluidObjectHandle<\n\tT extends FluidObject = FluidObject,\n> extends FluidHandleBase<T> {\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.absolutePath}\n\t */\n\tpublic readonly absolutePath: string;\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.isAttached}\n\t */\n\tpublic get isAttached(): boolean {\n\t\treturn this.routeContext.isAttached;\n\t}\n\n\t/**\n\t * Creates a new `FluidObjectHandle`.\n\t *\n\t * @param value - The {@link @fluidframework/core-interfaces#FluidObject} object this handle is for.\n\t * @param path - The path to this handle relative to the `routeContext`.\n\t * @param routeContext - The parent {@link @fluidframework/core-interfaces#IFluidHandleContext} that has a route\n\t * to this handle.\n\t */\n\tconstructor(\n\t\tprotected readonly value: T | Promise<T>,\n\t\tpublic readonly path: string,\n\t\tpublic readonly routeContext: IFluidHandleContext,\n\t) {\n\t\tsuper();\n\t\tthis.absolutePath = generateHandleContextPath(path, this.routeContext);\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.get}\n\t */\n\t// TODO: Return `Promise<T>` instead of `Promise<any>`.\n\t// This was clearly the intended typing of this API, but fixing it would be a breaking change.\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic async get(): Promise<any> {\n\t\t// Note that this return works whether we received a T or a Promise<T> for this.value in the constructor.\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.attachGraph }\n\t */\n\tpublic attachGraph(): void {\n\t\tthis.routeContext.attachGraph();\n\t}\n}\n"]} |
@@ -8,3 +8,3 @@ /*! | ||
| export declare const pkgName = "@fluidframework/datastore"; | ||
| export declare const pkgVersion = "2.50.0-345060"; | ||
| export declare const pkgVersion = "2.50.0"; | ||
| //# sourceMappingURL=packageVersion.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,8BAA8B,CAAC;AACnD,eAAO,MAAM,UAAU,kBAAkB,CAAC"} | ||
| {"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,8BAA8B,CAAC;AACnD,eAAO,MAAM,UAAU,WAAW,CAAC"} |
@@ -11,3 +11,3 @@ "use strict"; | ||
| exports.pkgName = "@fluidframework/datastore"; | ||
| exports.pkgVersion = "2.50.0-345060"; | ||
| exports.pkgVersion = "2.50.0"; | ||
| //# sourceMappingURL=packageVersion.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,2BAA2B,CAAC;AACtC,QAAA,UAAU,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/datastore\";\nexport const pkgVersion = \"2.50.0-345060\";\n"]} | ||
| {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,2BAA2B,CAAC;AACtC,QAAA,UAAU,GAAG,QAAQ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/datastore\";\nexport const pkgVersion = \"2.50.0\";\n"]} |
+0
-15
@@ -6,3 +6,2 @@ /*! | ||
| import { FluidObject } from "@fluidframework/core-interfaces"; | ||
| import type { IFluidHandleInternal } from "@fluidframework/core-interfaces/internal"; | ||
| import { IFluidHandleContext } from "@fluidframework/core-interfaces/internal"; | ||
@@ -19,3 +18,2 @@ import { FluidHandleBase } from "@fluidframework/runtime-utils/internal"; | ||
| readonly routeContext: IFluidHandleContext; | ||
| private readonly pendingHandlesToMakeVisible; | ||
| /** | ||
@@ -30,10 +28,2 @@ * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.absolutePath} | ||
| /** | ||
| * Tells whether the object of this handle is visible in the container locally or globally. | ||
| */ | ||
| private get visible(); | ||
| /** | ||
| * Tracks whether this handle is locally visible in the container. | ||
| */ | ||
| private locallyVisible; | ||
| /** | ||
| * Creates a new `FluidObjectHandle`. | ||
@@ -55,8 +45,3 @@ * | ||
| attachGraph(): void; | ||
| /** | ||
| * @deprecated No replacement provided. Arbitrary handles may not serve as a bind source. | ||
| * @privateRemarks This implementation will be moved to SharedObjectHandle once this is removed. | ||
| */ | ||
| bind(handle: IFluidHandleInternal): void; | ||
| } | ||
| //# sourceMappingURL=fluidHandle.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fluidHandle.d.ts","sourceRoot":"","sources":["../src/fluidHandle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAEN,eAAe,EACf,MAAM,wCAAwC,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,iBAAiB,CAC7B,CAAC,SAAS,WAAW,GAAG,WAAW,CAClC,SAAQ,eAAe,CAAC,CAAC,CAAC;IAgD1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;aACxB,IAAI,EAAE,MAAM;aACZ,YAAY,EAAE,mBAAmB;IAjDlD,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAAwC;IAEpF;;OAEG;IACH,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;OAEG;IACH,OAAO,KAAK,OAAO,GAclB;IAED;;OAEG;IACH,OAAO,CAAC,cAAc,CAAkB;IAExC;;;;;;;OAOG;gBAEiB,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,mBAAmB;IAMlD;;OAEG;IAIU,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAKhC;;OAEG;IACI,WAAW,IAAI,IAAI;IAiB1B;;;OAGG;IACI,IAAI,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;CAQ/C"} | ||
| {"version":3,"file":"fluidHandle.d.ts","sourceRoot":"","sources":["../src/fluidHandle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAC/E,OAAO,EAEN,eAAe,EACf,MAAM,wCAAwC,CAAC;AAEhD;;;;GAIG;AACH,qBAAa,iBAAiB,CAC7B,CAAC,SAAS,WAAW,GAAG,WAAW,CAClC,SAAQ,eAAe,CAAC,CAAC,CAAC;IAsB1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;aACxB,IAAI,EAAE,MAAM;aACZ,YAAY,EAAE,mBAAmB;IAvBlD;;OAEG;IACH,SAAgB,YAAY,EAAE,MAAM,CAAC;IAErC;;OAEG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;;;;;OAOG;gBAEiB,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,mBAAmB;IAMlD;;OAEG;IAIU,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IAKhC;;OAEG;IACI,WAAW,IAAI,IAAI;CAG1B"} |
+0
-46
@@ -19,20 +19,2 @@ /*! | ||
| /** | ||
| * Tells whether the object of this handle is visible in the container locally or globally. | ||
| */ | ||
| get visible() { | ||
| /** | ||
| * If the object of this handle is attached, it is visible in the container. Ideally, checking local visibility | ||
| * should be enough for a handle. However, there are scenarios where the object becomes locally visible but the | ||
| * handle does not know this - This will happen is attachGraph is never called on the handle. Couple of examples | ||
| * where this can happen: | ||
| * | ||
| * 1. Handles to DDS other than the default handle won't know if the DDS becomes visible after the handle was | ||
| * created. | ||
| * | ||
| * 2. Handles to root data stores will never know that it was visible because the handle will not be stores in | ||
| * another DDS and so, attachGraph will never be called on it. | ||
| */ | ||
| return this.isAttached || this.locallyVisible; | ||
| } | ||
| /** | ||
| * Creates a new `FluidObjectHandle`. | ||
@@ -50,7 +32,2 @@ * | ||
| this.routeContext = routeContext; | ||
| this.pendingHandlesToMakeVisible = new Set(); | ||
| /** | ||
| * Tracks whether this handle is locally visible in the container. | ||
| */ | ||
| this.locallyVisible = false; | ||
| this.absolutePath = generateHandleContextPath(path, this.routeContext); | ||
@@ -72,28 +49,5 @@ } | ||
| attachGraph() { | ||
| // start legacy bind/attach flow | ||
| if (this.visible) { | ||
| return; | ||
| } | ||
| this.locallyVisible = true; | ||
| for (const handle of this.pendingHandlesToMakeVisible) { | ||
| handle.attachGraph(); | ||
| } | ||
| this.pendingHandlesToMakeVisible.clear(); | ||
| // end legacy bind/attach flow | ||
| this.routeContext.attachGraph(); | ||
| } | ||
| // eslint-disable-next-line jsdoc/require-description | ||
| /** | ||
| * @deprecated No replacement provided. Arbitrary handles may not serve as a bind source. | ||
| * @privateRemarks This implementation will be moved to SharedObjectHandle once this is removed. | ||
| */ | ||
| bind(handle) { | ||
| // If this handle is visible, attach the graph of the incoming handle as well. | ||
| if (this.visible) { | ||
| handle.attachGraph(); | ||
| return; | ||
| } | ||
| this.pendingHandlesToMakeVisible.add(handle); | ||
| } | ||
| } | ||
| //# sourceMappingURL=fluidHandle.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"fluidHandle.js","sourceRoot":"","sources":["../src/fluidHandle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EACN,yBAAyB,EACzB,eAAe,GACf,MAAM,wCAAwC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,iBAEX,SAAQ,eAAkB;IAQ3B;;OAEG;IACH,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,IAAY,OAAO;QAClB;;;;;;;;;;;WAWG;QACH,OAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,cAAc,CAAC;IAC/C,CAAC;IAOD;;;;;;;OAOG;IACH,YACoB,KAAqB,EACxB,IAAY,EACZ,YAAiC;QAEjD,KAAK,EAAE,CAAC;QAJW,UAAK,GAAL,KAAK,CAAgB;QACxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAqB;QAjDjC,gCAA2B,GAA8B,IAAI,GAAG,EAAE,CAAC;QAiCpF;;WAEG;QACK,mBAAc,GAAY,KAAK,CAAC;QAgBvC,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,uDAAuD;IACvD,8FAA8F;IAC9F,8DAA8D;IACvD,KAAK,CAAC,GAAG;QACf,yGAAyG;QACzG,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,gCAAgC;QAChC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,OAAO;QACR,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,2BAA2B,EAAE,CAAC;YACvD,MAAM,CAAC,WAAW,EAAE,CAAC;QACtB,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,KAAK,EAAE,CAAC;QACzC,8BAA8B;QAE9B,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;IAED,qDAAqD;IACrD;;;OAGG;IACI,IAAI,CAAC,MAA4B;QACvC,8EAA8E;QAC9E,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,CAAC,WAAW,EAAE,CAAC;YACrB,OAAO;QACR,CAAC;QACD,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9C,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FluidObject } from \"@fluidframework/core-interfaces\";\nimport type { IFluidHandleInternal } from \"@fluidframework/core-interfaces/internal\";\nimport { IFluidHandleContext } from \"@fluidframework/core-interfaces/internal\";\nimport {\n\tgenerateHandleContextPath,\n\tFluidHandleBase,\n} from \"@fluidframework/runtime-utils/internal\";\n\n/**\n * Handle for a shared {@link @fluidframework/core-interfaces#FluidObject}.\n * @legacy\n * @alpha\n */\nexport class FluidObjectHandle<\n\tT extends FluidObject = FluidObject,\n> extends FluidHandleBase<T> {\n\tprivate readonly pendingHandlesToMakeVisible: Set<IFluidHandleInternal> = new Set();\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.absolutePath}\n\t */\n\tpublic readonly absolutePath: string;\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.isAttached}\n\t */\n\tpublic get isAttached(): boolean {\n\t\treturn this.routeContext.isAttached;\n\t}\n\n\t/**\n\t * Tells whether the object of this handle is visible in the container locally or globally.\n\t */\n\tprivate get visible(): boolean {\n\t\t/**\n\t\t * If the object of this handle is attached, it is visible in the container. Ideally, checking local visibility\n\t\t * should be enough for a handle. However, there are scenarios where the object becomes locally visible but the\n\t\t * handle does not know this - This will happen is attachGraph is never called on the handle. Couple of examples\n\t\t * where this can happen:\n\t\t *\n\t\t * 1. Handles to DDS other than the default handle won't know if the DDS becomes visible after the handle was\n\t\t * created.\n\t\t *\n\t\t * 2. Handles to root data stores will never know that it was visible because the handle will not be stores in\n\t\t * another DDS and so, attachGraph will never be called on it.\n\t\t */\n\t\treturn this.isAttached || this.locallyVisible;\n\t}\n\n\t/**\n\t * Tracks whether this handle is locally visible in the container.\n\t */\n\tprivate locallyVisible: boolean = false;\n\n\t/**\n\t * Creates a new `FluidObjectHandle`.\n\t *\n\t * @param value - The {@link @fluidframework/core-interfaces#FluidObject} object this handle is for.\n\t * @param path - The path to this handle relative to the `routeContext`.\n\t * @param routeContext - The parent {@link @fluidframework/core-interfaces#IFluidHandleContext} that has a route\n\t * to this handle.\n\t */\n\tconstructor(\n\t\tprotected readonly value: T | Promise<T>,\n\t\tpublic readonly path: string,\n\t\tpublic readonly routeContext: IFluidHandleContext,\n\t) {\n\t\tsuper();\n\t\tthis.absolutePath = generateHandleContextPath(path, this.routeContext);\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.get}\n\t */\n\t// TODO: Return `Promise<T>` instead of `Promise<any>`.\n\t// This was clearly the intended typing of this API, but fixing it would be a breaking change.\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic async get(): Promise<any> {\n\t\t// Note that this return works whether we received a T or a Promise<T> for this.value in the constructor.\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.attachGraph }\n\t */\n\tpublic attachGraph(): void {\n\t\t// start legacy bind/attach flow\n\t\tif (this.visible) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.locallyVisible = true;\n\t\tfor (const handle of this.pendingHandlesToMakeVisible) {\n\t\t\thandle.attachGraph();\n\t\t}\n\t\tthis.pendingHandlesToMakeVisible.clear();\n\t\t// end legacy bind/attach flow\n\n\t\tthis.routeContext.attachGraph();\n\t}\n\n\t// eslint-disable-next-line jsdoc/require-description\n\t/**\n\t * @deprecated No replacement provided. Arbitrary handles may not serve as a bind source.\n\t * @privateRemarks This implementation will be moved to SharedObjectHandle once this is removed.\n\t */\n\tpublic bind(handle: IFluidHandleInternal): void {\n\t\t// If this handle is visible, attach the graph of the incoming handle as well.\n\t\tif (this.visible) {\n\t\t\thandle.attachGraph();\n\t\t\treturn;\n\t\t}\n\t\tthis.pendingHandlesToMakeVisible.add(handle);\n\t}\n}\n"]} | ||
| {"version":3,"file":"fluidHandle.js","sourceRoot":"","sources":["../src/fluidHandle.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,EACN,yBAAyB,EACzB,eAAe,GACf,MAAM,wCAAwC,CAAC;AAEhD;;;;GAIG;AACH,MAAM,OAAO,iBAEX,SAAQ,eAAkB;IAM3B;;OAEG;IACH,IAAW,UAAU;QACpB,OAAO,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;IACrC,CAAC;IAED;;;;;;;OAOG;IACH,YACoB,KAAqB,EACxB,IAAY,EACZ,YAAiC;QAEjD,KAAK,EAAE,CAAC;QAJW,UAAK,GAAL,KAAK,CAAgB;QACxB,SAAI,GAAJ,IAAI,CAAQ;QACZ,iBAAY,GAAZ,YAAY,CAAqB;QAGjD,IAAI,CAAC,YAAY,GAAG,yBAAyB,CAAC,IAAI,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACH,uDAAuD;IACvD,8FAA8F;IAC9F,8DAA8D;IACvD,KAAK,CAAC,GAAG;QACf,yGAAyG;QACzG,OAAO,IAAI,CAAC,KAAK,CAAC;IACnB,CAAC;IAED;;OAEG;IACI,WAAW;QACjB,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;IACjC,CAAC;CACD","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { FluidObject } from \"@fluidframework/core-interfaces\";\nimport { IFluidHandleContext } from \"@fluidframework/core-interfaces/internal\";\nimport {\n\tgenerateHandleContextPath,\n\tFluidHandleBase,\n} from \"@fluidframework/runtime-utils/internal\";\n\n/**\n * Handle for a shared {@link @fluidframework/core-interfaces#FluidObject}.\n * @legacy\n * @alpha\n */\nexport class FluidObjectHandle<\n\tT extends FluidObject = FluidObject,\n> extends FluidHandleBase<T> {\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.absolutePath}\n\t */\n\tpublic readonly absolutePath: string;\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.isAttached}\n\t */\n\tpublic get isAttached(): boolean {\n\t\treturn this.routeContext.isAttached;\n\t}\n\n\t/**\n\t * Creates a new `FluidObjectHandle`.\n\t *\n\t * @param value - The {@link @fluidframework/core-interfaces#FluidObject} object this handle is for.\n\t * @param path - The path to this handle relative to the `routeContext`.\n\t * @param routeContext - The parent {@link @fluidframework/core-interfaces#IFluidHandleContext} that has a route\n\t * to this handle.\n\t */\n\tconstructor(\n\t\tprotected readonly value: T | Promise<T>,\n\t\tpublic readonly path: string,\n\t\tpublic readonly routeContext: IFluidHandleContext,\n\t) {\n\t\tsuper();\n\t\tthis.absolutePath = generateHandleContextPath(path, this.routeContext);\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.get}\n\t */\n\t// TODO: Return `Promise<T>` instead of `Promise<any>`.\n\t// This was clearly the intended typing of this API, but fixing it would be a breaking change.\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tpublic async get(): Promise<any> {\n\t\t// Note that this return works whether we received a T or a Promise<T> for this.value in the constructor.\n\t\treturn this.value;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.attachGraph }\n\t */\n\tpublic attachGraph(): void {\n\t\tthis.routeContext.attachGraph();\n\t}\n}\n"]} |
@@ -8,3 +8,3 @@ /*! | ||
| export declare const pkgName = "@fluidframework/datastore"; | ||
| export declare const pkgVersion = "2.50.0-345060"; | ||
| export declare const pkgVersion = "2.50.0"; | ||
| //# sourceMappingURL=packageVersion.d.ts.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,8BAA8B,CAAC;AACnD,eAAO,MAAM,UAAU,kBAAkB,CAAC"} | ||
| {"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,8BAA8B,CAAC;AACnD,eAAO,MAAM,UAAU,WAAW,CAAC"} |
@@ -8,3 +8,3 @@ /*! | ||
| export const pkgName = "@fluidframework/datastore"; | ||
| export const pkgVersion = "2.50.0-345060"; | ||
| export const pkgVersion = "2.50.0"; | ||
| //# sourceMappingURL=packageVersion.js.map |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,2BAA2B,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/datastore\";\nexport const pkgVersion = \"2.50.0-345060\";\n"]} | ||
| {"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,2BAA2B,CAAC;AACnD,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/datastore\";\nexport const pkgVersion = \"2.50.0\";\n"]} |
+28
-15
| { | ||
| "name": "@fluidframework/datastore", | ||
| "version": "2.50.0-345060", | ||
| "version": "2.50.0", | ||
| "description": "Fluid data store implementation", | ||
@@ -72,13 +72,13 @@ "homepage": "https://fluidframework.com", | ||
| "dependencies": { | ||
| "@fluid-internal/client-utils": "2.50.0-345060", | ||
| "@fluidframework/container-definitions": "2.50.0-345060", | ||
| "@fluidframework/core-interfaces": "2.50.0-345060", | ||
| "@fluidframework/core-utils": "2.50.0-345060", | ||
| "@fluidframework/datastore-definitions": "2.50.0-345060", | ||
| "@fluidframework/driver-definitions": "2.50.0-345060", | ||
| "@fluidframework/driver-utils": "2.50.0-345060", | ||
| "@fluidframework/id-compressor": "2.50.0-345060", | ||
| "@fluidframework/runtime-definitions": "2.50.0-345060", | ||
| "@fluidframework/runtime-utils": "2.50.0-345060", | ||
| "@fluidframework/telemetry-utils": "2.50.0-345060", | ||
| "@fluid-internal/client-utils": "~2.50.0", | ||
| "@fluidframework/container-definitions": "~2.50.0", | ||
| "@fluidframework/core-interfaces": "~2.50.0", | ||
| "@fluidframework/core-utils": "~2.50.0", | ||
| "@fluidframework/datastore-definitions": "~2.50.0", | ||
| "@fluidframework/driver-definitions": "~2.50.0", | ||
| "@fluidframework/driver-utils": "~2.50.0", | ||
| "@fluidframework/id-compressor": "~2.50.0", | ||
| "@fluidframework/runtime-definitions": "~2.50.0", | ||
| "@fluidframework/runtime-utils": "~2.50.0", | ||
| "@fluidframework/telemetry-utils": "~2.50.0", | ||
| "uuid": "^9.0.0" | ||
@@ -89,3 +89,3 @@ }, | ||
| "@biomejs/biome": "~1.9.3", | ||
| "@fluid-internal/mocha-test-setup": "2.50.0-345060", | ||
| "@fluid-internal/mocha-test-setup": "~2.50.0", | ||
| "@fluid-tools/build-cli": "^0.56.0", | ||
@@ -96,3 +96,3 @@ "@fluidframework/build-common": "^2.0.3", | ||
| "@fluidframework/eslint-config-fluid": "^5.7.4", | ||
| "@fluidframework/test-runtime-utils": "2.50.0-345060", | ||
| "@fluidframework/test-runtime-utils": "~2.50.0", | ||
| "@microsoft/api-extractor": "7.52.8", | ||
@@ -116,3 +116,16 @@ "@types/lodash": "^4.14.118", | ||
| "typeValidation": { | ||
| "broken": {}, | ||
| "broken": { | ||
| "Class_FluidDataStoreRuntime": { | ||
| "backCompat": false | ||
| }, | ||
| "Class_FluidObjectHandle": { | ||
| "backCompat": false | ||
| }, | ||
| "ClassStatics_FluidDataStoreRuntime": { | ||
| "backCompat": false | ||
| }, | ||
| "ClassStatics_FluidObjectHandle": { | ||
| "backCompat": false | ||
| } | ||
| }, | ||
| "entrypoint": "legacy" | ||
@@ -119,0 +132,0 @@ }, |
+0
-53
@@ -7,3 +7,2 @@ /*! | ||
| import { FluidObject } from "@fluidframework/core-interfaces"; | ||
| import type { IFluidHandleInternal } from "@fluidframework/core-interfaces/internal"; | ||
| import { IFluidHandleContext } from "@fluidframework/core-interfaces/internal"; | ||
@@ -23,4 +22,2 @@ import { | ||
| > extends FluidHandleBase<T> { | ||
| private readonly pendingHandlesToMakeVisible: Set<IFluidHandleInternal> = new Set(); | ||
| /** | ||
@@ -39,26 +36,2 @@ * {@inheritDoc @fluidframework/core-interfaces#IFluidHandle.absolutePath} | ||
| /** | ||
| * Tells whether the object of this handle is visible in the container locally or globally. | ||
| */ | ||
| private get visible(): boolean { | ||
| /** | ||
| * If the object of this handle is attached, it is visible in the container. Ideally, checking local visibility | ||
| * should be enough for a handle. However, there are scenarios where the object becomes locally visible but the | ||
| * handle does not know this - This will happen is attachGraph is never called on the handle. Couple of examples | ||
| * where this can happen: | ||
| * | ||
| * 1. Handles to DDS other than the default handle won't know if the DDS becomes visible after the handle was | ||
| * created. | ||
| * | ||
| * 2. Handles to root data stores will never know that it was visible because the handle will not be stores in | ||
| * another DDS and so, attachGraph will never be called on it. | ||
| */ | ||
| return this.isAttached || this.locallyVisible; | ||
| } | ||
| /** | ||
| * Tracks whether this handle is locally visible in the container. | ||
| */ | ||
| private locallyVisible: boolean = false; | ||
| /** | ||
| * Creates a new `FluidObjectHandle`. | ||
@@ -95,30 +68,4 @@ * | ||
| public attachGraph(): void { | ||
| // start legacy bind/attach flow | ||
| if (this.visible) { | ||
| return; | ||
| } | ||
| this.locallyVisible = true; | ||
| for (const handle of this.pendingHandlesToMakeVisible) { | ||
| handle.attachGraph(); | ||
| } | ||
| this.pendingHandlesToMakeVisible.clear(); | ||
| // end legacy bind/attach flow | ||
| this.routeContext.attachGraph(); | ||
| } | ||
| // eslint-disable-next-line jsdoc/require-description | ||
| /** | ||
| * @deprecated No replacement provided. Arbitrary handles may not serve as a bind source. | ||
| * @privateRemarks This implementation will be moved to SharedObjectHandle once this is removed. | ||
| */ | ||
| public bind(handle: IFluidHandleInternal): void { | ||
| // If this handle is visible, attach the graph of the incoming handle as well. | ||
| if (this.visible) { | ||
| handle.attachGraph(); | ||
| return; | ||
| } | ||
| this.pendingHandlesToMakeVisible.add(handle); | ||
| } | ||
| } |
@@ -9,2 +9,2 @@ /*! | ||
| export const pkgName = "@fluidframework/datastore"; | ||
| export const pkgVersion = "2.50.0-345060"; | ||
| export const pkgVersion = "2.50.0"; |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
0
-100%773585
-1.6%7991
-2.07%+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
+ Added
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed
- Removed