@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
@@ -154,7 +154,12 @@ export declare interface IValueChanged {
154
154
  * @public
155
155
  * @deprecated Please use SharedTree for new containers. SharedMap is supported for loading preexisting Fluid Framework 1.0 containers only.
156
156
  */
157
- export declare class SharedMap extends SharedObject<ISharedMapEvents> implements ISharedMap {
157
+ export declare const SharedMap: {
158
+ /**
159
+ * Get a factory for SharedMap to register with the data store.
160
+ * @returns A factory that creates SharedMaps and loads them from storage.
161
+ */
162
+ getFactory(): IChannelFactory<ISharedMap>;
158
163
  /**
159
164
  * Create a new shared map.
160
165
  * @param runtime - The data store runtime that the new shared map belongs to.
@@ -167,110 +172,24 @@ export declare class SharedMap extends SharedObject<ISharedMapEvents> implements
167
172
  * ```typescript
168
173
  * const myMap = SharedMap.create(this.runtime, id);
169
174
  * ```
175
+ * @privateRemarks
176
+ * TODO:
177
+ * Clarify how this differs from `MapFactory.create`.
178
+ * They are different since making this forward to MapFactory.create breaks some things,
179
+ * but the difference is unclear from the documentation.
170
180
  */
171
- static create(runtime: IFluidDataStoreRuntime, id?: string): SharedMap;
172
- /**
173
- * Get a factory for SharedMap to register with the data store.
174
- * @returns A factory that creates SharedMaps and loads them from storage.
175
- */
176
- static getFactory(): IChannelFactory;
177
- /**
178
- * String representation for the class.
179
- */
180
- readonly [Symbol.toStringTag]: string;
181
- /**
182
- * MapKernel which manages actual map operations.
183
- */
184
- private readonly kernel;
185
- /**
186
- * Do not call the constructor. Instead, you should use the {@link SharedMap.create | create method}.
187
- *
188
- * @param id - String identifier.
189
- * @param runtime - Data store runtime.
190
- * @param attributes - The attributes for the map.
191
- */
192
- constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);
193
- /**
194
- * Get an iterator over the keys in this map.
195
- * @returns The iterator
196
- */
197
- keys(): IterableIterator<string>;
198
- /**
199
- * Get an iterator over the entries in this map.
200
- * @returns The iterator
201
- */
202
- entries(): IterableIterator<[string, any]>;
203
- /**
204
- * Get an iterator over the values in this map.
205
- * @returns The iterator
206
- */
207
- values(): IterableIterator<any>;
208
- /**
209
- * Get an iterator over the entries in this map.
210
- * @returns The iterator
211
- */
212
- [Symbol.iterator](): IterableIterator<[string, any]>;
213
- /**
214
- * The number of key/value pairs stored in the map.
215
- */
216
- get size(): number;
217
- /**
218
- * Executes the given callback on each entry in the map.
219
- * @param callbackFn - Callback function
220
- */
221
- forEach(callbackFn: (value: any, key: string, map: Map<string, any>) => void): void;
222
- /**
223
- * {@inheritDoc ISharedMap.get}
224
- */
225
- get<T = any>(key: string): T | undefined;
226
- /**
227
- * Check if a key exists in the map.
228
- * @param key - The key to check
229
- * @returns True if the key exists, false otherwise
230
- */
231
- has(key: string): boolean;
232
- /**
233
- * {@inheritDoc ISharedMap.set}
234
- */
235
- set(key: string, value: unknown): this;
236
- /**
237
- * Delete a key from the map.
238
- * @param key - Key to delete
239
- * @returns True if the key existed and was deleted, false if it did not exist
240
- */
241
- delete(key: string): boolean;
242
- /**
243
- * Clear all data from the map.
244
- */
245
- clear(): void;
246
- /**
247
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.summarizeCore}
248
- */
249
- protected summarizeCore(serializer: IFluidSerializer, telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
250
- /**
251
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.loadCore}
252
- */
253
- protected loadCore(storage: IChannelStorageService): Promise<void>;
254
- /**
255
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.onDisconnect}
256
- */
257
- protected onDisconnect(): void;
258
- /**
259
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.reSubmitCore}
260
- */
261
- protected reSubmitCore(content: unknown, localOpMetadata: unknown): void;
262
- /**
263
- * {@inheritDoc @fluidframework/shared-object-base#SharedObjectCore.applyStashedOp}
264
- */
265
- protected applyStashedOp(content: unknown): unknown;
266
- /**
267
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.processCore}
268
- */
269
- protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
270
- /**
271
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.rollback}
272
- */
273
- protected rollback(content: unknown, localOpMetadata: unknown): void;
274
- }
181
+ create(runtime: IFluidDataStoreRuntime, id?: string): ISharedMap;
182
+ };
183
+
184
+ /**
185
+ * {@inheritDoc ISharedMap}
186
+ * @public
187
+ * @deprecated Use ISharedMap instead.
188
+ * @privateRemarks
189
+ * This alias is for legacy compat from when the SharedMap class was exported as public.
190
+ */
191
+ export declare type SharedMap = ISharedMap;
192
+
193
+ /* Excluded from this release type: SharedObject */
275
194
 
276
195
  export { }
@@ -154,7 +154,12 @@ export declare interface IValueChanged {
154
154
  * @public
155
155
  * @deprecated Please use SharedTree for new containers. SharedMap is supported for loading preexisting Fluid Framework 1.0 containers only.
156
156
  */
157
- export declare class SharedMap extends SharedObject<ISharedMapEvents> implements ISharedMap {
157
+ export declare const SharedMap: {
158
+ /**
159
+ * Get a factory for SharedMap to register with the data store.
160
+ * @returns A factory that creates SharedMaps and loads them from storage.
161
+ */
162
+ getFactory(): IChannelFactory<ISharedMap>;
158
163
  /**
159
164
  * Create a new shared map.
160
165
  * @param runtime - The data store runtime that the new shared map belongs to.
@@ -167,110 +172,24 @@ export declare class SharedMap extends SharedObject<ISharedMapEvents> implements
167
172
  * ```typescript
168
173
  * const myMap = SharedMap.create(this.runtime, id);
169
174
  * ```
175
+ * @privateRemarks
176
+ * TODO:
177
+ * Clarify how this differs from `MapFactory.create`.
178
+ * They are different since making this forward to MapFactory.create breaks some things,
179
+ * but the difference is unclear from the documentation.
170
180
  */
171
- static create(runtime: IFluidDataStoreRuntime, id?: string): SharedMap;
172
- /**
173
- * Get a factory for SharedMap to register with the data store.
174
- * @returns A factory that creates SharedMaps and loads them from storage.
175
- */
176
- static getFactory(): IChannelFactory;
177
- /**
178
- * String representation for the class.
179
- */
180
- readonly [Symbol.toStringTag]: string;
181
- /**
182
- * MapKernel which manages actual map operations.
183
- */
184
- private readonly kernel;
185
- /**
186
- * Do not call the constructor. Instead, you should use the {@link SharedMap.create | create method}.
187
- *
188
- * @param id - String identifier.
189
- * @param runtime - Data store runtime.
190
- * @param attributes - The attributes for the map.
191
- */
192
- constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);
193
- /**
194
- * Get an iterator over the keys in this map.
195
- * @returns The iterator
196
- */
197
- keys(): IterableIterator<string>;
198
- /**
199
- * Get an iterator over the entries in this map.
200
- * @returns The iterator
201
- */
202
- entries(): IterableIterator<[string, any]>;
203
- /**
204
- * Get an iterator over the values in this map.
205
- * @returns The iterator
206
- */
207
- values(): IterableIterator<any>;
208
- /**
209
- * Get an iterator over the entries in this map.
210
- * @returns The iterator
211
- */
212
- [Symbol.iterator](): IterableIterator<[string, any]>;
213
- /**
214
- * The number of key/value pairs stored in the map.
215
- */
216
- get size(): number;
217
- /**
218
- * Executes the given callback on each entry in the map.
219
- * @param callbackFn - Callback function
220
- */
221
- forEach(callbackFn: (value: any, key: string, map: Map<string, any>) => void): void;
222
- /**
223
- * {@inheritDoc ISharedMap.get}
224
- */
225
- get<T = any>(key: string): T | undefined;
226
- /**
227
- * Check if a key exists in the map.
228
- * @param key - The key to check
229
- * @returns True if the key exists, false otherwise
230
- */
231
- has(key: string): boolean;
232
- /**
233
- * {@inheritDoc ISharedMap.set}
234
- */
235
- set(key: string, value: unknown): this;
236
- /**
237
- * Delete a key from the map.
238
- * @param key - Key to delete
239
- * @returns True if the key existed and was deleted, false if it did not exist
240
- */
241
- delete(key: string): boolean;
242
- /**
243
- * Clear all data from the map.
244
- */
245
- clear(): void;
246
- /**
247
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.summarizeCore}
248
- */
249
- protected summarizeCore(serializer: IFluidSerializer, telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
250
- /**
251
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.loadCore}
252
- */
253
- protected loadCore(storage: IChannelStorageService): Promise<void>;
254
- /**
255
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.onDisconnect}
256
- */
257
- protected onDisconnect(): void;
258
- /**
259
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.reSubmitCore}
260
- */
261
- protected reSubmitCore(content: unknown, localOpMetadata: unknown): void;
262
- /**
263
- * {@inheritDoc @fluidframework/shared-object-base#SharedObjectCore.applyStashedOp}
264
- */
265
- protected applyStashedOp(content: unknown): unknown;
266
- /**
267
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.processCore}
268
- */
269
- protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
270
- /**
271
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.rollback}
272
- */
273
- protected rollback(content: unknown, localOpMetadata: unknown): void;
274
- }
181
+ create(runtime: IFluidDataStoreRuntime, id?: string): ISharedMap;
182
+ };
183
+
184
+ /**
185
+ * {@inheritDoc ISharedMap}
186
+ * @public
187
+ * @deprecated Use ISharedMap instead.
188
+ * @privateRemarks
189
+ * This alias is for legacy compat from when the SharedMap class was exported as public.
190
+ */
191
+ export declare type SharedMap = ISharedMap;
192
+
193
+ /* Excluded from this release type: SharedObject */
275
194
 
276
195
  export { }
@@ -34,7 +34,7 @@ import { SharedObject } from '@fluidframework/shared-object-base';
34
34
  * @sealed
35
35
  * @alpha
36
36
  */
37
- export declare class DirectoryFactory implements IChannelFactory {
37
+ export declare class DirectoryFactory implements IChannelFactory<ISharedDirectory> {
38
38
  /**
39
39
  * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory."type"}
40
40
  */
@@ -611,17 +611,15 @@ export declare interface IValueChanged {
611
611
  * @alpha
612
612
  */
613
613
  export declare class LocalValueMaker {
614
- private readonly serializer;
615
614
  /**
616
615
  * Create a new LocalValueMaker.
617
- * @param serializer - The serializer to serialize / parse handles.
618
616
  */
619
- constructor(serializer: IFluidSerializer);
617
+ constructor();
620
618
  /**
621
619
  * Create a new local value from an incoming serialized value.
622
620
  * @param serializable - The serializable value to make local
623
621
  */
624
- fromSerializable(serializable: ISerializableValue): ILocalValue;
622
+ fromSerializable(serializable: ISerializableValue, serializer: IFluidSerializer, bind: IFluidHandle): ILocalValue;
625
623
  /**
626
624
  * Create a new local value containing a given plain object.
627
625
  * @param value - The value to store
@@ -631,12 +629,12 @@ export declare class LocalValueMaker {
631
629
  }
632
630
 
633
631
  /**
634
- * {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link SharedMap}.
632
+ * {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link ISharedMap}.
635
633
  *
636
634
  * @sealed
637
635
  * @alpha
638
636
  */
639
- export declare class MapFactory implements IChannelFactory {
637
+ export declare class MapFactory implements IChannelFactory<ISharedMap> {
640
638
  /**
641
639
  * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory."type"}
642
640
  */
@@ -685,13 +683,13 @@ export declare class SharedDirectory extends SharedObject<ISharedDirectoryEvents
685
683
  * @param id - Optional name of the shared directory
686
684
  * @returns Newly create shared directory (but not attached yet)
687
685
  */
688
- static create(runtime: IFluidDataStoreRuntime, id?: string): SharedDirectory;
686
+ static create(runtime: IFluidDataStoreRuntime, id?: string): ISharedDirectory;
689
687
  /**
690
688
  * Get a factory for SharedDirectory to register with the data store.
691
689
  *
692
690
  * @returns A factory that creates and load SharedDirectory
693
691
  */
694
- static getFactory(): IChannelFactory;
692
+ static getFactory(): IChannelFactory<ISharedDirectory>;
695
693
  /**
696
694
  * String representation for the class.
697
695
  */
@@ -866,7 +864,7 @@ export declare class SharedDirectory extends SharedObject<ISharedDirectoryEvents
866
864
  /**
867
865
  * {@inheritDoc @fluidframework/shared-object-base#SharedObjectCore.applyStashedOp}
868
866
  */
869
- protected applyStashedOp(op: unknown): unknown;
867
+ protected applyStashedOp(op: unknown): void;
870
868
  private serializeDirectory;
871
869
  }
872
870
 
@@ -875,7 +873,12 @@ export declare class SharedDirectory extends SharedObject<ISharedDirectoryEvents
875
873
  * @public
876
874
  * @deprecated Please use SharedTree for new containers. SharedMap is supported for loading preexisting Fluid Framework 1.0 containers only.
877
875
  */
878
- export declare class SharedMap extends SharedObject<ISharedMapEvents> implements ISharedMap {
876
+ export declare const SharedMap: {
877
+ /**
878
+ * Get a factory for SharedMap to register with the data store.
879
+ * @returns A factory that creates SharedMaps and loads them from storage.
880
+ */
881
+ getFactory(): IChannelFactory<ISharedMap>;
879
882
  /**
880
883
  * Create a new shared map.
881
884
  * @param runtime - The data store runtime that the new shared map belongs to.
@@ -888,110 +891,22 @@ export declare class SharedMap extends SharedObject<ISharedMapEvents> implements
888
891
  * ```typescript
889
892
  * const myMap = SharedMap.create(this.runtime, id);
890
893
  * ```
891
- */
892
- static create(runtime: IFluidDataStoreRuntime, id?: string): SharedMap;
893
- /**
894
- * Get a factory for SharedMap to register with the data store.
895
- * @returns A factory that creates SharedMaps and loads them from storage.
896
- */
897
- static getFactory(): IChannelFactory;
898
- /**
899
- * String representation for the class.
900
- */
901
- readonly [Symbol.toStringTag]: string;
902
- /**
903
- * MapKernel which manages actual map operations.
904
- */
905
- private readonly kernel;
906
- /**
907
- * Do not call the constructor. Instead, you should use the {@link SharedMap.create | create method}.
908
- *
909
- * @param id - String identifier.
910
- * @param runtime - Data store runtime.
911
- * @param attributes - The attributes for the map.
912
- */
913
- constructor(id: string, runtime: IFluidDataStoreRuntime, attributes: IChannelAttributes);
914
- /**
915
- * Get an iterator over the keys in this map.
916
- * @returns The iterator
917
- */
918
- keys(): IterableIterator<string>;
919
- /**
920
- * Get an iterator over the entries in this map.
921
- * @returns The iterator
922
- */
923
- entries(): IterableIterator<[string, any]>;
924
- /**
925
- * Get an iterator over the values in this map.
926
- * @returns The iterator
927
- */
928
- values(): IterableIterator<any>;
929
- /**
930
- * Get an iterator over the entries in this map.
931
- * @returns The iterator
932
- */
933
- [Symbol.iterator](): IterableIterator<[string, any]>;
934
- /**
935
- * The number of key/value pairs stored in the map.
936
- */
937
- get size(): number;
938
- /**
939
- * Executes the given callback on each entry in the map.
940
- * @param callbackFn - Callback function
941
- */
942
- forEach(callbackFn: (value: any, key: string, map: Map<string, any>) => void): void;
943
- /**
944
- * {@inheritDoc ISharedMap.get}
945
- */
946
- get<T = any>(key: string): T | undefined;
947
- /**
948
- * Check if a key exists in the map.
949
- * @param key - The key to check
950
- * @returns True if the key exists, false otherwise
951
- */
952
- has(key: string): boolean;
953
- /**
954
- * {@inheritDoc ISharedMap.set}
955
- */
956
- set(key: string, value: unknown): this;
957
- /**
958
- * Delete a key from the map.
959
- * @param key - Key to delete
960
- * @returns True if the key existed and was deleted, false if it did not exist
961
- */
962
- delete(key: string): boolean;
963
- /**
964
- * Clear all data from the map.
965
- */
966
- clear(): void;
967
- /**
968
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.summarizeCore}
969
- */
970
- protected summarizeCore(serializer: IFluidSerializer, telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
971
- /**
972
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.loadCore}
973
- */
974
- protected loadCore(storage: IChannelStorageService): Promise<void>;
975
- /**
976
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.onDisconnect}
977
- */
978
- protected onDisconnect(): void;
979
- /**
980
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.reSubmitCore}
981
- */
982
- protected reSubmitCore(content: unknown, localOpMetadata: unknown): void;
983
- /**
984
- * {@inheritDoc @fluidframework/shared-object-base#SharedObjectCore.applyStashedOp}
985
- */
986
- protected applyStashedOp(content: unknown): unknown;
987
- /**
988
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.processCore}
989
- */
990
- protected processCore(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
991
- /**
992
- * {@inheritDoc @fluidframework/shared-object-base#SharedObject.rollback}
993
- */
994
- protected rollback(content: unknown, localOpMetadata: unknown): void;
995
- }
894
+ * @privateRemarks
895
+ * TODO:
896
+ * Clarify how this differs from `MapFactory.create`.
897
+ * They are different since making this forward to MapFactory.create breaks some things,
898
+ * but the difference is unclear from the documentation.
899
+ */
900
+ create(runtime: IFluidDataStoreRuntime, id?: string): ISharedMap;
901
+ };
902
+
903
+ /**
904
+ * {@inheritDoc ISharedMap}
905
+ * @public
906
+ * @deprecated Use ISharedMap instead.
907
+ * @privateRemarks
908
+ * This alias is for legacy compat from when the SharedMap class was exported as public.
909
+ */
910
+ export declare type SharedMap = ISharedMap;
996
911
 
997
912
  export { }
package/dist/map.d.ts CHANGED
@@ -6,14 +6,14 @@ import { ISequencedDocumentMessage } from "@fluidframework/protocol-definitions"
6
6
  import { IChannelAttributes, IFluidDataStoreRuntime, IChannelStorageService, IChannelServices, IChannelFactory } from "@fluidframework/datastore-definitions";
7
7
  import { ISummaryTreeWithStats, ITelemetryContext } from "@fluidframework/runtime-definitions";
8
8
  import { IFluidSerializer, SharedObject } from "@fluidframework/shared-object-base";
9
- import { ISharedMap, ISharedMapEvents } from "./interfaces";
9
+ import { ISharedMap, ISharedMapEvents } from "./interfaces.js";
10
10
  /**
11
- * {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link SharedMap}.
11
+ * {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link ISharedMap}.
12
12
  *
13
13
  * @sealed
14
14
  * @alpha
15
15
  */
16
- export declare class MapFactory implements IChannelFactory {
16
+ export declare class MapFactory implements IChannelFactory<ISharedMap> {
17
17
  /**
18
18
  * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory."type"}
19
19
  */
@@ -45,25 +45,6 @@ export declare class MapFactory implements IChannelFactory {
45
45
  * @deprecated Please use SharedTree for new containers. SharedMap is supported for loading preexisting Fluid Framework 1.0 containers only.
46
46
  */
47
47
  export declare class SharedMap extends SharedObject<ISharedMapEvents> implements ISharedMap {
48
- /**
49
- * Create a new shared map.
50
- * @param runtime - The data store runtime that the new shared map belongs to.
51
- * @param id - Optional name of the shared map.
52
- * @returns Newly created shared map.
53
- *
54
- * @example
55
- * To create a `SharedMap`, call the static create method:
56
- *
57
- * ```typescript
58
- * const myMap = SharedMap.create(this.runtime, id);
59
- * ```
60
- */
61
- static create(runtime: IFluidDataStoreRuntime, id?: string): 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
- static getFactory(): IChannelFactory;
67
48
  /**
68
49
  * String representation for the class.
69
50
  */
@@ -152,7 +133,7 @@ export declare class SharedMap extends SharedObject<ISharedMapEvents> implements
152
133
  /**
153
134
  * {@inheritDoc @fluidframework/shared-object-base#SharedObjectCore.applyStashedOp}
154
135
  */
155
- protected applyStashedOp(content: unknown): unknown;
136
+ protected applyStashedOp(content: unknown): void;
156
137
  /**
157
138
  * {@inheritDoc @fluidframework/shared-object-base#SharedObject.processCore}
158
139
  */
package/dist/map.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,yBAAyB,EAAe,MAAM,sCAAsC,CAAC;AAC9F,OAAO,EACN,kBAAkB,EAClB,sBAAsB,EACtB,sBAAsB,EACtB,gBAAgB,EAChB,eAAe,EACf,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAE/F,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEpF,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAW5D;;;;;GAKG;AACH,qBAAa,UAAW,YAAW,eAAe;IACjD;;OAEG;IACH,gBAAuB,IAAI,2CAA2C;IAEtE;;OAEG;IACH,gBAAuB,UAAU,EAAE,kBAAkB,CAInD;IAEF;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,kBAAkB,CAE1C;IAED;;OAEG;IACU,IAAI,CAChB,OAAO,EAAE,sBAAsB,EAC/B,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,gBAAgB,EAC1B,UAAU,EAAE,kBAAkB,GAC5B,OAAO,CAAC,UAAU,CAAC;IAOtB;;OAEG;IACI,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU;CAMtE;AAED;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,YAAY,CAAC,gBAAgB,CAAE,YAAW,UAAU;IAClF;;;;;;;;;;;;OAYG;WACW,MAAM,CAAC,OAAO,EAAE,sBAAsB,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS;IAI7E;;;OAGG;WACW,UAAU,IAAI,eAAe;IAI3C;;OAEG;IACH,SAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAe;IAE3D;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IAEnC;;;;;;OAMG;gBAEF,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,sBAAsB,EAC/B,UAAU,EAAE,kBAAkB;IAY/B;;;OAGG;IACI,IAAI,IAAI,gBAAgB,CAAC,MAAM,CAAC;IAIvC;;;OAGG;IAGI,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAIjD;;;OAGG;IAGI,MAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC;IAItC;;;OAGG;IAGI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAI3D;;OAEG;IACH,IAAW,IAAI,IAAI,MAAM,CAExB;IAED;;;OAGG;IAGI,OAAO,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,KAAK,IAAI,GAAG,IAAI;IAK1F;;OAEG;IAGI,GAAG,CAAC,CAAC,GAAG,GAAG,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IAI/C;;;;OAIG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAIhC;;OAEG;IACI,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAK7C;;;;OAIG;IACI,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAInC;;OAEG;IACI,KAAK,IAAI,IAAI;IAIpB;;OAEG;IACH,SAAS,CAAC,aAAa,CACtB,UAAU,EAAE,gBAAgB,EAC5B,gBAAgB,CAAC,EAAE,iBAAiB,GAClC,qBAAqB;IAyExB;;OAEG;cACa,QAAQ,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBxE;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAE9B;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI;IAIxE;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO;IAInD;;OAEG;IACH,SAAS,CAAC,WAAW,CACpB,OAAO,EAAE,yBAAyB,EAClC,KAAK,EAAE,OAAO,EACd,eAAe,EAAE,OAAO,GACtB,IAAI;IAUP;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI;CAGpE"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../src/map.ts"],"names":[],"mappings":"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"}
package/dist/map.js CHANGED
@@ -10,11 +10,11 @@ const protocol_definitions_1 = require("@fluidframework/protocol-definitions");
10
10
  const driver_utils_1 = require("@fluidframework/driver-utils");
11
11
  const shared_object_base_1 = require("@fluidframework/shared-object-base");
12
12
  const runtime_utils_1 = require("@fluidframework/runtime-utils");
13
- const mapKernel_1 = require("./mapKernel");
14
- const packageVersion_1 = require("./packageVersion");
13
+ const mapKernel_js_1 = require("./mapKernel.js");
14
+ const packageVersion_js_1 = require("./packageVersion.js");
15
15
  const snapshotFileName = "header";
16
16
  /**
17
- * {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link SharedMap}.
17
+ * {@link @fluidframework/datastore-definitions#IChannelFactory} for {@link ISharedMap}.
18
18
  *
19
19
  * @sealed
20
20
  * @alpha
@@ -60,7 +60,7 @@ MapFactory.Type = "https://graph.microsoft.com/types/map";
60
60
  MapFactory.Attributes = {
61
61
  type: MapFactory.Type,
62
62
  snapshotFormatVersion: "0.2",
63
- packageVersion: packageVersion_1.pkgVersion,
63
+ packageVersion: packageVersion_js_1.pkgVersion,
64
64
  };
65
65
  /**
66
66
  * {@inheritDoc ISharedMap}
@@ -68,29 +68,6 @@ MapFactory.Attributes = {
68
68
  * @deprecated Please use SharedTree for new containers. SharedMap is supported for loading preexisting Fluid Framework 1.0 containers only.
69
69
  */
70
70
  class SharedMap extends shared_object_base_1.SharedObject {
71
- /**
72
- * Create a new shared map.
73
- * @param runtime - The data store runtime that the new shared map belongs to.
74
- * @param id - Optional name of the shared map.
75
- * @returns Newly created shared map.
76
- *
77
- * @example
78
- * To create a `SharedMap`, call the static create method:
79
- *
80
- * ```typescript
81
- * const myMap = SharedMap.create(this.runtime, id);
82
- * ```
83
- */
84
- static create(runtime, id) {
85
- return runtime.createChannel(id, MapFactory.Type);
86
- }
87
- /**
88
- * Get a factory for SharedMap to register with the data store.
89
- * @returns A factory that creates SharedMaps and loads them from storage.
90
- */
91
- static getFactory() {
92
- return new MapFactory();
93
- }
94
71
  /**
95
72
  * Do not call the constructor. Instead, you should use the {@link SharedMap.create | create method}.
96
73
  *
@@ -104,7 +81,7 @@ class SharedMap extends shared_object_base_1.SharedObject {
104
81
  * String representation for the class.
105
82
  */
106
83
  this[_a] = "SharedMap";
107
- this.kernel = new mapKernel_1.MapKernel(this.serializer, this.handle, (op, localOpMetadata) => this.submitLocalMessage(op, localOpMetadata), () => this.isAttached(), this);
84
+ this.kernel = new mapKernel_js_1.MapKernel(this.serializer, this.handle, (op, localOpMetadata) => this.submitLocalMessage(op, localOpMetadata), () => this.isAttached(), this);
108
85
  }
109
86
  /**
110
87
  * Get an iterator over the keys in this map.
@@ -291,7 +268,7 @@ class SharedMap extends shared_object_base_1.SharedObject {
291
268
  * {@inheritDoc @fluidframework/shared-object-base#SharedObjectCore.applyStashedOp}
292
269
  */
293
270
  applyStashedOp(content) {
294
- return this.kernel.tryApplyStashedOp(content);
271
+ this.kernel.tryApplyStashedOp(content);
295
272
  }
296
273
  /**
297
274
  * {@inheritDoc @fluidframework/shared-object-base#SharedObject.processCore}