You're Invited:Meet the Socket Team at RSAC and BSidesSF 2026, March 23–26.RSVP
Socket
Book a DemoSign in
Socket

@fluidframework/datastore

Package Overview
Dependencies
Maintainers
1
Versions
661
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@fluidframework/datastore - npm Package Compare versions

Comparing version
2.50.0-345060
to
2.50.0
+0
-2
api-report/datastore.legacy.alpha.api.md

@@ -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"}

@@ -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"]}

@@ -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"}

@@ -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"]}
{
"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 @@ },

@@ -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";