@fluidframework/map 2.0.0-rc.1.0.6 → 2.0.0-rc.2.0.1

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.
Files changed (132) hide show
  1. package/{.eslintrc.js → .eslintrc.cjs} +10 -1
  2. package/{.mocharc.js → .mocharc.cjs} +1 -1
  3. package/CHANGELOG.md +11 -0
  4. package/{api-extractor-esm.json → api-extractor-cjs.json} +5 -1
  5. package/api-extractor-lint.json +1 -1
  6. package/api-extractor.json +1 -1
  7. package/api-report/map.api.md +14 -57
  8. package/dist/directory.d.ts +10 -50
  9. package/dist/directory.d.ts.map +1 -1
  10. package/dist/directory.js +76 -164
  11. package/dist/directory.js.map +1 -1
  12. package/dist/index.d.ts +45 -4
  13. package/dist/index.d.ts.map +1 -1
  14. package/dist/index.js +43 -8
  15. package/dist/index.js.map +1 -1
  16. package/dist/interfaces.d.ts.map +1 -1
  17. package/dist/interfaces.js.map +1 -1
  18. package/dist/internalInterfaces.d.ts +2 -2
  19. package/dist/internalInterfaces.d.ts.map +1 -1
  20. package/dist/internalInterfaces.js.map +1 -1
  21. package/dist/localValues.d.ts +3 -5
  22. package/dist/localValues.d.ts.map +1 -1
  23. package/dist/localValues.js +9 -8
  24. package/dist/localValues.js.map +1 -1
  25. package/dist/map-alpha.d.ts +31 -116
  26. package/dist/map-beta.d.ts +24 -105
  27. package/dist/map-public.d.ts +24 -105
  28. package/dist/map-untrimmed.d.ts +31 -116
  29. package/dist/map.d.ts +4 -23
  30. package/dist/map.d.ts.map +1 -1
  31. package/dist/map.js +6 -29
  32. package/dist/map.js.map +1 -1
  33. package/dist/mapKernel.d.ts +3 -4
  34. package/dist/mapKernel.d.ts.map +1 -1
  35. package/dist/mapKernel.js +30 -35
  36. package/dist/mapKernel.js.map +1 -1
  37. package/dist/package.json +3 -0
  38. package/dist/packageVersion.d.ts +1 -1
  39. package/dist/packageVersion.js +1 -1
  40. package/dist/packageVersion.js.map +1 -1
  41. package/dist/tsdoc-metadata.json +1 -1
  42. package/lib/{directory.d.mts → directory.d.ts} +11 -51
  43. package/lib/directory.d.ts.map +1 -0
  44. package/lib/{directory.mjs → directory.js} +77 -165
  45. package/lib/directory.js.map +1 -0
  46. package/lib/index.d.ts +61 -0
  47. package/lib/index.d.ts.map +1 -0
  48. package/lib/index.js +55 -0
  49. package/lib/index.js.map +1 -0
  50. package/lib/{interfaces.d.mts → interfaces.d.ts} +1 -1
  51. package/lib/interfaces.d.ts.map +1 -0
  52. package/lib/{interfaces.mjs → interfaces.js} +1 -1
  53. package/lib/interfaces.js.map +1 -0
  54. package/lib/{internalInterfaces.d.mts → internalInterfaces.d.ts} +3 -3
  55. package/lib/internalInterfaces.d.ts.map +1 -0
  56. package/lib/{internalInterfaces.mjs → internalInterfaces.js} +1 -1
  57. package/lib/internalInterfaces.js.map +1 -0
  58. package/lib/{localValues.d.mts → localValues.d.ts} +4 -6
  59. package/lib/localValues.d.ts.map +1 -0
  60. package/lib/{localValues.mjs → localValues.js} +10 -9
  61. package/lib/localValues.js.map +1 -0
  62. package/lib/{map-alpha.d.mts → map-alpha.d.ts} +43 -116
  63. package/lib/{map-beta.d.mts → map-beta.d.ts} +36 -105
  64. package/lib/{map-public.d.mts → map-public.d.ts} +36 -105
  65. package/lib/{map-untrimmed.d.mts → map-untrimmed.d.ts} +43 -116
  66. package/lib/{map.d.mts → map.d.ts} +5 -24
  67. package/lib/map.d.ts.map +1 -0
  68. package/lib/{map.mjs → map.js} +5 -28
  69. package/lib/map.js.map +1 -0
  70. package/lib/{mapKernel.d.mts → mapKernel.d.ts} +4 -5
  71. package/lib/mapKernel.d.ts.map +1 -0
  72. package/lib/{mapKernel.mjs → mapKernel.js} +32 -37
  73. package/lib/mapKernel.js.map +1 -0
  74. package/lib/{packageVersion.d.mts → packageVersion.d.ts} +2 -2
  75. package/lib/packageVersion.d.ts.map +1 -0
  76. package/lib/{packageVersion.mjs → packageVersion.js} +2 -2
  77. package/lib/packageVersion.js.map +1 -0
  78. package/lib/test/memory/directory.spec.js +71 -0
  79. package/lib/test/memory/directory.spec.js.map +1 -0
  80. package/lib/test/memory/map.spec.js +71 -0
  81. package/lib/test/memory/map.spec.js.map +1 -0
  82. package/lib/test/mocha/directory.order.spec.js +422 -0
  83. package/lib/test/mocha/directory.order.spec.js.map +1 -0
  84. package/lib/test/mocha/directory.snapshot.spec.js +111 -0
  85. package/lib/test/mocha/directory.snapshot.spec.js.map +1 -0
  86. package/lib/test/mocha/directory.spec.js +1406 -0
  87. package/lib/test/mocha/directory.spec.js.map +1 -0
  88. package/lib/test/mocha/directoryEquivalenceUtils.js +36 -0
  89. package/lib/test/mocha/directoryEquivalenceUtils.js.map +1 -0
  90. package/lib/test/mocha/directoryFuzzTests.spec.js +337 -0
  91. package/lib/test/mocha/directoryFuzzTests.spec.js.map +1 -0
  92. package/lib/test/mocha/dirname.cjs +16 -0
  93. package/lib/test/mocha/dirname.cjs.map +1 -0
  94. package/lib/test/mocha/map.fuzz.spec.js +114 -0
  95. package/lib/test/mocha/map.fuzz.spec.js.map +1 -0
  96. package/lib/test/mocha/map.spec.js +685 -0
  97. package/lib/test/mocha/map.spec.js.map +1 -0
  98. package/lib/test/mocha/rebasing.spec.js +158 -0
  99. package/lib/test/mocha/rebasing.spec.js.map +1 -0
  100. package/lib/test/mocha/reconnection.spec.js +327 -0
  101. package/lib/test/mocha/reconnection.spec.js.map +1 -0
  102. package/lib/test/types/validateMapPrevious.generated.js +66 -0
  103. package/lib/test/types/validateMapPrevious.generated.js.map +1 -0
  104. package/package.json +55 -52
  105. package/src/directory.ts +122 -217
  106. package/src/index.ts +57 -4
  107. package/src/interfaces.ts +2 -2
  108. package/src/internalInterfaces.ts +2 -2
  109. package/src/localValues.ts +14 -9
  110. package/src/map.ts +7 -32
  111. package/src/mapKernel.ts +40 -42
  112. package/src/packageVersion.ts +1 -1
  113. package/tsconfig.cjs.json +7 -0
  114. package/tsconfig.json +2 -5
  115. package/lib/directory.d.mts.map +0 -1
  116. package/lib/directory.mjs.map +0 -1
  117. package/lib/index.d.mts +0 -9
  118. package/lib/index.d.mts.map +0 -1
  119. package/lib/index.mjs +0 -8
  120. package/lib/index.mjs.map +0 -1
  121. package/lib/interfaces.d.mts.map +0 -1
  122. package/lib/interfaces.mjs.map +0 -1
  123. package/lib/internalInterfaces.d.mts.map +0 -1
  124. package/lib/internalInterfaces.mjs.map +0 -1
  125. package/lib/localValues.d.mts.map +0 -1
  126. package/lib/localValues.mjs.map +0 -1
  127. package/lib/map.d.mts.map +0 -1
  128. package/lib/map.mjs.map +0 -1
  129. package/lib/mapKernel.d.mts.map +0 -1
  130. package/lib/mapKernel.mjs.map +0 -1
  131. package/lib/packageVersion.d.mts.map +0 -1
  132. package/lib/packageVersion.mjs.map +0 -1
package/src/index.ts CHANGED
@@ -30,7 +30,7 @@ export {
30
30
  IDirectoryStorageOperation,
31
31
  IDirectorySubDirectoryOperation,
32
32
  SharedDirectory,
33
- } from "./directory";
33
+ } from "./directory.js";
34
34
  export {
35
35
  IDirectory,
36
36
  IDirectoryEvents,
@@ -42,6 +42,59 @@ export {
42
42
  ISharedMap,
43
43
  ISharedMapEvents,
44
44
  IValueChanged,
45
- } from "./interfaces";
46
- export { LocalValueMaker, ILocalValue } from "./localValues";
47
- export { MapFactory, SharedMap } from "./map";
45
+ } from "./interfaces.js";
46
+ export { LocalValueMaker, ILocalValue } from "./localValues.js";
47
+ export { MapFactory } from "./map.js";
48
+
49
+ import type {
50
+ IChannelFactory,
51
+ IFluidDataStoreRuntime,
52
+ } from "@fluidframework/datastore-definitions";
53
+ import { MapFactory } from "./map.js";
54
+ import { ISharedMap } from "./interfaces.js";
55
+
56
+ /**
57
+ * {@inheritDoc ISharedMap}
58
+ * @public
59
+ * @deprecated Please use SharedTree for new containers. SharedMap is supported for loading preexisting Fluid Framework 1.0 containers only.
60
+ */
61
+ export const SharedMap = {
62
+ /**
63
+ * Get a factory for SharedMap to register with the data store.
64
+ * @returns A factory that creates SharedMaps and loads them from storage.
65
+ */
66
+ getFactory(): IChannelFactory<ISharedMap> {
67
+ return new MapFactory();
68
+ },
69
+
70
+ /**
71
+ * Create a new shared map.
72
+ * @param runtime - The data store runtime that the new shared map belongs to.
73
+ * @param id - Optional name of the shared map.
74
+ * @returns Newly created shared map.
75
+ *
76
+ * @example
77
+ * To create a `SharedMap`, call the static create method:
78
+ *
79
+ * ```typescript
80
+ * const myMap = SharedMap.create(this.runtime, id);
81
+ * ```
82
+ * @privateRemarks
83
+ * TODO:
84
+ * Clarify how this differs from `MapFactory.create`.
85
+ * They are different since making this forward to MapFactory.create breaks some things,
86
+ * but the difference is unclear from the documentation.
87
+ */
88
+ create(runtime: IFluidDataStoreRuntime, id?: string): ISharedMap {
89
+ return runtime.createChannel(id, MapFactory.Type) as ISharedMap;
90
+ },
91
+ };
92
+
93
+ /**
94
+ * {@inheritDoc ISharedMap}
95
+ * @public
96
+ * @deprecated Use ISharedMap instead.
97
+ * @privateRemarks
98
+ * This alias is for legacy compat from when the SharedMap class was exported as public.
99
+ */
100
+ export type SharedMap = ISharedMap;
package/src/interfaces.ts CHANGED
@@ -36,9 +36,9 @@ export interface IValueChanged {
36
36
  * @remarks When used as a Map, operates on its keys.
37
37
  * @alpha
38
38
  */
39
- // TODO: Use `unknown` instead (breaking change).
40
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
39
  export interface IDirectory
40
+ // TODO: Use `unknown` instead (breaking change).
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
42
  extends Map<string, any>,
43
43
  IEventProvider<IDirectoryEvents>,
44
44
  Partial<IDisposable> {
@@ -4,8 +4,8 @@
4
4
  */
5
5
 
6
6
  // eslint-disable-next-line import/no-deprecated
7
- import { ISerializableValue } from "./interfaces";
8
- import { ILocalValue } from "./localValues";
7
+ import { ISerializableValue } from "./interfaces.js";
8
+ import { ILocalValue } from "./localValues.js";
9
9
 
10
10
  /**
11
11
  * Operation indicating a value should be set for a key.
@@ -12,7 +12,7 @@ import {
12
12
  } from "@fluidframework/shared-object-base";
13
13
  import { ISerializedHandle } from "@fluidframework/runtime-utils";
14
14
  // eslint-disable-next-line import/no-deprecated
15
- import { ISerializableValue, ISerializedValue } from "./interfaces";
15
+ import { ISerializableValue, ISerializedValue } from "./interfaces.js";
16
16
 
17
17
  /**
18
18
  * A local value to be stored in a container type Distributed Data Store (DDS).
@@ -103,16 +103,19 @@ export class PlainLocalValue implements ILocalValue {
103
103
  export class LocalValueMaker {
104
104
  /**
105
105
  * Create a new LocalValueMaker.
106
- * @param serializer - The serializer to serialize / parse handles.
107
106
  */
108
- public constructor(private readonly serializer: IFluidSerializer) {}
107
+ public constructor() {}
109
108
 
110
109
  /**
111
110
  * Create a new local value from an incoming serialized value.
112
111
  * @param serializable - The serializable value to make local
113
112
  */
114
- // eslint-disable-next-line import/no-deprecated
115
- public fromSerializable(serializable: ISerializableValue): ILocalValue {
113
+ public fromSerializable(
114
+ // eslint-disable-next-line import/no-deprecated
115
+ serializable: ISerializableValue,
116
+ serializer: IFluidSerializer,
117
+ bind: IFluidHandle,
118
+ ): ILocalValue {
116
119
  // Migrate from old shared value to handles
117
120
  if (serializable.type === ValueType[ValueType.Shared]) {
118
121
  serializable.type = ValueType[ValueType.Plain];
@@ -120,12 +123,14 @@ export class LocalValueMaker {
120
123
  type: "__fluid_handle__",
121
124
  url: serializable.value as string,
122
125
  };
123
- serializable.value = handle;
126
+ // NOTE: here we require the use of `parseHandles` because the roundtrip
127
+ // through a string is necessary to resolve the absolute path of
128
+ // legacy handles (`ValueType.Shared`)
129
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
130
+ serializable.value = serializer.encode(parseHandles(handle, serializer), bind);
124
131
  }
125
132
 
126
- const translatedValue: unknown = parseHandles(serializable.value, this.serializer);
127
-
128
- return new PlainLocalValue(translatedValue);
133
+ return new PlainLocalValue(serializable.value);
129
134
  }
130
135
 
131
136
  /**
package/src/map.ts CHANGED
@@ -15,9 +15,9 @@ import { ISummaryTreeWithStats, ITelemetryContext } from "@fluidframework/runtim
15
15
  import { readAndParse } from "@fluidframework/driver-utils";
16
16
  import { IFluidSerializer, SharedObject } from "@fluidframework/shared-object-base";
17
17
  import { SummaryTreeBuilder } from "@fluidframework/runtime-utils";
18
- import { ISharedMap, ISharedMapEvents } from "./interfaces";
19
- import { IMapDataObjectSerializable, IMapOperation, MapKernel } from "./mapKernel";
20
- import { pkgVersion } from "./packageVersion";
18
+ import { ISharedMap, ISharedMapEvents } from "./interfaces.js";
19
+ import { IMapDataObjectSerializable, IMapOperation, MapKernel } from "./mapKernel.js";
20
+ import { pkgVersion } from "./packageVersion.js";
21
21
 
22
22
  interface IMapSerializationFormat {
23
23
  blobs?: string[];
@@ -27,12 +27,12 @@ interface IMapSerializationFormat {
27
27
  const snapshotFileName = "header";
28
28
 
29
29
  /**
30
- * {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link SharedMap}.
30
+ * {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link ISharedMap}.
31
31
  *
32
32
  * @sealed
33
33
  * @alpha
34
34
  */
35
- export class MapFactory implements IChannelFactory {
35
+ export class MapFactory implements IChannelFactory<ISharedMap> {
36
36
  /**
37
37
  * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory."type"}
38
38
  */
@@ -93,31 +93,6 @@ export class MapFactory implements IChannelFactory {
93
93
  * @deprecated Please use SharedTree for new containers. SharedMap is supported for loading preexisting Fluid Framework 1.0 containers only.
94
94
  */
95
95
  export class SharedMap extends SharedObject<ISharedMapEvents> implements ISharedMap {
96
- /**
97
- * Create a new shared map.
98
- * @param runtime - The data store runtime that the new shared map belongs to.
99
- * @param id - Optional name of the shared map.
100
- * @returns Newly created shared map.
101
- *
102
- * @example
103
- * To create a `SharedMap`, call the static create method:
104
- *
105
- * ```typescript
106
- * const myMap = SharedMap.create(this.runtime, id);
107
- * ```
108
- */
109
- public static create(runtime: IFluidDataStoreRuntime, id?: string): SharedMap {
110
- return runtime.createChannel(id, MapFactory.Type) as SharedMap;
111
- }
112
-
113
- /**
114
- * Get a factory for SharedMap to register with the data store.
115
- * @returns A factory that creates SharedMaps and loads them from storage.
116
- */
117
- public static getFactory(): IChannelFactory {
118
- return new MapFactory();
119
- }
120
-
121
96
  /**
122
97
  * String representation for the class.
123
98
  */
@@ -361,8 +336,8 @@ export class SharedMap extends SharedObject<ISharedMapEvents> implements IShared
361
336
  /**
362
337
  * {@inheritDoc @fluidframework/shared-object-base#SharedObjectCore.applyStashedOp}
363
338
  */
364
- protected applyStashedOp(content: unknown): unknown {
365
- return this.kernel.tryApplyStashedOp(content as IMapOperation);
339
+ protected applyStashedOp(content: unknown): void {
340
+ this.kernel.tryApplyStashedOp(content as IMapOperation);
366
341
  }
367
342
 
368
343
  /**
package/src/mapKernel.ts CHANGED
@@ -4,11 +4,11 @@
4
4
  */
5
5
 
6
6
  import { IFluidHandle } from "@fluidframework/core-interfaces";
7
- import { IFluidSerializer, ValueType } from "@fluidframework/shared-object-base";
8
- import { assert } from "@fluidframework/core-utils";
7
+ import { IFluidSerializer, ValueType, bindHandles } from "@fluidframework/shared-object-base";
8
+ import { assert, unreachableCase } from "@fluidframework/core-utils";
9
9
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
10
10
  // eslint-disable-next-line import/no-deprecated
11
- import { ISerializableValue, ISerializedValue, ISharedMapEvents } from "./interfaces";
11
+ import { ISerializableValue, ISerializedValue, ISharedMapEvents } from "./interfaces.js";
12
12
  import {
13
13
  IMapSetOperation,
14
14
  IMapDeleteOperation,
@@ -16,8 +16,8 @@ import {
16
16
  IMapKeyEditLocalOpMetadata,
17
17
  IMapKeyAddLocalOpMetadata,
18
18
  IMapClearLocalOpMetadata,
19
- } from "./internalInterfaces";
20
- import { ILocalValue, LocalValueMaker, makeSerializable } from "./localValues";
19
+ } from "./internalInterfaces.js";
20
+ import { ILocalValue, LocalValueMaker, makeSerializable } from "./localValues.js";
21
21
 
22
22
  /**
23
23
  * Defines the means to process and submit a given op on a map.
@@ -38,8 +38,6 @@ interface IMapMessageHandler {
38
38
  * @param localOpMetadata - The metadata to be submitted with the message.
39
39
  */
40
40
  submit(op: IMapOperation, localOpMetadata: MapLocalOpMetadata): void;
41
-
42
- applyStashedOp(op: IMapOperation): MapLocalOpMetadata;
43
41
  }
44
42
 
45
43
  /**
@@ -184,7 +182,7 @@ export class MapKernel {
184
182
  private readonly isAttached: () => boolean,
185
183
  private readonly eventEmitter: TypedEventEmitter<ISharedMapEvents>,
186
184
  ) {
187
- this.localValueMaker = new LocalValueMaker(serializer);
185
+ this.localValueMaker = new LocalValueMaker();
188
186
  this.messageHandlers = this.getMessageHandlers();
189
187
  }
190
188
 
@@ -295,20 +293,23 @@ export class MapKernel {
295
293
 
296
294
  // Create a local value and serialize it.
297
295
  const localValue = this.localValueMaker.fromInMemory(value);
298
- const serializableValue = makeSerializable(localValue, this.serializer, this.handle);
299
296
 
300
297
  // Set the value locally.
301
298
  const previousValue = this.setCore(key, localValue, true);
302
299
 
303
300
  // If we are not attached, don't submit the op.
304
301
  if (!this.isAttached()) {
302
+ // this is necessary to bind the potential handles in the value
303
+ // to this DDS, as we do not walk the object normally unless we
304
+ // are attached
305
+ bindHandles(localValue.value, this.serializer, this.handle);
305
306
  return;
306
307
  }
307
308
 
308
309
  const op: IMapSetOperation = {
309
310
  key,
310
311
  type: "set",
311
- value: serializableValue,
312
+ value: { type: localValue.type, value: localValue.value as unknown },
312
313
  };
313
314
  this.submitMapKeyMessage(op, previousValue);
314
315
  }
@@ -389,7 +390,9 @@ export class MapKernel {
389
390
  * @param data - A JSON string containing serialized map data
390
391
  */
391
392
  public populateFromSerializable(json: IMapDataObjectSerializable): void {
392
- for (const [key, serializable] of Object.entries(json)) {
393
+ for (const [key, serializable] of Object.entries(
394
+ this.serializer.decode(json) as IMapDataObjectSerializable,
395
+ )) {
393
396
  const localValue = {
394
397
  key,
395
398
  value: this.makeLocal(key, serializable),
@@ -399,10 +402,6 @@ export class MapKernel {
399
402
  }
400
403
  }
401
404
 
402
- public populate(json: string): void {
403
- this.populateFromSerializable(JSON.parse(json) as IMapDataObjectSerializable);
404
- }
405
-
406
405
  /**
407
406
  * Submit the given op if a handler is registered.
408
407
  * @param op - The operation to attempt to submit
@@ -420,12 +419,24 @@ export class MapKernel {
420
419
  return true;
421
420
  }
422
421
 
423
- public tryApplyStashedOp(op: IMapOperation): unknown {
424
- const handler = this.messageHandlers.get(op.type);
425
- if (handler === undefined) {
426
- throw new Error("no apply stashed op handler");
422
+ public tryApplyStashedOp(op: IMapOperation): void {
423
+ switch (op.type) {
424
+ case "clear": {
425
+ this.clear();
426
+ break;
427
+ }
428
+ case "delete": {
429
+ this.delete(op.key);
430
+ break;
431
+ }
432
+ case "set": {
433
+ this.set(op.key, this.makeLocal(op.key, op.value).value);
434
+ break;
435
+ }
436
+ default: {
437
+ unreachableCase(op);
438
+ }
427
439
  }
428
- return handler.applyStashedOp(op);
429
440
  }
430
441
 
431
442
  /**
@@ -581,7 +592,11 @@ export class MapKernel {
581
592
  serializable.type === ValueType[ValueType.Plain] ||
582
593
  serializable.type === ValueType[ValueType.Shared]
583
594
  ) {
584
- return this.localValueMaker.fromSerializable(serializable);
595
+ return this.localValueMaker.fromSerializable(
596
+ serializable,
597
+ this.serializer,
598
+ this.handle,
599
+ );
585
600
  } else {
586
601
  throw new Error("Unknown local value type");
587
602
  }
@@ -678,12 +693,6 @@ export class MapKernel {
678
693
  );
679
694
  this.submitMapClearMessage(op, localOpMetadata.previousMap);
680
695
  },
681
- applyStashedOp: (op: IMapClearOperation) => {
682
- const copy = new Map<string, ILocalValue>(this.data);
683
- this.clearCore(true);
684
- // We don't reuse the metadata pendingMessageId but send a new one on each submit.
685
- return createClearLocalOpMetadata(op, this.getMapClearMessageId(), copy);
686
- },
687
696
  });
688
697
  messageHandlers.set("delete", {
689
698
  process: (op: IMapDeleteOperation, local, localOpMetadata) => {
@@ -695,11 +704,6 @@ export class MapKernel {
695
704
  submit: (op: IMapDeleteOperation, localOpMetadata: MapKeyLocalOpMetadata) => {
696
705
  this.resubmitMapKeyMessage(op, localOpMetadata);
697
706
  },
698
- applyStashedOp: (op: IMapDeleteOperation) => {
699
- // We don't reuse the metadata pendingMessageId but send a new one on each submit.
700
- const previousValue = this.deleteCore(op.key, true);
701
- return createKeyLocalOpMetadata(op, this.getMapKeyMessageId(op), previousValue);
702
- },
703
707
  });
704
708
  messageHandlers.set("set", {
705
709
  process: (op: IMapSetOperation, local, localOpMetadata) => {
@@ -714,12 +718,6 @@ export class MapKernel {
714
718
  submit: (op: IMapSetOperation, localOpMetadata: MapKeyLocalOpMetadata) => {
715
719
  this.resubmitMapKeyMessage(op, localOpMetadata);
716
720
  },
717
- applyStashedOp: (op: IMapSetOperation) => {
718
- // We don't reuse the metadata pendingMessageId but send a new one on each submit.
719
- const context = this.makeLocal(op.key, op.value);
720
- const previousValue = this.setCore(op.key, context, true);
721
- return createKeyLocalOpMetadata(op, this.getMapKeyMessageId(op), previousValue);
722
- },
723
721
  });
724
722
 
725
723
  return messageHandlers;
@@ -746,10 +744,10 @@ export class MapKernel {
746
744
  private getMapKeyMessageId(op: IMapKeyOperation): number {
747
745
  const pendingMessageId = ++this.pendingMessageId;
748
746
  const pendingMessageIds = this.pendingKeys.get(op.key);
749
- if (pendingMessageIds !== undefined) {
750
- pendingMessageIds.push(pendingMessageId);
751
- } else {
747
+ if (pendingMessageIds === undefined) {
752
748
  this.pendingKeys.set(op.key, [pendingMessageId]);
749
+ } else {
750
+ pendingMessageIds.push(pendingMessageId);
753
751
  }
754
752
  return pendingMessageId;
755
753
  }
@@ -785,7 +783,7 @@ export class MapKernel {
785
783
  return;
786
784
  }
787
785
 
788
- const index = pendingMessageIds.findIndex((id) => id === localOpMetadata.pendingMessageId);
786
+ const index = pendingMessageIds.indexOf(localOpMetadata.pendingMessageId);
789
787
  if (index === -1) {
790
788
  return;
791
789
  }
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/map";
9
- export const pkgVersion = "2.0.0-rc.1.0.6";
9
+ export const pkgVersion = "2.0.0-rc.2.0.1";
@@ -0,0 +1,7 @@
1
+ {
2
+ // This config must be used in a "type": "commonjs" environment. (Use fluid-tsc commonjs.)
3
+ "extends": "./tsconfig.json",
4
+ "compilerOptions": {
5
+ "outDir": "./dist",
6
+ },
7
+ }
package/tsconfig.json CHANGED
@@ -1,12 +1,9 @@
1
1
  {
2
- "extends": [
3
- "../../../common/build/build-common/tsconfig.base.json",
4
- "../../../common/build/build-common/tsconfig.cjs.json",
5
- ],
2
+ "extends": "../../../common/build/build-common/tsconfig.node16.json",
6
3
  "include": ["src/**/*"],
7
4
  "exclude": ["src/test/**/*"],
8
5
  "compilerOptions": {
9
6
  "rootDir": "./src",
10
- "outDir": "./dist",
7
+ "outDir": "./lib",
11
8
  },
12
9
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"directory.d.mts","sourceRoot":"","sources":["../src/directory.ts"],"names":[],"mappings":"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"}