@fluid-experimental/tree 2.5.0 → 2.10.0-305357
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/dist/PayloadUtilities.js
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.comparePayloads = void 0;
|
|
8
8
|
const internal_1 = require("@fluidframework/core-utils/internal");
|
|
9
|
-
const
|
|
9
|
+
const runtime_utils_1 = require("@fluidframework/runtime-utils");
|
|
10
10
|
/**
|
|
11
11
|
* @returns true if two `Payloads` are identical.
|
|
12
12
|
* May return false for equivalent payloads encoded differently.
|
|
@@ -61,13 +61,13 @@ function comparePayloads(a, b) {
|
|
|
61
61
|
return false;
|
|
62
62
|
}
|
|
63
63
|
// Special case IFluidHandles, comparing them only by their absolutePath
|
|
64
|
-
if ((0,
|
|
65
|
-
if ((0,
|
|
66
|
-
return (0,
|
|
64
|
+
if ((0, runtime_utils_1.isFluidHandle)(a)) {
|
|
65
|
+
if ((0, runtime_utils_1.isFluidHandle)(b)) {
|
|
66
|
+
return (0, runtime_utils_1.compareFluidHandles)(a, b);
|
|
67
67
|
}
|
|
68
68
|
return false;
|
|
69
69
|
}
|
|
70
|
-
if ((0,
|
|
70
|
+
if ((0, runtime_utils_1.isFluidHandle)(b)) {
|
|
71
71
|
return false;
|
|
72
72
|
}
|
|
73
73
|
// Fluid Serialization (like Json) only keeps enumerable properties, so we can ignore non-enumerable ones.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayloadUtilities.js","sourceRoot":"","sources":["../src/PayloadUtilities.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAAoE;AACpE,
|
|
1
|
+
{"version":3,"file":"PayloadUtilities.js","sourceRoot":"","sources":["../src/PayloadUtilities.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,kEAAoE;AACpE,iEAAmF;AAInF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,SAAgB,eAAe,CAAC,CAAU,EAAE,CAAU;IACrD,iFAAiF;IACjF,sCAAsC;IACtC,0DAA0D;IAC1D,mFAAmF;IACnF,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,2HAA2H;IAC3H,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,qFAAqF;IACrF,uEAAuE;IACvE,0FAA0F;IAC1F,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,IAAI,IAAA,6BAAa,EAAC,CAAC,CAAC,EAAE,CAAC;QACtB,IAAI,IAAA,6BAAa,EAAC,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,IAAA,mCAAmB,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,IAAA,6BAAa,EAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,0GAA0G;IAC1G,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACd,CAAC;IAED,gIAAgI;IAChI,gDAAgD;IAChD,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,+FAA+F;IAC/F,IAAI,CAAC,IAAA,wBAAa,EAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC;AApED,0CAoEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { compareArrays } from '@fluidframework/core-utils/internal';\nimport { compareFluidHandles, isFluidHandle } from '@fluidframework/runtime-utils';\n\nimport { Payload } from './persisted-types/index.js';\n\n/**\n * @returns true if two `Payloads` are identical.\n * May return false for equivalent payloads encoded differently.\n *\n * Object field order and object identity are not considered significant, and are ignored by this function.\n * (This is because they may not be preserved through roundtrip).\n *\n * For other information which Fluid would lose on serialization round trip,\n * behavior is unspecified other than this this function is reflective (all payloads are equal to themselves)\n * and commutative (argument order does not matter).\n *\n * This means that any Payload is equal to itself and a deep clone of itself.\n *\n * Payloads might not be equal to a version of themselves that has been serialized then deserialized.\n * If they are serialized then deserialized again, the two deserialized objects will compare equal,\n * however the serialized strings may be unequal (due to field order for objects being unspecified).\n *\n * Fluid will cause lossy operations due to use of JSON.stringify().\n * This includes:\n * - Loss of object identity\n * - Loss of field order (may be ordered arbitrarily)\n * - -0 becomes +0\n * - NaN, Infinity, -Infinity all become null\n * - custom toJSON functions may cause arbitrary behavior\n * - functions become undefined or null\n * - non enumerable properties (including prototype) are lost\n * - more (this is not a complete list)\n *\n * Inputs must not contain cyclic references other than fields set to their immediate parent (for the JavaScript feature detection pattern).\n *\n * IFluidHandle instances (detected via JavaScript feature detection pattern) are only compared by absolutePath.\n *\n * TODO:#54095: Is there a better way to do this comparison?\n * @alpha\n */\nexport function comparePayloads(a: Payload, b: Payload): boolean {\n\t// === is not reflective because of how NaN is handled, so use Object.is instead.\n\t// This treats -0 and +0 as different.\n\t// Since -0 is not preserved in serialization round trips,\n\t// it can be handed in any way that is reflective and commutative, so this is fine.\n\tif (Object.is(a, b)) {\n\t\treturn true;\n\t}\n\n\t// Primitives which are equal would have early returned above, so now if the values are not both objects, they are unequal.\n\tif (typeof a !== 'object' || typeof b !== 'object') {\n\t\treturn false;\n\t}\n\n\t// null is of type object, and needs to be treated as distinct from the empty object.\n\t// Handling it early also avoids type errors trying to access its keys.\n\t// Rationale: 'undefined' payloads are reserved for future use (see 'SetValue' interface).\n\tif (a === null || b === null) {\n\t\treturn false;\n\t}\n\n\t// Special case IFluidHandles, comparing them only by their absolutePath\n\tif (isFluidHandle(a)) {\n\t\tif (isFluidHandle(b)) {\n\t\t\treturn compareFluidHandles(a, b);\n\t\t}\n\t\treturn false;\n\t}\n\tif (isFluidHandle(b)) {\n\t\treturn false;\n\t}\n\n\t// Fluid Serialization (like Json) only keeps enumerable properties, so we can ignore non-enumerable ones.\n\tconst aKeys = Object.keys(a);\n\tconst bKeys = Object.keys(b);\n\n\tif (aKeys.length !== bKeys.length) {\n\t\treturn false;\n\t}\n\n\t// make sure objects with numeric keys (or no keys) compare unequal to arrays.\n\tif (a instanceof Array !== b instanceof Array) {\n\t\treturn false;\n\t}\n\n\t// Fluid Serialization (like Json) orders object fields arbitrarily, so reordering fields is not considered considered a change.\n\t// Therefor the keys arrays must be sorted here.\n\tif (!(a instanceof Array)) {\n\t\taKeys.sort();\n\t\tbKeys.sort();\n\t}\n\n\t// First check keys are equal.\n\t// This will often early exit, and thus is worth doing as a separate pass than recursive check.\n\tif (!compareArrays(aKeys, bKeys)) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < aKeys.length; i++) {\n\t\tconst aItem: Payload = a[aKeys[i]];\n\t\tconst bItem: Payload = b[bKeys[i]];\n\n\t\tif (!comparePayloads(aItem, bItem)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n"]}
|
package/lib/PayloadUtilities.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Licensed under the MIT License.
|
|
4
4
|
*/
|
|
5
5
|
import { compareArrays } from '@fluidframework/core-utils/internal';
|
|
6
|
-
import {
|
|
6
|
+
import { compareFluidHandles, isFluidHandle } from '@fluidframework/runtime-utils';
|
|
7
7
|
/**
|
|
8
8
|
* @returns true if two `Payloads` are identical.
|
|
9
9
|
* May return false for equivalent payloads encoded differently.
|
|
@@ -60,7 +60,7 @@ export function comparePayloads(a, b) {
|
|
|
60
60
|
// Special case IFluidHandles, comparing them only by their absolutePath
|
|
61
61
|
if (isFluidHandle(a)) {
|
|
62
62
|
if (isFluidHandle(b)) {
|
|
63
|
-
return
|
|
63
|
+
return compareFluidHandles(a, b);
|
|
64
64
|
}
|
|
65
65
|
return false;
|
|
66
66
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PayloadUtilities.js","sourceRoot":"","sources":["../src/PayloadUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"PayloadUtilities.js","sourceRoot":"","sources":["../src/PayloadUtilities.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAInF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,UAAU,eAAe,CAAC,CAAU,EAAE,CAAU;IACrD,iFAAiF;IACjF,sCAAsC;IACtC,0DAA0D;IAC1D,mFAAmF;IACnF,IAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACb,CAAC;IAED,2HAA2H;IAC3H,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;QACpD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,qFAAqF;IACrF,uEAAuE;IACvE,0FAA0F;IAC1F,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACd,CAAC;IAED,wEAAwE;IACxE,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;YACtB,OAAO,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IACD,IAAI,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACd,CAAC;IAED,0GAA0G;IAC1G,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE7B,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,8EAA8E;IAC9E,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC;QAC/C,OAAO,KAAK,CAAC;IACd,CAAC;IAED,gIAAgI;IAChI,gDAAgD;IAChD,IAAI,CAAC,CAAC,CAAC,YAAY,KAAK,CAAC,EAAE,CAAC;QAC3B,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,8BAA8B;IAC9B,+FAA+F;IAC/F,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,KAAK,CAAC;IACd,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,KAAK,GAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnC,MAAM,KAAK,GAAY,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAEnC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACpC,OAAO,KAAK,CAAC;QACd,CAAC;IACF,CAAC;IAED,OAAO,IAAI,CAAC;AACb,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { compareArrays } from '@fluidframework/core-utils/internal';\nimport { compareFluidHandles, isFluidHandle } from '@fluidframework/runtime-utils';\n\nimport { Payload } from './persisted-types/index.js';\n\n/**\n * @returns true if two `Payloads` are identical.\n * May return false for equivalent payloads encoded differently.\n *\n * Object field order and object identity are not considered significant, and are ignored by this function.\n * (This is because they may not be preserved through roundtrip).\n *\n * For other information which Fluid would lose on serialization round trip,\n * behavior is unspecified other than this this function is reflective (all payloads are equal to themselves)\n * and commutative (argument order does not matter).\n *\n * This means that any Payload is equal to itself and a deep clone of itself.\n *\n * Payloads might not be equal to a version of themselves that has been serialized then deserialized.\n * If they are serialized then deserialized again, the two deserialized objects will compare equal,\n * however the serialized strings may be unequal (due to field order for objects being unspecified).\n *\n * Fluid will cause lossy operations due to use of JSON.stringify().\n * This includes:\n * - Loss of object identity\n * - Loss of field order (may be ordered arbitrarily)\n * - -0 becomes +0\n * - NaN, Infinity, -Infinity all become null\n * - custom toJSON functions may cause arbitrary behavior\n * - functions become undefined or null\n * - non enumerable properties (including prototype) are lost\n * - more (this is not a complete list)\n *\n * Inputs must not contain cyclic references other than fields set to their immediate parent (for the JavaScript feature detection pattern).\n *\n * IFluidHandle instances (detected via JavaScript feature detection pattern) are only compared by absolutePath.\n *\n * TODO:#54095: Is there a better way to do this comparison?\n * @alpha\n */\nexport function comparePayloads(a: Payload, b: Payload): boolean {\n\t// === is not reflective because of how NaN is handled, so use Object.is instead.\n\t// This treats -0 and +0 as different.\n\t// Since -0 is not preserved in serialization round trips,\n\t// it can be handed in any way that is reflective and commutative, so this is fine.\n\tif (Object.is(a, b)) {\n\t\treturn true;\n\t}\n\n\t// Primitives which are equal would have early returned above, so now if the values are not both objects, they are unequal.\n\tif (typeof a !== 'object' || typeof b !== 'object') {\n\t\treturn false;\n\t}\n\n\t// null is of type object, and needs to be treated as distinct from the empty object.\n\t// Handling it early also avoids type errors trying to access its keys.\n\t// Rationale: 'undefined' payloads are reserved for future use (see 'SetValue' interface).\n\tif (a === null || b === null) {\n\t\treturn false;\n\t}\n\n\t// Special case IFluidHandles, comparing them only by their absolutePath\n\tif (isFluidHandle(a)) {\n\t\tif (isFluidHandle(b)) {\n\t\t\treturn compareFluidHandles(a, b);\n\t\t}\n\t\treturn false;\n\t}\n\tif (isFluidHandle(b)) {\n\t\treturn false;\n\t}\n\n\t// Fluid Serialization (like Json) only keeps enumerable properties, so we can ignore non-enumerable ones.\n\tconst aKeys = Object.keys(a);\n\tconst bKeys = Object.keys(b);\n\n\tif (aKeys.length !== bKeys.length) {\n\t\treturn false;\n\t}\n\n\t// make sure objects with numeric keys (or no keys) compare unequal to arrays.\n\tif (a instanceof Array !== b instanceof Array) {\n\t\treturn false;\n\t}\n\n\t// Fluid Serialization (like Json) orders object fields arbitrarily, so reordering fields is not considered considered a change.\n\t// Therefor the keys arrays must be sorted here.\n\tif (!(a instanceof Array)) {\n\t\taKeys.sort();\n\t\tbKeys.sort();\n\t}\n\n\t// First check keys are equal.\n\t// This will often early exit, and thus is worth doing as a separate pass than recursive check.\n\tif (!compareArrays(aKeys, bKeys)) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < aKeys.length; i++) {\n\t\tconst aItem: Payload = a[aKeys[i]];\n\t\tconst bItem: Payload = b[bKeys[i]];\n\n\t\tif (!comparePayloads(aItem, bItem)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\n\treturn true;\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluid-experimental/tree",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0-305357",
|
|
4
4
|
"description": "Distributed tree",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -37,18 +37,18 @@
|
|
|
37
37
|
"main": "lib/index.js",
|
|
38
38
|
"types": "lib/index.d.ts",
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@fluid-internal/client-utils": "
|
|
41
|
-
"@fluidframework/container-definitions": "
|
|
42
|
-
"@fluidframework/core-interfaces": "
|
|
43
|
-
"@fluidframework/core-utils": "
|
|
44
|
-
"@fluidframework/datastore-definitions": "
|
|
45
|
-
"@fluidframework/driver-definitions": "
|
|
46
|
-
"@fluidframework/id-compressor": "
|
|
47
|
-
"@fluidframework/runtime-definitions": "
|
|
48
|
-
"@fluidframework/runtime-utils": "
|
|
49
|
-
"@fluidframework/shared-object-base": "
|
|
50
|
-
"@fluidframework/telemetry-utils": "
|
|
51
|
-
"@fluidframework/tree": "
|
|
40
|
+
"@fluid-internal/client-utils": "2.10.0-305357",
|
|
41
|
+
"@fluidframework/container-definitions": "2.10.0-305357",
|
|
42
|
+
"@fluidframework/core-interfaces": "2.10.0-305357",
|
|
43
|
+
"@fluidframework/core-utils": "2.10.0-305357",
|
|
44
|
+
"@fluidframework/datastore-definitions": "2.10.0-305357",
|
|
45
|
+
"@fluidframework/driver-definitions": "2.10.0-305357",
|
|
46
|
+
"@fluidframework/id-compressor": "2.10.0-305357",
|
|
47
|
+
"@fluidframework/runtime-definitions": "2.10.0-305357",
|
|
48
|
+
"@fluidframework/runtime-utils": "2.10.0-305357",
|
|
49
|
+
"@fluidframework/shared-object-base": "2.10.0-305357",
|
|
50
|
+
"@fluidframework/telemetry-utils": "2.10.0-305357",
|
|
51
|
+
"@fluidframework/tree": "2.10.0-305357",
|
|
52
52
|
"@tylerbu/sorted-btree-es6": "^1.8.0",
|
|
53
53
|
"buffer": "^6.0.3",
|
|
54
54
|
"denque": "^1.5.1",
|
|
@@ -58,20 +58,20 @@
|
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@arethetypeswrong/cli": "^0.16.4",
|
|
60
60
|
"@biomejs/biome": "~1.9.3",
|
|
61
|
-
"@fluid-internal/mocha-test-setup": "
|
|
62
|
-
"@fluid-private/stochastic-test-utils": "
|
|
63
|
-
"@fluid-private/test-drivers": "
|
|
61
|
+
"@fluid-internal/mocha-test-setup": "2.10.0-305357",
|
|
62
|
+
"@fluid-private/stochastic-test-utils": "2.10.0-305357",
|
|
63
|
+
"@fluid-private/test-drivers": "2.10.0-305357",
|
|
64
64
|
"@fluid-tools/benchmark": "^0.50.0",
|
|
65
65
|
"@fluidframework/build-common": "^2.0.3",
|
|
66
|
-
"@fluidframework/build-tools": "^0.
|
|
67
|
-
"@fluidframework/container-definitions": "
|
|
68
|
-
"@fluidframework/container-loader": "
|
|
69
|
-
"@fluidframework/container-runtime": "
|
|
66
|
+
"@fluidframework/build-tools": "^0.50.0",
|
|
67
|
+
"@fluidframework/container-definitions": "2.10.0-305357",
|
|
68
|
+
"@fluidframework/container-loader": "2.10.0-305357",
|
|
69
|
+
"@fluidframework/container-runtime": "2.10.0-305357",
|
|
70
70
|
"@fluidframework/eslint-config-fluid": "^5.4.0",
|
|
71
|
-
"@fluidframework/runtime-utils": "
|
|
72
|
-
"@fluidframework/test-runtime-utils": "
|
|
73
|
-
"@fluidframework/test-utils": "
|
|
74
|
-
"@fluidframework/undo-redo": "
|
|
71
|
+
"@fluidframework/runtime-utils": "2.10.0-305357",
|
|
72
|
+
"@fluidframework/test-runtime-utils": "2.10.0-305357",
|
|
73
|
+
"@fluidframework/test-utils": "2.10.0-305357",
|
|
74
|
+
"@fluidframework/undo-redo": "2.10.0-305357",
|
|
75
75
|
"@microsoft/api-extractor": "7.47.8",
|
|
76
76
|
"@types/chai": "^4.0.0",
|
|
77
77
|
"@types/lru-cache": "^5.1.0",
|
package/src/PayloadUtilities.ts
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
import { compareArrays } from '@fluidframework/core-utils/internal';
|
|
7
|
-
import {
|
|
7
|
+
import { compareFluidHandles, isFluidHandle } from '@fluidframework/runtime-utils';
|
|
8
8
|
|
|
9
9
|
import { Payload } from './persisted-types/index.js';
|
|
10
10
|
|
|
@@ -67,7 +67,7 @@ export function comparePayloads(a: Payload, b: Payload): boolean {
|
|
|
67
67
|
// Special case IFluidHandles, comparing them only by their absolutePath
|
|
68
68
|
if (isFluidHandle(a)) {
|
|
69
69
|
if (isFluidHandle(b)) {
|
|
70
|
-
return
|
|
70
|
+
return compareFluidHandles(a, b);
|
|
71
71
|
}
|
|
72
72
|
return false;
|
|
73
73
|
}
|