@fluidframework/datastore 2.0.0-dev.6.4.0.192049 → 2.0.0-dev.7.2.0.204906
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/CHANGELOG.md +77 -0
- package/api-extractor.json +1 -1
- package/api-report/datastore.api.md +172 -0
- package/dist/channelDeltaConnection.js +6 -6
- package/dist/channelDeltaConnection.js.map +1 -1
- package/dist/channelStorageService.js +10 -10
- package/dist/channelStorageService.js.map +1 -1
- package/dist/dataStoreRuntime.d.ts +17 -16
- package/dist/dataStoreRuntime.d.ts.map +1 -1
- package/dist/dataStoreRuntime.js +96 -97
- package/dist/dataStoreRuntime.js.map +1 -1
- package/dist/datastore-alpha.d.ts +327 -0
- package/dist/datastore-beta.d.ts +327 -0
- package/dist/datastore-public.d.ts +327 -0
- package/dist/datastore-untrimmed.d.ts +326 -0
- package/dist/fluidHandle.d.ts +2 -0
- package/dist/fluidHandle.d.ts.map +1 -1
- package/dist/fluidHandle.js +21 -19
- package/dist/fluidHandle.js.map +1 -1
- package/dist/remoteChannelContext.js.map +1 -1
- package/dist/tsdoc-metadata.json +1 -1
- package/lib/channelDeltaConnection.js +6 -6
- package/lib/channelDeltaConnection.js.map +1 -1
- package/lib/channelStorageService.js +10 -10
- package/lib/channelStorageService.js.map +1 -1
- package/lib/dataStoreRuntime.d.ts +17 -16
- package/lib/dataStoreRuntime.d.ts.map +1 -1
- package/lib/dataStoreRuntime.js +96 -97
- package/lib/dataStoreRuntime.js.map +1 -1
- package/lib/fluidHandle.d.ts +2 -0
- package/lib/fluidHandle.d.ts.map +1 -1
- package/lib/fluidHandle.js +21 -19
- package/lib/fluidHandle.js.map +1 -1
- package/lib/remoteChannelContext.js.map +1 -1
- package/package.json +25 -28
- package/src/dataStoreRuntime.ts +34 -33
- package/src/fluidHandle.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,82 @@
|
|
|
1
1
|
# @fluidframework/datastore
|
|
2
2
|
|
|
3
|
+
## 2.0.0-internal.7.1.0
|
|
4
|
+
|
|
5
|
+
Dependency updates only.
|
|
6
|
+
|
|
7
|
+
## 2.0.0-internal.7.0.0
|
|
8
|
+
|
|
9
|
+
### Major Changes
|
|
10
|
+
|
|
11
|
+
- Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
12
|
+
|
|
13
|
+
This included the following changes from the protocol-definitions release:
|
|
14
|
+
|
|
15
|
+
- Updating signal interfaces for some planned improvements. The intention is split the interface between signals
|
|
16
|
+
submitted by clients to the server and the resulting signals sent from the server to clients.
|
|
17
|
+
- A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
|
|
18
|
+
been added, which will be the typing for signals sent from the client to the server. Both extend a new
|
|
19
|
+
ISignalMessageBase interface that contains common members.
|
|
20
|
+
- The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
|
|
21
|
+
|
|
22
|
+
- runtime-definitions: `bindToContext` API removed [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
23
|
+
|
|
24
|
+
`bindToContext` has been removed from `FluidDataStoreRuntime`, `IFluidDataStoreContext` and
|
|
25
|
+
`MockFluidDataStoreContext`. This has been deprecated for several releases and cannot be used anymore.
|
|
26
|
+
|
|
27
|
+
- Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
28
|
+
|
|
29
|
+
Dependencies on the following Fluid server package have been updated to version 2.0.1:
|
|
30
|
+
|
|
31
|
+
- @fluidframework/gitresources: 2.0.1
|
|
32
|
+
- @fluidframework/server-kafka-orderer: 2.0.1
|
|
33
|
+
- @fluidframework/server-lambdas: 2.0.1
|
|
34
|
+
- @fluidframework/server-lambdas-driver: 2.0.1
|
|
35
|
+
- @fluidframework/server-local-server: 2.0.1
|
|
36
|
+
- @fluidframework/server-memory-orderer: 2.0.1
|
|
37
|
+
- @fluidframework/protocol-base: 2.0.1
|
|
38
|
+
- @fluidframework/server-routerlicious: 2.0.1
|
|
39
|
+
- @fluidframework/server-routerlicious-base: 2.0.1
|
|
40
|
+
- @fluidframework/server-services: 2.0.1
|
|
41
|
+
- @fluidframework/server-services-client: 2.0.1
|
|
42
|
+
- @fluidframework/server-services-core: 2.0.1
|
|
43
|
+
- @fluidframework/server-services-ordering-kafkanode: 2.0.1
|
|
44
|
+
- @fluidframework/server-services-ordering-rdkafka: 2.0.1
|
|
45
|
+
- @fluidframework/server-services-ordering-zookeeper: 2.0.1
|
|
46
|
+
- @fluidframework/server-services-shared: 2.0.1
|
|
47
|
+
- @fluidframework/server-services-telemetry: 2.0.1
|
|
48
|
+
- @fluidframework/server-services-utils: 2.0.1
|
|
49
|
+
- @fluidframework/server-test-utils: 2.0.1
|
|
50
|
+
- tinylicious: 2.0.1
|
|
51
|
+
|
|
52
|
+
- test-utils: provideEntryPoint is required [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
53
|
+
|
|
54
|
+
The optional `provideEntryPoint` method has become required on a number of constructors. A value will need to be provided to the following classes:
|
|
55
|
+
|
|
56
|
+
- `BaseContainerRuntimeFactory`
|
|
57
|
+
- `RuntimeFactory`
|
|
58
|
+
- `ContainerRuntime` (constructor and `loadRuntime`)
|
|
59
|
+
- `FluidDataStoreRuntime`
|
|
60
|
+
|
|
61
|
+
See [testContainerRuntimeFactoryWithDefaultDataStore.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/test/test-utils/src/testContainerRuntimeFactoryWithDefaultDataStore.ts) for an example implemtation of `provideEntryPoint` for ContainerRuntime.
|
|
62
|
+
See [pureDataObjectFactory.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/framework/aqueduct/src/data-object-factories/pureDataObjectFactory.ts#L83) for an example implementation of `provideEntryPoint` for DataStoreRuntime.
|
|
63
|
+
|
|
64
|
+
Subsequently, various `entryPoint` and `getEntryPoint()` endpoints have become required. Please see [containerRuntime.ts](https://github.com/microsoft/FluidFramework/tree/main/packages/runtime/container-runtime/src/containerRuntime.ts) for example implementations of these APIs.
|
|
65
|
+
|
|
66
|
+
For more details, see [Removing-IFluidRouter.md](https://github.com/microsoft/FluidFramework/blob/main/packages/common/core-interfaces/Removing-IFluidRouter.md)
|
|
67
|
+
|
|
68
|
+
- Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
|
|
69
|
+
|
|
70
|
+
The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
|
|
71
|
+
|
|
72
|
+
## 2.0.0-internal.6.4.0
|
|
73
|
+
|
|
74
|
+
### Minor Changes
|
|
75
|
+
|
|
76
|
+
- Some stack traces are improved ([#17380](https://github.com/microsoft/FluidFramework/issues/17380)) [34f2808ee9](https://github.com/microsoft/FluidFramework/commits/34f2808ee9764aef21b990f8b48860d9e3ce27a5)
|
|
77
|
+
|
|
78
|
+
Some stack traces have been improved and might now include frames for async functions that weren't previously included.
|
|
79
|
+
|
|
3
80
|
## 2.0.0-internal.6.3.0
|
|
4
81
|
|
|
5
82
|
Dependency updates only.
|
package/api-extractor.json
CHANGED
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
## API Report File for "@fluidframework/datastore"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
|
|
7
|
+
import { AttachState } from '@fluidframework/container-definitions';
|
|
8
|
+
import { FluidObject } from '@fluidframework/core-interfaces';
|
|
9
|
+
import { IAudience } from '@fluidframework/container-definitions';
|
|
10
|
+
import { IChannel } from '@fluidframework/datastore-definitions';
|
|
11
|
+
import { IChannelFactory } from '@fluidframework/datastore-definitions';
|
|
12
|
+
import { IClientDetails } from '@fluidframework/protocol-definitions';
|
|
13
|
+
import { IDeltaManager } from '@fluidframework/container-definitions';
|
|
14
|
+
import { IDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
15
|
+
import { IFluidDataStoreChannel } from '@fluidframework/runtime-definitions';
|
|
16
|
+
import { IFluidDataStoreContext } from '@fluidframework/runtime-definitions';
|
|
17
|
+
import { IFluidDataStoreRuntime } from '@fluidframework/datastore-definitions';
|
|
18
|
+
import { IFluidDataStoreRuntimeEvents } from '@fluidframework/datastore-definitions';
|
|
19
|
+
import { IFluidHandle } from '@fluidframework/core-interfaces';
|
|
20
|
+
import { IFluidHandleContext } from '@fluidframework/core-interfaces';
|
|
21
|
+
import { IGarbageCollectionData } from '@fluidframework/runtime-definitions';
|
|
22
|
+
import { IIdCompressor } from '@fluidframework/runtime-definitions';
|
|
23
|
+
import { IInboundSignalMessage } from '@fluidframework/runtime-definitions';
|
|
24
|
+
import { ILoaderOptions } from '@fluidframework/container-definitions';
|
|
25
|
+
import { IQuorumClients } from '@fluidframework/protocol-definitions';
|
|
26
|
+
import { IRequest } from '@fluidframework/core-interfaces';
|
|
27
|
+
import { IResponse } from '@fluidframework/core-interfaces';
|
|
28
|
+
import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
|
|
29
|
+
import { ISummaryTreeWithStats } from '@fluidframework/runtime-definitions';
|
|
30
|
+
import { ITelemetryContext } from '@fluidframework/runtime-definitions';
|
|
31
|
+
import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
|
|
32
|
+
import { TypedEventEmitter } from '@fluid-internal/client-utils';
|
|
33
|
+
import { VisibilityState } from '@fluidframework/runtime-definitions';
|
|
34
|
+
|
|
35
|
+
// @public (undocumented)
|
|
36
|
+
export enum DataStoreMessageType {
|
|
37
|
+
// (undocumented)
|
|
38
|
+
Attach = "attach",
|
|
39
|
+
// (undocumented)
|
|
40
|
+
ChannelOp = "op"
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// @public
|
|
44
|
+
export class FluidDataStoreRuntime extends TypedEventEmitter<IFluidDataStoreRuntimeEvents> implements IFluidDataStoreChannel, IFluidDataStoreRuntime, IFluidHandleContext {
|
|
45
|
+
constructor(dataStoreContext: IFluidDataStoreContext, sharedObjectRegistry: ISharedObjectRegistry, existing: boolean, provideEntryPoint: (runtime: IFluidDataStoreRuntime) => Promise<FluidObject>);
|
|
46
|
+
// (undocumented)
|
|
47
|
+
get absolutePath(): string;
|
|
48
|
+
// (undocumented)
|
|
49
|
+
applyStashedOp(content: any): Promise<unknown>;
|
|
50
|
+
attachGraph(): void;
|
|
51
|
+
// (undocumented)
|
|
52
|
+
get attachState(): AttachState;
|
|
53
|
+
// (undocumented)
|
|
54
|
+
bind(handle: IFluidHandle): void;
|
|
55
|
+
bindChannel(channel: IChannel): void;
|
|
56
|
+
// (undocumented)
|
|
57
|
+
get channelsRoutingContext(): this;
|
|
58
|
+
// (undocumented)
|
|
59
|
+
get clientDetails(): IClientDetails;
|
|
60
|
+
// (undocumented)
|
|
61
|
+
get clientId(): string | undefined;
|
|
62
|
+
// (undocumented)
|
|
63
|
+
get connected(): boolean;
|
|
64
|
+
// (undocumented)
|
|
65
|
+
createChannel(id: string | undefined, type: string): IChannel;
|
|
66
|
+
// (undocumented)
|
|
67
|
+
readonly deltaManager: IDeltaManager<ISequencedDocumentMessage, IDocumentMessage>;
|
|
68
|
+
// (undocumented)
|
|
69
|
+
dispose(): void;
|
|
70
|
+
// (undocumented)
|
|
71
|
+
get disposed(): boolean;
|
|
72
|
+
ensureNoDataModelChanges<T>(callback: () => T): T;
|
|
73
|
+
// (undocumented)
|
|
74
|
+
readonly entryPoint: IFluidHandle<FluidObject>;
|
|
75
|
+
// (undocumented)
|
|
76
|
+
getAttachSummary(telemetryContext?: ITelemetryContext): ISummaryTreeWithStats;
|
|
77
|
+
// (undocumented)
|
|
78
|
+
getAudience(): IAudience;
|
|
79
|
+
// (undocumented)
|
|
80
|
+
getChannel(id: string): Promise<IChannel>;
|
|
81
|
+
getGCData(fullGC?: boolean): Promise<IGarbageCollectionData>;
|
|
82
|
+
// (undocumented)
|
|
83
|
+
getQuorum(): IQuorumClients;
|
|
84
|
+
// (undocumented)
|
|
85
|
+
readonly id: string;
|
|
86
|
+
// (undocumented)
|
|
87
|
+
get idCompressor(): IIdCompressor | undefined;
|
|
88
|
+
// (undocumented)
|
|
89
|
+
get IFluidHandleContext(): this;
|
|
90
|
+
// @deprecated (undocumented)
|
|
91
|
+
get IFluidRouter(): this;
|
|
92
|
+
// (undocumented)
|
|
93
|
+
get isAttached(): boolean;
|
|
94
|
+
// @deprecated (undocumented)
|
|
95
|
+
static load(context: IFluidDataStoreContext, sharedObjectRegistry: ISharedObjectRegistry, existing: boolean): FluidDataStoreRuntime;
|
|
96
|
+
// (undocumented)
|
|
97
|
+
get logger(): ITelemetryLoggerExt;
|
|
98
|
+
makeVisibleAndAttachGraph(): void;
|
|
99
|
+
// (undocumented)
|
|
100
|
+
get objectsRoutingContext(): this;
|
|
101
|
+
// (undocumented)
|
|
102
|
+
readonly options: ILoaderOptions;
|
|
103
|
+
// (undocumented)
|
|
104
|
+
process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown): void;
|
|
105
|
+
// (undocumented)
|
|
106
|
+
processSignal(message: IInboundSignalMessage, local: boolean): void;
|
|
107
|
+
// (undocumented)
|
|
108
|
+
request(request: IRequest): Promise<IResponse>;
|
|
109
|
+
// (undocumented)
|
|
110
|
+
resolveHandle(request: IRequest): Promise<IResponse>;
|
|
111
|
+
reSubmit(type: DataStoreMessageType, content: any, localOpMetadata: unknown): void;
|
|
112
|
+
rollback?(type: DataStoreMessageType, content: any, localOpMetadata: unknown): void;
|
|
113
|
+
// (undocumented)
|
|
114
|
+
get rootRoutingContext(): this;
|
|
115
|
+
// (undocumented)
|
|
116
|
+
get routeContext(): IFluidHandleContext;
|
|
117
|
+
// (undocumented)
|
|
118
|
+
setConnectionState(connected: boolean, clientId?: string): void;
|
|
119
|
+
// (undocumented)
|
|
120
|
+
submitMessage(type: DataStoreMessageType, content: any, localOpMetadata: unknown): void;
|
|
121
|
+
// (undocumented)
|
|
122
|
+
submitSignal(type: string, content: any): void;
|
|
123
|
+
summarize(fullTree?: boolean, trackState?: boolean, telemetryContext?: ITelemetryContext): Promise<ISummaryTreeWithStats>;
|
|
124
|
+
updateUsedRoutes(usedRoutes: string[]): void;
|
|
125
|
+
// (undocumented)
|
|
126
|
+
uploadBlob(blob: ArrayBufferLike, signal?: AbortSignal): Promise<IFluidHandle<ArrayBufferLike>>;
|
|
127
|
+
// (undocumented)
|
|
128
|
+
visibilityState: VisibilityState;
|
|
129
|
+
waitAttached(): Promise<void>;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
// @public
|
|
133
|
+
export class FluidObjectHandle<T extends FluidObject = FluidObject> implements IFluidHandle {
|
|
134
|
+
constructor(value: T | Promise<T>, path: string, routeContext: IFluidHandleContext);
|
|
135
|
+
// (undocumented)
|
|
136
|
+
readonly absolutePath: string;
|
|
137
|
+
// (undocumented)
|
|
138
|
+
attachGraph(): void;
|
|
139
|
+
// (undocumented)
|
|
140
|
+
bind(handle: IFluidHandle): void;
|
|
141
|
+
// (undocumented)
|
|
142
|
+
get(): Promise<any>;
|
|
143
|
+
// (undocumented)
|
|
144
|
+
get IFluidHandle(): IFluidHandle;
|
|
145
|
+
// (undocumented)
|
|
146
|
+
get isAttached(): boolean;
|
|
147
|
+
// (undocumented)
|
|
148
|
+
readonly path: string;
|
|
149
|
+
// (undocumented)
|
|
150
|
+
readonly routeContext: IFluidHandleContext;
|
|
151
|
+
// (undocumented)
|
|
152
|
+
protected readonly value: T | Promise<T>;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
// @public (undocumented)
|
|
156
|
+
export interface ISharedObjectRegistry {
|
|
157
|
+
// (undocumented)
|
|
158
|
+
get(name: string): IChannelFactory | undefined;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
// @public
|
|
162
|
+
export const mixinRequestHandler: (requestHandler: (request: IRequest, runtime: FluidDataStoreRuntime) => Promise<IResponse>, Base?: typeof FluidDataStoreRuntime) => typeof FluidDataStoreRuntime;
|
|
163
|
+
|
|
164
|
+
// @public
|
|
165
|
+
export const mixinSummaryHandler: (handler: (runtime: FluidDataStoreRuntime) => Promise<{
|
|
166
|
+
path: string[];
|
|
167
|
+
content: string;
|
|
168
|
+
} | undefined>, Base?: typeof FluidDataStoreRuntime) => typeof FluidDataStoreRuntime;
|
|
169
|
+
|
|
170
|
+
// (No @packageDocumentation comment for this package)
|
|
171
|
+
|
|
172
|
+
```
|
|
@@ -8,12 +8,6 @@ exports.ChannelDeltaConnection = void 0;
|
|
|
8
8
|
const core_utils_1 = require("@fluidframework/core-utils");
|
|
9
9
|
const telemetry_utils_1 = require("@fluidframework/telemetry-utils");
|
|
10
10
|
class ChannelDeltaConnection {
|
|
11
|
-
constructor(_connected, submit, dirty, addedGCOutboundReference) {
|
|
12
|
-
this._connected = _connected;
|
|
13
|
-
this.submit = submit;
|
|
14
|
-
this.dirty = dirty;
|
|
15
|
-
this.addedGCOutboundReference = addedGCOutboundReference;
|
|
16
|
-
}
|
|
17
11
|
get handler() {
|
|
18
12
|
(0, core_utils_1.assert)(!!this._handler, 0x177 /* "Missing delta handler" */);
|
|
19
13
|
return this._handler;
|
|
@@ -21,6 +15,12 @@ class ChannelDeltaConnection {
|
|
|
21
15
|
get connected() {
|
|
22
16
|
return this._connected;
|
|
23
17
|
}
|
|
18
|
+
constructor(_connected, submit, dirty, addedGCOutboundReference) {
|
|
19
|
+
this._connected = _connected;
|
|
20
|
+
this.submit = submit;
|
|
21
|
+
this.dirty = dirty;
|
|
22
|
+
this.addedGCOutboundReference = addedGCOutboundReference;
|
|
23
|
+
}
|
|
24
24
|
attach(handler) {
|
|
25
25
|
(0, core_utils_1.assert)(this._handler === undefined, 0x178 /* "Missing delta handler on attach" */);
|
|
26
26
|
this._handler = handler;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelDeltaConnection.js","sourceRoot":"","sources":["../src/channelDeltaConnection.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAoD;AAGpD,qEAAsE;AAGtE,MAAa,sBAAsB;
|
|
1
|
+
{"version":3,"file":"channelDeltaConnection.js","sourceRoot":"","sources":["../src/channelDeltaConnection.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2DAAoD;AAGpD,qEAAsE;AAGtE,MAAa,sBAAsB;IAGlC,IAAY,OAAO;QAClB,IAAA,mBAAM,EAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAC7D,OAAO,IAAI,CAAC,QAAQ,CAAC;IACtB,CAAC;IACD,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IACxB,CAAC;IAED,YACS,UAAmB,EACX,MAAwD,EACxD,KAAiB,EACjB,wBAGP;QAND,eAAU,GAAV,UAAU,CAAS;QACX,WAAM,GAAN,MAAM,CAAkD;QACxD,UAAK,GAAL,KAAK,CAAY;QACjB,6BAAwB,GAAxB,wBAAwB,CAG/B;IACP,CAAC;IAEG,MAAM,CAAC,OAAsB;QACnC,IAAA,mBAAM,EAAC,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,KAAK,CAAC,uCAAuC,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IACzB,CAAC;IAEM,kBAAkB,CAAC,SAAkB;QAC3C,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC5B,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IAEM,OAAO,CAAC,OAAkC,EAAE,KAAc,EAAE,eAAwB;QAC1F,IAAI;YACH,sFAAsF;YACtF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;SACtD;QAAC,OAAO,KAAK,EAAE;YACf,MAAM,qCAAmB,CAAC,kBAAkB,CAC3C,KAAK,EACL,8CAA8C,EAC9C,OAAO,CACP,CAAC;SACF;IACF,CAAC;IAEM,QAAQ,CAAC,OAAY,EAAE,eAAwB;QACrD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACjD,CAAC;IAEM,QAAQ,CAAC,OAAY,EAAE,eAAwB;QACrD,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;YACxC,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACpD;QACD,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;IACjD,CAAC;IAEM,cAAc,CAAC,OAAY;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACD;AA1DD,wDA0DC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { assert } from \"@fluidframework/core-utils\";\nimport { ISequencedDocumentMessage } from \"@fluidframework/protocol-definitions\";\nimport { IDeltaConnection, IDeltaHandler } from \"@fluidframework/datastore-definitions\";\nimport { DataProcessingError } from \"@fluidframework/telemetry-utils\";\nimport { IFluidHandle } from \"@fluidframework/core-interfaces\";\n\nexport class ChannelDeltaConnection implements IDeltaConnection {\n\tprivate _handler: IDeltaHandler | undefined;\n\n\tprivate get handler(): IDeltaHandler {\n\t\tassert(!!this._handler, 0x177 /* \"Missing delta handler\" */);\n\t\treturn this._handler;\n\t}\n\tpublic get connected(): boolean {\n\t\treturn this._connected;\n\t}\n\n\tconstructor(\n\t\tprivate _connected: boolean,\n\t\tpublic readonly submit: (content: any, localOpMetadata: unknown) => void,\n\t\tpublic readonly dirty: () => void,\n\t\tpublic readonly addedGCOutboundReference: (\n\t\t\tsrcHandle: IFluidHandle,\n\t\t\toutboundHandle: IFluidHandle,\n\t\t) => void,\n\t) {}\n\n\tpublic attach(handler: IDeltaHandler) {\n\t\tassert(this._handler === undefined, 0x178 /* \"Missing delta handler on attach\" */);\n\t\tthis._handler = handler;\n\t}\n\n\tpublic setConnectionState(connected: boolean) {\n\t\tthis._connected = connected;\n\t\tthis.handler.setConnectionState(connected);\n\t}\n\n\tpublic process(message: ISequencedDocumentMessage, local: boolean, localOpMetadata: unknown) {\n\t\ttry {\n\t\t\t// catches as data processing error whether or not they come from async pending queues\n\t\t\tthis.handler.process(message, local, localOpMetadata);\n\t\t} catch (error) {\n\t\t\tthrow DataProcessingError.wrapIfUnrecognized(\n\t\t\t\terror,\n\t\t\t\t\"channelDeltaConnectionFailedToProcessMessage\",\n\t\t\t\tmessage,\n\t\t\t);\n\t\t}\n\t}\n\n\tpublic reSubmit(content: any, localOpMetadata: unknown) {\n\t\tthis.handler.reSubmit(content, localOpMetadata);\n\t}\n\n\tpublic rollback(content: any, localOpMetadata: unknown) {\n\t\tif (this.handler.rollback === undefined) {\n\t\t\tthrow new Error(\"Handler doesn't support rollback\");\n\t\t}\n\t\tthis.handler.rollback(content, localOpMetadata);\n\t}\n\n\tpublic applyStashedOp(content: any): unknown {\n\t\treturn this.handler.applyStashedOp(content);\n\t}\n}\n"]}
|
|
@@ -7,6 +7,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
7
7
|
exports.ChannelStorageService = void 0;
|
|
8
8
|
const runtime_utils_1 = require("@fluidframework/runtime-utils");
|
|
9
9
|
class ChannelStorageService {
|
|
10
|
+
static flattenTree(base, tree, results) {
|
|
11
|
+
// eslint-disable-next-line guard-for-in, no-restricted-syntax
|
|
12
|
+
for (const path in tree.trees) {
|
|
13
|
+
ChannelStorageService.flattenTree(`${base}${path}/`, tree.trees[path], results);
|
|
14
|
+
}
|
|
15
|
+
// eslint-disable-next-line guard-for-in, no-restricted-syntax
|
|
16
|
+
for (const blob in tree.blobs) {
|
|
17
|
+
results[`${base}${blob}`] = tree.blobs[blob];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
10
20
|
constructor(tree, storage, logger, extraBlobs) {
|
|
11
21
|
this.tree = tree;
|
|
12
22
|
this.storage = storage;
|
|
@@ -18,16 +28,6 @@ class ChannelStorageService {
|
|
|
18
28
|
ChannelStorageService.flattenTree("", tree, this.flattenedTree);
|
|
19
29
|
}
|
|
20
30
|
}
|
|
21
|
-
static flattenTree(base, tree, results) {
|
|
22
|
-
// eslint-disable-next-line guard-for-in, no-restricted-syntax
|
|
23
|
-
for (const path in tree.trees) {
|
|
24
|
-
ChannelStorageService.flattenTree(`${base}${path}/`, tree.trees[path], results);
|
|
25
|
-
}
|
|
26
|
-
// eslint-disable-next-line guard-for-in, no-restricted-syntax
|
|
27
|
-
for (const blob in tree.blobs) {
|
|
28
|
-
results[`${base}${blob}`] = tree.blobs[blob];
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
31
|
async contains(path) {
|
|
32
32
|
return this.flattenedTree[path] !== undefined;
|
|
33
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"channelStorageService.js","sourceRoot":"","sources":["../src/channelStorageService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKH,iEAAoF;AAGpF,MAAa,qBAAqB;
|
|
1
|
+
{"version":3,"file":"channelStorageService.js","sourceRoot":"","sources":["../src/channelStorageService.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAKH,iEAAoF;AAGpF,MAAa,qBAAqB;IACzB,MAAM,CAAC,WAAW,CACzB,IAAY,EACZ,IAAmB,EACnB,OAAmC;QAEnC,8DAA8D;QAC9D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC9B,qBAAqB,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;SAChF;QAED,8DAA8D;QAC9D,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC9B,OAAO,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SAC7C;IACF,CAAC;IAID,YACkB,IAA+B,EAC/B,OAAkD,EAClD,MAA2B,EAC3B,UAAyC;QAHzC,SAAI,GAAJ,IAAI,CAA2B;QAC/B,YAAO,GAAP,OAAO,CAA2C;QAClD,WAAM,GAAN,MAAM,CAAqB;QAC3B,eAAU,GAAV,UAAU,CAA+B;QAE1D,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,mCAAmC;QACnC,IAAI,IAAI,KAAK,SAAS,EAAE;YACvB,qBAAqB,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;SAChE;IACF,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAY;QACjC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,SAAS,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,IAAY;QACjC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEjF,IAAI,IAAI,KAAK,SAAS,EAAE;YACvB,OAAO,IAAI,CAAC;SACZ;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACxC,KAAK,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CACrB,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,SAAS,EAAE,yBAAyB,EAAE,EAAE,KAAK,CAAC,CAC3E,CAAC;QAEF,OAAO,KAAK,CAAC;IACd,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,IAAY;QAC7B,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrB,MAAM,SAAS,GAAG,IAAA,mDAAmC,EAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YAClD,oEAAoE;YACpE,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,EAAG,CAAC;YAChC,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACxB;QACD,IAAI,IAAI,KAAK,SAAS,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE;YACjD,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;SACvC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;IACvC,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,IAAY;QACtC,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;CACD;AArED,sDAqEC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IDocumentStorageService } from \"@fluidframework/driver-definitions\";\nimport { ISnapshotTree } from \"@fluidframework/protocol-definitions\";\nimport { IChannelStorageService } from \"@fluidframework/datastore-definitions\";\nimport { getNormalizedObjectStoragePathParts } from \"@fluidframework/runtime-utils\";\nimport { ITelemetryLoggerExt } from \"@fluidframework/telemetry-utils\";\n\nexport class ChannelStorageService implements IChannelStorageService {\n\tprivate static flattenTree(\n\t\tbase: string,\n\t\ttree: ISnapshotTree,\n\t\tresults: { [path: string]: string },\n\t) {\n\t\t// eslint-disable-next-line guard-for-in, no-restricted-syntax\n\t\tfor (const path in tree.trees) {\n\t\t\tChannelStorageService.flattenTree(`${base}${path}/`, tree.trees[path], results);\n\t\t}\n\n\t\t// eslint-disable-next-line guard-for-in, no-restricted-syntax\n\t\tfor (const blob in tree.blobs) {\n\t\t\tresults[`${base}${blob}`] = tree.blobs[blob];\n\t\t}\n\t}\n\n\tprivate readonly flattenedTree: { [path: string]: string };\n\n\tconstructor(\n\t\tprivate readonly tree: ISnapshotTree | undefined,\n\t\tprivate readonly storage: Pick<IDocumentStorageService, \"readBlob\">,\n\t\tprivate readonly logger: ITelemetryLoggerExt,\n\t\tprivate readonly extraBlobs?: Map<string, ArrayBufferLike>,\n\t) {\n\t\tthis.flattenedTree = {};\n\t\t// Create a map from paths to blobs\n\t\tif (tree !== undefined) {\n\t\t\tChannelStorageService.flattenTree(\"\", tree, this.flattenedTree);\n\t\t}\n\t}\n\n\tpublic async contains(path: string): Promise<boolean> {\n\t\treturn this.flattenedTree[path] !== undefined;\n\t}\n\n\tpublic async readBlob(path: string): Promise<ArrayBufferLike> {\n\t\tconst id = await this.getIdForPath(path);\n\t\tconst blob = this.extraBlobs !== undefined ? this.extraBlobs.get(id) : undefined;\n\n\t\tif (blob !== undefined) {\n\t\t\treturn blob;\n\t\t}\n\t\tconst blobP = this.storage.readBlob(id);\n\t\tblobP.catch((error) =>\n\t\t\tthis.logger.sendErrorEvent({ eventName: \"ChannelStorageBlobError\" }, error),\n\t\t);\n\n\t\treturn blobP;\n\t}\n\n\tpublic async list(path: string): Promise<string[]> {\n\t\tlet tree = this.tree;\n\t\tconst pathParts = getNormalizedObjectStoragePathParts(path);\n\t\twhile (tree !== undefined && pathParts.length > 0) {\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\t\t\tconst part = pathParts.shift()!;\n\t\t\ttree = tree.trees[part];\n\t\t}\n\t\tif (tree === undefined || pathParts.length !== 0) {\n\t\t\tthrow new Error(\"path does not exist\");\n\t\t}\n\n\t\treturn Object.keys(tree?.blobs ?? {});\n\t}\n\n\tprivate async getIdForPath(path: string): Promise<string> {\n\t\treturn this.flattenedTree[path];\n\t}\n}\n"]}
|
|
@@ -9,21 +9,29 @@ import { IAudience, IDeltaManager, AttachState, ILoaderOptions } from "@fluidfra
|
|
|
9
9
|
import { IClientDetails, IDocumentMessage, ISequencedDocumentMessage, IQuorumClients } from "@fluidframework/protocol-definitions";
|
|
10
10
|
import { IFluidDataStoreContext, IFluidDataStoreChannel, IGarbageCollectionData, IInboundSignalMessage, ISummaryTreeWithStats, VisibilityState, ITelemetryContext, IIdCompressor } from "@fluidframework/runtime-definitions";
|
|
11
11
|
import { IChannel, IFluidDataStoreRuntime, IFluidDataStoreRuntimeEvents, IChannelFactory } from "@fluidframework/datastore-definitions";
|
|
12
|
+
/**
|
|
13
|
+
* @public
|
|
14
|
+
*/
|
|
12
15
|
export declare enum DataStoreMessageType {
|
|
13
16
|
Attach = "attach",
|
|
14
17
|
ChannelOp = "op"
|
|
15
18
|
}
|
|
19
|
+
/**
|
|
20
|
+
* @public
|
|
21
|
+
*/
|
|
16
22
|
export interface ISharedObjectRegistry {
|
|
17
23
|
get(name: string): IChannelFactory | undefined;
|
|
18
24
|
}
|
|
19
25
|
/**
|
|
20
26
|
* Base data store class
|
|
27
|
+
*
|
|
28
|
+
* @public
|
|
21
29
|
*/
|
|
22
30
|
export declare class FluidDataStoreRuntime extends TypedEventEmitter<IFluidDataStoreRuntimeEvents> implements IFluidDataStoreChannel, IFluidDataStoreRuntime, IFluidHandleContext {
|
|
23
31
|
private readonly dataStoreContext;
|
|
24
32
|
private readonly sharedObjectRegistry;
|
|
25
33
|
/**
|
|
26
|
-
* @deprecated
|
|
34
|
+
* @deprecated Instantiate the class using its constructor instead.
|
|
27
35
|
*
|
|
28
36
|
* Loads the data store runtime
|
|
29
37
|
* @param context - The data store context
|
|
@@ -34,9 +42,9 @@ export declare class FluidDataStoreRuntime extends TypedEventEmitter<IFluidDataS
|
|
|
34
42
|
/**
|
|
35
43
|
* {@inheritDoc @fluidframework/datastore-definitions#IFluidDataStoreRuntime.entryPoint}
|
|
36
44
|
*/
|
|
37
|
-
readonly entryPoint
|
|
45
|
+
readonly entryPoint: IFluidHandle<FluidObject>;
|
|
38
46
|
/**
|
|
39
|
-
* @deprecated
|
|
47
|
+
* @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
40
48
|
*/
|
|
41
49
|
get IFluidRouter(): this;
|
|
42
50
|
get connected(): boolean;
|
|
@@ -89,17 +97,14 @@ export declare class FluidDataStoreRuntime extends TypedEventEmitter<IFluidDataS
|
|
|
89
97
|
* @param dataStoreContext - Context object for the runtime.
|
|
90
98
|
* @param sharedObjectRegistry - The registry of shared objects that this data store will be able to instantiate.
|
|
91
99
|
* @param existing - Pass 'true' if loading this datastore from an existing file; pass 'false' otherwise.
|
|
92
|
-
* @param
|
|
100
|
+
* @param provideEntryPoint - Function to initialize the entryPoint object for the data store runtime. The
|
|
93
101
|
* handle to this data store runtime will point to the object returned by this function. If this function is not
|
|
94
102
|
* provided, the handle will be left undefined. This is here so we can start making handles a first-class citizen
|
|
95
103
|
* and the primary way of interacting with some Fluid objects, and should be used if possible.
|
|
96
104
|
*/
|
|
97
|
-
constructor(dataStoreContext: IFluidDataStoreContext, sharedObjectRegistry: ISharedObjectRegistry, existing: boolean,
|
|
105
|
+
constructor(dataStoreContext: IFluidDataStoreContext, sharedObjectRegistry: ISharedObjectRegistry, existing: boolean, provideEntryPoint: (runtime: IFluidDataStoreRuntime) => Promise<FluidObject>);
|
|
98
106
|
dispose(): void;
|
|
99
107
|
resolveHandle(request: IRequest): Promise<IResponse>;
|
|
100
|
-
/**
|
|
101
|
-
* @deprecated - Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
|
|
102
|
-
*/
|
|
103
108
|
request(request: IRequest): Promise<IResponse>;
|
|
104
109
|
getChannel(id: string): Promise<IChannel>;
|
|
105
110
|
createChannel(id: string | undefined, type: string): IChannel;
|
|
@@ -125,14 +130,6 @@ export declare class FluidDataStoreRuntime extends TypedEventEmitter<IFluidDataS
|
|
|
125
130
|
* This function is called when a handle to this data store is added to a visible DDS.
|
|
126
131
|
*/
|
|
127
132
|
attachGraph(): void;
|
|
128
|
-
/**
|
|
129
|
-
* @deprecated - Not necessary if consumers add a new dataStore to the container by storing its handle.
|
|
130
|
-
* Binds this runtime to the container
|
|
131
|
-
* This includes the following:
|
|
132
|
-
* 1. Sending an Attach op that includes all existing state
|
|
133
|
-
* 2. Attaching the graph if the data store becomes attached.
|
|
134
|
-
*/
|
|
135
|
-
bindToContext(): void;
|
|
136
133
|
bind(handle: IFluidHandle): void;
|
|
137
134
|
setConnectionState(connected: boolean, clientId?: string): void;
|
|
138
135
|
getQuorum(): IQuorumClients;
|
|
@@ -235,6 +232,8 @@ export declare class FluidDataStoreRuntime extends TypedEventEmitter<IFluidDataS
|
|
|
235
232
|
* Request handler is only called when data store can't resolve request, i.e. for custom requests.
|
|
236
233
|
* @param Base - base class, inherits from FluidDataStoreRuntime
|
|
237
234
|
* @param requestHandler - request handler to mix in
|
|
235
|
+
*
|
|
236
|
+
* @public
|
|
238
237
|
*/
|
|
239
238
|
export declare const mixinRequestHandler: (requestHandler: (request: IRequest, runtime: FluidDataStoreRuntime) => Promise<IResponse>, Base?: typeof FluidDataStoreRuntime) => typeof FluidDataStoreRuntime;
|
|
240
239
|
/**
|
|
@@ -242,6 +241,8 @@ export declare const mixinRequestHandler: (requestHandler: (request: IRequest, r
|
|
|
242
241
|
* @param handler - handler that returns info about blob to be added to summary.
|
|
243
242
|
* Or undefined not to add anything to summary.
|
|
244
243
|
* @param Base - base class, inherits from FluidDataStoreRuntime
|
|
244
|
+
*
|
|
245
|
+
* @public
|
|
245
246
|
*/
|
|
246
247
|
export declare const mixinSummaryHandler: (handler: (runtime: FluidDataStoreRuntime) => Promise<{
|
|
247
248
|
path: string[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataStoreRuntime.d.ts","sourceRoot":"","sources":["../src/dataStoreRuntime.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AACjE,OAAO,EAEN,mBAAmB,EAQnB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACN,WAAW,EACX,YAAY,EACZ,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACN,SAAS,EACT,aAAa,EACb,WAAW,EACX,cAAc,EACd,MAAM,uCAAuC,CAAC;AAE/C,OAAO,EACN,cAAc,EACd,gBAAgB,EAChB,yBAAyB,EAIzB,cAAc,EACd,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAKN,sBAAsB,EACtB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"dataStoreRuntime.d.ts","sourceRoot":"","sources":["../src/dataStoreRuntime.ts"],"names":[],"mappings":"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"}
|