@fluidframework/runtime-definitions 2.70.0-361788 → 2.71.0

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 (45) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/api-report/runtime-definitions.legacy.alpha.api.md +4 -21
  3. package/api-report/runtime-definitions.legacy.beta.api.md +4 -21
  4. package/dist/containerExtensionProvider.d.ts +92 -0
  5. package/dist/containerExtensionProvider.d.ts.map +1 -0
  6. package/dist/containerExtensionProvider.js +7 -0
  7. package/dist/containerExtensionProvider.js.map +1 -0
  8. package/dist/dataStoreContext.d.ts +17 -3
  9. package/dist/dataStoreContext.d.ts.map +1 -1
  10. package/dist/dataStoreContext.js.map +1 -1
  11. package/dist/index.d.ts +4 -3
  12. package/dist/index.d.ts.map +1 -1
  13. package/dist/index.js.map +1 -1
  14. package/dist/legacy.d.ts +0 -3
  15. package/dist/legacyAlpha.d.ts +0 -3
  16. package/dist/protocol.d.ts +26 -2
  17. package/dist/protocol.d.ts.map +1 -1
  18. package/dist/protocol.js.map +1 -1
  19. package/dist/stagingMode.d.ts +8 -31
  20. package/dist/stagingMode.d.ts.map +1 -1
  21. package/dist/stagingMode.js.map +1 -1
  22. package/lib/containerExtensionProvider.d.ts +92 -0
  23. package/lib/containerExtensionProvider.d.ts.map +1 -0
  24. package/lib/containerExtensionProvider.js +6 -0
  25. package/lib/containerExtensionProvider.js.map +1 -0
  26. package/lib/dataStoreContext.d.ts +17 -3
  27. package/lib/dataStoreContext.d.ts.map +1 -1
  28. package/lib/dataStoreContext.js.map +1 -1
  29. package/lib/index.d.ts +4 -3
  30. package/lib/index.d.ts.map +1 -1
  31. package/lib/index.js.map +1 -1
  32. package/lib/legacy.d.ts +0 -3
  33. package/lib/legacyAlpha.d.ts +0 -3
  34. package/lib/protocol.d.ts +26 -2
  35. package/lib/protocol.d.ts.map +1 -1
  36. package/lib/protocol.js.map +1 -1
  37. package/lib/stagingMode.d.ts +8 -31
  38. package/lib/stagingMode.d.ts.map +1 -1
  39. package/lib/stagingMode.js.map +1 -1
  40. package/package.json +12 -24
  41. package/src/containerExtensionProvider.ts +107 -0
  42. package/src/dataStoreContext.ts +19 -3
  43. package/src/index.ts +12 -3
  44. package/src/protocol.ts +28 -3
  45. package/src/stagingMode.ts +8 -31
@@ -8,7 +8,7 @@ import type { ITree, ISignalMessage, ISequencedDocumentMessage } from "@fluidfra
8
8
  * An envelope wraps the contents with the intended target
9
9
  * @legacy @beta
10
10
  */
11
- export interface IEnvelope {
11
+ export interface IEnvelope<TContents = any> {
12
12
  /**
13
13
  * The target for the envelope
14
14
  */
@@ -16,7 +16,7 @@ export interface IEnvelope {
16
16
  /**
17
17
  * The contents of the envelope
18
18
  */
19
- contents: any;
19
+ contents: TContents;
20
20
  }
21
21
  /**
22
22
  * Represents ISignalMessage with its type.
@@ -100,6 +100,30 @@ export interface IRuntimeMessageCollection {
100
100
  */
101
101
  readonly messagesContent: readonly IRuntimeMessagesContent[];
102
102
  }
103
+ /**
104
+ * Outgoing {@link IFluidDataStoreChannel} message structures.
105
+ * @internal
106
+ *
107
+ * @privateRemarks
108
+ * Future use opportunity:
109
+ * - Change {@link IFluidDataStoreChannel} and {@link IFluidParentContext},
110
+ * to have a generic specifying `T extends FluidDataStoreMessage` and uses
111
+ * `T["type"]` and `T["content"]` to qualify message related methods,
112
+ * preferably where `submitMessage`, `reSubmit`, and `rollback` have
113
+ * overloads to ensure callers pair values correctly.
114
+ * - A further improvement would be to reshape `submitMessage`, `reSubmit`,
115
+ * and `rollback` to accept `T` as `message` parameter instead of `type`
116
+ * and `content` parameters that are hard to convince TypeScript must be
117
+ * paired in implementations.
118
+ * - Caveat to enhanced type safety is that a user that changes their own
119
+ * `FluidDataStoreMessage` definition over time needs to account for
120
+ * protocol changes. So `unknown` should continue to be used for incoming
121
+ * message methods (where messages are not known to originate locally).
122
+ */
123
+ export interface FluidDataStoreMessage {
124
+ type: string;
125
+ content: unknown;
126
+ }
103
127
  /**
104
128
  * Interface to provide access to snapshot blobs to DataStore layer.
105
129
  *
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EACX,KAAK,EACL,cAAc,EACd,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AAErD;;;GAGG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IAEH,QAAQ,EAAE,GAAG,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,YAAY,GAAG,YAAY,CAClF,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG;IAErE,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC3C,yBAAyB,EACzB,UAAU,GAAG,sBAAsB,CACnC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACzC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC7D;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC/C"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAC7E,OAAO,KAAK,EACX,KAAK,EACL,cAAc,EACd,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AAErD;;;GAGG;AAEH,MAAM,WAAW,SAAS,CAAC,SAAS,GAAG,GAAG;IACzC;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,SAAS,CAAC;CACpB;AAED;;;GAGG;AACH,MAAM,WAAW,qBAAqB,CAAC,QAAQ,SAAS,YAAY,GAAG,YAAY,CAClF,SAAQ,cAAc,CAAC,QAAQ,CAAC;IAChC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;CAChC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC9B;;OAEG;IACH,EAAE,EAAE,MAAM,CAAC;IAEX;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,EAAE,KAAK,CAAC;CAChB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG;IAErE,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CAC5C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC3C,yBAAyB,EACzB,UAAU,GAAG,sBAAsB,CACnC,CAAC;AAEF;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACvC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC;CACtC;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACzC;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,yBAAyB,CAAC;IAC7C;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,QAAQ,CAAC,eAAe,EAAE,SAAS,uBAAuB,EAAE,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,qBAAqB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { TypedMessage } from \"@fluidframework/core-interfaces/internal\";\nimport type {\n\tITree,\n\tISignalMessage,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\n\n/**\n * An envelope wraps the contents with the intended target\n * @legacy @beta\n */\nexport interface IEnvelope {\n\t/**\n\t * The target for the envelope\n\t */\n\taddress: string;\n\n\t/**\n\t * The contents of the envelope\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\tcontents: any;\n}\n\n/**\n * Represents ISignalMessage with its type.\n * @legacy @beta\n */\nexport interface IInboundSignalMessage<TMessage extends TypedMessage = TypedMessage>\n\textends ISignalMessage<TMessage> {\n\treadonly type: TMessage[\"type\"];\n}\n\n/**\n * Message send by client attaching local data structure.\n * Contains snapshot of data structure which is the current state of this data structure.\n * @legacy @beta\n */\nexport interface IAttachMessage {\n\t/**\n\t * The identifier for the object\n\t */\n\tid: string;\n\n\t/**\n\t * The type of object\n\t */\n\ttype: string;\n\n\t/**\n\t * Initial snapshot of the document (contains ownership)\n\t */\n\tsnapshot: ITree;\n}\n\n/**\n * This type should be used when reading an incoming attach op,\n * but it should not be used when creating a new attach op.\n * Older versions of attach messages could have null snapshots,\n * so this gives correct typings for writing backward compatible code.\n * @legacy @beta\n */\nexport type InboundAttachMessage = Omit<IAttachMessage, \"snapshot\"> & {\n\t// eslint-disable-next-line @rushstack/no-new-null -- TODO: breaking change; protocol might even explicitly use null\n\tsnapshot: IAttachMessage[\"snapshot\"] | null;\n};\n\n/**\n * This is the message type that is used within the runtime when processing a sequenced message.\n * It is the same as ISequencedDocumentMessage, but without the contents and clientSequenceNumbers\n * which are sent separately. The contents are modified at multiple layers in the stack so having it\n * separate doesn't require packing and unpacking the entire message.\n * @legacy @beta\n */\nexport type ISequencedMessageEnvelope = Omit<\n\tISequencedDocumentMessage,\n\t\"contents\" | \"clientSequenceNumber\"\n>;\n\n/**\n * These are the contents of a runtime message as it is processed throughout the stack.\n * @legacy @beta\n * @sealed\n */\nexport interface IRuntimeMessagesContent {\n\t/**\n\t * The contents of the message, i.e., the payload\n\t */\n\treadonly contents: unknown;\n\t/**\n\t * The local metadata associated with the original message that was submitted\n\t */\n\treadonly localOpMetadata: unknown;\n\t/**\n\t * The client sequence number of the message\n\t */\n\treadonly clientSequenceNumber: number;\n}\n\n/**\n * A collection of messages that are processed by the runtime.\n * @legacy @beta\n * @sealed\n */\nexport interface IRuntimeMessageCollection {\n\t/**\n\t * The envelope for all the messages in the collection\n\t */\n\treadonly envelope: ISequencedMessageEnvelope;\n\t/**\n\t * Whether these messages were originally generated by the client processing them\n\t */\n\treadonly local: boolean;\n\t/**\n\t * The contents of the messages in the collection\n\t */\n\treadonly messagesContent: readonly IRuntimeMessagesContent[];\n}\n\n/**\n * Interface to provide access to snapshot blobs to DataStore layer.\n *\n * @legacy @beta\n */\nexport interface IRuntimeStorageService {\n\t/**\n\t * Reads the object with the given ID, returns content in arrayBufferLike\n\t */\n\treadBlob(id: string): Promise<ArrayBufferLike>;\n}\n"]}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { TypedMessage } from \"@fluidframework/core-interfaces/internal\";\nimport type {\n\tITree,\n\tISignalMessage,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\n\n/**\n * An envelope wraps the contents with the intended target\n * @legacy @beta\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\nexport interface IEnvelope<TContents = any> {\n\t/**\n\t * The target for the envelope\n\t */\n\taddress: string;\n\n\t/**\n\t * The contents of the envelope\n\t */\n\tcontents: TContents;\n}\n\n/**\n * Represents ISignalMessage with its type.\n * @legacy @beta\n */\nexport interface IInboundSignalMessage<TMessage extends TypedMessage = TypedMessage>\n\textends ISignalMessage<TMessage> {\n\treadonly type: TMessage[\"type\"];\n}\n\n/**\n * Message send by client attaching local data structure.\n * Contains snapshot of data structure which is the current state of this data structure.\n * @legacy @beta\n */\nexport interface IAttachMessage {\n\t/**\n\t * The identifier for the object\n\t */\n\tid: string;\n\n\t/**\n\t * The type of object\n\t */\n\ttype: string;\n\n\t/**\n\t * Initial snapshot of the document (contains ownership)\n\t */\n\tsnapshot: ITree;\n}\n\n/**\n * This type should be used when reading an incoming attach op,\n * but it should not be used when creating a new attach op.\n * Older versions of attach messages could have null snapshots,\n * so this gives correct typings for writing backward compatible code.\n * @legacy @beta\n */\nexport type InboundAttachMessage = Omit<IAttachMessage, \"snapshot\"> & {\n\t// eslint-disable-next-line @rushstack/no-new-null -- TODO: breaking change; protocol might even explicitly use null\n\tsnapshot: IAttachMessage[\"snapshot\"] | null;\n};\n\n/**\n * This is the message type that is used within the runtime when processing a sequenced message.\n * It is the same as ISequencedDocumentMessage, but without the contents and clientSequenceNumbers\n * which are sent separately. The contents are modified at multiple layers in the stack so having it\n * separate doesn't require packing and unpacking the entire message.\n * @legacy @beta\n */\nexport type ISequencedMessageEnvelope = Omit<\n\tISequencedDocumentMessage,\n\t\"contents\" | \"clientSequenceNumber\"\n>;\n\n/**\n * These are the contents of a runtime message as it is processed throughout the stack.\n * @legacy @beta\n * @sealed\n */\nexport interface IRuntimeMessagesContent {\n\t/**\n\t * The contents of the message, i.e., the payload\n\t */\n\treadonly contents: unknown;\n\t/**\n\t * The local metadata associated with the original message that was submitted\n\t */\n\treadonly localOpMetadata: unknown;\n\t/**\n\t * The client sequence number of the message\n\t */\n\treadonly clientSequenceNumber: number;\n}\n\n/**\n * A collection of messages that are processed by the runtime.\n * @legacy @beta\n * @sealed\n */\nexport interface IRuntimeMessageCollection {\n\t/**\n\t * The envelope for all the messages in the collection\n\t */\n\treadonly envelope: ISequencedMessageEnvelope;\n\t/**\n\t * Whether these messages were originally generated by the client processing them\n\t */\n\treadonly local: boolean;\n\t/**\n\t * The contents of the messages in the collection\n\t */\n\treadonly messagesContent: readonly IRuntimeMessagesContent[];\n}\n\n/**\n * Outgoing {@link IFluidDataStoreChannel} message structures.\n * @internal\n *\n * @privateRemarks\n * Future use opportunity:\n * - Change {@link IFluidDataStoreChannel} and {@link IFluidParentContext},\n * to have a generic specifying `T extends FluidDataStoreMessage` and uses\n * `T[\"type\"]` and `T[\"content\"]` to qualify message related methods,\n * preferably where `submitMessage`, `reSubmit`, and `rollback` have\n * overloads to ensure callers pair values correctly.\n * - A further improvement would be to reshape `submitMessage`, `reSubmit`,\n * and `rollback` to accept `T` as `message` parameter instead of `type`\n * and `content` parameters that are hard to convince TypeScript must be\n * paired in implementations.\n * - Caveat to enhanced type safety is that a user that changes their own\n * `FluidDataStoreMessage` definition over time needs to account for\n * protocol changes. So `unknown` should continue to be used for incoming\n * message methods (where messages are not known to originate locally).\n */\nexport interface FluidDataStoreMessage {\n\ttype: string;\n\tcontent: unknown;\n}\n\n/**\n * Interface to provide access to snapshot blobs to DataStore layer.\n *\n * @legacy @beta\n */\nexport interface IRuntimeStorageService {\n\t/**\n\t * Reads the object with the given ID, returns content in arrayBufferLike\n\t */\n\treadBlob(id: string): Promise<ArrayBufferLike>;\n}\n"]}
@@ -5,14 +5,9 @@
5
5
  import type { IContainerRuntimeBase } from "./dataStoreContext.js";
6
6
  /**
7
7
  * Options for committing staged changes in experimental staging mode.
8
- *
9
- * @experimental
10
- * @deprecated These APIs are unstable, and can be changed at will. They should only be used with direct agreement with the Fluid Framework.
11
- * @legacy @beta
12
- * @sealed
13
- * @privateRemarks After partners move to the alpha interfaces this interface should be renamed and tagged to be internal.
8
+ * @internal
14
9
  */
15
- export interface CommitStagedChangesOptionsExperimental {
10
+ export interface CommitStagedChangesOptionsInternal {
16
11
  /**
17
12
  * If true, intermediate states created by changes made while in staging mode will be "squashed" out of the
18
13
  * ops which were created during staging mode.
@@ -33,25 +28,16 @@ export interface CommitStagedChangesOptionsExperimental {
33
28
  * Controls for managing staged changes in experimental staging mode.
34
29
  *
35
30
  * Provides methods to either commit or discard changes made while in staging mode.
36
- *
37
- * @experimental
38
- * @deprecated These APIs are unstable, and can be changed at will. They should only be used with direct agreement with the Fluid Framework.
39
- * @legacy @beta
40
- * @sealed
41
- * @privateRemarks After partners move to the alpha interfaces this interface should be renamed and tagged to be internal.
31
+ * @internal
42
32
  */
43
- export interface StageControlsExperimental {
33
+ export interface StageControlsInternal extends StageControlsAlpha {
44
34
  /**
45
35
  * Exit staging mode and commit to any changes made while in staging mode.
46
36
  * This will cause them to be sent to the ordering service, and subsequent changes
47
37
  * made by this container will additionally flow freely to the ordering service.
48
38
  * @param options - Options when committing changes.
49
39
  */
50
- readonly commitChanges: (options?: Partial<CommitStagedChangesOptionsExperimental>) => void;
51
- /**
52
- * Exit staging mode and discard any changes made while in staging mode.
53
- */
54
- readonly discardChanges: () => void;
40
+ readonly commitChanges: (options?: Partial<CommitStagedChangesOptionsInternal>) => void;
55
41
  }
56
42
  /**
57
43
  * Controls for managing staged changes in alpha staging mode.
@@ -75,23 +61,14 @@ export interface StageControlsAlpha {
75
61
  }
76
62
  /**
77
63
  * Experimental extension of {@link IContainerRuntimeBase} to support staging mode.
78
- *
79
- * @experimental
80
- * @deprecated These APIs are unstable, and can be changed at will. They should only be used with direct agreement with the Fluid Framework.
81
- * @legacy @beta
82
- * @sealed
83
- * @privateRemarks After partners move to the alpha interfaces this interface should be renamed and tagged to be internal.
64
+ * @internal
84
65
  */
85
- export interface IContainerRuntimeBaseExperimental extends IContainerRuntimeBase {
66
+ export interface IContainerRuntimeBaseInternal extends ContainerRuntimeBaseAlpha {
86
67
  /**
87
68
  * Enters staging mode, allowing changes to be staged before being committed or discarded.
88
69
  * @returns Controls for committing or discarding staged changes.
89
70
  */
90
- enterStagingMode?(): StageControlsExperimental;
91
- /**
92
- * Indicates whether the container is currently in staging mode.
93
- */
94
- readonly inStagingMode?: boolean;
71
+ enterStagingMode(): StageControlsInternal;
95
72
  }
96
73
  /**
97
74
  * Alpha interface for container runtime base supporting staging mode.
@@ -1 +1 @@
1
- {"version":3,"file":"stagingMode.d.ts","sourceRoot":"","sources":["../src/stagingMode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;;;;;;GAQG;AACH,MAAM,WAAW,sCAAsC;IACtD;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,yBAAyB;IACzC;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,sCAAsC,CAAC,KAAK,IAAI,CAAC;IAC5F;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,iCAAkC,SAAQ,qBAAqB;IAC/E;;;OAGG;IACH,gBAAgB,CAAC,IAAI,yBAAyB,CAAC;IAC/C;;OAEG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CACjC;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACvE;;;OAGG;IACH,gBAAgB,IAAI,kBAAkB,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,qBAAqB,GAAG,yBAAyB,CAEpF"}
1
+ {"version":3,"file":"stagingMode.d.ts","sourceRoot":"","sources":["../src/stagingMode.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEnE;;;GAGG;AACH,MAAM,WAAW,kCAAkC;IAClD;;;;;;;;;;;;;OAaG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;;;;GAKG;AACH,MAAM,WAAW,qBAAsB,SAAQ,kBAAkB;IAChE;;;;;OAKG;IACH,QAAQ,CAAC,aAAa,EAAE,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,kCAAkC,CAAC,KAAK,IAAI,CAAC;CACxF;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAClC;;;;OAIG;IACH,QAAQ,CAAC,aAAa,EAAE,MAAM,IAAI,CAAC;IACnC;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,6BAA8B,SAAQ,yBAAyB;IAC/E;;;OAGG;IACH,gBAAgB,IAAI,qBAAqB,CAAC;CAC1C;AAED;;;;;GAKG;AACH,MAAM,WAAW,yBAA0B,SAAQ,qBAAqB;IACvE;;;OAGG;IACH,gBAAgB,IAAI,kBAAkB,CAAC;IACvC;;OAEG;IACH,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,qBAAqB,GAAG,yBAAyB,CAEpF"}
@@ -1 +1 @@
1
- {"version":3,"file":"stagingMode.js","sourceRoot":"","sources":["../src/stagingMode.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAoHH;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAA2B;IACxD,OAAO,IAAiC,CAAC;AAC1C,CAAC;AAFD,sCAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IContainerRuntimeBase } from \"./dataStoreContext.js\";\n\n/**\n * Options for committing staged changes in experimental staging mode.\n *\n * @experimental\n * @deprecated These APIs are unstable, and can be changed at will. They should only be used with direct agreement with the Fluid Framework.\n * @legacy @beta\n * @sealed\n * @privateRemarks After partners move to the alpha interfaces this interface should be renamed and tagged to be internal.\n */\nexport interface CommitStagedChangesOptionsExperimental {\n\t/**\n\t * If true, intermediate states created by changes made while in staging mode will be \"squashed\" out of the\n\t * ops which were created during staging mode.\n\t * Defaults to false.\n\t * @remarks\n\t * The squash parameter is analogous to `git squash` but differs in a notable way: ops created by a client exiting staging mode\n\t * are not necessarily coalesced into a single op or something like it.\n\t * It still does have the desirable property that \"unnecessary changes\" (such as inserting some content then removing it) will\n\t * be removed from the set of submitted ops, which means it helps reduce network traffic and the chance of unwanted data being\n\t * persisted--even if only temporarily--in the document.\n\t *\n\t * By not attempting to reduce the set of changes to a single op a la `git squash`, we can better preserve the ordering of\n\t * changes that remote clients see such that they better align with the client which submitted the changes.\n\t */\n\tsquash?: boolean;\n}\n\n/**\n * Controls for managing staged changes in experimental staging mode.\n *\n * Provides methods to either commit or discard changes made while in staging mode.\n *\n * @experimental\n * @deprecated These APIs are unstable, and can be changed at will. They should only be used with direct agreement with the Fluid Framework.\n * @legacy @beta\n * @sealed\n * @privateRemarks After partners move to the alpha interfaces this interface should be renamed and tagged to be internal.\n */\nexport interface StageControlsExperimental {\n\t/**\n\t * Exit staging mode and commit to any changes made while in staging mode.\n\t * This will cause them to be sent to the ordering service, and subsequent changes\n\t * made by this container will additionally flow freely to the ordering service.\n\t * @param options - Options when committing changes.\n\t */\n\treadonly commitChanges: (options?: Partial<CommitStagedChangesOptionsExperimental>) => void;\n\t/**\n\t * Exit staging mode and discard any changes made while in staging mode.\n\t */\n\treadonly discardChanges: () => void;\n}\n\n/**\n * Controls for managing staged changes in alpha staging mode.\n *\n * Provides methods to either commit or discard changes made while in staging mode.\n *\n * @legacy @alpha\n * @sealed\n */\nexport interface StageControlsAlpha {\n\t/**\n\t * Exit staging mode and commit to any changes made while in staging mode.\n\t * This will cause them to be sent to the ordering service, and subsequent changes\n\t * made by this container will additionally flow freely to the ordering service.\n\t */\n\treadonly commitChanges: () => void;\n\t/**\n\t * Exit staging mode and discard any changes made while in staging mode.\n\t */\n\treadonly discardChanges: () => void;\n}\n\n/**\n * Experimental extension of {@link IContainerRuntimeBase} to support staging mode.\n *\n * @experimental\n * @deprecated These APIs are unstable, and can be changed at will. They should only be used with direct agreement with the Fluid Framework.\n * @legacy @beta\n * @sealed\n * @privateRemarks After partners move to the alpha interfaces this interface should be renamed and tagged to be internal.\n */\nexport interface IContainerRuntimeBaseExperimental extends IContainerRuntimeBase {\n\t/**\n\t * Enters staging mode, allowing changes to be staged before being committed or discarded.\n\t * @returns Controls for committing or discarding staged changes.\n\t */\n\tenterStagingMode?(): StageControlsExperimental;\n\t/**\n\t * Indicates whether the container is currently in staging mode.\n\t */\n\treadonly inStagingMode?: boolean;\n}\n\n/**\n * Alpha interface for container runtime base supporting staging mode.\n *\n * @legacy @alpha\n * @sealed\n */\nexport interface ContainerRuntimeBaseAlpha extends IContainerRuntimeBase {\n\t/**\n\t * Enters staging mode, allowing changes to be staged before being committed or discarded.\n\t * @returns Controls for committing or discarding staged changes.\n\t */\n\tenterStagingMode(): StageControlsAlpha;\n\t/**\n\t * Indicates whether the container is currently in staging mode.\n\t */\n\treadonly inStagingMode: boolean;\n}\n\n/**\n * Converts types to their alpha counterparts to expose alpha functionality.\n * @legacy @alpha\n * @sealed\n */\nexport function asLegacyAlpha(base: IContainerRuntimeBase): ContainerRuntimeBaseAlpha {\n\treturn base as ContainerRuntimeBaseAlpha;\n}\n"]}
1
+ {"version":3,"file":"stagingMode.js","sourceRoot":"","sources":["../src/stagingMode.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA6FH;;;;GAIG;AACH,SAAgB,aAAa,CAAC,IAA2B;IACxD,OAAO,IAAiC,CAAC;AAC1C,CAAC;AAFD,sCAEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IContainerRuntimeBase } from \"./dataStoreContext.js\";\n\n/**\n * Options for committing staged changes in experimental staging mode.\n * @internal\n */\nexport interface CommitStagedChangesOptionsInternal {\n\t/**\n\t * If true, intermediate states created by changes made while in staging mode will be \"squashed\" out of the\n\t * ops which were created during staging mode.\n\t * Defaults to false.\n\t * @remarks\n\t * The squash parameter is analogous to `git squash` but differs in a notable way: ops created by a client exiting staging mode\n\t * are not necessarily coalesced into a single op or something like it.\n\t * It still does have the desirable property that \"unnecessary changes\" (such as inserting some content then removing it) will\n\t * be removed from the set of submitted ops, which means it helps reduce network traffic and the chance of unwanted data being\n\t * persisted--even if only temporarily--in the document.\n\t *\n\t * By not attempting to reduce the set of changes to a single op a la `git squash`, we can better preserve the ordering of\n\t * changes that remote clients see such that they better align with the client which submitted the changes.\n\t */\n\tsquash?: boolean;\n}\n\n/**\n * Controls for managing staged changes in experimental staging mode.\n *\n * Provides methods to either commit or discard changes made while in staging mode.\n * @internal\n */\nexport interface StageControlsInternal extends StageControlsAlpha {\n\t/**\n\t * Exit staging mode and commit to any changes made while in staging mode.\n\t * This will cause them to be sent to the ordering service, and subsequent changes\n\t * made by this container will additionally flow freely to the ordering service.\n\t * @param options - Options when committing changes.\n\t */\n\treadonly commitChanges: (options?: Partial<CommitStagedChangesOptionsInternal>) => void;\n}\n\n/**\n * Controls for managing staged changes in alpha staging mode.\n *\n * Provides methods to either commit or discard changes made while in staging mode.\n *\n * @legacy @alpha\n * @sealed\n */\nexport interface StageControlsAlpha {\n\t/**\n\t * Exit staging mode and commit to any changes made while in staging mode.\n\t * This will cause them to be sent to the ordering service, and subsequent changes\n\t * made by this container will additionally flow freely to the ordering service.\n\t */\n\treadonly commitChanges: () => void;\n\t/**\n\t * Exit staging mode and discard any changes made while in staging mode.\n\t */\n\treadonly discardChanges: () => void;\n}\n\n/**\n * Experimental extension of {@link IContainerRuntimeBase} to support staging mode.\n * @internal\n */\nexport interface IContainerRuntimeBaseInternal extends ContainerRuntimeBaseAlpha {\n\t/**\n\t * Enters staging mode, allowing changes to be staged before being committed or discarded.\n\t * @returns Controls for committing or discarding staged changes.\n\t */\n\tenterStagingMode(): StageControlsInternal;\n}\n\n/**\n * Alpha interface for container runtime base supporting staging mode.\n *\n * @legacy @alpha\n * @sealed\n */\nexport interface ContainerRuntimeBaseAlpha extends IContainerRuntimeBase {\n\t/**\n\t * Enters staging mode, allowing changes to be staged before being committed or discarded.\n\t * @returns Controls for committing or discarding staged changes.\n\t */\n\tenterStagingMode(): StageControlsAlpha;\n\t/**\n\t * Indicates whether the container is currently in staging mode.\n\t */\n\treadonly inStagingMode: boolean;\n}\n\n/**\n * Converts types to their alpha counterparts to expose alpha functionality.\n * @legacy @alpha\n * @sealed\n */\nexport function asLegacyAlpha(base: IContainerRuntimeBase): ContainerRuntimeBaseAlpha {\n\treturn base as ContainerRuntimeBaseAlpha;\n}\n"]}
@@ -0,0 +1,92 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import type { ILayerCompatSupportRequirements } from "@fluid-internal/client-utils";
6
+ /**
7
+ * Identifying characteristics of a registrant for checking runtime compatibility.
8
+ *
9
+ * @internal
10
+ */
11
+ export interface ExtensionCompatibilityDetails {
12
+ /**
13
+ * Compatibility generation.
14
+ */
15
+ readonly generation: number;
16
+ /**
17
+ * Semver string representing the version of the registrant.
18
+ */
19
+ readonly version: string;
20
+ /**
21
+ * Set of capabilities supported by the registrant.
22
+ */
23
+ readonly capabilities: ReadonlySet<string>;
24
+ }
25
+ /**
26
+ * Information about an instantiation of an extension.
27
+ *
28
+ * @internal
29
+ */
30
+ export interface UnknownExtensionInstantiation {
31
+ compatibility: ExtensionCompatibilityDetails;
32
+ interface: unknown;
33
+ extension: unknown;
34
+ }
35
+ /**
36
+ * Description of expectations for an extension instance.
37
+ *
38
+ * Provided to {@link ContainerExtensionProvider.getExtension} and used to
39
+ * validate existing extension is runtime compatible.
40
+ *
41
+ * @internal
42
+ */
43
+ export interface ContainerExtensionExpectations {
44
+ /**
45
+ * Requirements imposed on the host/container for the extension.
46
+ */
47
+ readonly hostRequirements: ILayerCompatSupportRequirements;
48
+ /**
49
+ * Expectations for an existing extension instance.
50
+ */
51
+ readonly instanceExpectations: ExtensionCompatibilityDetails;
52
+ /**
53
+ * Called when an existing extension instantiation appears unable to meet
54
+ * expectations. Allows for custom resolution with the prior instantiation
55
+ * including more sophisticated acceptance logic.
56
+ * @param priorInstantiation - The prior instantiation of the extension.
57
+ */
58
+ resolvePriorInstantiation(priorInstantiation: UnknownExtensionInstantiation): Readonly<UnknownExtensionInstantiation>;
59
+ }
60
+ /**
61
+ * Unique identifier for extension
62
+ *
63
+ * @remarks
64
+ * A string known to all clients working with a certain ContainerExtension and unique
65
+ * among ContainerExtensions. No `/` may be used in the string. Recommend using
66
+ * concatenation of: type of unique identifier, `:` (required), and unique identifier.
67
+ *
68
+ * @example Examples
69
+ * ```typescript
70
+ * "guid:g0fl001d-1415-5000-c00l-g0fa54g0b1g1"
71
+ * "name:@foo-scope_bar:v1"
72
+ * ```
73
+ *
74
+ * @internal
75
+ */
76
+ export type ContainerExtensionId = `${string}:${string}`;
77
+ /**
78
+ * @sealed
79
+ * @internal
80
+ */
81
+ export interface ContainerExtensionProvider {
82
+ /**
83
+ * Gets an extension from store.
84
+ *
85
+ * @param id - Identifier for the requested extension
86
+ * @param expectations - Extension compatibility requirements
87
+ * @param context - Custom use context for extension
88
+ * @returns The extension
89
+ */
90
+ getExtension<TInterface, TUseContext extends unknown[] = []>(id: ContainerExtensionId, expectations: ContainerExtensionExpectations, ...context: TUseContext): TInterface;
91
+ }
92
+ //# sourceMappingURL=containerExtensionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerExtensionProvider.d.ts","sourceRoot":"","sources":["../src/containerExtensionProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,+BAA+B,EAAE,MAAM,8BAA8B,CAAC;AAEpF;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC7C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CAC3C;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC7C,aAAa,EAAE,6BAA6B,CAAC;IAC7C,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACnB;AAED;;;;;;;GAOG;AACH,MAAM,WAAW,8BAA8B;IAC9C;;OAEG;IACH,QAAQ,CAAC,gBAAgB,EAAE,+BAA+B,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,oBAAoB,EAAE,6BAA6B,CAAC;IAE7D;;;;;OAKG;IACH,yBAAyB,CACxB,kBAAkB,EAAE,6BAA6B,GAC/C,QAAQ,CAAC,6BAA6B,CAAC,CAAC;CAC3C;AAGD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,MAAM,oBAAoB,GAAG,GAAG,MAAM,IAAI,MAAM,EAAE,CAAC;AAGzD;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IAC1C;;;;;;;OAOG;IACH,YAAY,CAAC,UAAU,EAAE,WAAW,SAAS,OAAO,EAAE,GAAG,EAAE,EAC1D,EAAE,EAAE,oBAAoB,EACxB,YAAY,EAAE,8BAA8B,EAC5C,GAAG,OAAO,EAAE,WAAW,GACrB,UAAU,CAAC;CACd"}
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=containerExtensionProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containerExtensionProvider.js","sourceRoot":"","sources":["../src/containerExtensionProvider.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { ILayerCompatSupportRequirements } from \"@fluid-internal/client-utils\";\n\n/**\n * Identifying characteristics of a registrant for checking runtime compatibility.\n *\n * @internal\n */\nexport interface ExtensionCompatibilityDetails {\n\t/**\n\t * Compatibility generation.\n\t */\n\treadonly generation: number;\n\t/**\n\t * Semver string representing the version of the registrant.\n\t */\n\treadonly version: string;\n\t/**\n\t * Set of capabilities supported by the registrant.\n\t */\n\treadonly capabilities: ReadonlySet<string>;\n}\n\n/**\n * Information about an instantiation of an extension.\n *\n * @internal\n */\nexport interface UnknownExtensionInstantiation {\n\tcompatibility: ExtensionCompatibilityDetails;\n\tinterface: unknown;\n\textension: unknown;\n}\n\n/**\n * Description of expectations for an extension instance.\n *\n * Provided to {@link ContainerExtensionProvider.getExtension} and used to\n * validate existing extension is runtime compatible.\n *\n * @internal\n */\nexport interface ContainerExtensionExpectations {\n\t/**\n\t * Requirements imposed on the host/container for the extension.\n\t */\n\treadonly hostRequirements: ILayerCompatSupportRequirements;\n\n\t/**\n\t * Expectations for an existing extension instance.\n\t */\n\treadonly instanceExpectations: ExtensionCompatibilityDetails;\n\n\t/**\n\t * Called when an existing extension instantiation appears unable to meet\n\t * expectations. Allows for custom resolution with the prior instantiation\n\t * including more sophisticated acceptance logic.\n\t * @param priorInstantiation - The prior instantiation of the extension.\n\t */\n\tresolvePriorInstantiation(\n\t\tpriorInstantiation: UnknownExtensionInstantiation,\n\t): Readonly<UnknownExtensionInstantiation>;\n}\n\n/* eslint-disable @fluid-internal/fluid/no-hyphen-after-jsdoc-tag -- false positive AB#50920 */\n/**\n * Unique identifier for extension\n *\n * @remarks\n * A string known to all clients working with a certain ContainerExtension and unique\n * among ContainerExtensions. No `/` may be used in the string. Recommend using\n * concatenation of: type of unique identifier, `:` (required), and unique identifier.\n *\n * @example Examples\n * ```typescript\n * \"guid:g0fl001d-1415-5000-c00l-g0fa54g0b1g1\"\n * \"name:@foo-scope_bar:v1\"\n * ```\n *\n * @internal\n */\nexport type ContainerExtensionId = `${string}:${string}`;\n/* eslint-enable @fluid-internal/fluid/no-hyphen-after-jsdoc-tag */\n\n/**\n * @sealed\n * @internal\n */\nexport interface ContainerExtensionProvider {\n\t/**\n\t * Gets an extension from store.\n\t *\n\t * @param id - Identifier for the requested extension\n\t * @param expectations - Extension compatibility requirements\n\t * @param context - Custom use context for extension\n\t * @returns The extension\n\t */\n\tgetExtension<TInterface, TUseContext extends unknown[] = []>(\n\t\tid: ContainerExtensionId,\n\t\texpectations: ContainerExtensionExpectations,\n\t\t...context: TUseContext\n\t): TInterface;\n}\n"]}
@@ -10,6 +10,7 @@ import type { IClientDetails, IQuorumClients } from "@fluidframework/driver-defi
10
10
  import type { IDocumentMessage, ISnapshotTree, ISequencedDocumentMessage } from "@fluidframework/driver-definitions/internal";
11
11
  import type { IIdCompressor } from "@fluidframework/id-compressor";
12
12
  import type { MinimumVersionForCollab } from "./compatibilityDefinitions.js";
13
+ import type { ContainerExtensionProvider } from "./containerExtensionProvider.js";
13
14
  import type { IFluidDataStoreFactory, IProvideFluidDataStoreFactory } from "./dataStoreFactory.js";
14
15
  import type { IProvideFluidDataStoreRegistry } from "./dataStoreRegistry.js";
15
16
  import type { IGarbageCollectionData, IGarbageCollectionDetailsBase } from "./garbageCollectionDefinitions.js";
@@ -320,7 +321,7 @@ export interface IFluidDataStoreChannel extends IDisposable {
320
321
  * @param clientId - ID of the client. It's old ID when in disconnected state and
321
322
  * it's new client ID when we are connecting or connected.
322
323
  */
323
- setConnectionState(connected: boolean, clientId?: string): any;
324
+ setConnectionState(connected: boolean, clientId?: string): void;
324
325
  /**
325
326
  * Notifies this object about changes in the readonly state
326
327
  */
@@ -343,7 +344,7 @@ export interface IFluidDataStoreChannel extends IDisposable {
343
344
  * @privateRemarks
344
345
  * See remarks about squashing contract on `CommitStagedChangesOptionsExperimental`.
345
346
  */
346
- reSubmit(type: string, content: any, localOpMetadata: unknown, squash?: boolean): any;
347
+ reSubmit(type: string, content: any, localOpMetadata: unknown, squash?: boolean): void;
347
348
  applyStashedOp(content: any): Promise<unknown>;
348
349
  /**
349
350
  * Revert a local message.
@@ -386,7 +387,8 @@ export interface IPendingMessagesState {
386
387
  * Therefore the semantics of these two interfaces is not really distinct.
387
388
  *
388
389
  * @privateRemarks
389
- * In addition to the use for datastores via IFluidDataStoreContext, this is implemented by ContainerRuntime to provide context to the ChannelCollection.
390
+ * In addition to the use for datastores via IFluidDataStoreContext, this is
391
+ * partially implemented by ContainerRuntime to provide context to the ChannelCollection.
390
392
  *
391
393
  * @legacy @beta
392
394
  */
@@ -563,6 +565,18 @@ export interface IFluidDataStoreContext extends IFluidParentContext {
563
565
  */
564
566
  createChildDataStore?<T extends IFluidDataStoreFactory>(childFactory: T): ReturnType<Exclude<T["createDataStore"], undefined>>;
565
567
  }
568
+ /**
569
+ * Internal extension to {@link IFluidDataStoreContext} for use across FluidFramework packages.
570
+ *
571
+ * @remarks
572
+ * Important: this interface does cross layer boundaries and must follow `@legacy`
573
+ * layer compatibility patterns.
574
+ * This is meant to be a staging ground ahead of adding properties to {@link IFluidDataStoreContext}.
575
+ *
576
+ * @internal
577
+ */
578
+ export interface FluidDataStoreContextInternal extends IFluidDataStoreContext, ContainerExtensionProvider {
579
+ }
566
580
  /**
567
581
  * @legacy @beta
568
582
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dataStoreContext.d.ts","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataStoreContext.d.ts","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataStoreContext.js","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiDH;;;GAGG;AACH,MAAM,CAAN,IAAY,SAcX;AAdD,WAAY,SAAS;IACpB;;;;;OAKG;IACH,mDAAS,CAAA;IAET;;;OAGG;IACH,mDAAS,CAAA;AACV,CAAC,EAdW,SAAS,KAAT,SAAS,QAcpB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,qBAWX;AAXD,WAAY,qBAAqB;IAChC;;;;;;;;OAQG;IACH,mEAAS,CAAA;AACV,CAAC,EAXW,qBAAqB,KAArB,qBAAqB,QAWhC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B;;OAEG;IACH,UAAU,EAAE,YAAY;IAExB;;;;OAIG;IACH,cAAc,EAAE,gBAAgB;IAEhC;;;;;;;;OAQG;IACH,eAAe,EAAE,iBAAiB;CAClC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { AttachState, IAudience } from \"@fluidframework/container-definitions\";\nimport type { IDeltaManager } from \"@fluidframework/container-definitions/internal\";\nimport type {\n\tFluidObject,\n\tIDisposable,\n\tIEvent,\n\tIEventProvider,\n\tIFluidHandle,\n\tIRequest,\n\tIResponse,\n\tITelemetryBaseLogger,\n} from \"@fluidframework/core-interfaces\";\nimport type {\n\tIFluidHandleInternal,\n\tIProvideFluidHandleContext,\n} from \"@fluidframework/core-interfaces/internal\";\nimport type { IClientDetails, IQuorumClients } from \"@fluidframework/driver-definitions\";\nimport type {\n\tIDocumentMessage,\n\tISnapshotTree,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\nimport type { IIdCompressor } from \"@fluidframework/id-compressor\";\n\nimport type { MinimumVersionForCollab } from \"./compatibilityDefinitions.js\";\nimport type {\n\tIFluidDataStoreFactory,\n\tIProvideFluidDataStoreFactory,\n} from \"./dataStoreFactory.js\";\nimport type { IProvideFluidDataStoreRegistry } from \"./dataStoreRegistry.js\";\nimport type {\n\tIGarbageCollectionData,\n\tIGarbageCollectionDetailsBase,\n} from \"./garbageCollectionDefinitions.js\";\nimport type {\n\tIInboundSignalMessage,\n\tIRuntimeMessageCollection,\n\tIRuntimeStorageService,\n} from \"./protocol.js\";\nimport type {\n\tCreateChildSummarizerNodeParam,\n\tISummarizerNodeWithGC,\n\tISummaryTreeWithStats,\n\tITelemetryContext,\n\tSummarizeInternalFn,\n} from \"./summary.js\";\n\n/**\n * Runtime flush mode handling\n * @legacy @beta\n */\nexport enum FlushMode {\n\t/**\n\t * In Immediate flush mode the runtime will immediately send all operations to the driver layer.\n\t *\n\t * @deprecated This option will be removed in the next major version and should not be used. Use {@link FlushMode.TurnBased} instead, which is the default.\n\t * See https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/opLifecycle#how-batching-works\n\t */\n\tImmediate,\n\n\t/**\n\t * When in TurnBased flush mode the runtime will buffer operations in the current turn and send them as a single\n\t * batch at the end of the turn. The flush call on the runtime can be used to force send the current batch.\n\t */\n\tTurnBased,\n}\n\n/**\n * @internal\n */\nexport enum FlushModeExperimental {\n\t/**\n\t * When in Async flush mode, the runtime will accumulate all operations across JS turns and send them as a single\n\t * batch when all micro-tasks are complete.\n\t *\n\t * This feature requires a version of the loader which supports reference sequence numbers. If an older version of\n\t * the loader is used, the runtime will fall back on FlushMode.TurnBased.\n\t *\n\t * @experimental Not ready for use\n\t */\n\tAsync = 2,\n}\n\n/**\n * This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible\n * locally within the container only or visible globally to all clients.\n * @legacy @beta\n */\nexport const VisibilityState = {\n\t/**\n\t * Indicates that the object is not visible. This is the state when an object is first created.\n\t */\n\tNotVisible: \"NotVisible\",\n\n\t/**\n\t * Indicates that the object is visible locally within the container. This is the state when an object is attached\n\t * to the container's graph but the container itself isn't globally visible. The object's state goes from not\n\t * visible to locally visible.\n\t */\n\tLocallyVisible: \"LocallyVisible\",\n\n\t/**\n\t * Indicates that the object is visible globally to all clients. This is the state of an object in 2 scenarios:\n\t *\n\t * 1. It is attached to the container's graph when the container is globally visible. The object's state goes from\n\t * not visible to globally visible.\n\t *\n\t * 2. When a container becomes globally visible, all locally visible objects go from locally visible to globally\n\t * visible.\n\t */\n\tGloballyVisible: \"GloballyVisible\",\n};\n/**\n * @legacy @beta\n */\nexport type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];\n\n/**\n * @legacy @beta\n * @sealed\n */\nexport interface IContainerRuntimeBaseEvents extends IEvent {\n\t/**\n\t * Indicates the beginning of an incoming batch of ops\n\t * @param op - The first op in the batch. Can be inspected to learn about the sequence numbers relevant for this batch.\n\t */\n\t(event: \"batchBegin\", listener: (op: Omit<ISequencedDocumentMessage, \"contents\">) => void);\n\t/**\n\t * Indicates the end of an incoming batch of ops\n\t * @param error - If an error occurred while processing the batch, it is provided here.\n\t * @param op - The last op in the batch. Can be inspected to learn about the sequence numbers relevant for this batch.\n\t */\n\t(\n\t\tevent: \"batchEnd\",\n\t\tlistener: (error: unknown, op: Omit<ISequencedDocumentMessage, \"contents\">) => void,\n\t);\n\t/**\n\t * Indicates that an incoming op has been processed.\n\t * @param runtimeMessage - tells if op is runtime op. If it is, it was unpacked, i.e. its type and content\n\t * represent internal container runtime type / content. i.e. A grouped batch of N ops will result in N \"op\" events\n\t */\n\t(event: \"op\", listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void);\n\t(event: \"signal\", listener: (message: IInboundSignalMessage, local: boolean) => void);\n\t(event: \"dispose\", listener: () => void);\n}\n\n/**\n * Encapsulates the return codes of the aliasing API.\n *\n * 'Success' - the datastore has been successfully aliased. It can now be used.\n *\n * 'Conflict' - there is already a datastore bound to the provided alias. To acquire it's entry point, use\n * the `IContainerRuntime.getAliasedDataStoreEntryPoint` function. The current datastore should be discarded\n * and will be garbage collected. The current datastore cannot be aliased to a different value.\n *\n * 'AlreadyAliased' - the datastore has already been previously bound to another alias name.\n * @legacy @beta\n */\nexport type AliasResult = \"Success\" | \"Conflict\" | \"AlreadyAliased\";\n\n/**\n * Exposes some functionality/features of a data store:\n *\n * - Handle to the data store's entryPoint\n *\n * - Fluid router for the data store\n *\n * - Can be assigned an alias\n *\n * @privateRemarks\n * TODO: These docs should define what a \"data store\" is, and not do so by just referencing \"data store\".\n *\n * @legacy @beta\n */\nexport interface IDataStore {\n\t/**\n\t * Attempt to assign an alias to the datastore.\n\t * If the operation succeeds, the datastore can be referenced\n\t * by the supplied alias and will not be garbage collected.\n\t *\n\t * @param alias - Given alias for this datastore.\n\t * @returns A promise with the {@link AliasResult}\n\t */\n\ttrySetAlias(alias: string): Promise<AliasResult>;\n\n\t/**\n\t * Exposes a handle to the root object / entryPoint of the data store. Use this as the primary way of interacting\n\t * with it.\n\t */\n\treadonly entryPoint: IFluidHandleInternal<FluidObject>;\n}\n\n/**\n * A reduced set of functionality of {@link @fluidframework/container-runtime-definitions#IContainerRuntime} that a data store context/data store runtime will need.\n * @privateRemarks\n * TODO: this should be merged into IFluidDataStoreContext\n * @legacy @beta\n * @sealed\n */\nexport interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {\n\treadonly baseLogger: ITelemetryBaseLogger;\n\treadonly clientDetails: IClientDetails;\n\treadonly disposed: boolean;\n\n\t/**\n\t * Invokes the given callback and guarantees that all operations generated within the callback will be ordered\n\t * sequentially.\n\t *\n\t * If the callback throws an error, the container will close and the error will be logged.\n\t *\n\t * @remarks\n\t * `orderSequentially` may enter staging mode for the duration of the function. This is necessary for rolling back certain op types.\n\t */\n\torderSequentially(callback: () => void): void;\n\n\t/**\n\t * Submits a container runtime level signal to be sent to other clients.\n\t * @param type - Type of the signal.\n\t * @param content - Content of the signal. Should be a JSON serializable object or primitive.\n\t * @param targetClientId - When specified, the signal is only sent to the provided client id.\n\t */\n\tsubmitSignal: (type: string, content: unknown, targetClientId?: string) => void;\n\n\t/**\n\t * Creates a data store and returns an object that exposes a handle to the data store's entryPoint, and also serves\n\t * as the data store's router. The data store is not bound to a container, and in such state is not persisted to\n\t * storage (file). Storing the entryPoint handle (or any other handle inside the data store, e.g. for DDS) into an\n\t * already attached DDS (or non-attached DDS that will eventually get attached to storage) will result in this\n\t * store being attached to storage.\n\t * @param pkg - Package name of the data store factory\n\t * @param loadingGroupId - This represents the group of the datastore within a container or its snapshot.\n\t * When not specified the datastore will belong to a `default` group. Read more about it in this\n\t * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}\n\t */\n\tcreateDataStore(pkg: string | PackagePath, loadingGroupId?: string): Promise<IDataStore>;\n\n\t/**\n\t * Creates detached data store context. Only after context.attachRuntime() is called,\n\t * data store initialization is considered complete.\n\t * @param pkg - Package name of the data store factory\n\t * @param loadingGroupId - This represents the group of the datastore within a container or its snapshot.\n\t * When not specified the datastore will belong to a `default` group. Read more about it in this\n\t * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}.\n\t */\n\tcreateDetachedDataStore(\n\t\tpkg: readonly string[],\n\t\tloadingGroupId?: string,\n\t): IFluidDataStoreContextDetached;\n\n\t/**\n\t * Returns the aliased data store's entryPoint, given the alias.\n\t * @param alias - The alias for the data store.\n\t * @returns The data store's entry point ({@link @fluidframework/core-interfaces#IFluidHandle}) if it exists and is aliased.\n\t * Returns undefined if no data store has been assigned the given alias.\n\t */\n\tgetAliasedDataStoreEntryPoint(alias: string): Promise<IFluidHandle<FluidObject> | undefined>;\n\n\t/**\n\t * Get an absolute url for a provided container-relative request.\n\t * Returns undefined if the container or data store isn't attached to storage.\n\t * @param relativeUrl - A relative request within the container\n\t */\n\tgetAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n\tuploadBlob(\n\t\tblob: ArrayBufferLike,\n\t\tsignal?: AbortSignal,\n\t): Promise<IFluidHandle<ArrayBufferLike>>;\n\n\t/**\n\t * Returns the current quorum.\n\t */\n\tgetQuorum(): IQuorumClients;\n\n\t/**\n\t * Returns the current audience.\n\t */\n\tgetAudience(): IAudience;\n\n\t/**\n\t * Generates a new ID that is guaranteed to be unique across all sessions for this container.\n\t * It could be in compact form (non-negative integer, opportunistic), but it could also be UUID string.\n\t * UUIDs generated will have low entropy in groups and will compress well.\n\t * It can be leveraged anywhere in container where container unique IDs are required, i.e. any place\n\t * that uses uuid() and stores result in container is likely candidate to start leveraging this API.\n\t * If you always want to convert to string, instead of doing String(generateDocumentUniqueId()), consider\n\t * doing encodeCompactIdToString(generateDocumentUniqueId()).\n\t *\n\t * @see {@link @fluidframework/id-compressor#IIdCompressor.generateDocumentUniqueId}\n\t */\n\tgenerateDocumentUniqueId(): number | string;\n\n\t/**\n\t * Api to fetch the snapshot from the service for a loadingGroupIds.\n\t * @param loadingGroupIds - LoadingGroupId for which the snapshot is asked for.\n\t * @param pathParts - Parts of the path, which we want to extract from the snapshot tree.\n\t * @returns snapshotTree and the sequence number of the snapshot.\n\t */\n\tgetSnapshotForLoadingGroupId(\n\t\tloadingGroupIds: string[],\n\t\tpathParts: string[],\n\t): Promise<{ snapshotTree: ISnapshotTree; sequenceNumber: number }>;\n}\n\n/**\n * These policies can be set by the author of the data store via its data store runtime to influence behaviors.\n *\n * @remarks\n * Policies allow data store authors to define specific behaviors or constraints for their data stores.\n * These settings can impact how the data store interacts with the runtime and other components.\n *\n * @legacy @beta\n */\nexport interface IFluidDataStorePolicies {\n\t/**\n\t * When set to true, data stores will appear to be readonly while in staging mode.\n\t *\n\t * @remarks\n\t * This policy is useful for data stores that do not support staging mode, such as those using consensus DDS.\n\t * It ensures that the data store appears readonly during staging mode to discourage unsupported operations.\n\t */\n\treadonly readonlyInStagingMode: boolean;\n}\n\n/**\n * Minimal interface a data store runtime needs to provide for IFluidDataStoreContext to bind to control.\n *\n * Functionality include attach, snapshot, op/signal processing, request routes, expose an entryPoint,\n * and connection state notifications\n * @legacy @beta\n */\nexport interface IFluidDataStoreChannel extends IDisposable {\n\t/**\n\t * Optional policies that the data store channel may adhere to that the data store context should know about.\n\t * These policies influence the behavior of the data store, such as its readonly state in specific modes.\n\t */\n\treadonly policies?: IFluidDataStorePolicies;\n\n\t/**\n\t * Makes the data store channel visible in the container. Also, runs through its graph and attaches all\n\t * bound handles that represent its dependencies in the container's graph.\n\t */\n\tmakeVisibleAndAttachGraph(): void;\n\n\t/**\n\t * Synchronously retrieves the summary used as part of the initial summary message\n\t */\n\tgetAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;\n\n\t/**\n\t * Synchronously retrieves GC Data (representing the outbound routes present) for the initial state of the DataStore\n\t */\n\tgetAttachGCData(telemetryContext?: ITelemetryContext): IGarbageCollectionData;\n\n\t/**\n\t * Process messages for this channel. The messages here are contiguous messages in a batch.\n\t * @param messageCollection - The collection of messages to process.\n\t */\n\tprocessMessages(messageCollection: IRuntimeMessageCollection): void;\n\n\t/**\n\t * Processes the signal.\n\t */\n\tprocessSignal(message: IInboundSignalMessage, local: boolean): void;\n\n\t/**\n\t * Generates a summary for the channel.\n\t * Introduced with summarizerNode - will be required in a future release.\n\t * @param fullTree - true to bypass optimizations and force a full summary tree.\n\t * @param trackState - This tells whether we should track state from this summary.\n\t * @param telemetryContext - summary data passed through the layers for telemetry purposes\n\t */\n\tsummarize(\n\t\tfullTree?: boolean,\n\t\ttrackState?: boolean,\n\t\ttelemetryContext?: ITelemetryContext,\n\t): Promise<ISummaryTreeWithStats>;\n\n\t/**\n\t * Returns the data used for garbage collection. This includes a list of GC nodes that represent this context\n\t * including any of its children. Each node has a list of outbound routes to other GC nodes in the document.\n\t * @param fullGC - true to bypass optimizations and force full generation of GC data.\n\t */\n\tgetGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;\n\n\t/**\n\t * After GC has run, called to notify this channel of routes that are used in it.\n\t * @param usedRoutes - The routes that are used in this channel.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n\n\t/**\n\t * Notifies this object about changes in the connection state.\n\t * @param value - New connection state.\n\t * @param clientId - ID of the client. It's old ID when in disconnected state and\n\t * it's new client ID when we are connecting or connected.\n\t */\n\tsetConnectionState(connected: boolean, clientId?: string);\n\n\t/**\n\t * Notifies this object about changes in the readonly state\n\t */\n\tnotifyReadOnlyState?(readonly: boolean): void;\n\n\t/**\n\t * Ask the DDS to resubmit a message. This can happen for several reasons, such as:\n\t *\n\t * - We reconnected and discovered the original message was never acked.\n\t * - The original message was submitted from a reentrant state that is impossible for other clients to interpret correctly\n\t * - The original message was never sent on the wire and subsequent ops have been inbounded\n\t * @param type - The type of the original message.\n\t * @param content - The content of the original message.\n\t * @param localOpMetadata - The local metadata associated with the original message.\n\t * @param squash - If true, the DDS should avoid resubmitting any \"unnecessary intermediate state\" created by this message.\n\t * This includes any content which this message created but has since been changed or removed by subsequent messages.\n\t * For example, if this message (call it A) inserts content into a DDS that a subsequent op (call it B) removes,\n\t * resubmission of this message (call it A') should avoid inserting that content, and resubmission of the subsequent op that removed it (B') would\n\t * account for the fact that A' never inserted content.\n\t *\n\t * @privateRemarks\n\t * See remarks about squashing contract on `CommitStagedChangesOptionsExperimental`.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\treSubmit(type: string, content: any, localOpMetadata: unknown, squash?: boolean);\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\tapplyStashedOp(content: any): Promise<unknown>;\n\n\t/**\n\t * Revert a local message.\n\t * @param type - The type of the original message.\n\t * @param content - The content of the original message.\n\t * @param localOpMetadata - The local metadata associated with the original message.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\trollback?(type: string, content: any, localOpMetadata: unknown): void;\n\n\t/**\n\t * Exposes a handle to the root object / entryPoint of the component. Use this as the primary way of interacting\n\t * with the component.\n\t */\n\treadonly entryPoint: IFluidHandleInternal<FluidObject>;\n\n\trequest(request: IRequest): Promise<IResponse>;\n\n\tsetAttachState(attachState: AttachState.Attaching | AttachState.Attached): void;\n}\n\n/**\n * @legacy @beta\n */\nexport type CreateChildSummarizerNodeFn = (\n\tsummarizeInternal: SummarizeInternalFn,\n\tgetGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t/**\n\t * @deprecated The functionality to get base GC details has been moved to summarizer node.\n\t */\n\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n) => ISummarizerNodeWithGC;\n\n/**\n * The state maintained for messages that are received when a channel isn't yet loaded.\n * @internal\n */\nexport interface IPendingMessagesState {\n\tmessageCollections: IRuntimeMessageCollection[];\n\tpendingCount: number;\n}\n\n/**\n * Context for an {@link IDataStore} like object.\n * @remarks\n * This context does NOT represent common information provided to all channels under a specific parent.\n * Each implementation of {@link IFluidDataStoreChannel} will receive its own instance of this context that contains specifically the data it needs.\n *\n * This layout is temporary, as {@link IFluidParentContext} and {@link IFluidDataStoreContext} will converge.\n * Therefore the semantics of these two interfaces is not really distinct.\n *\n * @privateRemarks\n * In addition to the use for datastores via IFluidDataStoreContext, this is implemented by ContainerRuntime to provide context to the ChannelCollection.\n *\n * @legacy @beta\n */\nexport interface IFluidParentContext\n\textends IProvideFluidHandleContext,\n\t\tPartial<IProvideFluidDataStoreRegistry> {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\treadonly options: Record<string | number, any>;\n\treadonly clientId: string | undefined;\n\treadonly connected: boolean;\n\t/**\n\t * Indicates if the parent context is readonly. If isReadOnly is true, the consumer of\n\t * the context should also consider themselves readonly.\n\t */\n\treadonly isReadOnly?: () => boolean;\n\t/**\n\t * Minimum version of the FF runtime that is required to collaborate on new documents.\n\t * Consumed by {@link @fluidframework/container-runtime#FluidDataStoreContext}.\n\t * See {@link @fluidframework/container-runtime#LoadContainerRuntimeParams.minVersionForCollab} for more details.\n\t */\n\treadonly minVersionForCollab?: MinimumVersionForCollab;\n\treadonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\treadonly storage: IRuntimeStorageService;\n\treadonly baseLogger: ITelemetryBaseLogger;\n\treadonly clientDetails: IClientDetails;\n\treadonly idCompressor?: IIdCompressor;\n\t/**\n\t * Represents the loading group to which the data store belongs to. Please refer to this readme for more context.\n\t * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}\n\t */\n\treadonly loadingGroupId?: string;\n\t/**\n\t * Indicates the attachment state of the data store to a host service.\n\t */\n\treadonly attachState: AttachState;\n\n\treadonly containerRuntime: IContainerRuntimeBase;\n\n\t/**\n\t * Ambient services provided with the context\n\t */\n\treadonly scope: FluidObject;\n\n\t/**\n\t * @deprecated this functionality has been removed.\n\t */\n\treadonly gcThrowOnTombstoneUsage: boolean;\n\t/**\n\t * @deprecated this functionality has been removed.\n\t */\n\treadonly gcTombstoneEnforcementAllowed: boolean;\n\n\t/**\n\t * Returns the current quorum.\n\t */\n\tgetQuorum(): IQuorumClients;\n\n\t/**\n\t * Returns the current audience.\n\t */\n\tgetAudience(): IAudience;\n\n\t/**\n\t * Submits the message to be sent to other clients.\n\t * @param type - Type of the message.\n\t * @param content - Content of the message.\n\t * @param localOpMetadata - The local metadata associated with the message. This is kept locally and not sent to\n\t * the server. This will be sent back when this message is received back from the server. This is also sent if\n\t * we are asked to resubmit the message.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\tsubmitMessage(type: string, content: any, localOpMetadata: unknown): void;\n\n\t/**\n\t * Submits the signal to be sent to other clients.\n\t * @param type - Type of the signal.\n\t * @param content - Content of the signal. Should be an {@link IEnvelope} with `contents` that is a JSON\n\t * serializable object or primitive.\n\t * @param targetClientId - When specified, the signal is only sent to the provided client id.\n\t */\n\tsubmitSignal: (type: string, content: unknown, targetClientId?: string) => void;\n\n\t/**\n\t * Called to make the data store locally visible in the container. This happens automatically for root data stores\n\t * when they are marked as root. For non-root data stores, this happens when their handle is added to a visible DDS.\n\t */\n\tmakeLocallyVisible(): void;\n\n\t/**\n\t * Get an absolute url to the container based on the provided relativeUrl.\n\t * Returns undefined if the container or data store isn't attached to storage.\n\t * @param relativeUrl - A relative request within the container\n\t */\n\tgetAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n\tgetCreateChildSummarizerNodeFn(\n\t\t/**\n\t\t * Initial id or path part of this node\n\t\t */\n\t\tid: string,\n\t\t/**\n\t\t * Information needed to create the node.\n\t\t * If it is from a base summary, it will assert that a summary has been seen.\n\t\t * Attach information if it is created from an attach op.\n\t\t * If it is local, it will throw unsupported errors on calls to summarize.\n\t\t */\n\t\tcreateParam: CreateChildSummarizerNodeParam,\n\t): CreateChildSummarizerNodeFn;\n\n\tdeleteChildSummarizerNode(id: string): void;\n\n\tuploadBlob(\n\t\tblob: ArrayBufferLike,\n\t\tsignal?: AbortSignal,\n\t): Promise<IFluidHandleInternal<ArrayBufferLike>>;\n\n\t/**\n\t * Called by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.\n\t * @param address - The address of the channel that is dirty.\n\t */\n\tsetChannelDirty(address: string): void;\n\n\t/**\n\t * Called when a new outbound reference is added to another node. This is used by garbage collection to identify\n\t * all references added in the system.\n\t *\n\t * @param fromPath - The absolute path of the node that added the reference.\n\t * @param toPath - The absolute path of the outbound node that is referenced.\n\t * @param messageTimestampMs - The timestamp of the message that added the reference.\n\t */\n\taddedGCOutboundRoute(fromPath: string, toPath: string, messageTimestampMs?: number): void;\n}\n\n/**\n * A path which selects a {@link (IFluidDataStoreFactory:interface)} within a hierarchial registry.\n * @remarks\n * Each string in the array is the \"identifier\" to pick a specific {@link NamedFluidDataStoreRegistryEntry2} within a {@link NamedFluidDataStoreRegistryEntries}.\n *\n * Due to some usages joining this array with \"/\", it is recommended to avoid using \"/\" in the strings.\n * @legacy @beta\n */\nexport type PackagePath = readonly string[];\n\n/**\n * Extension to {@link IFluidParentContext} specifically for {@link IDataStore}s.\n *\n * @remarks\n * This context is provided to the implementation of {@link IFluidDataStoreChannel} which powers the datastore.\n *\n * @legacy @beta\n */\nexport interface IFluidDataStoreContext extends IFluidParentContext {\n\treadonly id: string;\n\t/**\n\t * A data store created by a client, is a local data store for that client. Also, when a detached container loads\n\t * from a snapshot, all the data stores are treated as local data stores because at that stage the container\n\t * still doesn't exists in storage and so the data store couldn't have been created by any other client.\n\t * Value of this never changes even after the data store is attached.\n\t * As implementer of data store runtime, you can use this property to check that this data store belongs to this\n\t * client and hence implement any scenario based on that.\n\t */\n\treadonly isLocalDataStore: boolean;\n\t/**\n\t * The {@link PackagePath} of the data store as per the package factory.\n\t * @remarks\n\t * This defines what {@link (IFluidDataStoreFactory:interface)} would be used to create the {@link IDataStore.entryPoint} of the {@link IDataStore}.\n\t */\n\treadonly packagePath: PackagePath;\n\treadonly baseSnapshot: ISnapshotTree | undefined;\n\n\t/**\n\t * @deprecated 0.16 Issue #1635, #3631\n\t */\n\t// Seems like this can be removed now; the issues mentioned in the @deprecated tag are about _createDataStoreWithProps\n\t// which we finally removed in FF 2.20 (https://github.com/microsoft/FluidFramework/pull/22996).\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\treadonly createProps?: any;\n\n\t/**\n\t * @deprecated The functionality to get base GC details has been moved to summarizer node.\n\t *\n\t * Returns the GC details in the initial summary of this data store. This is used to initialize the data store\n\t * and its children with the GC details from the previous summary.\n\t */\n\tgetBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;\n\n\t/**\n\t * Synchronously creates a detached child data store.\n\t *\n\t * The `createChildDataStore` method allows for the synchronous creation of a detached child data store. This is particularly\n\t * useful in scenarios where immediate availability of the child data store is required, such as during the initialization\n\t * of a parent data store, or when creation is in response to synchronous user input.\n\t *\n\t * In order for this function to succeed:\n\t * 1. The parent data store's factory must also be an `IFluidDataStoreRegistry`.\n\t * 2. The parent data store's registry must include the same instance as the provided child factory.\n\t * 3. The parent data store's registry must synchronously provide the child factory via the `getSync` method.\n\t * 4. The child factory must implement the `createDataStore` method.\n\t *\n\t * These invariants ensure that the child data store can also be created by a remote client running the same code as this client.\n\t *\n\t * @param childFactory - The factory of the data store to be created.\n\t * @returns The created data store channel.\n\t */\n\tcreateChildDataStore?<T extends IFluidDataStoreFactory>(\n\t\tchildFactory: T,\n\t): ReturnType<Exclude<T[\"createDataStore\"], undefined>>;\n}\n\n/**\n * @legacy @beta\n */\nexport interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {\n\t/**\n\t * Binds a runtime to the context.\n\t */\n\tattachRuntime(\n\t\tfactory: IProvideFluidDataStoreFactory,\n\t\tdataStoreRuntime: IFluidDataStoreChannel,\n\t): Promise<IDataStore>;\n}\n"]}
1
+ {"version":3,"file":"dataStoreContext.js","sourceRoot":"","sources":["../src/dataStoreContext.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkDH;;;GAGG;AACH,MAAM,CAAN,IAAY,SAcX;AAdD,WAAY,SAAS;IACpB;;;;;OAKG;IACH,mDAAS,CAAA;IAET;;;OAGG;IACH,mDAAS,CAAA;AACV,CAAC,EAdW,SAAS,KAAT,SAAS,QAcpB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,qBAWX;AAXD,WAAY,qBAAqB;IAChC;;;;;;;;OAQG;IACH,mEAAS,CAAA;AACV,CAAC,EAXW,qBAAqB,KAArB,qBAAqB,QAWhC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B;;OAEG;IACH,UAAU,EAAE,YAAY;IAExB;;;;OAIG;IACH,cAAc,EAAE,gBAAgB;IAEhC;;;;;;;;OAQG;IACH,eAAe,EAAE,iBAAiB;CAClC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { AttachState, IAudience } from \"@fluidframework/container-definitions\";\nimport type { IDeltaManager } from \"@fluidframework/container-definitions/internal\";\nimport type {\n\tFluidObject,\n\tIDisposable,\n\tIEvent,\n\tIEventProvider,\n\tIFluidHandle,\n\tIRequest,\n\tIResponse,\n\tITelemetryBaseLogger,\n} from \"@fluidframework/core-interfaces\";\nimport type {\n\tIFluidHandleInternal,\n\tIProvideFluidHandleContext,\n} from \"@fluidframework/core-interfaces/internal\";\nimport type { IClientDetails, IQuorumClients } from \"@fluidframework/driver-definitions\";\nimport type {\n\tIDocumentMessage,\n\tISnapshotTree,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\nimport type { IIdCompressor } from \"@fluidframework/id-compressor\";\n\nimport type { MinimumVersionForCollab } from \"./compatibilityDefinitions.js\";\nimport type { ContainerExtensionProvider } from \"./containerExtensionProvider.js\";\nimport type {\n\tIFluidDataStoreFactory,\n\tIProvideFluidDataStoreFactory,\n} from \"./dataStoreFactory.js\";\nimport type { IProvideFluidDataStoreRegistry } from \"./dataStoreRegistry.js\";\nimport type {\n\tIGarbageCollectionData,\n\tIGarbageCollectionDetailsBase,\n} from \"./garbageCollectionDefinitions.js\";\nimport type {\n\tIInboundSignalMessage,\n\tIRuntimeMessageCollection,\n\tIRuntimeStorageService,\n} from \"./protocol.js\";\nimport type {\n\tCreateChildSummarizerNodeParam,\n\tISummarizerNodeWithGC,\n\tISummaryTreeWithStats,\n\tITelemetryContext,\n\tSummarizeInternalFn,\n} from \"./summary.js\";\n\n/**\n * Runtime flush mode handling\n * @legacy @beta\n */\nexport enum FlushMode {\n\t/**\n\t * In Immediate flush mode the runtime will immediately send all operations to the driver layer.\n\t *\n\t * @deprecated This option will be removed in the next major version and should not be used. Use {@link FlushMode.TurnBased} instead, which is the default.\n\t * See https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/opLifecycle#how-batching-works\n\t */\n\tImmediate,\n\n\t/**\n\t * When in TurnBased flush mode the runtime will buffer operations in the current turn and send them as a single\n\t * batch at the end of the turn. The flush call on the runtime can be used to force send the current batch.\n\t */\n\tTurnBased,\n}\n\n/**\n * @internal\n */\nexport enum FlushModeExperimental {\n\t/**\n\t * When in Async flush mode, the runtime will accumulate all operations across JS turns and send them as a single\n\t * batch when all micro-tasks are complete.\n\t *\n\t * This feature requires a version of the loader which supports reference sequence numbers. If an older version of\n\t * the loader is used, the runtime will fall back on FlushMode.TurnBased.\n\t *\n\t * @experimental Not ready for use\n\t */\n\tAsync = 2,\n}\n\n/**\n * This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible\n * locally within the container only or visible globally to all clients.\n * @legacy @beta\n */\nexport const VisibilityState = {\n\t/**\n\t * Indicates that the object is not visible. This is the state when an object is first created.\n\t */\n\tNotVisible: \"NotVisible\",\n\n\t/**\n\t * Indicates that the object is visible locally within the container. This is the state when an object is attached\n\t * to the container's graph but the container itself isn't globally visible. The object's state goes from not\n\t * visible to locally visible.\n\t */\n\tLocallyVisible: \"LocallyVisible\",\n\n\t/**\n\t * Indicates that the object is visible globally to all clients. This is the state of an object in 2 scenarios:\n\t *\n\t * 1. It is attached to the container's graph when the container is globally visible. The object's state goes from\n\t * not visible to globally visible.\n\t *\n\t * 2. When a container becomes globally visible, all locally visible objects go from locally visible to globally\n\t * visible.\n\t */\n\tGloballyVisible: \"GloballyVisible\",\n};\n/**\n * @legacy @beta\n */\nexport type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];\n\n/**\n * @legacy @beta\n * @sealed\n */\nexport interface IContainerRuntimeBaseEvents extends IEvent {\n\t/**\n\t * Indicates the beginning of an incoming batch of ops\n\t * @param op - The first op in the batch. Can be inspected to learn about the sequence numbers relevant for this batch.\n\t */\n\t(event: \"batchBegin\", listener: (op: Omit<ISequencedDocumentMessage, \"contents\">) => void);\n\t/**\n\t * Indicates the end of an incoming batch of ops\n\t * @param error - If an error occurred while processing the batch, it is provided here.\n\t * @param op - The last op in the batch. Can be inspected to learn about the sequence numbers relevant for this batch.\n\t */\n\t(\n\t\tevent: \"batchEnd\",\n\t\tlistener: (error: unknown, op: Omit<ISequencedDocumentMessage, \"contents\">) => void,\n\t);\n\t/**\n\t * Indicates that an incoming op has been processed.\n\t * @param runtimeMessage - tells if op is runtime op. If it is, it was unpacked, i.e. its type and content\n\t * represent internal container runtime type / content. i.e. A grouped batch of N ops will result in N \"op\" events\n\t */\n\t(event: \"op\", listener: (op: ISequencedDocumentMessage, runtimeMessage?: boolean) => void);\n\t(event: \"signal\", listener: (message: IInboundSignalMessage, local: boolean) => void);\n\t(event: \"dispose\", listener: () => void);\n}\n\n/**\n * Encapsulates the return codes of the aliasing API.\n *\n * 'Success' - the datastore has been successfully aliased. It can now be used.\n *\n * 'Conflict' - there is already a datastore bound to the provided alias. To acquire it's entry point, use\n * the `IContainerRuntime.getAliasedDataStoreEntryPoint` function. The current datastore should be discarded\n * and will be garbage collected. The current datastore cannot be aliased to a different value.\n *\n * 'AlreadyAliased' - the datastore has already been previously bound to another alias name.\n * @legacy @beta\n */\nexport type AliasResult = \"Success\" | \"Conflict\" | \"AlreadyAliased\";\n\n/**\n * Exposes some functionality/features of a data store:\n *\n * - Handle to the data store's entryPoint\n *\n * - Fluid router for the data store\n *\n * - Can be assigned an alias\n *\n * @privateRemarks\n * TODO: These docs should define what a \"data store\" is, and not do so by just referencing \"data store\".\n *\n * @legacy @beta\n */\nexport interface IDataStore {\n\t/**\n\t * Attempt to assign an alias to the datastore.\n\t * If the operation succeeds, the datastore can be referenced\n\t * by the supplied alias and will not be garbage collected.\n\t *\n\t * @param alias - Given alias for this datastore.\n\t * @returns A promise with the {@link AliasResult}\n\t */\n\ttrySetAlias(alias: string): Promise<AliasResult>;\n\n\t/**\n\t * Exposes a handle to the root object / entryPoint of the data store. Use this as the primary way of interacting\n\t * with it.\n\t */\n\treadonly entryPoint: IFluidHandleInternal<FluidObject>;\n}\n\n/**\n * A reduced set of functionality of {@link @fluidframework/container-runtime-definitions#IContainerRuntime} that a data store context/data store runtime will need.\n * @privateRemarks\n * TODO: this should be merged into IFluidDataStoreContext\n * @legacy @beta\n * @sealed\n */\nexport interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {\n\treadonly baseLogger: ITelemetryBaseLogger;\n\treadonly clientDetails: IClientDetails;\n\treadonly disposed: boolean;\n\n\t/**\n\t * Invokes the given callback and guarantees that all operations generated within the callback will be ordered\n\t * sequentially.\n\t *\n\t * If the callback throws an error, the container will close and the error will be logged.\n\t *\n\t * @remarks\n\t * `orderSequentially` may enter staging mode for the duration of the function. This is necessary for rolling back certain op types.\n\t */\n\torderSequentially(callback: () => void): void;\n\n\t/**\n\t * Submits a container runtime level signal to be sent to other clients.\n\t * @param type - Type of the signal.\n\t * @param content - Content of the signal. Should be a JSON serializable object or primitive.\n\t * @param targetClientId - When specified, the signal is only sent to the provided client id.\n\t */\n\tsubmitSignal: (type: string, content: unknown, targetClientId?: string) => void;\n\n\t/**\n\t * Creates a data store and returns an object that exposes a handle to the data store's entryPoint, and also serves\n\t * as the data store's router. The data store is not bound to a container, and in such state is not persisted to\n\t * storage (file). Storing the entryPoint handle (or any other handle inside the data store, e.g. for DDS) into an\n\t * already attached DDS (or non-attached DDS that will eventually get attached to storage) will result in this\n\t * store being attached to storage.\n\t * @param pkg - Package name of the data store factory\n\t * @param loadingGroupId - This represents the group of the datastore within a container or its snapshot.\n\t * When not specified the datastore will belong to a `default` group. Read more about it in this\n\t * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}\n\t */\n\tcreateDataStore(pkg: string | PackagePath, loadingGroupId?: string): Promise<IDataStore>;\n\n\t/**\n\t * Creates detached data store context. Only after context.attachRuntime() is called,\n\t * data store initialization is considered complete.\n\t * @param pkg - Package name of the data store factory\n\t * @param loadingGroupId - This represents the group of the datastore within a container or its snapshot.\n\t * When not specified the datastore will belong to a `default` group. Read more about it in this\n\t * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}.\n\t */\n\tcreateDetachedDataStore(\n\t\tpkg: readonly string[],\n\t\tloadingGroupId?: string,\n\t): IFluidDataStoreContextDetached;\n\n\t/**\n\t * Returns the aliased data store's entryPoint, given the alias.\n\t * @param alias - The alias for the data store.\n\t * @returns The data store's entry point ({@link @fluidframework/core-interfaces#IFluidHandle}) if it exists and is aliased.\n\t * Returns undefined if no data store has been assigned the given alias.\n\t */\n\tgetAliasedDataStoreEntryPoint(alias: string): Promise<IFluidHandle<FluidObject> | undefined>;\n\n\t/**\n\t * Get an absolute url for a provided container-relative request.\n\t * Returns undefined if the container or data store isn't attached to storage.\n\t * @param relativeUrl - A relative request within the container\n\t */\n\tgetAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n\tuploadBlob(\n\t\tblob: ArrayBufferLike,\n\t\tsignal?: AbortSignal,\n\t): Promise<IFluidHandle<ArrayBufferLike>>;\n\n\t/**\n\t * Returns the current quorum.\n\t */\n\tgetQuorum(): IQuorumClients;\n\n\t/**\n\t * Returns the current audience.\n\t */\n\tgetAudience(): IAudience;\n\n\t/**\n\t * Generates a new ID that is guaranteed to be unique across all sessions for this container.\n\t * It could be in compact form (non-negative integer, opportunistic), but it could also be UUID string.\n\t * UUIDs generated will have low entropy in groups and will compress well.\n\t * It can be leveraged anywhere in container where container unique IDs are required, i.e. any place\n\t * that uses uuid() and stores result in container is likely candidate to start leveraging this API.\n\t * If you always want to convert to string, instead of doing String(generateDocumentUniqueId()), consider\n\t * doing encodeCompactIdToString(generateDocumentUniqueId()).\n\t *\n\t * @see {@link @fluidframework/id-compressor#IIdCompressor.generateDocumentUniqueId}\n\t */\n\tgenerateDocumentUniqueId(): number | string;\n\n\t/**\n\t * Api to fetch the snapshot from the service for a loadingGroupIds.\n\t * @param loadingGroupIds - LoadingGroupId for which the snapshot is asked for.\n\t * @param pathParts - Parts of the path, which we want to extract from the snapshot tree.\n\t * @returns snapshotTree and the sequence number of the snapshot.\n\t */\n\tgetSnapshotForLoadingGroupId(\n\t\tloadingGroupIds: string[],\n\t\tpathParts: string[],\n\t): Promise<{ snapshotTree: ISnapshotTree; sequenceNumber: number }>;\n}\n\n/**\n * These policies can be set by the author of the data store via its data store runtime to influence behaviors.\n *\n * @remarks\n * Policies allow data store authors to define specific behaviors or constraints for their data stores.\n * These settings can impact how the data store interacts with the runtime and other components.\n *\n * @legacy @beta\n */\nexport interface IFluidDataStorePolicies {\n\t/**\n\t * When set to true, data stores will appear to be readonly while in staging mode.\n\t *\n\t * @remarks\n\t * This policy is useful for data stores that do not support staging mode, such as those using consensus DDS.\n\t * It ensures that the data store appears readonly during staging mode to discourage unsupported operations.\n\t */\n\treadonly readonlyInStagingMode: boolean;\n}\n\n/**\n * Minimal interface a data store runtime needs to provide for IFluidDataStoreContext to bind to control.\n *\n * Functionality include attach, snapshot, op/signal processing, request routes, expose an entryPoint,\n * and connection state notifications\n * @legacy @beta\n */\nexport interface IFluidDataStoreChannel extends IDisposable {\n\t/**\n\t * Optional policies that the data store channel may adhere to that the data store context should know about.\n\t * These policies influence the behavior of the data store, such as its readonly state in specific modes.\n\t */\n\treadonly policies?: IFluidDataStorePolicies;\n\n\t/**\n\t * Makes the data store channel visible in the container. Also, runs through its graph and attaches all\n\t * bound handles that represent its dependencies in the container's graph.\n\t */\n\tmakeVisibleAndAttachGraph(): void;\n\n\t/**\n\t * Synchronously retrieves the summary used as part of the initial summary message\n\t */\n\tgetAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;\n\n\t/**\n\t * Synchronously retrieves GC Data (representing the outbound routes present) for the initial state of the DataStore\n\t */\n\tgetAttachGCData(telemetryContext?: ITelemetryContext): IGarbageCollectionData;\n\n\t/**\n\t * Process messages for this channel. The messages here are contiguous messages in a batch.\n\t * @param messageCollection - The collection of messages to process.\n\t */\n\tprocessMessages(messageCollection: IRuntimeMessageCollection): void;\n\n\t/**\n\t * Processes the signal.\n\t */\n\tprocessSignal(message: IInboundSignalMessage, local: boolean): void;\n\n\t/**\n\t * Generates a summary for the channel.\n\t * Introduced with summarizerNode - will be required in a future release.\n\t * @param fullTree - true to bypass optimizations and force a full summary tree.\n\t * @param trackState - This tells whether we should track state from this summary.\n\t * @param telemetryContext - summary data passed through the layers for telemetry purposes\n\t */\n\tsummarize(\n\t\tfullTree?: boolean,\n\t\ttrackState?: boolean,\n\t\ttelemetryContext?: ITelemetryContext,\n\t): Promise<ISummaryTreeWithStats>;\n\n\t/**\n\t * Returns the data used for garbage collection. This includes a list of GC nodes that represent this context\n\t * including any of its children. Each node has a list of outbound routes to other GC nodes in the document.\n\t * @param fullGC - true to bypass optimizations and force full generation of GC data.\n\t */\n\tgetGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;\n\n\t/**\n\t * After GC has run, called to notify this channel of routes that are used in it.\n\t * @param usedRoutes - The routes that are used in this channel.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n\n\t/**\n\t * Notifies this object about changes in the connection state.\n\t * @param value - New connection state.\n\t * @param clientId - ID of the client. It's old ID when in disconnected state and\n\t * it's new client ID when we are connecting or connected.\n\t */\n\tsetConnectionState(connected: boolean, clientId?: string): void;\n\n\t/**\n\t * Notifies this object about changes in the readonly state\n\t */\n\tnotifyReadOnlyState?(readonly: boolean): void;\n\n\t/**\n\t * Ask the DDS to resubmit a message. This can happen for several reasons, such as:\n\t *\n\t * - We reconnected and discovered the original message was never acked.\n\t * - The original message was submitted from a reentrant state that is impossible for other clients to interpret correctly\n\t * - The original message was never sent on the wire and subsequent ops have been inbounded\n\t * @param type - The type of the original message.\n\t * @param content - The content of the original message.\n\t * @param localOpMetadata - The local metadata associated with the original message.\n\t * @param squash - If true, the DDS should avoid resubmitting any \"unnecessary intermediate state\" created by this message.\n\t * This includes any content which this message created but has since been changed or removed by subsequent messages.\n\t * For example, if this message (call it A) inserts content into a DDS that a subsequent op (call it B) removes,\n\t * resubmission of this message (call it A') should avoid inserting that content, and resubmission of the subsequent op that removed it (B') would\n\t * account for the fact that A' never inserted content.\n\t *\n\t * @privateRemarks\n\t * See remarks about squashing contract on `CommitStagedChangesOptionsExperimental`.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\treSubmit(type: string, content: any, localOpMetadata: unknown, squash?: boolean): void;\n\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\tapplyStashedOp(content: any): Promise<unknown>;\n\n\t/**\n\t * Revert a local message.\n\t * @param type - The type of the original message.\n\t * @param content - The content of the original message.\n\t * @param localOpMetadata - The local metadata associated with the original message.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\trollback?(type: string, content: any, localOpMetadata: unknown): void;\n\n\t/**\n\t * Exposes a handle to the root object / entryPoint of the component. Use this as the primary way of interacting\n\t * with the component.\n\t */\n\treadonly entryPoint: IFluidHandleInternal<FluidObject>;\n\n\trequest(request: IRequest): Promise<IResponse>;\n\n\tsetAttachState(attachState: AttachState.Attaching | AttachState.Attached): void;\n}\n\n/**\n * @legacy @beta\n */\nexport type CreateChildSummarizerNodeFn = (\n\tsummarizeInternal: SummarizeInternalFn,\n\tgetGCDataFn: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t/**\n\t * @deprecated The functionality to get base GC details has been moved to summarizer node.\n\t */\n\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n) => ISummarizerNodeWithGC;\n\n/**\n * The state maintained for messages that are received when a channel isn't yet loaded.\n * @internal\n */\nexport interface IPendingMessagesState {\n\tmessageCollections: IRuntimeMessageCollection[];\n\tpendingCount: number;\n}\n\n/**\n * Context for an {@link IDataStore} like object.\n * @remarks\n * This context does NOT represent common information provided to all channels under a specific parent.\n * Each implementation of {@link IFluidDataStoreChannel} will receive its own instance of this context that contains specifically the data it needs.\n *\n * This layout is temporary, as {@link IFluidParentContext} and {@link IFluidDataStoreContext} will converge.\n * Therefore the semantics of these two interfaces is not really distinct.\n *\n * @privateRemarks\n * In addition to the use for datastores via IFluidDataStoreContext, this is\n * partially implemented by ContainerRuntime to provide context to the ChannelCollection.\n *\n * @legacy @beta\n */\nexport interface IFluidParentContext\n\textends IProvideFluidHandleContext,\n\t\tPartial<IProvideFluidDataStoreRegistry> {\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\treadonly options: Record<string | number, any>;\n\treadonly clientId: string | undefined;\n\treadonly connected: boolean;\n\t/**\n\t * Indicates if the parent context is readonly. If isReadOnly is true, the consumer of\n\t * the context should also consider themselves readonly.\n\t */\n\treadonly isReadOnly?: () => boolean;\n\t/**\n\t * Minimum version of the FF runtime that is required to collaborate on new documents.\n\t * Consumed by {@link @fluidframework/container-runtime#FluidDataStoreContext}.\n\t * See {@link @fluidframework/container-runtime#LoadContainerRuntimeParams.minVersionForCollab} for more details.\n\t */\n\treadonly minVersionForCollab?: MinimumVersionForCollab;\n\treadonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;\n\treadonly storage: IRuntimeStorageService;\n\treadonly baseLogger: ITelemetryBaseLogger;\n\treadonly clientDetails: IClientDetails;\n\treadonly idCompressor?: IIdCompressor;\n\t/**\n\t * Represents the loading group to which the data store belongs to. Please refer to this readme for more context.\n\t * {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}\n\t */\n\treadonly loadingGroupId?: string;\n\t/**\n\t * Indicates the attachment state of the data store to a host service.\n\t */\n\treadonly attachState: AttachState;\n\n\treadonly containerRuntime: IContainerRuntimeBase;\n\n\t/**\n\t * Ambient services provided with the context\n\t */\n\treadonly scope: FluidObject;\n\n\t/**\n\t * @deprecated this functionality has been removed.\n\t */\n\treadonly gcThrowOnTombstoneUsage: boolean;\n\t/**\n\t * @deprecated this functionality has been removed.\n\t */\n\treadonly gcTombstoneEnforcementAllowed: boolean;\n\n\t/**\n\t * Returns the current quorum.\n\t */\n\tgetQuorum(): IQuorumClients;\n\n\t/**\n\t * Returns the current audience.\n\t */\n\tgetAudience(): IAudience;\n\n\t/**\n\t * Submits the message to be sent to other clients.\n\t * @param type - Type of the message.\n\t * @param content - Content of the message.\n\t * @param localOpMetadata - The local metadata associated with the message. This is kept locally and not sent to\n\t * the server. This will be sent back when this message is received back from the server. This is also sent if\n\t * we are asked to resubmit the message.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\tsubmitMessage(type: string, content: any, localOpMetadata: unknown): void;\n\n\t/**\n\t * Submits the signal to be sent to other clients.\n\t * @param type - Type of the signal.\n\t * @param content - Content of the signal. Should be an {@link IEnvelope} with `contents` that is a JSON\n\t * serializable object or primitive.\n\t * @param targetClientId - When specified, the signal is only sent to the provided client id.\n\t */\n\tsubmitSignal: (type: string, content: unknown, targetClientId?: string) => void;\n\n\t/**\n\t * Called to make the data store locally visible in the container. This happens automatically for root data stores\n\t * when they are marked as root. For non-root data stores, this happens when their handle is added to a visible DDS.\n\t */\n\tmakeLocallyVisible(): void;\n\n\t/**\n\t * Get an absolute url to the container based on the provided relativeUrl.\n\t * Returns undefined if the container or data store isn't attached to storage.\n\t * @param relativeUrl - A relative request within the container\n\t */\n\tgetAbsoluteUrl(relativeUrl: string): Promise<string | undefined>;\n\n\tgetCreateChildSummarizerNodeFn(\n\t\t/**\n\t\t * Initial id or path part of this node\n\t\t */\n\t\tid: string,\n\t\t/**\n\t\t * Information needed to create the node.\n\t\t * If it is from a base summary, it will assert that a summary has been seen.\n\t\t * Attach information if it is created from an attach op.\n\t\t * If it is local, it will throw unsupported errors on calls to summarize.\n\t\t */\n\t\tcreateParam: CreateChildSummarizerNodeParam,\n\t): CreateChildSummarizerNodeFn;\n\n\tdeleteChildSummarizerNode(id: string): void;\n\n\tuploadBlob(\n\t\tblob: ArrayBufferLike,\n\t\tsignal?: AbortSignal,\n\t): Promise<IFluidHandleInternal<ArrayBufferLike>>;\n\n\t/**\n\t * Called by IFluidDataStoreChannel, indicates that a channel is dirty and needs to be part of the summary.\n\t * @param address - The address of the channel that is dirty.\n\t */\n\tsetChannelDirty(address: string): void;\n\n\t/**\n\t * Called when a new outbound reference is added to another node. This is used by garbage collection to identify\n\t * all references added in the system.\n\t *\n\t * @param fromPath - The absolute path of the node that added the reference.\n\t * @param toPath - The absolute path of the outbound node that is referenced.\n\t * @param messageTimestampMs - The timestamp of the message that added the reference.\n\t */\n\taddedGCOutboundRoute(fromPath: string, toPath: string, messageTimestampMs?: number): void;\n}\n\n/**\n * A path which selects a {@link (IFluidDataStoreFactory:interface)} within a hierarchial registry.\n * @remarks\n * Each string in the array is the \"identifier\" to pick a specific {@link NamedFluidDataStoreRegistryEntry2} within a {@link NamedFluidDataStoreRegistryEntries}.\n *\n * Due to some usages joining this array with \"/\", it is recommended to avoid using \"/\" in the strings.\n * @legacy @beta\n */\nexport type PackagePath = readonly string[];\n\n/**\n * Extension to {@link IFluidParentContext} specifically for {@link IDataStore}s.\n *\n * @remarks\n * This context is provided to the implementation of {@link IFluidDataStoreChannel} which powers the datastore.\n *\n * @legacy @beta\n */\nexport interface IFluidDataStoreContext extends IFluidParentContext {\n\treadonly id: string;\n\t/**\n\t * A data store created by a client, is a local data store for that client. Also, when a detached container loads\n\t * from a snapshot, all the data stores are treated as local data stores because at that stage the container\n\t * still doesn't exists in storage and so the data store couldn't have been created by any other client.\n\t * Value of this never changes even after the data store is attached.\n\t * As implementer of data store runtime, you can use this property to check that this data store belongs to this\n\t * client and hence implement any scenario based on that.\n\t */\n\treadonly isLocalDataStore: boolean;\n\t/**\n\t * The {@link PackagePath} of the data store as per the package factory.\n\t * @remarks\n\t * This defines what {@link (IFluidDataStoreFactory:interface)} would be used to create the {@link IDataStore.entryPoint} of the {@link IDataStore}.\n\t */\n\treadonly packagePath: PackagePath;\n\treadonly baseSnapshot: ISnapshotTree | undefined;\n\n\t/**\n\t * @deprecated 0.16 Issue #1635, #3631\n\t */\n\t// Seems like this can be removed now; the issues mentioned in the @deprecated tag are about _createDataStoreWithProps\n\t// which we finally removed in FF 2.20 (https://github.com/microsoft/FluidFramework/pull/22996).\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any -- TODO (#28746): breaking change\n\treadonly createProps?: any;\n\n\t/**\n\t * @deprecated The functionality to get base GC details has been moved to summarizer node.\n\t *\n\t * Returns the GC details in the initial summary of this data store. This is used to initialize the data store\n\t * and its children with the GC details from the previous summary.\n\t */\n\tgetBaseGCDetails(): Promise<IGarbageCollectionDetailsBase>;\n\n\t/**\n\t * Synchronously creates a detached child data store.\n\t *\n\t * The `createChildDataStore` method allows for the synchronous creation of a detached child data store. This is particularly\n\t * useful in scenarios where immediate availability of the child data store is required, such as during the initialization\n\t * of a parent data store, or when creation is in response to synchronous user input.\n\t *\n\t * In order for this function to succeed:\n\t * 1. The parent data store's factory must also be an `IFluidDataStoreRegistry`.\n\t * 2. The parent data store's registry must include the same instance as the provided child factory.\n\t * 3. The parent data store's registry must synchronously provide the child factory via the `getSync` method.\n\t * 4. The child factory must implement the `createDataStore` method.\n\t *\n\t * These invariants ensure that the child data store can also be created by a remote client running the same code as this client.\n\t *\n\t * @param childFactory - The factory of the data store to be created.\n\t * @returns The created data store channel.\n\t */\n\tcreateChildDataStore?<T extends IFluidDataStoreFactory>(\n\t\tchildFactory: T,\n\t): ReturnType<Exclude<T[\"createDataStore\"], undefined>>;\n}\n\n/**\n * Internal extension to {@link IFluidDataStoreContext} for use across FluidFramework packages.\n *\n * @remarks\n * Important: this interface does cross layer boundaries and must follow `@legacy`\n * layer compatibility patterns.\n * This is meant to be a staging ground ahead of adding properties to {@link IFluidDataStoreContext}.\n *\n * @internal\n */\nexport interface FluidDataStoreContextInternal\n\textends IFluidDataStoreContext,\n\t\tContainerExtensionProvider {}\n\n/**\n * @legacy @beta\n */\nexport interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {\n\t/**\n\t * Binds a runtime to the context.\n\t */\n\tattachRuntime(\n\t\tfactory: IProvideFluidDataStoreFactory,\n\t\tdataStoreRuntime: IFluidDataStoreChannel,\n\t): Promise<IDataStore>;\n}\n"]}
package/lib/index.d.ts CHANGED
@@ -3,7 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  export type { AttributionInfo, AttributionKey, DetachedAttributionKey, LocalAttributionKey, OpAttributionKey, } from "./attribution.js";
6
- export type { AliasResult, CreateChildSummarizerNodeFn, IContainerRuntimeBase, IContainerRuntimeBaseEvents, IDataStore, IFluidDataStoreChannel, IFluidDataStorePolicies, IFluidDataStoreContext, IFluidParentContext, IFluidDataStoreContextDetached, IPendingMessagesState, PackagePath, } from "./dataStoreContext.js";
6
+ export type { ContainerExtensionId, ContainerExtensionProvider, ContainerExtensionExpectations, ExtensionCompatibilityDetails, UnknownExtensionInstantiation, } from "./containerExtensionProvider.js";
7
+ export type { AliasResult, CreateChildSummarizerNodeFn, FluidDataStoreContextInternal, IContainerRuntimeBase, IContainerRuntimeBaseEvents, IDataStore, IFluidDataStoreChannel, IFluidDataStorePolicies, IFluidDataStoreContext, IFluidParentContext, IFluidDataStoreContextDetached, IPendingMessagesState, PackagePath, } from "./dataStoreContext.js";
7
8
  export { FlushMode, FlushModeExperimental, VisibilityState } from "./dataStoreContext.js";
8
9
  export type { IProvideFluidDataStoreFactory } from "./dataStoreFactory.js";
9
10
  export { IFluidDataStoreFactory } from "./dataStoreFactory.js";
@@ -11,10 +12,10 @@ export type { FluidDataStoreRegistryEntry, IProvideFluidDataStoreRegistry, Named
11
12
  export { IFluidDataStoreRegistry } from "./dataStoreRegistry.js";
12
13
  export type { IGarbageCollectionData, IGarbageCollectionDetailsBase, } from "./garbageCollectionDefinitions.js";
13
14
  export { gcBlobPrefix, gcDataBlobKey, gcDeletedBlobKey, gcTombstoneBlobKey, gcTreeKey, } from "./garbageCollectionDefinitions.js";
14
- export type { IAttachMessage, IEnvelope, IInboundSignalMessage, InboundAttachMessage, IRuntimeMessageCollection, IRuntimeMessagesContent, ISequencedMessageEnvelope, IRuntimeStorageService, } from "./protocol.js";
15
+ export type { FluidDataStoreMessage, IAttachMessage, IEnvelope, IInboundSignalMessage, InboundAttachMessage, IRuntimeMessageCollection, IRuntimeMessagesContent, ISequencedMessageEnvelope, IRuntimeStorageService, } from "./protocol.js";
15
16
  export { encodeHandlesInContainerRuntime, notifiesReadOnlyState, } from "./runtimeLayerCompatFeatureNames.js";
16
17
  export type { CreateChildSummarizerNodeParam, IExperimentalIncrementalSummaryContext, ISummarizeInternalResult, ISummarizeResult, ISummarizerNode, ISummarizerNodeConfig, ISummarizerNodeConfigWithGC, ISummarizerNodeWithGC, ISummaryStats, ISummaryTreeWithStats, ITelemetryContext, ITelemetryContextExt, SummarizeInternalFn, } from "./summary.js";
17
18
  export { blobCountPropertyName, channelsTreeName, CreateSummarizerNodeSource, totalBlobSizePropertyName, } from "./summary.js";
18
19
  export type { MinimumVersionForCollab } from "./compatibilityDefinitions.js";
19
- export { type ContainerRuntimeBaseAlpha, type StageControlsAlpha, type CommitStagedChangesOptionsExperimental, type IContainerRuntimeBaseExperimental, type StageControlsExperimental, asLegacyAlpha, } from "./stagingMode.js";
20
+ export { type ContainerRuntimeBaseAlpha, type StageControlsAlpha, type CommitStagedChangesOptionsInternal, type IContainerRuntimeBaseInternal, type StageControlsInternal, asLegacyAlpha, } from "./stagingMode.js";
20
21
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACX,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACX,WAAW,EACX,2BAA2B,EAC3B,qBAAqB,EACrB,2BAA2B,EAC3B,UAAU,EACV,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,qBAAqB,EACrB,WAAW,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1F,YAAY,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EACX,2BAA2B,EAC3B,8BAA8B,EAC9B,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,GACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EACX,sBAAsB,EACtB,6BAA6B,GAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,GACT,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACX,cAAc,EACd,SAAS,EACT,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,+BAA+B,EAC/B,qBAAqB,GACrB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EACX,8BAA8B,EAC9B,sCAAsC,EACtC,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EACN,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,sCAAsC,EAC3C,KAAK,iCAAiC,EACtC,KAAK,yBAAyB,EAC9B,aAAa,GACb,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACX,eAAe,EACf,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,GAChB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACX,oBAAoB,EACpB,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,6BAA6B,GAC7B,MAAM,iCAAiC,CAAC;AACzC,YAAY,EACX,WAAW,EACX,2BAA2B,EAC3B,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC3B,UAAU,EACV,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,8BAA8B,EAC9B,qBAAqB,EACrB,WAAW,GACX,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC1F,YAAY,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,YAAY,EACX,2BAA2B,EAC3B,8BAA8B,EAC9B,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,GACjC,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACjE,YAAY,EACX,sBAAsB,EACtB,6BAA6B,GAC7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,GACT,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACX,qBAAqB,EACrB,cAAc,EACd,SAAS,EACT,qBAAqB,EACrB,oBAAoB,EACpB,yBAAyB,EACzB,uBAAuB,EACvB,yBAAyB,EACzB,sBAAsB,GACtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACN,+BAA+B,EAC/B,qBAAqB,GACrB,MAAM,qCAAqC,CAAC;AAC7C,YAAY,EACX,8BAA8B,EAC9B,sCAAsC,EACtC,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,qBAAqB,EACrB,2BAA2B,EAC3B,qBAAqB,EACrB,aAAa,EACb,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAE7E,OAAO,EACN,KAAK,yBAAyB,EAC9B,KAAK,kBAAkB,EACvB,KAAK,kCAAkC,EACvC,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,EAC1B,aAAa,GACb,MAAM,kBAAkB,CAAC"}
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAuBH,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAQ/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAKjE,OAAO,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,GACT,MAAM,mCAAmC,CAAC;AAW3C,OAAO,EACN,+BAA+B,EAC/B,qBAAqB,GACrB,MAAM,qCAAqC,CAAC;AAgB7C,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAMN,aAAa,GACb,MAAM,kBAAkB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type {\n\tAttributionInfo,\n\tAttributionKey,\n\tDetachedAttributionKey,\n\tLocalAttributionKey,\n\tOpAttributionKey,\n} from \"./attribution.js\";\nexport type {\n\tAliasResult,\n\tCreateChildSummarizerNodeFn,\n\tIContainerRuntimeBase,\n\tIContainerRuntimeBaseEvents,\n\tIDataStore,\n\tIFluidDataStoreChannel,\n\tIFluidDataStorePolicies,\n\tIFluidDataStoreContext,\n\tIFluidParentContext,\n\tIFluidDataStoreContextDetached,\n\tIPendingMessagesState,\n\tPackagePath,\n} from \"./dataStoreContext.js\";\nexport { FlushMode, FlushModeExperimental, VisibilityState } from \"./dataStoreContext.js\";\nexport type { IProvideFluidDataStoreFactory } from \"./dataStoreFactory.js\";\nexport { IFluidDataStoreFactory } from \"./dataStoreFactory.js\";\nexport type {\n\tFluidDataStoreRegistryEntry,\n\tIProvideFluidDataStoreRegistry,\n\tNamedFluidDataStoreRegistryEntries,\n\tNamedFluidDataStoreRegistryEntry,\n\tNamedFluidDataStoreRegistryEntry2,\n} from \"./dataStoreRegistry.js\";\nexport { IFluidDataStoreRegistry } from \"./dataStoreRegistry.js\";\nexport type {\n\tIGarbageCollectionData,\n\tIGarbageCollectionDetailsBase,\n} from \"./garbageCollectionDefinitions.js\";\nexport {\n\tgcBlobPrefix,\n\tgcDataBlobKey,\n\tgcDeletedBlobKey,\n\tgcTombstoneBlobKey,\n\tgcTreeKey,\n} from \"./garbageCollectionDefinitions.js\";\nexport type {\n\tIAttachMessage,\n\tIEnvelope,\n\tIInboundSignalMessage,\n\tInboundAttachMessage,\n\tIRuntimeMessageCollection,\n\tIRuntimeMessagesContent,\n\tISequencedMessageEnvelope,\n\tIRuntimeStorageService,\n} from \"./protocol.js\";\nexport {\n\tencodeHandlesInContainerRuntime,\n\tnotifiesReadOnlyState,\n} from \"./runtimeLayerCompatFeatureNames.js\";\nexport type {\n\tCreateChildSummarizerNodeParam,\n\tIExperimentalIncrementalSummaryContext,\n\tISummarizeInternalResult,\n\tISummarizeResult,\n\tISummarizerNode,\n\tISummarizerNodeConfig,\n\tISummarizerNodeConfigWithGC,\n\tISummarizerNodeWithGC,\n\tISummaryStats,\n\tISummaryTreeWithStats,\n\tITelemetryContext,\n\tITelemetryContextExt,\n\tSummarizeInternalFn,\n} from \"./summary.js\";\nexport {\n\tblobCountPropertyName,\n\tchannelsTreeName,\n\tCreateSummarizerNodeSource,\n\ttotalBlobSizePropertyName,\n} from \"./summary.js\";\nexport type { MinimumVersionForCollab } from \"./compatibilityDefinitions.js\";\n\nexport {\n\ttype ContainerRuntimeBaseAlpha,\n\ttype StageControlsAlpha,\n\ttype CommitStagedChangesOptionsExperimental,\n\ttype IContainerRuntimeBaseExperimental,\n\ttype StageControlsExperimental,\n\tasLegacyAlpha,\n} from \"./stagingMode.js\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE1F,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAQ/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAKjE,OAAO,EACN,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,GACT,MAAM,mCAAmC,CAAC;AAY3C,OAAO,EACN,+BAA+B,EAC/B,qBAAqB,GACrB,MAAM,qCAAqC,CAAC;AAgB7C,OAAO,EACN,qBAAqB,EACrB,gBAAgB,EAChB,0BAA0B,EAC1B,yBAAyB,GACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAMN,aAAa,GACb,MAAM,kBAAkB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type {\n\tAttributionInfo,\n\tAttributionKey,\n\tDetachedAttributionKey,\n\tLocalAttributionKey,\n\tOpAttributionKey,\n} from \"./attribution.js\";\nexport type {\n\tContainerExtensionId,\n\tContainerExtensionProvider,\n\tContainerExtensionExpectations,\n\tExtensionCompatibilityDetails,\n\tUnknownExtensionInstantiation,\n} from \"./containerExtensionProvider.js\";\nexport type {\n\tAliasResult,\n\tCreateChildSummarizerNodeFn,\n\tFluidDataStoreContextInternal,\n\tIContainerRuntimeBase,\n\tIContainerRuntimeBaseEvents,\n\tIDataStore,\n\tIFluidDataStoreChannel,\n\tIFluidDataStorePolicies,\n\tIFluidDataStoreContext,\n\tIFluidParentContext,\n\tIFluidDataStoreContextDetached,\n\tIPendingMessagesState,\n\tPackagePath,\n} from \"./dataStoreContext.js\";\nexport { FlushMode, FlushModeExperimental, VisibilityState } from \"./dataStoreContext.js\";\nexport type { IProvideFluidDataStoreFactory } from \"./dataStoreFactory.js\";\nexport { IFluidDataStoreFactory } from \"./dataStoreFactory.js\";\nexport type {\n\tFluidDataStoreRegistryEntry,\n\tIProvideFluidDataStoreRegistry,\n\tNamedFluidDataStoreRegistryEntries,\n\tNamedFluidDataStoreRegistryEntry,\n\tNamedFluidDataStoreRegistryEntry2,\n} from \"./dataStoreRegistry.js\";\nexport { IFluidDataStoreRegistry } from \"./dataStoreRegistry.js\";\nexport type {\n\tIGarbageCollectionData,\n\tIGarbageCollectionDetailsBase,\n} from \"./garbageCollectionDefinitions.js\";\nexport {\n\tgcBlobPrefix,\n\tgcDataBlobKey,\n\tgcDeletedBlobKey,\n\tgcTombstoneBlobKey,\n\tgcTreeKey,\n} from \"./garbageCollectionDefinitions.js\";\nexport type {\n\tFluidDataStoreMessage,\n\tIAttachMessage,\n\tIEnvelope,\n\tIInboundSignalMessage,\n\tInboundAttachMessage,\n\tIRuntimeMessageCollection,\n\tIRuntimeMessagesContent,\n\tISequencedMessageEnvelope,\n\tIRuntimeStorageService,\n} from \"./protocol.js\";\nexport {\n\tencodeHandlesInContainerRuntime,\n\tnotifiesReadOnlyState,\n} from \"./runtimeLayerCompatFeatureNames.js\";\nexport type {\n\tCreateChildSummarizerNodeParam,\n\tIExperimentalIncrementalSummaryContext,\n\tISummarizeInternalResult,\n\tISummarizeResult,\n\tISummarizerNode,\n\tISummarizerNodeConfig,\n\tISummarizerNodeConfigWithGC,\n\tISummarizerNodeWithGC,\n\tISummaryStats,\n\tISummaryTreeWithStats,\n\tITelemetryContext,\n\tITelemetryContextExt,\n\tSummarizeInternalFn,\n} from \"./summary.js\";\nexport {\n\tblobCountPropertyName,\n\tchannelsTreeName,\n\tCreateSummarizerNodeSource,\n\ttotalBlobSizePropertyName,\n} from \"./summary.js\";\nexport type { MinimumVersionForCollab } from \"./compatibilityDefinitions.js\";\n\nexport {\n\ttype ContainerRuntimeBaseAlpha,\n\ttype StageControlsAlpha,\n\ttype CommitStagedChangesOptionsInternal,\n\ttype IContainerRuntimeBaseInternal,\n\ttype StageControlsInternal,\n\tasLegacyAlpha,\n} from \"./stagingMode.js\";\n"]}