@fluidframework/runtime-definitions 2.0.2 → 2.1.0-276326
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api-extractor/api-extractor.legacy.json +4 -0
- package/api-report/runtime-definitions.beta.api.md +0 -28
- package/api-report/{runtime-definitions.alpha.api.md → runtime-definitions.legacy.alpha.api.md} +0 -28
- package/api-report/runtime-definitions.public.api.md +0 -28
- package/dist/attribution.d.ts +5 -0
- package/dist/attribution.d.ts.map +1 -1
- package/dist/attribution.js.map +1 -1
- package/dist/dataStoreContext.d.ts +12 -0
- package/dist/dataStoreContext.d.ts.map +1 -1
- package/dist/dataStoreContext.js +2 -0
- package/dist/dataStoreContext.js.map +1 -1
- package/dist/dataStoreFactory.d.ts +3 -0
- package/dist/dataStoreFactory.d.ts.map +1 -1
- package/dist/dataStoreFactory.js +1 -0
- package/dist/dataStoreFactory.js.map +1 -1
- package/dist/dataStoreRegistry.d.ts +6 -0
- package/dist/dataStoreRegistry.d.ts.map +1 -1
- package/dist/dataStoreRegistry.js +1 -0
- package/dist/dataStoreRegistry.js.map +1 -1
- package/dist/garbageCollectionDefinitions.d.ts +2 -0
- package/dist/garbageCollectionDefinitions.d.ts.map +1 -1
- package/dist/garbageCollectionDefinitions.js.map +1 -1
- package/dist/legacy.d.ts +1 -1
- package/dist/protocol.d.ts +4 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/protocol.js.map +1 -1
- package/dist/summary.d.ts +13 -0
- package/dist/summary.d.ts.map +1 -1
- package/dist/summary.js +1 -0
- package/dist/summary.js.map +1 -1
- package/lib/attribution.d.ts +5 -0
- package/lib/attribution.d.ts.map +1 -1
- package/lib/attribution.js.map +1 -1
- package/lib/dataStoreContext.d.ts +12 -0
- package/lib/dataStoreContext.d.ts.map +1 -1
- package/lib/dataStoreContext.js +2 -0
- package/lib/dataStoreContext.js.map +1 -1
- package/lib/dataStoreFactory.d.ts +3 -0
- package/lib/dataStoreFactory.d.ts.map +1 -1
- package/lib/dataStoreFactory.js +1 -0
- package/lib/dataStoreFactory.js.map +1 -1
- package/lib/dataStoreRegistry.d.ts +6 -0
- package/lib/dataStoreRegistry.d.ts.map +1 -1
- package/lib/dataStoreRegistry.js +1 -0
- package/lib/dataStoreRegistry.js.map +1 -1
- package/lib/garbageCollectionDefinitions.d.ts +2 -0
- package/lib/garbageCollectionDefinitions.d.ts.map +1 -1
- package/lib/garbageCollectionDefinitions.js.map +1 -1
- package/lib/legacy.d.ts +1 -1
- package/lib/protocol.d.ts +4 -0
- package/lib/protocol.d.ts.map +1 -1
- package/lib/protocol.js.map +1 -1
- package/lib/summary.d.ts +13 -0
- package/lib/summary.d.ts.map +1 -1
- package/lib/summary.js +1 -0
- package/lib/summary.js.map +1 -1
- package/package.json +17 -40
- package/src/attribution.ts +5 -0
- package/src/dataStoreContext.ts +12 -0
- package/src/dataStoreFactory.ts +3 -0
- package/src/dataStoreRegistry.ts +6 -0
- package/src/garbageCollectionDefinitions.ts +2 -0
- package/src/protocol.ts +4 -0
- package/src/summary.ts +13 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataStoreRegistry.d.ts","sourceRoot":"","sources":["../src/dataStoreRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAE3E
|
|
1
|
+
{"version":3,"file":"dataStoreRegistry.d.ts","sourceRoot":"","sources":["../src/dataStoreRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,MAAM,2BAA2B,GAAG,QAAQ,CACjD,OAAO,CAAC,8BAA8B,GAAG,6BAA6B,CAAC,CACvE,CAAC;AACF;;;;;GAKG;AACH,MAAM,MAAM,gCAAgC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC,CAAC;AAC9F;;;;GAIG;AACH,MAAM,MAAM,kCAAkC,GAAG,QAAQ,CAAC,gCAAgC,CAAC,CAAC;AAE5F;;;GAGG;AACH,eAAO,MAAM,uBAAuB,EAAE,MAAM,8BAClB,CAAC;AAE3B;;;GAGG;AACH,MAAM,WAAW,8BAA8B;IAC9C,QAAQ,CAAC,uBAAuB,EAAE,uBAAuB,CAAC;CAC1D;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAwB,SAAQ,8BAA8B;IAC9E,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,2BAA2B,GAAG,SAAS,CAAC,CAAC;CACpE"}
|
package/lib/dataStoreRegistry.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataStoreRegistry.js","sourceRoot":"","sources":["../src/dataStoreRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"dataStoreRegistry.js","sourceRoot":"","sources":["../src/dataStoreRegistry.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA2BH;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GACnC,yBAAyB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IProvideFluidDataStoreFactory } from \"./dataStoreFactory.js\";\n\n/**\n * A single registry entry that may be used to create data stores\n * It has to have either factory or registry, or both.\n * @legacy\n * @alpha\n */\nexport type FluidDataStoreRegistryEntry = Readonly<\n\tPartial<IProvideFluidDataStoreRegistry & IProvideFluidDataStoreFactory>\n>;\n/**\n * An associated pair of an identifier and registry entry. Registry entries\n * may be dynamically loaded.\n * @legacy\n * @alpha\n */\nexport type NamedFluidDataStoreRegistryEntry = [string, Promise<FluidDataStoreRegistryEntry>];\n/**\n * An iterable identifier/registry entry pair list\n * @legacy\n * @alpha\n */\nexport type NamedFluidDataStoreRegistryEntries = Iterable<NamedFluidDataStoreRegistryEntry>;\n\n/**\n * @legacy\n * @alpha\n */\nexport const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry =\n\t\"IFluidDataStoreRegistry\";\n\n/**\n * @legacy\n * @alpha\n */\nexport interface IProvideFluidDataStoreRegistry {\n\treadonly IFluidDataStoreRegistry: IFluidDataStoreRegistry;\n}\n\n/**\n * An association of identifiers to data store registry entries, where the\n * entries can be used to create data stores.\n * @legacy\n * @alpha\n */\nexport interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {\n\tget(name: string): Promise<FluidDataStoreRegistryEntry | undefined>;\n}\n"]}
|
|
@@ -35,6 +35,7 @@ export declare const gcDataBlobKey = ".gcdata";
|
|
|
35
35
|
/**
|
|
36
36
|
* Garbage collection data returned by nodes in a Container.
|
|
37
37
|
* Used for running GC in the Container.
|
|
38
|
+
* @legacy
|
|
38
39
|
* @alpha
|
|
39
40
|
*/
|
|
40
41
|
export interface IGarbageCollectionData {
|
|
@@ -47,6 +48,7 @@ export interface IGarbageCollectionData {
|
|
|
47
48
|
}
|
|
48
49
|
/**
|
|
49
50
|
* GC details provided to each node during creation.
|
|
51
|
+
* @legacy
|
|
50
52
|
* @alpha
|
|
51
53
|
*/
|
|
52
54
|
export interface IGarbageCollectionDetailsBase {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garbageCollectionDefinitions.d.ts","sourceRoot":"","sources":["../src/garbageCollectionDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,SAAS,OAAO,CAAC;AAC9B;;;;GAIG;AACH,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD;;;;GAIG;AACH,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC
|
|
1
|
+
{"version":3,"file":"garbageCollectionDefinitions.d.ts","sourceRoot":"","sources":["../src/garbageCollectionDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,eAAO,MAAM,SAAS,OAAO,CAAC;AAC9B;;;;GAIG;AACH,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC;;;;GAIG;AACH,eAAO,MAAM,kBAAkB,iBAAiB,CAAC;AACjD;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,mBAAmB,CAAC;AACjD;;;;GAIG;AACH,eAAO,MAAM,aAAa,YAAY,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACtC;;OAEG;IACH,OAAO,EAAE;QAAE,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;KAAE,CAAC;CACpC;AAED;;;;GAIG;AACH,MAAM,WAAW,6BAA6B;IAC7C;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB;;OAEG;IACH,MAAM,CAAC,EAAE,sBAAsB,CAAC;CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"garbageCollectionDefinitions.js","sourceRoot":"","sources":["../src/garbageCollectionDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AACnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AACjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * The key for the GC tree in summary.\n *\n * @internal\n */\nexport const gcTreeKey = \"gc\";\n/**\n * The prefix for GC blobs in the GC tree in summary.\n *\n * @internal\n */\nexport const gcBlobPrefix = \"__gc\";\n/**\n * The key for tombstone blob in the GC tree in summary.\n *\n * @internal\n */\nexport const gcTombstoneBlobKey = \"__tombstones\";\n/**\n * The key for deleted nodes blob in the GC tree in summary.\n *\n * @internal\n */\nexport const gcDeletedBlobKey = \"__deletedNodes\";\n/**\n * The key for the GC Data blob in attach summaries.\n *\n * @internal\n */\nexport const gcDataBlobKey = \".gcdata\";\n\n/**\n * Garbage collection data returned by nodes in a Container.\n * Used for running GC in the Container.\n * @alpha\n */\nexport interface IGarbageCollectionData {\n\t/**\n\t * The GC nodes of a Fluid object in the Container. Each node has an id and a set of routes to other GC nodes.\n\t */\n\tgcNodes: { [id: string]: string[] };\n}\n\n/**\n * GC details provided to each node during creation.\n * @alpha\n */\nexport interface IGarbageCollectionDetailsBase {\n\t/**\n\t * A list of routes to Fluid objects that are used in this node.\n\t */\n\tusedRoutes?: string[];\n\t/**\n\t * The GC data of this node.\n\t */\n\tgcData?: IGarbageCollectionData;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"garbageCollectionDefinitions.js","sourceRoot":"","sources":["../src/garbageCollectionDefinitions.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,CAAC;AAC9B;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AACnC;;;;GAIG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,cAAc,CAAC;AACjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AACjD;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,SAAS,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * The key for the GC tree in summary.\n *\n * @internal\n */\nexport const gcTreeKey = \"gc\";\n/**\n * The prefix for GC blobs in the GC tree in summary.\n *\n * @internal\n */\nexport const gcBlobPrefix = \"__gc\";\n/**\n * The key for tombstone blob in the GC tree in summary.\n *\n * @internal\n */\nexport const gcTombstoneBlobKey = \"__tombstones\";\n/**\n * The key for deleted nodes blob in the GC tree in summary.\n *\n * @internal\n */\nexport const gcDeletedBlobKey = \"__deletedNodes\";\n/**\n * The key for the GC Data blob in attach summaries.\n *\n * @internal\n */\nexport const gcDataBlobKey = \".gcdata\";\n\n/**\n * Garbage collection data returned by nodes in a Container.\n * Used for running GC in the Container.\n * @legacy\n * @alpha\n */\nexport interface IGarbageCollectionData {\n\t/**\n\t * The GC nodes of a Fluid object in the Container. Each node has an id and a set of routes to other GC nodes.\n\t */\n\tgcNodes: { [id: string]: string[] };\n}\n\n/**\n * GC details provided to each node during creation.\n * @legacy\n * @alpha\n */\nexport interface IGarbageCollectionDetailsBase {\n\t/**\n\t * A list of routes to Fluid objects that are used in this node.\n\t */\n\tusedRoutes?: string[];\n\t/**\n\t * The GC data of this node.\n\t */\n\tgcData?: IGarbageCollectionData;\n}\n"]}
|
package/lib/legacy.d.ts
CHANGED
package/lib/protocol.d.ts
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
import type { ITree, ISignalMessage } from "@fluidframework/driver-definitions/internal";
|
|
6
6
|
/**
|
|
7
7
|
* An envelope wraps the contents with the intended target
|
|
8
|
+
* @legacy
|
|
8
9
|
* @alpha
|
|
9
10
|
*/
|
|
10
11
|
export interface IEnvelope {
|
|
@@ -40,6 +41,7 @@ export interface ISignalEnvelope {
|
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* Represents ISignalMessage with its type.
|
|
44
|
+
* @legacy
|
|
43
45
|
* @alpha
|
|
44
46
|
*/
|
|
45
47
|
export interface IInboundSignalMessage extends ISignalMessage {
|
|
@@ -48,6 +50,7 @@ export interface IInboundSignalMessage extends ISignalMessage {
|
|
|
48
50
|
/**
|
|
49
51
|
* Message send by client attaching local data structure.
|
|
50
52
|
* Contains snapshot of data structure which is the current state of this data structure.
|
|
53
|
+
* @legacy
|
|
51
54
|
* @alpha
|
|
52
55
|
*/
|
|
53
56
|
export interface IAttachMessage {
|
|
@@ -69,6 +72,7 @@ export interface IAttachMessage {
|
|
|
69
72
|
* but it should not be used when creating a new attach op.
|
|
70
73
|
* Older versions of attach messages could have null snapshots,
|
|
71
74
|
* so this gives correct typings for writing backward compatible code.
|
|
75
|
+
* @legacy
|
|
72
76
|
* @alpha
|
|
73
77
|
*/
|
|
74
78
|
export type InboundAttachMessage = Omit<IAttachMessage, "snapshot"> & {
|
package/lib/protocol.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAEzF
|
|
1
|
+
{"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../src/protocol.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAEzF;;;;GAIG;AACH,MAAM,WAAW,SAAS;IACzB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,QAAQ,EAAE,GAAG,CAAC;CACd;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,0BAA0B,EAAE,MAAM,CAAC;IAEnC;;OAEG;IACH,QAAQ,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,GAAG,CAAC;KACb,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC5D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;CACtB;AAED;;;;;GAKG;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;;;;;;;GAOG;AACH,MAAM,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG;IACrE,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC;CAC5C,CAAC"}
|
package/lib/protocol.js.map
CHANGED
|
@@ -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 { ITree, ISignalMessage } from \"@fluidframework/driver-definitions/internal\";\n\n/**\n * An envelope wraps the contents with the intended target\n * @alpha\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\tcontents: any;\n}\n\n/**\n * @internal\n * @deprecated - This interface is now moved to `@fluidframework/container-definitions` package. Please import from that package.\n */\nexport interface ISignalEnvelope {\n\t/**\n\t * The target for the envelope, undefined for the container\n\t */\n\taddress?: string;\n\n\t/**\n\t * Identifier for the signal being submitted.\n\t */\n\tclientSignalSequenceNumber: number;\n\n\t/**\n\t * The contents of the envelope\n\t */\n\tcontents: {\n\t\ttype: string;\n\t\tcontent: any;\n\t};\n}\n\n/**\n * Represents ISignalMessage with its type.\n * @alpha\n */\nexport interface IInboundSignalMessage extends ISignalMessage {\n\treadonly type: string;\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 * @alpha\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 * @alpha\n */\nexport type InboundAttachMessage = Omit<IAttachMessage, \"snapshot\"> & {\n\tsnapshot: IAttachMessage[\"snapshot\"] | null;\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 { ITree, ISignalMessage } from \"@fluidframework/driver-definitions/internal\";\n\n/**\n * An envelope wraps the contents with the intended target\n * @legacy\n * @alpha\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\tcontents: any;\n}\n\n/**\n * @internal\n * @deprecated - This interface is now moved to `@fluidframework/container-definitions` package. Please import from that package.\n */\nexport interface ISignalEnvelope {\n\t/**\n\t * The target for the envelope, undefined for the container\n\t */\n\taddress?: string;\n\n\t/**\n\t * Identifier for the signal being submitted.\n\t */\n\tclientSignalSequenceNumber: number;\n\n\t/**\n\t * The contents of the envelope\n\t */\n\tcontents: {\n\t\ttype: string;\n\t\tcontent: any;\n\t};\n}\n\n/**\n * Represents ISignalMessage with its type.\n * @legacy\n * @alpha\n */\nexport interface IInboundSignalMessage extends ISignalMessage {\n\treadonly type: string;\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\n * @alpha\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\n * @alpha\n */\nexport type InboundAttachMessage = Omit<IAttachMessage, \"snapshot\"> & {\n\tsnapshot: IAttachMessage[\"snapshot\"] | null;\n};\n"]}
|
package/lib/summary.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import type { TelemetryEventPropertyTypeExt } from "@fluidframework/telemetry-ut
|
|
|
9
9
|
import type { IGarbageCollectionData, IGarbageCollectionDetailsBase } from "./garbageCollectionDefinitions.js";
|
|
10
10
|
/**
|
|
11
11
|
* Contains the aggregation data from a Tree/Subtree.
|
|
12
|
+
* @legacy
|
|
12
13
|
* @alpha
|
|
13
14
|
*/
|
|
14
15
|
export interface ISummaryStats {
|
|
@@ -24,6 +25,7 @@ export interface ISummaryStats {
|
|
|
24
25
|
* each of its DDS.
|
|
25
26
|
* Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject
|
|
26
27
|
* will be taking part of the summarization process.
|
|
28
|
+
* @legacy
|
|
27
29
|
* @alpha
|
|
28
30
|
*/
|
|
29
31
|
export interface ISummaryTreeWithStats {
|
|
@@ -39,6 +41,7 @@ export interface ISummaryTreeWithStats {
|
|
|
39
41
|
}
|
|
40
42
|
/**
|
|
41
43
|
* Represents a summary at a current sequence number.
|
|
44
|
+
* @legacy
|
|
42
45
|
* @alpha
|
|
43
46
|
*/
|
|
44
47
|
export interface ISummarizeResult {
|
|
@@ -59,6 +62,7 @@ export interface ISummarizeResult {
|
|
|
59
62
|
* ...
|
|
60
63
|
* "path1":
|
|
61
64
|
* ```
|
|
65
|
+
* @legacy
|
|
62
66
|
* @alpha
|
|
63
67
|
*/
|
|
64
68
|
export interface ISummarizeInternalResult extends ISummarizeResult {
|
|
@@ -71,6 +75,7 @@ export interface ISummarizeInternalResult extends ISummarizeResult {
|
|
|
71
75
|
/**
|
|
72
76
|
* @experimental - Can be deleted/changed at any time
|
|
73
77
|
* Contains the necessary information to allow DDSes to do incremental summaries
|
|
78
|
+
* @legacy
|
|
74
79
|
* @alpha
|
|
75
80
|
*/
|
|
76
81
|
export interface IExperimentalIncrementalSummaryContext {
|
|
@@ -95,10 +100,12 @@ export interface IExperimentalIncrementalSummaryContext {
|
|
|
95
100
|
summaryPath: string;
|
|
96
101
|
}
|
|
97
102
|
/**
|
|
103
|
+
* @legacy
|
|
98
104
|
* @alpha
|
|
99
105
|
*/
|
|
100
106
|
export type SummarizeInternalFn = (fullTree: boolean, trackState: boolean, telemetryContext?: ITelemetryContext, incrementalSummaryContext?: IExperimentalIncrementalSummaryContext) => Promise<ISummarizeInternalResult>;
|
|
101
107
|
/**
|
|
108
|
+
* @legacy
|
|
102
109
|
* @alpha
|
|
103
110
|
*/
|
|
104
111
|
export interface ISummarizerNodeConfig {
|
|
@@ -109,6 +116,7 @@ export interface ISummarizerNodeConfig {
|
|
|
109
116
|
readonly canReuseHandle?: boolean;
|
|
110
117
|
}
|
|
111
118
|
/**
|
|
119
|
+
* @legacy
|
|
112
120
|
* @alpha
|
|
113
121
|
*/
|
|
114
122
|
export interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {
|
|
@@ -119,6 +127,7 @@ export interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {
|
|
|
119
127
|
readonly gcDisabled?: boolean;
|
|
120
128
|
}
|
|
121
129
|
/**
|
|
130
|
+
* @legacy
|
|
122
131
|
* @alpha
|
|
123
132
|
*/
|
|
124
133
|
export declare enum CreateSummarizerNodeSource {
|
|
@@ -127,6 +136,7 @@ export declare enum CreateSummarizerNodeSource {
|
|
|
127
136
|
Local = 2
|
|
128
137
|
}
|
|
129
138
|
/**
|
|
139
|
+
* @legacy
|
|
130
140
|
* @alpha
|
|
131
141
|
*/
|
|
132
142
|
export type CreateChildSummarizerNodeParam = {
|
|
@@ -139,6 +149,7 @@ export type CreateChildSummarizerNodeParam = {
|
|
|
139
149
|
type: CreateSummarizerNodeSource.Local;
|
|
140
150
|
};
|
|
141
151
|
/**
|
|
152
|
+
* @legacy
|
|
142
153
|
* @alpha
|
|
143
154
|
*/
|
|
144
155
|
export interface ISummarizerNode {
|
|
@@ -219,6 +230,7 @@ export interface ISummarizerNode {
|
|
|
219
230
|
* `isReferenced`: This tells whether this node is referenced in the document or not.
|
|
220
231
|
*
|
|
221
232
|
* `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.
|
|
233
|
+
* @legacy
|
|
222
234
|
* @alpha
|
|
223
235
|
*/
|
|
224
236
|
export interface ISummarizerNodeWithGC extends ISummarizerNode {
|
|
@@ -298,6 +310,7 @@ export interface ITelemetryContextExt {
|
|
|
298
310
|
/**
|
|
299
311
|
* Contains telemetry data relevant to summarization workflows.
|
|
300
312
|
* This object is expected to be modified directly by various summarize methods.
|
|
313
|
+
* @legacy
|
|
301
314
|
* @alpha
|
|
302
315
|
*/
|
|
303
316
|
export interface ITelemetryContext {
|
package/lib/summary.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AACtF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,KAAK,EACX,aAAa,EACb,KAAK,EACL,WAAW,EACX,yBAAyB,EACzB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,0CAA0C,CAAC;AAE9F,OAAO,KAAK,EACX,sBAAsB,EACtB,6BAA6B,EAC7B,MAAM,mCAAmC,CAAC;AAE3C
|
|
1
|
+
{"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"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"}
|
package/lib/summary.js
CHANGED
package/lib/summary.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8IH;;GAEG;AACH,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,6EAAK,CAAA;AACN,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC;AAsKD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAwD5C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { TelemetryBaseEventPropertyType } from \"@fluidframework/core-interfaces\";\nimport type { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport type {\n\tISnapshotTree,\n\tITree,\n\tSummaryTree,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\nimport type { TelemetryEventPropertyTypeExt } from \"@fluidframework/telemetry-utils/internal\";\n\nimport type {\n\tIGarbageCollectionData,\n\tIGarbageCollectionDetailsBase,\n} from \"./garbageCollectionDefinitions.js\";\n\n/**\n * Contains the aggregation data from a Tree/Subtree.\n * @alpha\n */\nexport interface ISummaryStats {\n\ttreeNodeCount: number;\n\tblobNodeCount: number;\n\thandleNodeCount: number;\n\ttotalBlobSize: number;\n\tunreferencedBlobSize: number;\n}\n\n/**\n * Represents the summary tree for a node along with the statistics for that tree.\n * For example, for a given data store, it contains the data for data store along with a subtree for\n * each of its DDS.\n * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject\n * will be taking part of the summarization process.\n * @alpha\n */\nexport interface ISummaryTreeWithStats {\n\t/**\n\t * Represents an aggregation of node counts and blob sizes associated to the current summary information\n\t */\n\tstats: ISummaryStats;\n\t/**\n\t * A recursive data structure that will be converted to a snapshot tree and uploaded\n\t * to the backend.\n\t */\n\tsummary: ISummaryTree;\n}\n\n/**\n * Represents a summary at a current sequence number.\n * @alpha\n */\nexport interface ISummarizeResult {\n\tstats: ISummaryStats;\n\tsummary: SummaryTree;\n}\n\n/**\n * Contains the same data as ISummaryResult but in order to avoid naming collisions,\n * the data store summaries are wrapped around an array of labels identified by pathPartsForChildren.\n *\n * @example\n *\n * ```typescript\n * id:\"\"\n * pathPartsForChildren: [\"path1\"]\n * stats: ...\n * summary:\n * ...\n * \"path1\":\n * ```\n * @alpha\n */\nexport interface ISummarizeInternalResult extends ISummarizeResult {\n\tid: string;\n\t/**\n\t * Additional path parts between this node's ID and its children's IDs.\n\t */\n\tpathPartsForChildren?: string[];\n}\n\n/**\n * @experimental - Can be deleted/changed at any time\n * Contains the necessary information to allow DDSes to do incremental summaries\n * @alpha\n */\nexport interface IExperimentalIncrementalSummaryContext {\n\t/**\n\t * The sequence number of the summary generated that will be sent to the server.\n\t */\n\tsummarySequenceNumber: number;\n\t/**\n\t * The sequence number of the most recent summary that was acknowledged by the server.\n\t */\n\tlatestSummarySequenceNumber: number;\n\t/**\n\t * The path to the runtime/datastore/dds that is used to generate summary handles\n\t * Note: Summary handles are nodes of the summary tree that point to previous parts of the last successful summary\n\t * instead of being a blob or tree node\n\t *\n\t * This path contains the id of the data store and dds which should not be leaked to layers below them. Ideally,\n\t * a layer should not know its own id. This is important for channel unification work and there has been a lot of\n\t * work to remove these kinds of leakages. Some still exist, which have to be fixed but we should not be adding\n\t * more dependencies.\n\t */\n\t// TODO: remove summaryPath\n\tsummaryPath: string;\n}\n\n/**\n * @alpha\n */\nexport type SummarizeInternalFn = (\n\tfullTree: boolean,\n\ttrackState: boolean,\n\ttelemetryContext?: ITelemetryContext,\n\tincrementalSummaryContext?: IExperimentalIncrementalSummaryContext,\n) => Promise<ISummarizeInternalResult>;\n\n/**\n * @alpha\n */\nexport interface ISummarizerNodeConfig {\n\t/**\n\t * True to reuse previous handle when unchanged since last acked summary.\n\t * Defaults to true.\n\t */\n\treadonly canReuseHandle?: boolean;\n}\n\n/**\n * @alpha\n */\nexport interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {\n\t/**\n\t * True if GC is disabled. If so, don't track GC related state for a summary.\n\t * This is propagated to all child nodes.\n\t */\n\treadonly gcDisabled?: boolean;\n}\n\n/**\n * @alpha\n */\nexport enum CreateSummarizerNodeSource {\n\tFromSummary,\n\tFromAttach,\n\tLocal,\n}\n/**\n * @alpha\n */\nexport type CreateChildSummarizerNodeParam =\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromSummary;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromAttach;\n\t\t\tsequenceNumber: number;\n\t\t\tsnapshot: ITree;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.Local;\n\t };\n\n/**\n * @alpha\n */\nexport interface ISummarizerNode {\n\t/**\n\t * Latest successfully acked summary reference sequence number\n\t */\n\treadonly referenceSequenceNumber: number;\n\t/**\n\t * Marks the node as having a change with the given sequence number.\n\t * @param sequenceNumber - sequence number of change\n\t */\n\tinvalidate(sequenceNumber: number): void;\n\t/**\n\t * Calls the internal summarize function and handles internal state tracking.\n\t * @param fullTree - true to skip optimizations and always generate the full tree\n\t * @param trackState - indicates whether the summarizer node should track the state of the summary or not\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<ISummarizeResult>;\n\t/**\n\t * Checks if there are any additional path parts for children that need to\n\t * be loaded from the base summary. Additional path parts represent parts\n\t * of the path between this SummarizerNode and any child SummarizerNodes\n\t * that it might have. For example: if datastore \"a\" contains dds \"b\", but the\n\t * path is \"/a/.channels/b\", then the additional path part is \".channels\".\n\t * @param snapshot - the base summary to parse\n\t */\n\tupdateBaseSummaryState(snapshot: ISnapshotTree): void;\n\t/**\n\t * Records an op representing a change to this node/subtree.\n\t * @param op - op of change to record\n\t */\n\trecordChange(op: ISequencedDocumentMessage): void;\n\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\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\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfig,\n\t): ISummarizerNode;\n\n\tgetChild(id: string): ISummarizerNode | undefined;\n\n\t/**\n\t * True if a summary is currently in progress\n\t */\n\tisSummaryInProgress?(): boolean;\n}\n\n/**\n * Extends the functionality of ISummarizerNode to support garbage collection. It adds / updates the following APIs:\n *\n * `usedRoutes`: The routes in this node that are currently in use.\n *\n * `getGCData`: A new API that can be used to get the garbage collection data for this node.\n *\n * `summarize`: Added a trackState flag which indicates whether the summarizer node should track the state of the\n * summary or not.\n *\n * `createChild`: Added the following params:\n *\n * - `getGCDataFn`: This gets the GC data from the caller. This must be provided in order for getGCData to work.\n *\n * - `getInitialGCDetailsFn`: This gets the initial GC details from the caller.\n *\n * `deleteChild`: Deletes a child node.\n *\n * `isReferenced`: This tells whether this node is referenced in the document or not.\n *\n * `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.\n * @alpha\n */\nexport interface ISummarizerNodeWithGC extends ISummarizerNode {\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\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\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfigWithGC,\n\t\tgetGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t\t/**\n\t\t * @deprecated The functionality to update child's base GC details is incorporated in the summarizer node.\n\t\t */\n\t\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n\t): ISummarizerNodeWithGC;\n\n\t/**\n\t * Delete the child with the given id..\n\t */\n\tdeleteChild(id: string): void;\n\n\tgetChild(id: string): ISummarizerNodeWithGC | undefined;\n\n\t/**\n\t * Returns this node's data that is used for garbage collection. This includes a list of GC nodes that represent\n\t * this node. Each node has a set 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 * Tells whether this node is being referenced in this document or not. Unreferenced node will get GC'd\n\t */\n\tisReferenced(): boolean;\n\n\t/**\n\t * After GC has run, called to notify this node of routes that are used in it. These are used for the following:\n\t * 1. To identify if this node is being referenced in the document or not.\n\t * 2. To identify if this node or any of its children's used routes changed since last summary.\n\t *\n\t * @param usedRoutes - The routes that are used in this node.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n}\n\n/**\n * @internal\n */\nexport const channelsTreeName = \".channels\";\n\n/**\n * Contains telemetry data relevant to summarization workflows.\n * This object, in contrast to ITelemetryContext, is expected to be modified directly by various summarize methods.\n * @internal\n */\nexport interface ITelemetryContextExt {\n\t/**\n\t * Sets value for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @param value - value to attribute to this summary telemetry data\n\t */\n\tset(prefix: string, property: string, value: TelemetryEventPropertyTypeExt): void;\n\n\t/**\n\t * Sets multiple values for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:summarize:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"Options\")\n\t * @param values - A set of values to attribute to this summary telemetry data.\n\t */\n\tsetMultiple(\n\t\tprefix: string,\n\t\tproperty: string,\n\t\tvalues: Record<string, TelemetryEventPropertyTypeExt>,\n\t): void;\n}\n\n/**\n * Contains telemetry data relevant to summarization workflows.\n * This object is expected to be modified directly by various summarize methods.\n * @alpha\n */\nexport interface ITelemetryContext {\n\t/**\n\t * Sets value for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @param value - value to attribute to this summary telemetry data\n\t */\n\tset(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;\n\n\t/**\n\t * Sets multiple values for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:summarize:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"Options\")\n\t * @param values - A set of values to attribute to this summary telemetry data.\n\t */\n\tsetMultiple(\n\t\tprefix: string,\n\t\tproperty: string,\n\t\tvalues: Record<string, TelemetryBaseEventPropertyType>,\n\t): void;\n}\n\n/**\n * @internal\n */\nexport const blobCountPropertyName = \"BlobCount\";\n\n/**\n * @internal\n */\nexport const totalBlobSizePropertyName = \"TotalBlobSize\";\n"]}
|
|
1
|
+
{"version":3,"file":"summary.js","sourceRoot":"","sources":["../src/summary.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAsJH;;;GAGG;AACH,MAAM,CAAN,IAAY,0BAIX;AAJD,WAAY,0BAA0B;IACrC,yFAAW,CAAA;IACX,uFAAU,CAAA;IACV,6EAAK,CAAA;AACN,CAAC,EAJW,0BAA0B,KAA1B,0BAA0B,QAIrC;AAyKD;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,WAAW,CAAC;AAyD5C;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,WAAW,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { TelemetryBaseEventPropertyType } from \"@fluidframework/core-interfaces\";\nimport type { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport type {\n\tISnapshotTree,\n\tITree,\n\tSummaryTree,\n\tISequencedDocumentMessage,\n} from \"@fluidframework/driver-definitions/internal\";\nimport type { TelemetryEventPropertyTypeExt } from \"@fluidframework/telemetry-utils/internal\";\n\nimport type {\n\tIGarbageCollectionData,\n\tIGarbageCollectionDetailsBase,\n} from \"./garbageCollectionDefinitions.js\";\n\n/**\n * Contains the aggregation data from a Tree/Subtree.\n * @legacy\n * @alpha\n */\nexport interface ISummaryStats {\n\ttreeNodeCount: number;\n\tblobNodeCount: number;\n\thandleNodeCount: number;\n\ttotalBlobSize: number;\n\tunreferencedBlobSize: number;\n}\n\n/**\n * Represents the summary tree for a node along with the statistics for that tree.\n * For example, for a given data store, it contains the data for data store along with a subtree for\n * each of its DDS.\n * Any component that implements IChannelContext, IFluidDataStoreChannel or extends SharedObject\n * will be taking part of the summarization process.\n * @legacy\n * @alpha\n */\nexport interface ISummaryTreeWithStats {\n\t/**\n\t * Represents an aggregation of node counts and blob sizes associated to the current summary information\n\t */\n\tstats: ISummaryStats;\n\t/**\n\t * A recursive data structure that will be converted to a snapshot tree and uploaded\n\t * to the backend.\n\t */\n\tsummary: ISummaryTree;\n}\n\n/**\n * Represents a summary at a current sequence number.\n * @legacy\n * @alpha\n */\nexport interface ISummarizeResult {\n\tstats: ISummaryStats;\n\tsummary: SummaryTree;\n}\n\n/**\n * Contains the same data as ISummaryResult but in order to avoid naming collisions,\n * the data store summaries are wrapped around an array of labels identified by pathPartsForChildren.\n *\n * @example\n *\n * ```typescript\n * id:\"\"\n * pathPartsForChildren: [\"path1\"]\n * stats: ...\n * summary:\n * ...\n * \"path1\":\n * ```\n * @legacy\n * @alpha\n */\nexport interface ISummarizeInternalResult extends ISummarizeResult {\n\tid: string;\n\t/**\n\t * Additional path parts between this node's ID and its children's IDs.\n\t */\n\tpathPartsForChildren?: string[];\n}\n\n/**\n * @experimental - Can be deleted/changed at any time\n * Contains the necessary information to allow DDSes to do incremental summaries\n * @legacy\n * @alpha\n */\nexport interface IExperimentalIncrementalSummaryContext {\n\t/**\n\t * The sequence number of the summary generated that will be sent to the server.\n\t */\n\tsummarySequenceNumber: number;\n\t/**\n\t * The sequence number of the most recent summary that was acknowledged by the server.\n\t */\n\tlatestSummarySequenceNumber: number;\n\t/**\n\t * The path to the runtime/datastore/dds that is used to generate summary handles\n\t * Note: Summary handles are nodes of the summary tree that point to previous parts of the last successful summary\n\t * instead of being a blob or tree node\n\t *\n\t * This path contains the id of the data store and dds which should not be leaked to layers below them. Ideally,\n\t * a layer should not know its own id. This is important for channel unification work and there has been a lot of\n\t * work to remove these kinds of leakages. Some still exist, which have to be fixed but we should not be adding\n\t * more dependencies.\n\t */\n\t// TODO: remove summaryPath\n\tsummaryPath: string;\n}\n\n/**\n * @legacy\n * @alpha\n */\nexport type SummarizeInternalFn = (\n\tfullTree: boolean,\n\ttrackState: boolean,\n\ttelemetryContext?: ITelemetryContext,\n\tincrementalSummaryContext?: IExperimentalIncrementalSummaryContext,\n) => Promise<ISummarizeInternalResult>;\n\n/**\n * @legacy\n * @alpha\n */\nexport interface ISummarizerNodeConfig {\n\t/**\n\t * True to reuse previous handle when unchanged since last acked summary.\n\t * Defaults to true.\n\t */\n\treadonly canReuseHandle?: boolean;\n}\n\n/**\n * @legacy\n * @alpha\n */\nexport interface ISummarizerNodeConfigWithGC extends ISummarizerNodeConfig {\n\t/**\n\t * True if GC is disabled. If so, don't track GC related state for a summary.\n\t * This is propagated to all child nodes.\n\t */\n\treadonly gcDisabled?: boolean;\n}\n\n/**\n * @legacy\n * @alpha\n */\nexport enum CreateSummarizerNodeSource {\n\tFromSummary,\n\tFromAttach,\n\tLocal,\n}\n/**\n * @legacy\n * @alpha\n */\nexport type CreateChildSummarizerNodeParam =\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromSummary;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.FromAttach;\n\t\t\tsequenceNumber: number;\n\t\t\tsnapshot: ITree;\n\t }\n\t| {\n\t\t\ttype: CreateSummarizerNodeSource.Local;\n\t };\n\n/**\n * @legacy\n * @alpha\n */\nexport interface ISummarizerNode {\n\t/**\n\t * Latest successfully acked summary reference sequence number\n\t */\n\treadonly referenceSequenceNumber: number;\n\t/**\n\t * Marks the node as having a change with the given sequence number.\n\t * @param sequenceNumber - sequence number of change\n\t */\n\tinvalidate(sequenceNumber: number): void;\n\t/**\n\t * Calls the internal summarize function and handles internal state tracking.\n\t * @param fullTree - true to skip optimizations and always generate the full tree\n\t * @param trackState - indicates whether the summarizer node should track the state of the summary or not\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<ISummarizeResult>;\n\t/**\n\t * Checks if there are any additional path parts for children that need to\n\t * be loaded from the base summary. Additional path parts represent parts\n\t * of the path between this SummarizerNode and any child SummarizerNodes\n\t * that it might have. For example: if datastore \"a\" contains dds \"b\", but the\n\t * path is \"/a/.channels/b\", then the additional path part is \".channels\".\n\t * @param snapshot - the base summary to parse\n\t */\n\tupdateBaseSummaryState(snapshot: ISnapshotTree): void;\n\t/**\n\t * Records an op representing a change to this node/subtree.\n\t * @param op - op of change to record\n\t */\n\trecordChange(op: ISequencedDocumentMessage): void;\n\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\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\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfig,\n\t): ISummarizerNode;\n\n\tgetChild(id: string): ISummarizerNode | undefined;\n\n\t/**\n\t * True if a summary is currently in progress\n\t */\n\tisSummaryInProgress?(): boolean;\n}\n\n/**\n * Extends the functionality of ISummarizerNode to support garbage collection. It adds / updates the following APIs:\n *\n * `usedRoutes`: The routes in this node that are currently in use.\n *\n * `getGCData`: A new API that can be used to get the garbage collection data for this node.\n *\n * `summarize`: Added a trackState flag which indicates whether the summarizer node should track the state of the\n * summary or not.\n *\n * `createChild`: Added the following params:\n *\n * - `getGCDataFn`: This gets the GC data from the caller. This must be provided in order for getGCData to work.\n *\n * - `getInitialGCDetailsFn`: This gets the initial GC details from the caller.\n *\n * `deleteChild`: Deletes a child node.\n *\n * `isReferenced`: This tells whether this node is referenced in the document or not.\n *\n * `updateUsedRoutes`: Used to notify this node of routes that are currently in use in it.\n * @legacy\n * @alpha\n */\nexport interface ISummarizerNodeWithGC extends ISummarizerNode {\n\tcreateChild(\n\t\t/**\n\t\t * Summarize function\n\t\t */\n\t\tsummarizeInternalFn: SummarizeInternalFn,\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\t/**\n\t\t * Optional configuration affecting summarize behavior\n\t\t */\n\t\tconfig?: ISummarizerNodeConfigWithGC,\n\t\tgetGCDataFn?: (fullGC?: boolean) => Promise<IGarbageCollectionData>,\n\t\t/**\n\t\t * @deprecated The functionality to update child's base GC details is incorporated in the summarizer node.\n\t\t */\n\t\tgetBaseGCDetailsFn?: () => Promise<IGarbageCollectionDetailsBase>,\n\t): ISummarizerNodeWithGC;\n\n\t/**\n\t * Delete the child with the given id..\n\t */\n\tdeleteChild(id: string): void;\n\n\tgetChild(id: string): ISummarizerNodeWithGC | undefined;\n\n\t/**\n\t * Returns this node's data that is used for garbage collection. This includes a list of GC nodes that represent\n\t * this node. Each node has a set 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 * Tells whether this node is being referenced in this document or not. Unreferenced node will get GC'd\n\t */\n\tisReferenced(): boolean;\n\n\t/**\n\t * After GC has run, called to notify this node of routes that are used in it. These are used for the following:\n\t * 1. To identify if this node is being referenced in the document or not.\n\t * 2. To identify if this node or any of its children's used routes changed since last summary.\n\t *\n\t * @param usedRoutes - The routes that are used in this node.\n\t */\n\tupdateUsedRoutes(usedRoutes: string[]): void;\n}\n\n/**\n * @internal\n */\nexport const channelsTreeName = \".channels\";\n\n/**\n * Contains telemetry data relevant to summarization workflows.\n * This object, in contrast to ITelemetryContext, is expected to be modified directly by various summarize methods.\n * @internal\n */\nexport interface ITelemetryContextExt {\n\t/**\n\t * Sets value for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @param value - value to attribute to this summary telemetry data\n\t */\n\tset(prefix: string, property: string, value: TelemetryEventPropertyTypeExt): void;\n\n\t/**\n\t * Sets multiple values for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:summarize:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"Options\")\n\t * @param values - A set of values to attribute to this summary telemetry data.\n\t */\n\tsetMultiple(\n\t\tprefix: string,\n\t\tproperty: string,\n\t\tvalues: Record<string, TelemetryEventPropertyTypeExt>,\n\t): void;\n}\n\n/**\n * Contains telemetry data relevant to summarization workflows.\n * This object is expected to be modified directly by various summarize methods.\n * @legacy\n * @alpha\n */\nexport interface ITelemetryContext {\n\t/**\n\t * Sets value for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:map:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"DirectoryCount\")\n\t * @param value - value to attribute to this summary telemetry data\n\t */\n\tset(prefix: string, property: string, value: TelemetryBaseEventPropertyType): void;\n\n\t/**\n\t * Sets multiple values for telemetry data being tracked.\n\t * @param prefix - unique prefix to tag this data with (ex: \"fluid:summarize:\")\n\t * @param property - property name of the telemetry data being tracked (ex: \"Options\")\n\t * @param values - A set of values to attribute to this summary telemetry data.\n\t */\n\tsetMultiple(\n\t\tprefix: string,\n\t\tproperty: string,\n\t\tvalues: Record<string, TelemetryBaseEventPropertyType>,\n\t): void;\n}\n\n/**\n * @internal\n */\nexport const blobCountPropertyName = \"BlobCount\";\n\n/**\n * @internal\n */\nexport const totalBlobSizePropertyName = \"TotalBlobSize\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/runtime-definitions",
|
|
3
|
-
"version": "2.0
|
|
3
|
+
"version": "2.1.0-276326",
|
|
4
4
|
"description": "Fluid Runtime definitions",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -47,11 +47,11 @@
|
|
|
47
47
|
"main": "lib/index.js",
|
|
48
48
|
"types": "lib/public.d.ts",
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"@fluidframework/container-definitions": "
|
|
51
|
-
"@fluidframework/core-interfaces": "
|
|
52
|
-
"@fluidframework/driver-definitions": "
|
|
53
|
-
"@fluidframework/id-compressor": "
|
|
54
|
-
"@fluidframework/telemetry-utils": "
|
|
50
|
+
"@fluidframework/container-definitions": "2.1.0-276326",
|
|
51
|
+
"@fluidframework/core-interfaces": "2.1.0-276326",
|
|
52
|
+
"@fluidframework/driver-definitions": "2.1.0-276326",
|
|
53
|
+
"@fluidframework/id-compressor": "2.1.0-276326",
|
|
54
|
+
"@fluidframework/telemetry-utils": "2.1.0-276326"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
57
|
"@arethetypeswrong/cli": "^0.15.2",
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
"@fluidframework/build-common": "^2.0.3",
|
|
61
61
|
"@fluidframework/build-tools": "^0.39.0",
|
|
62
62
|
"@fluidframework/eslint-config-fluid": "^5.3.0",
|
|
63
|
-
"@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.0.0-rc.
|
|
63
|
+
"@fluidframework/runtime-definitions-previous": "npm:@fluidframework/runtime-definitions@2.0.0-rc.5.0.0",
|
|
64
64
|
"@microsoft/api-extractor": "^7.45.1",
|
|
65
65
|
"concurrently": "^8.2.1",
|
|
66
66
|
"copyfiles": "^2.4.1",
|
|
@@ -71,42 +71,17 @@
|
|
|
71
71
|
"typescript": "~5.4.5"
|
|
72
72
|
},
|
|
73
73
|
"typeValidation": {
|
|
74
|
-
"broken": {
|
|
75
|
-
"InterfaceDeclaration_IContainerRuntimeBase": {
|
|
76
|
-
"forwardCompat": false,
|
|
77
|
-
"backCompat": false
|
|
78
|
-
},
|
|
79
|
-
"InterfaceDeclaration_IFluidDataStoreContext": {
|
|
80
|
-
"forwardCompat": false,
|
|
81
|
-
"backCompat": false
|
|
82
|
-
},
|
|
83
|
-
"InterfaceDeclaration_IFluidDataStoreContextDetached": {
|
|
84
|
-
"forwardCompat": false,
|
|
85
|
-
"backCompat": false
|
|
86
|
-
},
|
|
87
|
-
"InterfaceDeclaration_IFluidParentContext": {
|
|
88
|
-
"forwardCompat": false,
|
|
89
|
-
"backCompat": false
|
|
90
|
-
},
|
|
91
|
-
"InterfaceDeclaration_ITelemetryContext": {
|
|
92
|
-
"backCompat": false
|
|
93
|
-
},
|
|
94
|
-
"RemovedInterfaceDeclaration_IFluidDataStoreContextEvents": {
|
|
95
|
-
"forwardCompat": false,
|
|
96
|
-
"backCompat": false
|
|
97
|
-
},
|
|
98
|
-
"InterfaceDeclaration_IFluidDataStoreChannel": {
|
|
99
|
-
"forwardCompat": false
|
|
100
|
-
}
|
|
101
|
-
}
|
|
74
|
+
"broken": {}
|
|
102
75
|
},
|
|
103
76
|
"scripts": {
|
|
104
77
|
"api": "fluid-build . --task api",
|
|
105
|
-
"api-extractor:commonjs": "flub generate entrypoints --
|
|
106
|
-
"api-extractor:esnext": "flub generate entrypoints --
|
|
78
|
+
"api-extractor:commonjs": "flub generate entrypoints --outDir ./dist",
|
|
79
|
+
"api-extractor:esnext": "flub generate entrypoints --outDir ./lib --node10TypeCompat",
|
|
107
80
|
"build": "fluid-build . --task build",
|
|
108
81
|
"build:compile": "fluid-build . --task compile",
|
|
109
|
-
"build:docs": "
|
|
82
|
+
"build:docs": "concurrently \"npm:build:docs:*\"",
|
|
83
|
+
"build:docs:current": "api-extractor run --local",
|
|
84
|
+
"build:docs:legacy": "api-extractor run --local --config api-extractor/api-extractor.legacy.json",
|
|
110
85
|
"build:esnext": "tsc --project ./tsconfig.json",
|
|
111
86
|
"build:test": "npm run build:test:esm && npm run build:test:cjs",
|
|
112
87
|
"build:test:cjs": "fluid-tsc commonjs --project ./src/test/tsconfig.cjs.json",
|
|
@@ -121,7 +96,9 @@
|
|
|
121
96
|
"check:exports:esm:public": "api-extractor run --config api-extractor/api-extractor-lint-public.esm.json",
|
|
122
97
|
"check:format": "npm run check:biome",
|
|
123
98
|
"check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
|
|
124
|
-
"ci:build:docs": "
|
|
99
|
+
"ci:build:docs": "concurrently \"npm:ci:build:docs:*\"",
|
|
100
|
+
"ci:build:docs:current": "api-extractor run",
|
|
101
|
+
"ci:build:docs:legacy": "api-extractor run --config api-extractor/api-extractor.legacy.json",
|
|
125
102
|
"clean": "rimraf --glob dist lib \"*.d.ts\" \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp",
|
|
126
103
|
"eslint": "eslint --format stylish src",
|
|
127
104
|
"eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
|
|
@@ -131,7 +108,7 @@
|
|
|
131
108
|
"lint": "fluid-build . --task lint",
|
|
132
109
|
"lint:fix": "fluid-build . --task eslint:fix --task format",
|
|
133
110
|
"tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist",
|
|
134
|
-
"typetests:gen": "flub generate typetests --dir . -v
|
|
111
|
+
"typetests:gen": "flub generate typetests --dir . -v",
|
|
135
112
|
"typetests:prepare": "flub typetests --dir . --reset --previous --normalize"
|
|
136
113
|
}
|
|
137
114
|
}
|
package/src/attribution.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { IUser } from "@fluidframework/driver-definitions";
|
|
|
8
8
|
/**
|
|
9
9
|
* AttributionKey representing a reference to some op in the op stream.
|
|
10
10
|
* Content associated with this key aligns with content modified by that op.
|
|
11
|
+
* @legacy
|
|
11
12
|
* @alpha
|
|
12
13
|
*/
|
|
13
14
|
export interface OpAttributionKey {
|
|
@@ -32,6 +33,7 @@ export interface OpAttributionKey {
|
|
|
32
33
|
* is currently unsupported, as applications can effectively modify content anonymously while detached.
|
|
33
34
|
* The runtime has no mechanism for reliably obtaining the user. It would be reasonable to start supporting
|
|
34
35
|
* this functionality if the host provided additional context to their attributor or attach calls.
|
|
36
|
+
* @legacy
|
|
35
37
|
* @alpha
|
|
36
38
|
*/
|
|
37
39
|
export interface DetachedAttributionKey {
|
|
@@ -50,6 +52,7 @@ export interface DetachedAttributionKey {
|
|
|
50
52
|
|
|
51
53
|
/**
|
|
52
54
|
* AttributionKey associated with content that has been made locally but not yet acked by the server.
|
|
55
|
+
* @legacy
|
|
53
56
|
* @alpha
|
|
54
57
|
*/
|
|
55
58
|
export interface LocalAttributionKey {
|
|
@@ -58,12 +61,14 @@ export interface LocalAttributionKey {
|
|
|
58
61
|
|
|
59
62
|
/**
|
|
60
63
|
* Can be indexed into the ContainerRuntime in order to retrieve {@link AttributionInfo}.
|
|
64
|
+
* @legacy
|
|
61
65
|
* @alpha
|
|
62
66
|
*/
|
|
63
67
|
export type AttributionKey = OpAttributionKey | DetachedAttributionKey | LocalAttributionKey;
|
|
64
68
|
|
|
65
69
|
/**
|
|
66
70
|
* Attribution information associated with a change.
|
|
71
|
+
* @legacy
|
|
67
72
|
* @alpha
|
|
68
73
|
*/
|
|
69
74
|
export interface AttributionInfo {
|
package/src/dataStoreContext.ts
CHANGED
|
@@ -45,6 +45,7 @@ import type {
|
|
|
45
45
|
|
|
46
46
|
/**
|
|
47
47
|
* Runtime flush mode handling
|
|
48
|
+
* @legacy
|
|
48
49
|
* @alpha
|
|
49
50
|
*/
|
|
50
51
|
export enum FlushMode {
|
|
@@ -82,6 +83,7 @@ export enum FlushModeExperimental {
|
|
|
82
83
|
/**
|
|
83
84
|
* This tells the visibility state of a Fluid object. It basically tracks whether the object is not visible, visible
|
|
84
85
|
* locally within the container only or visible globally to all clients.
|
|
86
|
+
* @legacy
|
|
85
87
|
* @alpha
|
|
86
88
|
*/
|
|
87
89
|
export const VisibilityState = {
|
|
@@ -109,11 +111,13 @@ export const VisibilityState = {
|
|
|
109
111
|
GloballyVisible: "GloballyVisible",
|
|
110
112
|
};
|
|
111
113
|
/**
|
|
114
|
+
* @legacy
|
|
112
115
|
* @alpha
|
|
113
116
|
*/
|
|
114
117
|
export type VisibilityState = (typeof VisibilityState)[keyof typeof VisibilityState];
|
|
115
118
|
|
|
116
119
|
/**
|
|
120
|
+
* @legacy
|
|
117
121
|
* @alpha
|
|
118
122
|
*/
|
|
119
123
|
export interface IContainerRuntimeBaseEvents extends IEvent {
|
|
@@ -136,6 +140,7 @@ export interface IContainerRuntimeBaseEvents extends IEvent {
|
|
|
136
140
|
* the `IContainerRuntime.getAliasedDataStoreEntryPoint` function. The current datastore should be discarded
|
|
137
141
|
* and will be garbage collected. The current datastore cannot be aliased to a different value.
|
|
138
142
|
* 'AlreadyAliased' - the datastore has already been previously bound to another alias name.
|
|
143
|
+
* @legacy
|
|
139
144
|
* @alpha
|
|
140
145
|
*/
|
|
141
146
|
export type AliasResult = "Success" | "Conflict" | "AlreadyAliased";
|
|
@@ -145,6 +150,7 @@ export type AliasResult = "Success" | "Conflict" | "AlreadyAliased";
|
|
|
145
150
|
* - Handle to the data store's entryPoint
|
|
146
151
|
* - Fluid router for the data store
|
|
147
152
|
* - Can be assigned an alias
|
|
153
|
+
* @legacy
|
|
148
154
|
* @alpha
|
|
149
155
|
*/
|
|
150
156
|
export interface IDataStore {
|
|
@@ -168,6 +174,7 @@ export interface IDataStore {
|
|
|
168
174
|
/**
|
|
169
175
|
* A reduced set of functionality of IContainerRuntime that a data store context/data store runtime will need
|
|
170
176
|
* TODO: this should be merged into IFluidDataStoreContext
|
|
177
|
+
* @legacy
|
|
171
178
|
* @alpha
|
|
172
179
|
*/
|
|
173
180
|
export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeBaseEvents> {
|
|
@@ -281,6 +288,7 @@ export interface IContainerRuntimeBase extends IEventProvider<IContainerRuntimeB
|
|
|
281
288
|
*
|
|
282
289
|
* Functionality include attach, snapshot, op/signal processing, request routes, expose an entryPoint,
|
|
283
290
|
* and connection state notifications
|
|
291
|
+
* @legacy
|
|
284
292
|
* @alpha
|
|
285
293
|
*/
|
|
286
294
|
export interface IFluidDataStoreChannel extends IDisposable {
|
|
@@ -374,6 +382,7 @@ export interface IFluidDataStoreChannel extends IDisposable {
|
|
|
374
382
|
}
|
|
375
383
|
|
|
376
384
|
/**
|
|
385
|
+
* @legacy
|
|
377
386
|
* @alpha
|
|
378
387
|
*/
|
|
379
388
|
export type CreateChildSummarizerNodeFn = (
|
|
@@ -391,6 +400,7 @@ export type CreateChildSummarizerNodeFn = (
|
|
|
391
400
|
*
|
|
392
401
|
* This layout is temporary, as {@link IFluidParentContext} and {@link IFluidDataStoreContext} will converge.
|
|
393
402
|
*
|
|
403
|
+
* @legacy
|
|
394
404
|
* @alpha
|
|
395
405
|
*/
|
|
396
406
|
export interface IFluidParentContext
|
|
@@ -519,6 +529,7 @@ export interface IFluidParentContext
|
|
|
519
529
|
/**
|
|
520
530
|
* Represents the context for the data store. It is used by the data store runtime to
|
|
521
531
|
* get information and call functionality to the container.
|
|
532
|
+
* @legacy
|
|
522
533
|
* @alpha
|
|
523
534
|
*/
|
|
524
535
|
export interface IFluidDataStoreContext extends IFluidParentContext {
|
|
@@ -553,6 +564,7 @@ export interface IFluidDataStoreContext extends IFluidParentContext {
|
|
|
553
564
|
}
|
|
554
565
|
|
|
555
566
|
/**
|
|
567
|
+
* @legacy
|
|
556
568
|
* @alpha
|
|
557
569
|
*/
|
|
558
570
|
export interface IFluidDataStoreContextDetached extends IFluidDataStoreContext {
|
package/src/dataStoreFactory.ts
CHANGED
|
@@ -6,12 +6,14 @@
|
|
|
6
6
|
import type { IFluidDataStoreChannel, IFluidDataStoreContext } from "./dataStoreContext.js";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
|
+
* @legacy
|
|
9
10
|
* @alpha
|
|
10
11
|
*/
|
|
11
12
|
export const IFluidDataStoreFactory: keyof IProvideFluidDataStoreFactory =
|
|
12
13
|
"IFluidDataStoreFactory";
|
|
13
14
|
|
|
14
15
|
/**
|
|
16
|
+
* @legacy
|
|
15
17
|
* @alpha
|
|
16
18
|
*/
|
|
17
19
|
export interface IProvideFluidDataStoreFactory {
|
|
@@ -21,6 +23,7 @@ export interface IProvideFluidDataStoreFactory {
|
|
|
21
23
|
/**
|
|
22
24
|
* IFluidDataStoreFactory create data stores. It is associated with an identifier (its `type` member)
|
|
23
25
|
* and usually provided to consumers using this mapping through a data store registry.
|
|
26
|
+
* @legacy
|
|
24
27
|
* @alpha
|
|
25
28
|
*/
|
|
26
29
|
export interface IFluidDataStoreFactory extends IProvideFluidDataStoreFactory {
|
package/src/dataStoreRegistry.ts
CHANGED
|
@@ -8,6 +8,7 @@ import type { IProvideFluidDataStoreFactory } from "./dataStoreFactory.js";
|
|
|
8
8
|
/**
|
|
9
9
|
* A single registry entry that may be used to create data stores
|
|
10
10
|
* It has to have either factory or registry, or both.
|
|
11
|
+
* @legacy
|
|
11
12
|
* @alpha
|
|
12
13
|
*/
|
|
13
14
|
export type FluidDataStoreRegistryEntry = Readonly<
|
|
@@ -16,22 +17,26 @@ export type FluidDataStoreRegistryEntry = Readonly<
|
|
|
16
17
|
/**
|
|
17
18
|
* An associated pair of an identifier and registry entry. Registry entries
|
|
18
19
|
* may be dynamically loaded.
|
|
20
|
+
* @legacy
|
|
19
21
|
* @alpha
|
|
20
22
|
*/
|
|
21
23
|
export type NamedFluidDataStoreRegistryEntry = [string, Promise<FluidDataStoreRegistryEntry>];
|
|
22
24
|
/**
|
|
23
25
|
* An iterable identifier/registry entry pair list
|
|
26
|
+
* @legacy
|
|
24
27
|
* @alpha
|
|
25
28
|
*/
|
|
26
29
|
export type NamedFluidDataStoreRegistryEntries = Iterable<NamedFluidDataStoreRegistryEntry>;
|
|
27
30
|
|
|
28
31
|
/**
|
|
32
|
+
* @legacy
|
|
29
33
|
* @alpha
|
|
30
34
|
*/
|
|
31
35
|
export const IFluidDataStoreRegistry: keyof IProvideFluidDataStoreRegistry =
|
|
32
36
|
"IFluidDataStoreRegistry";
|
|
33
37
|
|
|
34
38
|
/**
|
|
39
|
+
* @legacy
|
|
35
40
|
* @alpha
|
|
36
41
|
*/
|
|
37
42
|
export interface IProvideFluidDataStoreRegistry {
|
|
@@ -41,6 +46,7 @@ export interface IProvideFluidDataStoreRegistry {
|
|
|
41
46
|
/**
|
|
42
47
|
* An association of identifiers to data store registry entries, where the
|
|
43
48
|
* entries can be used to create data stores.
|
|
49
|
+
* @legacy
|
|
44
50
|
* @alpha
|
|
45
51
|
*/
|
|
46
52
|
export interface IFluidDataStoreRegistry extends IProvideFluidDataStoreRegistry {
|
|
@@ -37,6 +37,7 @@ export const gcDataBlobKey = ".gcdata";
|
|
|
37
37
|
/**
|
|
38
38
|
* Garbage collection data returned by nodes in a Container.
|
|
39
39
|
* Used for running GC in the Container.
|
|
40
|
+
* @legacy
|
|
40
41
|
* @alpha
|
|
41
42
|
*/
|
|
42
43
|
export interface IGarbageCollectionData {
|
|
@@ -48,6 +49,7 @@ export interface IGarbageCollectionData {
|
|
|
48
49
|
|
|
49
50
|
/**
|
|
50
51
|
* GC details provided to each node during creation.
|
|
52
|
+
* @legacy
|
|
51
53
|
* @alpha
|
|
52
54
|
*/
|
|
53
55
|
export interface IGarbageCollectionDetailsBase {
|