@fluidframework/routerlicious-driver 2.53.1 → 2.61.0-355054
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/.mocharc.cjs +1 -2
- package/CHANGELOG.md +4 -0
- package/api-report/{routerlicious-driver.legacy.alpha.api.md → routerlicious-driver.legacy.beta.api.md} +3 -3
- package/dist/documentServiceFactory.d.ts +1 -2
- package/dist/documentServiceFactory.d.ts.map +1 -1
- package/dist/documentServiceFactory.js +1 -2
- package/dist/documentServiceFactory.js.map +1 -1
- package/dist/errorUtils.d.ts +0 -4
- package/dist/errorUtils.d.ts.map +1 -1
- package/dist/legacy.d.ts +4 -2
- package/dist/packageVersion.d.ts +1 -1
- package/dist/packageVersion.d.ts.map +1 -1
- package/dist/packageVersion.js +1 -1
- package/dist/packageVersion.js.map +1 -1
- package/dist/public.d.ts +2 -1
- package/dist/routerliciousResolvedUrl.d.ts +1 -2
- package/dist/routerliciousResolvedUrl.d.ts.map +1 -1
- package/dist/routerliciousResolvedUrl.js.map +1 -1
- package/internal.d.ts +1 -1
- package/legacy.d.ts +1 -1
- package/lib/documentServiceFactory.d.ts +1 -2
- package/lib/documentServiceFactory.d.ts.map +1 -1
- package/lib/documentServiceFactory.js +1 -2
- package/lib/documentServiceFactory.js.map +1 -1
- package/lib/errorUtils.d.ts +0 -4
- package/lib/errorUtils.d.ts.map +1 -1
- package/lib/legacy.d.ts +4 -2
- package/lib/packageVersion.d.ts +1 -1
- package/lib/packageVersion.d.ts.map +1 -1
- package/lib/packageVersion.js +1 -1
- package/lib/packageVersion.js.map +1 -1
- package/lib/public.d.ts +2 -1
- package/lib/routerliciousResolvedUrl.d.ts +1 -2
- package/lib/routerliciousResolvedUrl.d.ts.map +1 -1
- package/lib/routerliciousResolvedUrl.js.map +1 -1
- package/lib/tsdoc-metadata.json +1 -1
- package/package.json +19 -19
- package/src/documentServiceFactory.ts +1 -2
- package/src/packageVersion.ts +1 -1
- package/src/routerliciousResolvedUrl.ts +1 -2
package/.mocharc.cjs
CHANGED
package/CHANGELOG.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
##
|
|
1
|
+
## Beta API Report File for "@fluidframework/routerlicious-driver"
|
|
2
2
|
|
|
3
3
|
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
|
|
7
|
-
// @
|
|
7
|
+
// @beta @legacy
|
|
8
8
|
export function createRouterliciousDocumentServiceFactory(tokenProvider: ITokenProvider): IDocumentServiceFactory;
|
|
9
9
|
|
|
10
|
-
// @
|
|
10
|
+
// @beta @legacy
|
|
11
11
|
export interface IRouterliciousResolvedUrl extends IResolvedUrl {
|
|
12
12
|
createAsEphemeral?: boolean;
|
|
13
13
|
routerliciousResolvedUrl: true;
|
|
@@ -69,8 +69,7 @@ export declare class DocumentPostCreateError extends Error {
|
|
|
69
69
|
/**
|
|
70
70
|
* Creates factory for creating the routerlicious document service.
|
|
71
71
|
*
|
|
72
|
-
* @legacy
|
|
73
|
-
* @alpha
|
|
72
|
+
* @legacy @beta
|
|
74
73
|
*/
|
|
75
74
|
export declare function createRouterliciousDocumentServiceFactory(tokenProvider: ITokenProvider): IDocumentServiceFactory;
|
|
76
75
|
//# sourceMappingURL=documentServiceFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentServiceFactory.d.ts","sourceRoot":"","sources":["../src/documentServiceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAEN,gBAAgB,EAChB,uBAAuB,EAEvB,YAAY,EAEZ,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EACN,QAAQ,EAER,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAU7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB7C;;;;GAIG;AACH,qBAAa,mCACZ,YAAW,uBAAuB,EAAE,0BAA0B;IAS7D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAP/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqD;IAC5F,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAiD;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAGtC,aAAa,EAAE,cAAc,EAC9C,cAAc,GAAE,OAAO,CAAC,4BAA4B,CAAM;IAwB3D;;;OAGG;IACH,IAAW,mBAAmB,IAAI,mBAAmB,CAEpD;IAED;;;;;OAKG;IACU,eAAe,CAC3B,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAwI5B;;;;OAIG;IACU,qBAAqB,CACjC,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,EAC5B,OAAO,CAAC,EAAE,QAAQ,GAChB,OAAO,CAAC,gBAAgB,CAAC;CA4G5B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAEhD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU;;IAH3B;;OAEG;IACc,UAAU,EAAE,KAAK;IAKnC,SAAgB,IAAI,6BAA6B;IAEjD,IAAW,KAAK,uBAEf;CACD;AAED
|
|
1
|
+
{"version":3,"file":"documentServiceFactory.d.ts","sourceRoot":"","sources":["../src/documentServiceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAEN,gBAAgB,EAChB,uBAAuB,EAEvB,YAAY,EAEZ,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EACN,QAAQ,EAER,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAU7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB7C;;;;GAIG;AACH,qBAAa,mCACZ,YAAW,uBAAuB,EAAE,0BAA0B;IAS7D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAP/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqD;IAC5F,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAiD;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAGtC,aAAa,EAAE,cAAc,EAC9C,cAAc,GAAE,OAAO,CAAC,4BAA4B,CAAM;IAwB3D;;;OAGG;IACH,IAAW,mBAAmB,IAAI,mBAAmB,CAEpD;IAED;;;;;OAKG;IACU,eAAe,CAC3B,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAwI5B;;;;OAIG;IACU,qBAAqB,CACjC,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,EAC5B,OAAO,CAAC,EAAE,QAAQ,GAChB,OAAO,CAAC,gBAAgB,CAAC;CA4G5B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAEhD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU;;IAH3B;;OAEG;IACc,UAAU,EAAE,KAAK;IAKnC,SAAgB,IAAI,6BAA6B;IAEjD,IAAW,KAAK,uBAEf;CACD;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACxD,aAAa,EAAE,cAAc,GAC3B,uBAAuB,CAEzB"}
|
|
@@ -248,8 +248,7 @@ exports.DocumentPostCreateError = DocumentPostCreateError;
|
|
|
248
248
|
/**
|
|
249
249
|
* Creates factory for creating the routerlicious document service.
|
|
250
250
|
*
|
|
251
|
-
* @legacy
|
|
252
|
-
* @alpha
|
|
251
|
+
* @legacy @beta
|
|
253
252
|
*/
|
|
254
253
|
function createRouterliciousDocumentServiceFactory(tokenProvider) {
|
|
255
254
|
return new RouterliciousDocumentServiceFactory(tokenProvider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentServiceFactory.js","sourceRoot":"","sources":["../src/documentServiceFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tILayerCompatDetails,\n\tIProvideLayerCompatDetails,\n} from \"@fluid-internal/client-utils\";\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport {\n\tFiveDaysMs,\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIDocumentStorageServicePolicies,\n\tIResolvedUrl,\n\tLoaderCachingPolicy,\n} from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tRateLimiter,\n\tgetDocAttributesFromProtocolSummary,\n\tgetQuorumValuesFromProtocolSummary,\n\tisCombinedAppAndProtocolSummary,\n} from \"@fluidframework/driver-utils/internal\";\nimport {\n\tISession,\n\tconvertSummaryTreeToWholeSummaryTree,\n} from \"@fluidframework/server-services-client\";\nimport { PerformanceEvent, createChildLogger } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { ICache, InMemoryCache, NullCache } from \"./cache.js\";\nimport { INormalizedWholeSnapshot } from \"./contracts.js\";\nimport { ISnapshotTreeVersion } from \"./definitions.js\";\nimport { DocumentService } from \"./documentService.js\";\nimport { pkgVersion as driverVersion } from \"./packageVersion.js\";\nimport { IRouterliciousDriverPolicies } from \"./policies.js\";\nimport { r11sDriverCompatDetailsForLoader } from \"./r11sLayerCompatState.js\";\nimport {\n\tRouterliciousOrdererRestWrapper,\n\tRouterliciousStorageRestWrapper,\n\ttoInstrumentedR11sOrdererTokenFetcher,\n\ttoInstrumentedR11sStorageTokenFetcher,\n} from \"./restWrapper.js\";\nimport { isRouterliciousResolvedUrl } from \"./routerliciousResolvedUrl.js\";\nimport { SessionInfoManager } from \"./sessionInfoManager.js\";\nimport { ITokenProvider } from \"./tokens.js\";\nimport { replaceDocumentIdInPath } from \"./urlUtils.js\";\n\nconst maximumSnapshotCacheDurationMs: FiveDaysMs = 432_000_000; // 5 days in ms\n\nconst defaultRouterliciousDriverPolicies: IRouterliciousDriverPolicies = {\n\tenablePrefetch: true,\n\tmaxConcurrentStorageRequests: 100,\n\tmaxConcurrentOrdererRequests: 100,\n\tenableDiscovery: false,\n\tenableWholeSummaryUpload: false,\n\tenableRestLess: true,\n\tenableInternalSummaryCaching: true,\n\tenableLongPollingDowngrade: true,\n};\n\n/**\n * Factory for creating the routerlicious document service. Use this if you want to\n * use the routerlicious implementation.\n * @internal\n */\nexport class RouterliciousDocumentServiceFactory\n\timplements IDocumentServiceFactory, IProvideLayerCompatDetails\n{\n\tprivate readonly driverPolicies: IRouterliciousDriverPolicies;\n\tprivate readonly blobCache: ICache<ArrayBufferLike>;\n\tprivate readonly wholeSnapshotTreeCache: ICache<INormalizedWholeSnapshot> = new NullCache();\n\tprivate readonly shreddedSummaryTreeCache: ICache<ISnapshotTreeVersion> = new NullCache();\n\tprivate readonly sessionInfoManager: SessionInfoManager;\n\n\tconstructor(\n\t\tprivate readonly tokenProvider: ITokenProvider,\n\t\tdriverPolicies: Partial<IRouterliciousDriverPolicies> = {},\n\t) {\n\t\t// Use the maximum allowed by the policy (IDocumentStorageServicePolicies.maximumCacheDurationMs set below)\n\t\tconst snapshotCacheExpiryMs: FiveDaysMs = maximumSnapshotCacheDurationMs;\n\n\t\tthis.driverPolicies = {\n\t\t\t...defaultRouterliciousDriverPolicies,\n\t\t\t...driverPolicies,\n\t\t};\n\t\tthis.blobCache = new InMemoryCache<ArrayBufferLike>();\n\t\tif (this.driverPolicies.enableInternalSummaryCaching) {\n\t\t\tif (this.driverPolicies.enableWholeSummaryUpload) {\n\t\t\t\tthis.wholeSnapshotTreeCache = new InMemoryCache<INormalizedWholeSnapshot>(\n\t\t\t\t\tsnapshotCacheExpiryMs,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.shreddedSummaryTreeCache = new InMemoryCache<ISnapshotTreeVersion>(\n\t\t\t\t\tsnapshotCacheExpiryMs,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.sessionInfoManager = new SessionInfoManager(this.driverPolicies.enableDiscovery);\n\t}\n\n\t/**\n\t * The compatibility details of the Routerlicious Driver layer that is exposed to the Loader layer\n\t * for validating Loader-Driver compatibility.\n\t */\n\tpublic get ILayerCompatDetails(): ILayerCompatDetails {\n\t\treturn r11sDriverCompatDetailsForLoader;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createContainer}\n\t *\n\t * @throws {@link DocumentPostCreateError}\n\t * If an exception is thrown while invoking the provided {@link ITokenProvider.documentPostCreateCallback}.\n\t */\n\tpublic async createContainer(\n\t\tcreateNewSummary: ISummaryTree | undefined,\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\tif (createNewSummary === undefined) {\n\t\t\tthrow new Error(\"Empty file summary creation isn't supported in this driver.\");\n\t\t}\n\t\tassert(!!resolvedUrl.endpoints.ordererUrl, 0x0b2 /* \"Missing orderer URL!\" */);\n\t\tconst parsedUrl = new URL(resolvedUrl.url);\n\t\tif (!parsedUrl.pathname) {\n\t\t\tthrow new Error(\"Parsed url should contain tenant and doc Id!!\");\n\t\t}\n\t\tconst [, tenantId] = parsedUrl.pathname.split(\"/\");\n\n\t\tif (!isCombinedAppAndProtocolSummary(createNewSummary)) {\n\t\t\tthrow new Error(\"Protocol and App Summary required in the full summary\");\n\t\t}\n\t\tconst protocolSummary = createNewSummary.tree[\".protocol\"];\n\t\tconst appSummary = createNewSummary.tree[\".app\"];\n\n\t\tconst documentAttributes = getDocAttributesFromProtocolSummary(protocolSummary);\n\t\tconst quorumValues = getQuorumValuesFromProtocolSummary(protocolSummary);\n\n\t\tconst logger2 = createChildLogger({ logger, namespace: \"RouterliciousDriver\" });\n\t\tconst ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(\n\t\t\ttenantId,\n\t\t\tundefined /* documentId */,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);\n\t\tconst ordererRestWrapper = RouterliciousOrdererRestWrapper.load(\n\t\t\tordererTokenFetcher,\n\t\t\tlogger2,\n\t\t\trateLimiter,\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tresolvedUrl.endpoints.ordererUrl /* baseUrl */,\n\t\t);\n\n\t\tconst createAsEphemeral = isRouterliciousResolvedUrl(resolvedUrl)\n\t\t\t? resolvedUrl.createAsEphemeral === true\n\t\t\t: false;\n\n\t\tconst res = await PerformanceEvent.timedExecAsync(\n\t\t\tlogger2,\n\t\t\t{\n\t\t\t\teventName: \"CreateNew\",\n\t\t\t\tdetails: JSON.stringify({\n\t\t\t\t\tenableDiscovery: this.driverPolicies.enableDiscovery,\n\t\t\t\t\tsequenceNumber: documentAttributes.sequenceNumber,\n\t\t\t\t\tisEphemeralContainer: createAsEphemeral,\n\t\t\t\t}),\n\t\t\t},\n\t\t\tasync (event) => {\n\t\t\t\t// @TODO: Remove returned \"string\" type when removing back-compat code\n\t\t\t\tconst postRes = (\n\t\t\t\t\tawait ordererRestWrapper.post<\n\t\t\t\t\t\t{ id: string; token?: string; session?: ISession } | string\n\t\t\t\t\t>(`/documents/${tenantId}`, {\n\t\t\t\t\t\tsummary: convertSummaryTreeToWholeSummaryTree(undefined, appSummary),\n\t\t\t\t\t\tsequenceNumber: documentAttributes.sequenceNumber,\n\t\t\t\t\t\tvalues: quorumValues,\n\t\t\t\t\t\tenableDiscovery: this.driverPolicies.enableDiscovery,\n\t\t\t\t\t\tgenerateToken: this.tokenProvider.documentPostCreateCallback !== undefined,\n\t\t\t\t\t\tisEphemeralContainer: createAsEphemeral,\n\t\t\t\t\t\tenableAnyBinaryBlobOnFirstSummary: true,\n\t\t\t\t\t})\n\t\t\t\t).content;\n\n\t\t\t\tevent.end({\n\t\t\t\t\tdocId: typeof postRes === \"string\" ? postRes : postRes.id,\n\t\t\t\t});\n\t\t\t\treturn postRes;\n\t\t\t},\n\t\t);\n\n\t\t// For supporting backward compatibility, when the request has generateToken === true, it will return\n\t\t// an object instead of string\n\t\t// @TODO: Remove the logic when no need to support back-compat\n\n\t\tlet documentId: string;\n\t\tlet token: string | undefined;\n\t\tlet session: ISession | undefined;\n\t\tif (typeof res === \"string\") {\n\t\t\tdocumentId = res;\n\t\t} else {\n\t\t\tdocumentId = res.id;\n\t\t\ttoken = res.token;\n\t\t\tsession = this.driverPolicies.enableDiscovery ? res.session : undefined;\n\t\t}\n\n\t\t// @TODO: Remove token from the condition, checking the documentPostCreateCallback !== undefined\n\t\t// is sufficient to determine if the token will be undefined or not.\n\t\ttry {\n\t\t\tawait PerformanceEvent.timedExecAsync(\n\t\t\t\tlogger2,\n\t\t\t\t{\n\t\t\t\t\teventName: \"DocPostCreateCallback\",\n\t\t\t\t\tdocId: documentId,\n\t\t\t\t},\n\t\t\t\tasync () => {\n\t\t\t\t\tif (token && this.tokenProvider.documentPostCreateCallback !== undefined) {\n\t\t\t\t\t\treturn this.tokenProvider.documentPostCreateCallback(documentId, token);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t} catch (error: any) {\n\t\t\tthrow new DocumentPostCreateError(error);\n\t\t}\n\n\t\tparsedUrl.pathname = replaceDocumentIdInPath(parsedUrl.pathname, documentId);\n\t\tconst deltaStorageUrl = resolvedUrl.endpoints.deltaStorageUrl;\n\t\tif (!deltaStorageUrl) {\n\t\t\tthrow new Error(\n\t\t\t\t`All endpoints urls must be provided. [deltaStorageUrl:${deltaStorageUrl}]`,\n\t\t\t);\n\t\t}\n\t\tconst parsedDeltaStorageUrl = new URL(deltaStorageUrl);\n\t\tparsedDeltaStorageUrl.pathname = replaceDocumentIdInPath(\n\t\t\tparsedDeltaStorageUrl.pathname,\n\t\t\tdocumentId,\n\t\t);\n\n\t\treturn this.createDocumentService(\n\t\t\t{\n\t\t\t\t...resolvedUrl,\n\t\t\t\turl: parsedUrl.toString(),\n\t\t\t\tid: documentId,\n\t\t\t\tendpoints: {\n\t\t\t\t\t...resolvedUrl.endpoints,\n\t\t\t\t\tdeltaStorageUrl: parsedDeltaStorageUrl.toString(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tlogger,\n\t\t\tclientIsSummarizer,\n\t\t\tsession,\n\t\t);\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createDocumentService}\n\t *\n\t * @returns Routerlicious document service.\n\t */\n\tpublic async createDocumentService(\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t\tsession?: ISession,\n\t): Promise<IDocumentService> {\n\t\tconst parsedUrl = new URL(resolvedUrl.url);\n\t\tconst [, tenantId, documentId] = parsedUrl.pathname.split(\"/\");\n\t\tif (!documentId || !tenantId) {\n\t\t\tthrow new Error(\n\t\t\t\t`Couldn't parse documentId and/or tenantId. [documentId:${documentId}][tenantId:${tenantId}]`,\n\t\t\t);\n\t\t}\n\t\tconst logger2 = createChildLogger({\n\t\t\tlogger,\n\t\t\tnamespace: \"RouterliciousDriver\",\n\t\t\tproperties: {\n\t\t\t\tall: { driverVersion },\n\t\t\t},\n\t\t});\n\n\t\tconst ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst storageTokenFetcher = toInstrumentedR11sStorageTokenFetcher(\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst ordererTokenP = ordererTokenFetcher();\n\t\tconst storageTokenP = storageTokenFetcher();\n\n\t\tconst rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);\n\t\tconst ordererRestWrapper = RouterliciousOrdererRestWrapper.load(\n\t\t\tordererTokenFetcher,\n\t\t\tlogger2,\n\t\t\trateLimiter,\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tundefined /* baseUrl */,\n\t\t\tordererTokenP,\n\t\t);\n\n\t\tconst fluidResolvedUrl: IResolvedUrl = await this.sessionInfoManager.initializeSessionInfo(\n\t\t\t{\n\t\t\t\tsession,\n\t\t\t\tresolvedUrl,\n\t\t\t\tdocumentId,\n\t\t\t\ttenantId,\n\t\t\t\tordererRestWrapper,\n\t\t\t\tlogger: logger2,\n\t\t\t},\n\t\t);\n\n\t\tconst storageUrl = fluidResolvedUrl.endpoints.storageUrl;\n\t\tconst ordererUrl = fluidResolvedUrl.endpoints.ordererUrl;\n\t\tconst deltaStorageUrl = fluidResolvedUrl.endpoints.deltaStorageUrl;\n\t\tconst deltaStreamUrl = fluidResolvedUrl.endpoints.deltaStreamUrl || ordererUrl; // backward compatibility\n\t\tif (!ordererUrl || !deltaStorageUrl) {\n\t\t\tthrow new Error(\n\t\t\t\t`All endpoints urls must be provided. [ordererUrl:${ordererUrl}][deltaStorageUrl:${deltaStorageUrl}]`,\n\t\t\t);\n\t\t}\n\n\t\tconst storageRestWrapper = RouterliciousStorageRestWrapper.load(\n\t\t\ttenantId,\n\t\t\tstorageTokenFetcher,\n\t\t\tlogger2,\n\t\t\tnew RateLimiter(this.driverPolicies.maxConcurrentStorageRequests),\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tstorageUrl /* baseUrl */,\n\t\t\tstorageTokenP,\n\t\t);\n\n\t\tconst documentStorageServicePolicies: IDocumentStorageServicePolicies = {\n\t\t\tcaching: this.driverPolicies.enablePrefetch\n\t\t\t\t? LoaderCachingPolicy.Prefetch\n\t\t\t\t: LoaderCachingPolicy.NoCaching,\n\t\t\tmaximumCacheDurationMs: maximumSnapshotCacheDurationMs,\n\t\t};\n\n\t\treturn new DocumentService(\n\t\t\tfluidResolvedUrl,\n\t\t\tordererUrl,\n\t\t\tdeltaStorageUrl,\n\t\t\tdeltaStreamUrl,\n\t\t\tstorageUrl,\n\t\t\tlogger2,\n\t\t\tthis.tokenProvider,\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tordererRestWrapper,\n\t\t\tdocumentStorageServicePolicies,\n\t\t\tthis.driverPolicies,\n\t\t\tthis.blobCache,\n\t\t\tthis.wholeSnapshotTreeCache,\n\t\t\tthis.shreddedSummaryTreeCache,\n\t\t\tasync () =>\n\t\t\t\tthis.sessionInfoManager.getSessionInfo({\n\t\t\t\t\tresolvedUrl,\n\t\t\t\t\tdocumentId,\n\t\t\t\t\ttenantId,\n\t\t\t\t\tordererRestWrapper,\n\t\t\t\t\tlogger: logger2,\n\t\t\t\t}),\n\t\t\tstorageRestWrapper,\n\t\t\tstorageTokenFetcher,\n\t\t\tordererTokenFetcher,\n\t\t);\n\t}\n}\n\n/**\n * Error returned by {@link RouterliciousDocumentServiceFactory.createContainer} when an error is thrown\n * in {@link ITokenProvider.documentPostCreateCallback}.\n * It is the consumer's responsibility to ensure that any state related to container creation is appropriately\n * cleaned up in the event of failure.\n * This includes the document itself, which will have been created by the time this error was thrown.\n *\n * @remarks TODO: examples of suggested actions for recovery.\n * - How would a user delete the created document?\n * - What would a retry pattern look like here?\n * @internal\n */\nexport class DocumentPostCreateError extends Error {\n\tpublic constructor(\n\t\t/**\n\t\t * Inner error being wrapped.\n\t\t */\n\t\tprivate readonly innerError: Error,\n\t) {\n\t\tsuper(innerError.message);\n\t}\n\n\tpublic readonly name = \"DocumentPostCreateError\";\n\n\tpublic get stack() {\n\t\treturn this.innerError.stack;\n\t}\n}\n\n/**\n * Creates factory for creating the routerlicious document service.\n *\n * @legacy\n * @alpha\n */\nexport function createRouterliciousDocumentServiceFactory(\n\ttokenProvider: ITokenProvider,\n): IDocumentServiceFactory {\n\treturn new RouterliciousDocumentServiceFactory(tokenProvider);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"documentServiceFactory.js","sourceRoot":"","sources":["../src/documentServiceFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tILayerCompatDetails,\n\tIProvideLayerCompatDetails,\n} from \"@fluid-internal/client-utils\";\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport {\n\tFiveDaysMs,\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIDocumentStorageServicePolicies,\n\tIResolvedUrl,\n\tLoaderCachingPolicy,\n} from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tRateLimiter,\n\tgetDocAttributesFromProtocolSummary,\n\tgetQuorumValuesFromProtocolSummary,\n\tisCombinedAppAndProtocolSummary,\n} from \"@fluidframework/driver-utils/internal\";\nimport {\n\tISession,\n\tconvertSummaryTreeToWholeSummaryTree,\n} from \"@fluidframework/server-services-client\";\nimport { PerformanceEvent, createChildLogger } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { ICache, InMemoryCache, NullCache } from \"./cache.js\";\nimport { INormalizedWholeSnapshot } from \"./contracts.js\";\nimport { ISnapshotTreeVersion } from \"./definitions.js\";\nimport { DocumentService } from \"./documentService.js\";\nimport { pkgVersion as driverVersion } from \"./packageVersion.js\";\nimport { IRouterliciousDriverPolicies } from \"./policies.js\";\nimport { r11sDriverCompatDetailsForLoader } from \"./r11sLayerCompatState.js\";\nimport {\n\tRouterliciousOrdererRestWrapper,\n\tRouterliciousStorageRestWrapper,\n\ttoInstrumentedR11sOrdererTokenFetcher,\n\ttoInstrumentedR11sStorageTokenFetcher,\n} from \"./restWrapper.js\";\nimport { isRouterliciousResolvedUrl } from \"./routerliciousResolvedUrl.js\";\nimport { SessionInfoManager } from \"./sessionInfoManager.js\";\nimport { ITokenProvider } from \"./tokens.js\";\nimport { replaceDocumentIdInPath } from \"./urlUtils.js\";\n\nconst maximumSnapshotCacheDurationMs: FiveDaysMs = 432_000_000; // 5 days in ms\n\nconst defaultRouterliciousDriverPolicies: IRouterliciousDriverPolicies = {\n\tenablePrefetch: true,\n\tmaxConcurrentStorageRequests: 100,\n\tmaxConcurrentOrdererRequests: 100,\n\tenableDiscovery: false,\n\tenableWholeSummaryUpload: false,\n\tenableRestLess: true,\n\tenableInternalSummaryCaching: true,\n\tenableLongPollingDowngrade: true,\n};\n\n/**\n * Factory for creating the routerlicious document service. Use this if you want to\n * use the routerlicious implementation.\n * @internal\n */\nexport class RouterliciousDocumentServiceFactory\n\timplements IDocumentServiceFactory, IProvideLayerCompatDetails\n{\n\tprivate readonly driverPolicies: IRouterliciousDriverPolicies;\n\tprivate readonly blobCache: ICache<ArrayBufferLike>;\n\tprivate readonly wholeSnapshotTreeCache: ICache<INormalizedWholeSnapshot> = new NullCache();\n\tprivate readonly shreddedSummaryTreeCache: ICache<ISnapshotTreeVersion> = new NullCache();\n\tprivate readonly sessionInfoManager: SessionInfoManager;\n\n\tconstructor(\n\t\tprivate readonly tokenProvider: ITokenProvider,\n\t\tdriverPolicies: Partial<IRouterliciousDriverPolicies> = {},\n\t) {\n\t\t// Use the maximum allowed by the policy (IDocumentStorageServicePolicies.maximumCacheDurationMs set below)\n\t\tconst snapshotCacheExpiryMs: FiveDaysMs = maximumSnapshotCacheDurationMs;\n\n\t\tthis.driverPolicies = {\n\t\t\t...defaultRouterliciousDriverPolicies,\n\t\t\t...driverPolicies,\n\t\t};\n\t\tthis.blobCache = new InMemoryCache<ArrayBufferLike>();\n\t\tif (this.driverPolicies.enableInternalSummaryCaching) {\n\t\t\tif (this.driverPolicies.enableWholeSummaryUpload) {\n\t\t\t\tthis.wholeSnapshotTreeCache = new InMemoryCache<INormalizedWholeSnapshot>(\n\t\t\t\t\tsnapshotCacheExpiryMs,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.shreddedSummaryTreeCache = new InMemoryCache<ISnapshotTreeVersion>(\n\t\t\t\t\tsnapshotCacheExpiryMs,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.sessionInfoManager = new SessionInfoManager(this.driverPolicies.enableDiscovery);\n\t}\n\n\t/**\n\t * The compatibility details of the Routerlicious Driver layer that is exposed to the Loader layer\n\t * for validating Loader-Driver compatibility.\n\t */\n\tpublic get ILayerCompatDetails(): ILayerCompatDetails {\n\t\treturn r11sDriverCompatDetailsForLoader;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createContainer}\n\t *\n\t * @throws {@link DocumentPostCreateError}\n\t * If an exception is thrown while invoking the provided {@link ITokenProvider.documentPostCreateCallback}.\n\t */\n\tpublic async createContainer(\n\t\tcreateNewSummary: ISummaryTree | undefined,\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\tif (createNewSummary === undefined) {\n\t\t\tthrow new Error(\"Empty file summary creation isn't supported in this driver.\");\n\t\t}\n\t\tassert(!!resolvedUrl.endpoints.ordererUrl, 0x0b2 /* \"Missing orderer URL!\" */);\n\t\tconst parsedUrl = new URL(resolvedUrl.url);\n\t\tif (!parsedUrl.pathname) {\n\t\t\tthrow new Error(\"Parsed url should contain tenant and doc Id!!\");\n\t\t}\n\t\tconst [, tenantId] = parsedUrl.pathname.split(\"/\");\n\n\t\tif (!isCombinedAppAndProtocolSummary(createNewSummary)) {\n\t\t\tthrow new Error(\"Protocol and App Summary required in the full summary\");\n\t\t}\n\t\tconst protocolSummary = createNewSummary.tree[\".protocol\"];\n\t\tconst appSummary = createNewSummary.tree[\".app\"];\n\n\t\tconst documentAttributes = getDocAttributesFromProtocolSummary(protocolSummary);\n\t\tconst quorumValues = getQuorumValuesFromProtocolSummary(protocolSummary);\n\n\t\tconst logger2 = createChildLogger({ logger, namespace: \"RouterliciousDriver\" });\n\t\tconst ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(\n\t\t\ttenantId,\n\t\t\tundefined /* documentId */,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);\n\t\tconst ordererRestWrapper = RouterliciousOrdererRestWrapper.load(\n\t\t\tordererTokenFetcher,\n\t\t\tlogger2,\n\t\t\trateLimiter,\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tresolvedUrl.endpoints.ordererUrl /* baseUrl */,\n\t\t);\n\n\t\tconst createAsEphemeral = isRouterliciousResolvedUrl(resolvedUrl)\n\t\t\t? resolvedUrl.createAsEphemeral === true\n\t\t\t: false;\n\n\t\tconst res = await PerformanceEvent.timedExecAsync(\n\t\t\tlogger2,\n\t\t\t{\n\t\t\t\teventName: \"CreateNew\",\n\t\t\t\tdetails: JSON.stringify({\n\t\t\t\t\tenableDiscovery: this.driverPolicies.enableDiscovery,\n\t\t\t\t\tsequenceNumber: documentAttributes.sequenceNumber,\n\t\t\t\t\tisEphemeralContainer: createAsEphemeral,\n\t\t\t\t}),\n\t\t\t},\n\t\t\tasync (event) => {\n\t\t\t\t// @TODO: Remove returned \"string\" type when removing back-compat code\n\t\t\t\tconst postRes = (\n\t\t\t\t\tawait ordererRestWrapper.post<\n\t\t\t\t\t\t{ id: string; token?: string; session?: ISession } | string\n\t\t\t\t\t>(`/documents/${tenantId}`, {\n\t\t\t\t\t\tsummary: convertSummaryTreeToWholeSummaryTree(undefined, appSummary),\n\t\t\t\t\t\tsequenceNumber: documentAttributes.sequenceNumber,\n\t\t\t\t\t\tvalues: quorumValues,\n\t\t\t\t\t\tenableDiscovery: this.driverPolicies.enableDiscovery,\n\t\t\t\t\t\tgenerateToken: this.tokenProvider.documentPostCreateCallback !== undefined,\n\t\t\t\t\t\tisEphemeralContainer: createAsEphemeral,\n\t\t\t\t\t\tenableAnyBinaryBlobOnFirstSummary: true,\n\t\t\t\t\t})\n\t\t\t\t).content;\n\n\t\t\t\tevent.end({\n\t\t\t\t\tdocId: typeof postRes === \"string\" ? postRes : postRes.id,\n\t\t\t\t});\n\t\t\t\treturn postRes;\n\t\t\t},\n\t\t);\n\n\t\t// For supporting backward compatibility, when the request has generateToken === true, it will return\n\t\t// an object instead of string\n\t\t// @TODO: Remove the logic when no need to support back-compat\n\n\t\tlet documentId: string;\n\t\tlet token: string | undefined;\n\t\tlet session: ISession | undefined;\n\t\tif (typeof res === \"string\") {\n\t\t\tdocumentId = res;\n\t\t} else {\n\t\t\tdocumentId = res.id;\n\t\t\ttoken = res.token;\n\t\t\tsession = this.driverPolicies.enableDiscovery ? res.session : undefined;\n\t\t}\n\n\t\t// @TODO: Remove token from the condition, checking the documentPostCreateCallback !== undefined\n\t\t// is sufficient to determine if the token will be undefined or not.\n\t\ttry {\n\t\t\tawait PerformanceEvent.timedExecAsync(\n\t\t\t\tlogger2,\n\t\t\t\t{\n\t\t\t\t\teventName: \"DocPostCreateCallback\",\n\t\t\t\t\tdocId: documentId,\n\t\t\t\t},\n\t\t\t\tasync () => {\n\t\t\t\t\tif (token && this.tokenProvider.documentPostCreateCallback !== undefined) {\n\t\t\t\t\t\treturn this.tokenProvider.documentPostCreateCallback(documentId, token);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t} catch (error: any) {\n\t\t\tthrow new DocumentPostCreateError(error);\n\t\t}\n\n\t\tparsedUrl.pathname = replaceDocumentIdInPath(parsedUrl.pathname, documentId);\n\t\tconst deltaStorageUrl = resolvedUrl.endpoints.deltaStorageUrl;\n\t\tif (!deltaStorageUrl) {\n\t\t\tthrow new Error(\n\t\t\t\t`All endpoints urls must be provided. [deltaStorageUrl:${deltaStorageUrl}]`,\n\t\t\t);\n\t\t}\n\t\tconst parsedDeltaStorageUrl = new URL(deltaStorageUrl);\n\t\tparsedDeltaStorageUrl.pathname = replaceDocumentIdInPath(\n\t\t\tparsedDeltaStorageUrl.pathname,\n\t\t\tdocumentId,\n\t\t);\n\n\t\treturn this.createDocumentService(\n\t\t\t{\n\t\t\t\t...resolvedUrl,\n\t\t\t\turl: parsedUrl.toString(),\n\t\t\t\tid: documentId,\n\t\t\t\tendpoints: {\n\t\t\t\t\t...resolvedUrl.endpoints,\n\t\t\t\t\tdeltaStorageUrl: parsedDeltaStorageUrl.toString(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tlogger,\n\t\t\tclientIsSummarizer,\n\t\t\tsession,\n\t\t);\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createDocumentService}\n\t *\n\t * @returns Routerlicious document service.\n\t */\n\tpublic async createDocumentService(\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t\tsession?: ISession,\n\t): Promise<IDocumentService> {\n\t\tconst parsedUrl = new URL(resolvedUrl.url);\n\t\tconst [, tenantId, documentId] = parsedUrl.pathname.split(\"/\");\n\t\tif (!documentId || !tenantId) {\n\t\t\tthrow new Error(\n\t\t\t\t`Couldn't parse documentId and/or tenantId. [documentId:${documentId}][tenantId:${tenantId}]`,\n\t\t\t);\n\t\t}\n\t\tconst logger2 = createChildLogger({\n\t\t\tlogger,\n\t\t\tnamespace: \"RouterliciousDriver\",\n\t\t\tproperties: {\n\t\t\t\tall: { driverVersion },\n\t\t\t},\n\t\t});\n\n\t\tconst ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst storageTokenFetcher = toInstrumentedR11sStorageTokenFetcher(\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst ordererTokenP = ordererTokenFetcher();\n\t\tconst storageTokenP = storageTokenFetcher();\n\n\t\tconst rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);\n\t\tconst ordererRestWrapper = RouterliciousOrdererRestWrapper.load(\n\t\t\tordererTokenFetcher,\n\t\t\tlogger2,\n\t\t\trateLimiter,\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tundefined /* baseUrl */,\n\t\t\tordererTokenP,\n\t\t);\n\n\t\tconst fluidResolvedUrl: IResolvedUrl = await this.sessionInfoManager.initializeSessionInfo(\n\t\t\t{\n\t\t\t\tsession,\n\t\t\t\tresolvedUrl,\n\t\t\t\tdocumentId,\n\t\t\t\ttenantId,\n\t\t\t\tordererRestWrapper,\n\t\t\t\tlogger: logger2,\n\t\t\t},\n\t\t);\n\n\t\tconst storageUrl = fluidResolvedUrl.endpoints.storageUrl;\n\t\tconst ordererUrl = fluidResolvedUrl.endpoints.ordererUrl;\n\t\tconst deltaStorageUrl = fluidResolvedUrl.endpoints.deltaStorageUrl;\n\t\tconst deltaStreamUrl = fluidResolvedUrl.endpoints.deltaStreamUrl || ordererUrl; // backward compatibility\n\t\tif (!ordererUrl || !deltaStorageUrl) {\n\t\t\tthrow new Error(\n\t\t\t\t`All endpoints urls must be provided. [ordererUrl:${ordererUrl}][deltaStorageUrl:${deltaStorageUrl}]`,\n\t\t\t);\n\t\t}\n\n\t\tconst storageRestWrapper = RouterliciousStorageRestWrapper.load(\n\t\t\ttenantId,\n\t\t\tstorageTokenFetcher,\n\t\t\tlogger2,\n\t\t\tnew RateLimiter(this.driverPolicies.maxConcurrentStorageRequests),\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tstorageUrl /* baseUrl */,\n\t\t\tstorageTokenP,\n\t\t);\n\n\t\tconst documentStorageServicePolicies: IDocumentStorageServicePolicies = {\n\t\t\tcaching: this.driverPolicies.enablePrefetch\n\t\t\t\t? LoaderCachingPolicy.Prefetch\n\t\t\t\t: LoaderCachingPolicy.NoCaching,\n\t\t\tmaximumCacheDurationMs: maximumSnapshotCacheDurationMs,\n\t\t};\n\n\t\treturn new DocumentService(\n\t\t\tfluidResolvedUrl,\n\t\t\tordererUrl,\n\t\t\tdeltaStorageUrl,\n\t\t\tdeltaStreamUrl,\n\t\t\tstorageUrl,\n\t\t\tlogger2,\n\t\t\tthis.tokenProvider,\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tordererRestWrapper,\n\t\t\tdocumentStorageServicePolicies,\n\t\t\tthis.driverPolicies,\n\t\t\tthis.blobCache,\n\t\t\tthis.wholeSnapshotTreeCache,\n\t\t\tthis.shreddedSummaryTreeCache,\n\t\t\tasync () =>\n\t\t\t\tthis.sessionInfoManager.getSessionInfo({\n\t\t\t\t\tresolvedUrl,\n\t\t\t\t\tdocumentId,\n\t\t\t\t\ttenantId,\n\t\t\t\t\tordererRestWrapper,\n\t\t\t\t\tlogger: logger2,\n\t\t\t\t}),\n\t\t\tstorageRestWrapper,\n\t\t\tstorageTokenFetcher,\n\t\t\tordererTokenFetcher,\n\t\t);\n\t}\n}\n\n/**\n * Error returned by {@link RouterliciousDocumentServiceFactory.createContainer} when an error is thrown\n * in {@link ITokenProvider.documentPostCreateCallback}.\n * It is the consumer's responsibility to ensure that any state related to container creation is appropriately\n * cleaned up in the event of failure.\n * This includes the document itself, which will have been created by the time this error was thrown.\n *\n * @remarks TODO: examples of suggested actions for recovery.\n * - How would a user delete the created document?\n * - What would a retry pattern look like here?\n * @internal\n */\nexport class DocumentPostCreateError extends Error {\n\tpublic constructor(\n\t\t/**\n\t\t * Inner error being wrapped.\n\t\t */\n\t\tprivate readonly innerError: Error,\n\t) {\n\t\tsuper(innerError.message);\n\t}\n\n\tpublic readonly name = \"DocumentPostCreateError\";\n\n\tpublic get stack() {\n\t\treturn this.innerError.stack;\n\t}\n}\n\n/**\n * Creates factory for creating the routerlicious document service.\n *\n * @legacy @beta\n */\nexport function createRouterliciousDocumentServiceFactory(\n\ttokenProvider: ITokenProvider,\n): IDocumentServiceFactory {\n\treturn new RouterliciousDocumentServiceFactory(tokenProvider);\n}\n"]}
|
package/dist/errorUtils.d.ts
CHANGED
|
@@ -26,10 +26,6 @@ export declare const RouterliciousErrorTypes: {
|
|
|
26
26
|
readonly offlineError: "offlineError";
|
|
27
27
|
readonly unsupportedClientProtocolVersion: "unsupportedClientProtocolVersion";
|
|
28
28
|
readonly writeError: "writeError";
|
|
29
|
-
/**
|
|
30
|
-
* Interface for error responses for the WebSocket connection
|
|
31
|
-
* Intended to be compatible with output from `NetworkError.toJSON`.
|
|
32
|
-
*/
|
|
33
29
|
readonly fetchFailure: "fetchFailure";
|
|
34
30
|
readonly fetchTokenError: "fetchTokenError";
|
|
35
31
|
readonly incorrectServerResponse: "incorrectServerResponse";
|
package/dist/errorUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorUtils.d.ts","sourceRoot":"","sources":["../src/errorUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,WAAW,EAEX,gBAAgB,EAChB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAKN,KAAK,yBAAyB,EAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAKzF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;IAInC;;OAEG;;IAGH;;;OAGG
|
|
1
|
+
{"version":3,"file":"errorUtils.d.ts","sourceRoot":"","sources":["../src/errorUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,WAAW,EAEX,gBAAgB,EAChB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAKN,KAAK,yBAAyB,EAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAKzF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;IAInC;;OAEG;;IAGH;;;OAGG;;;;;;;;;;;;;;;;;;;;CAEM,CAAC;AACX;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAClC,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,qBAAa,oBAAqB,SAAQ,YAAa,YAAW,eAAe;IAM/E,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IALnC,QAAQ,CAAC,SAAS,yBAAgD;IAClE,QAAQ,CAAC,QAAQ,QAAQ;gBAGxB,OAAO,EAAE,MAAM,EACN,iBAAiB,EAAE,MAAM,EAClC,KAAK,EAAE,yBAAyB;CAIjC;AAED,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC;IACtE,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;CAC5C;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjD,wBAAgB,sBAAsB,CACrC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,yBAAyB,EAC3C,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,GACjC,eAAe,GAAG,SAAS,CAqC7B;AAED,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,yBAAyB,GACzC,KAAK,CAEP;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,yBAAyB,GACzC,SAAS,CAgBX;AAED,kDAAkD;AAClD,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,GAAG,SAAS,CAuC1F"}
|
package/dist/legacy.d.ts
CHANGED
|
@@ -9,11 +9,13 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
export {
|
|
12
|
-
// @public APIs
|
|
12
|
+
// #region @public APIs
|
|
13
13
|
ITokenProvider,
|
|
14
14
|
ITokenResponse,
|
|
15
|
+
// #endregion
|
|
15
16
|
|
|
16
|
-
// @
|
|
17
|
+
// #region @legacyBeta APIs
|
|
17
18
|
IRouterliciousResolvedUrl,
|
|
18
19
|
createRouterliciousDocumentServiceFactory
|
|
20
|
+
// #endregion
|
|
19
21
|
} from "./index.js";
|
package/dist/packageVersion.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
|
6
6
|
*/
|
|
7
7
|
export declare const pkgName = "@fluidframework/routerlicious-driver";
|
|
8
|
-
export declare const pkgVersion = "2.
|
|
8
|
+
export declare const pkgVersion = "2.61.0-355054";
|
|
9
9
|
//# sourceMappingURL=packageVersion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,yCAAyC,CAAC;AAC9D,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,yCAAyC,CAAC;AAC9D,eAAO,MAAM,UAAU,kBAAkB,CAAC"}
|
package/dist/packageVersion.js
CHANGED
|
@@ -8,5 +8,5 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.pkgVersion = exports.pkgName = void 0;
|
|
10
10
|
exports.pkgName = "@fluidframework/routerlicious-driver";
|
|
11
|
-
exports.pkgVersion = "2.
|
|
11
|
+
exports.pkgVersion = "2.61.0-355054";
|
|
12
12
|
//# sourceMappingURL=packageVersion.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,sCAAsC,CAAC;AACjD,QAAA,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEU,QAAA,OAAO,GAAG,sCAAsC,CAAC;AACjD,QAAA,UAAU,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/routerlicious-driver\";\nexport const pkgVersion = \"2.61.0-355054\";\n"]}
|
package/dist/public.d.ts
CHANGED
|
@@ -10,8 +10,7 @@ import type { IResolvedUrl } from "@fluidframework/driver-definitions/internal";
|
|
|
10
10
|
* {@link isRouterliciousResolvedUrl} can be used to detect whether an {@link @fluidframework/driver-definitions#IResolvedUrl}
|
|
11
11
|
* is an IRouterliciousResolvedUrl.
|
|
12
12
|
*
|
|
13
|
-
* @legacy
|
|
14
|
-
* @alpha
|
|
13
|
+
* @legacy @beta
|
|
15
14
|
*/
|
|
16
15
|
export interface IRouterliciousResolvedUrl extends IResolvedUrl {
|
|
17
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerliciousResolvedUrl.d.ts","sourceRoot":"","sources":["../src/routerliciousResolvedUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAEhF
|
|
1
|
+
{"version":3,"file":"routerliciousResolvedUrl.d.ts","sourceRoot":"","sources":["../src/routerliciousResolvedUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAEhF;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC9D;;OAEG;IACH,wBAAwB,EAAE,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,gBACzB,YAAY,6CAEmD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerliciousResolvedUrl.js","sourceRoot":"","sources":["../src/routerliciousResolvedUrl.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;
|
|
1
|
+
{"version":3,"file":"routerliciousResolvedUrl.js","sourceRoot":"","sources":["../src/routerliciousResolvedUrl.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA4BH;;;GAGG;AACI,MAAM,0BAA0B,GAAG,CACzC,WAAyB,EACkB,EAAE,CAC5C,WAAyC,CAAC,wBAAwB,KAAK,IAAI,CAAC;AAHjE,QAAA,0BAA0B,8BAGuC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IResolvedUrl } from \"@fluidframework/driver-definitions/internal\";\n\n/**\n * Routerlicious extends the resolved url with additional properties to control Routerlicious-specific behaviors.\n *\n * @privateRemarks\n * {@link isRouterliciousResolvedUrl} can be used to detect whether an {@link @fluidframework/driver-definitions#IResolvedUrl}\n * is an IRouterliciousResolvedUrl.\n *\n * @legacy @beta\n */\nexport interface IRouterliciousResolvedUrl extends IResolvedUrl {\n\t/**\n\t * A flag to facilitate type narrowing from {@link @fluidframework/driver-definitions#IResolvedUrl} to IRouterliciousResolvedUrl.\n\t */\n\trouterliciousResolvedUrl: true;\n\t/**\n\t * Controls whether a newly created container will be ephemeral, which means the service will not retain it\n\t * after the collaboration session ends. Only affects\n\t * {@link @fluidframework/driver-definitions#IDocumentServiceFactory.createContainer} requests.\n\t *\n\t * @defaultValue If left undefined, treated as `false`\n\t */\n\tcreateAsEphemeral?: boolean;\n}\n\n/**\n * Type guard to detect if an IResolvedUrl is an IRouterliciousResolvedUrl.\n * @internal\n */\nexport const isRouterliciousResolvedUrl = (\n\tresolvedUrl: IResolvedUrl,\n): resolvedUrl is IRouterliciousResolvedUrl =>\n\t(resolvedUrl as IRouterliciousResolvedUrl).routerliciousResolvedUrl === true;\n"]}
|
package/internal.d.ts
CHANGED
package/legacy.d.ts
CHANGED
|
@@ -69,8 +69,7 @@ export declare class DocumentPostCreateError extends Error {
|
|
|
69
69
|
/**
|
|
70
70
|
* Creates factory for creating the routerlicious document service.
|
|
71
71
|
*
|
|
72
|
-
* @legacy
|
|
73
|
-
* @alpha
|
|
72
|
+
* @legacy @beta
|
|
74
73
|
*/
|
|
75
74
|
export declare function createRouterliciousDocumentServiceFactory(tokenProvider: ITokenProvider): IDocumentServiceFactory;
|
|
76
75
|
//# sourceMappingURL=documentServiceFactory.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentServiceFactory.d.ts","sourceRoot":"","sources":["../src/documentServiceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAEN,gBAAgB,EAChB,uBAAuB,EAEvB,YAAY,EAEZ,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EACN,QAAQ,EAER,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAU7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB7C;;;;GAIG;AACH,qBAAa,mCACZ,YAAW,uBAAuB,EAAE,0BAA0B;IAS7D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAP/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqD;IAC5F,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAiD;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAGtC,aAAa,EAAE,cAAc,EAC9C,cAAc,GAAE,OAAO,CAAC,4BAA4B,CAAM;IAwB3D;;;OAGG;IACH,IAAW,mBAAmB,IAAI,mBAAmB,CAEpD;IAED;;;;;OAKG;IACU,eAAe,CAC3B,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAwI5B;;;;OAIG;IACU,qBAAqB,CACjC,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,EAC5B,OAAO,CAAC,EAAE,QAAQ,GAChB,OAAO,CAAC,gBAAgB,CAAC;CA4G5B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAEhD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU;;IAH3B;;OAEG;IACc,UAAU,EAAE,KAAK;IAKnC,SAAgB,IAAI,6BAA6B;IAEjD,IAAW,KAAK,uBAEf;CACD;AAED
|
|
1
|
+
{"version":3,"file":"documentServiceFactory.d.ts","sourceRoot":"","sources":["../src/documentServiceFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,mBAAmB,EACnB,0BAA0B,EAC1B,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AAEvE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAEN,gBAAgB,EAChB,uBAAuB,EAEvB,YAAY,EAEZ,MAAM,6CAA6C,CAAC;AAOrD,OAAO,EACN,QAAQ,EAER,MAAM,wCAAwC,CAAC;AAQhD,OAAO,EAAE,4BAA4B,EAAE,MAAM,eAAe,CAAC;AAU7D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAgB7C;;;;GAIG;AACH,qBAAa,mCACZ,YAAW,uBAAuB,EAAE,0BAA0B;IAS7D,OAAO,CAAC,QAAQ,CAAC,aAAa;IAP/B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAC9D,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAqD;IAC5F,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAiD;IAC1F,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;gBAGtC,aAAa,EAAE,cAAc,EAC9C,cAAc,GAAE,OAAO,CAAC,4BAA4B,CAAM;IAwB3D;;;OAGG;IACH,IAAW,mBAAmB,IAAI,mBAAmB,CAEpD;IAED;;;;;OAKG;IACU,eAAe,CAC3B,gBAAgB,EAAE,YAAY,GAAG,SAAS,EAC1C,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAwI5B;;;;OAIG;IACU,qBAAqB,CACjC,WAAW,EAAE,YAAY,EACzB,MAAM,CAAC,EAAE,oBAAoB,EAC7B,kBAAkB,CAAC,EAAE,OAAO,EAC5B,OAAO,CAAC,EAAE,QAAQ,GAChB,OAAO,CAAC,gBAAgB,CAAC;CA4G5B;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAEhD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU;;IAH3B;;OAEG;IACc,UAAU,EAAE,KAAK;IAKnC,SAAgB,IAAI,6BAA6B;IAEjD,IAAW,KAAK,uBAEf;CACD;AAED;;;;GAIG;AACH,wBAAgB,yCAAyC,CACxD,aAAa,EAAE,cAAc,GAC3B,uBAAuB,CAEzB"}
|
|
@@ -243,8 +243,7 @@ export class DocumentPostCreateError extends Error {
|
|
|
243
243
|
/**
|
|
244
244
|
* Creates factory for creating the routerlicious document service.
|
|
245
245
|
*
|
|
246
|
-
* @legacy
|
|
247
|
-
* @alpha
|
|
246
|
+
* @legacy @beta
|
|
248
247
|
*/
|
|
249
248
|
export function createRouterliciousDocumentServiceFactory(tokenProvider) {
|
|
250
249
|
return new RouterliciousDocumentServiceFactory(tokenProvider);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentServiceFactory.js","sourceRoot":"","sources":["../src/documentServiceFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tILayerCompatDetails,\n\tIProvideLayerCompatDetails,\n} from \"@fluid-internal/client-utils\";\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport {\n\tFiveDaysMs,\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIDocumentStorageServicePolicies,\n\tIResolvedUrl,\n\tLoaderCachingPolicy,\n} from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tRateLimiter,\n\tgetDocAttributesFromProtocolSummary,\n\tgetQuorumValuesFromProtocolSummary,\n\tisCombinedAppAndProtocolSummary,\n} from \"@fluidframework/driver-utils/internal\";\nimport {\n\tISession,\n\tconvertSummaryTreeToWholeSummaryTree,\n} from \"@fluidframework/server-services-client\";\nimport { PerformanceEvent, createChildLogger } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { ICache, InMemoryCache, NullCache } from \"./cache.js\";\nimport { INormalizedWholeSnapshot } from \"./contracts.js\";\nimport { ISnapshotTreeVersion } from \"./definitions.js\";\nimport { DocumentService } from \"./documentService.js\";\nimport { pkgVersion as driverVersion } from \"./packageVersion.js\";\nimport { IRouterliciousDriverPolicies } from \"./policies.js\";\nimport { r11sDriverCompatDetailsForLoader } from \"./r11sLayerCompatState.js\";\nimport {\n\tRouterliciousOrdererRestWrapper,\n\tRouterliciousStorageRestWrapper,\n\ttoInstrumentedR11sOrdererTokenFetcher,\n\ttoInstrumentedR11sStorageTokenFetcher,\n} from \"./restWrapper.js\";\nimport { isRouterliciousResolvedUrl } from \"./routerliciousResolvedUrl.js\";\nimport { SessionInfoManager } from \"./sessionInfoManager.js\";\nimport { ITokenProvider } from \"./tokens.js\";\nimport { replaceDocumentIdInPath } from \"./urlUtils.js\";\n\nconst maximumSnapshotCacheDurationMs: FiveDaysMs = 432_000_000; // 5 days in ms\n\nconst defaultRouterliciousDriverPolicies: IRouterliciousDriverPolicies = {\n\tenablePrefetch: true,\n\tmaxConcurrentStorageRequests: 100,\n\tmaxConcurrentOrdererRequests: 100,\n\tenableDiscovery: false,\n\tenableWholeSummaryUpload: false,\n\tenableRestLess: true,\n\tenableInternalSummaryCaching: true,\n\tenableLongPollingDowngrade: true,\n};\n\n/**\n * Factory for creating the routerlicious document service. Use this if you want to\n * use the routerlicious implementation.\n * @internal\n */\nexport class RouterliciousDocumentServiceFactory\n\timplements IDocumentServiceFactory, IProvideLayerCompatDetails\n{\n\tprivate readonly driverPolicies: IRouterliciousDriverPolicies;\n\tprivate readonly blobCache: ICache<ArrayBufferLike>;\n\tprivate readonly wholeSnapshotTreeCache: ICache<INormalizedWholeSnapshot> = new NullCache();\n\tprivate readonly shreddedSummaryTreeCache: ICache<ISnapshotTreeVersion> = new NullCache();\n\tprivate readonly sessionInfoManager: SessionInfoManager;\n\n\tconstructor(\n\t\tprivate readonly tokenProvider: ITokenProvider,\n\t\tdriverPolicies: Partial<IRouterliciousDriverPolicies> = {},\n\t) {\n\t\t// Use the maximum allowed by the policy (IDocumentStorageServicePolicies.maximumCacheDurationMs set below)\n\t\tconst snapshotCacheExpiryMs: FiveDaysMs = maximumSnapshotCacheDurationMs;\n\n\t\tthis.driverPolicies = {\n\t\t\t...defaultRouterliciousDriverPolicies,\n\t\t\t...driverPolicies,\n\t\t};\n\t\tthis.blobCache = new InMemoryCache<ArrayBufferLike>();\n\t\tif (this.driverPolicies.enableInternalSummaryCaching) {\n\t\t\tif (this.driverPolicies.enableWholeSummaryUpload) {\n\t\t\t\tthis.wholeSnapshotTreeCache = new InMemoryCache<INormalizedWholeSnapshot>(\n\t\t\t\t\tsnapshotCacheExpiryMs,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.shreddedSummaryTreeCache = new InMemoryCache<ISnapshotTreeVersion>(\n\t\t\t\t\tsnapshotCacheExpiryMs,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.sessionInfoManager = new SessionInfoManager(this.driverPolicies.enableDiscovery);\n\t}\n\n\t/**\n\t * The compatibility details of the Routerlicious Driver layer that is exposed to the Loader layer\n\t * for validating Loader-Driver compatibility.\n\t */\n\tpublic get ILayerCompatDetails(): ILayerCompatDetails {\n\t\treturn r11sDriverCompatDetailsForLoader;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createContainer}\n\t *\n\t * @throws {@link DocumentPostCreateError}\n\t * If an exception is thrown while invoking the provided {@link ITokenProvider.documentPostCreateCallback}.\n\t */\n\tpublic async createContainer(\n\t\tcreateNewSummary: ISummaryTree | undefined,\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\tif (createNewSummary === undefined) {\n\t\t\tthrow new Error(\"Empty file summary creation isn't supported in this driver.\");\n\t\t}\n\t\tassert(!!resolvedUrl.endpoints.ordererUrl, 0x0b2 /* \"Missing orderer URL!\" */);\n\t\tconst parsedUrl = new URL(resolvedUrl.url);\n\t\tif (!parsedUrl.pathname) {\n\t\t\tthrow new Error(\"Parsed url should contain tenant and doc Id!!\");\n\t\t}\n\t\tconst [, tenantId] = parsedUrl.pathname.split(\"/\");\n\n\t\tif (!isCombinedAppAndProtocolSummary(createNewSummary)) {\n\t\t\tthrow new Error(\"Protocol and App Summary required in the full summary\");\n\t\t}\n\t\tconst protocolSummary = createNewSummary.tree[\".protocol\"];\n\t\tconst appSummary = createNewSummary.tree[\".app\"];\n\n\t\tconst documentAttributes = getDocAttributesFromProtocolSummary(protocolSummary);\n\t\tconst quorumValues = getQuorumValuesFromProtocolSummary(protocolSummary);\n\n\t\tconst logger2 = createChildLogger({ logger, namespace: \"RouterliciousDriver\" });\n\t\tconst ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(\n\t\t\ttenantId,\n\t\t\tundefined /* documentId */,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);\n\t\tconst ordererRestWrapper = RouterliciousOrdererRestWrapper.load(\n\t\t\tordererTokenFetcher,\n\t\t\tlogger2,\n\t\t\trateLimiter,\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tresolvedUrl.endpoints.ordererUrl /* baseUrl */,\n\t\t);\n\n\t\tconst createAsEphemeral = isRouterliciousResolvedUrl(resolvedUrl)\n\t\t\t? resolvedUrl.createAsEphemeral === true\n\t\t\t: false;\n\n\t\tconst res = await PerformanceEvent.timedExecAsync(\n\t\t\tlogger2,\n\t\t\t{\n\t\t\t\teventName: \"CreateNew\",\n\t\t\t\tdetails: JSON.stringify({\n\t\t\t\t\tenableDiscovery: this.driverPolicies.enableDiscovery,\n\t\t\t\t\tsequenceNumber: documentAttributes.sequenceNumber,\n\t\t\t\t\tisEphemeralContainer: createAsEphemeral,\n\t\t\t\t}),\n\t\t\t},\n\t\t\tasync (event) => {\n\t\t\t\t// @TODO: Remove returned \"string\" type when removing back-compat code\n\t\t\t\tconst postRes = (\n\t\t\t\t\tawait ordererRestWrapper.post<\n\t\t\t\t\t\t{ id: string; token?: string; session?: ISession } | string\n\t\t\t\t\t>(`/documents/${tenantId}`, {\n\t\t\t\t\t\tsummary: convertSummaryTreeToWholeSummaryTree(undefined, appSummary),\n\t\t\t\t\t\tsequenceNumber: documentAttributes.sequenceNumber,\n\t\t\t\t\t\tvalues: quorumValues,\n\t\t\t\t\t\tenableDiscovery: this.driverPolicies.enableDiscovery,\n\t\t\t\t\t\tgenerateToken: this.tokenProvider.documentPostCreateCallback !== undefined,\n\t\t\t\t\t\tisEphemeralContainer: createAsEphemeral,\n\t\t\t\t\t\tenableAnyBinaryBlobOnFirstSummary: true,\n\t\t\t\t\t})\n\t\t\t\t).content;\n\n\t\t\t\tevent.end({\n\t\t\t\t\tdocId: typeof postRes === \"string\" ? postRes : postRes.id,\n\t\t\t\t});\n\t\t\t\treturn postRes;\n\t\t\t},\n\t\t);\n\n\t\t// For supporting backward compatibility, when the request has generateToken === true, it will return\n\t\t// an object instead of string\n\t\t// @TODO: Remove the logic when no need to support back-compat\n\n\t\tlet documentId: string;\n\t\tlet token: string | undefined;\n\t\tlet session: ISession | undefined;\n\t\tif (typeof res === \"string\") {\n\t\t\tdocumentId = res;\n\t\t} else {\n\t\t\tdocumentId = res.id;\n\t\t\ttoken = res.token;\n\t\t\tsession = this.driverPolicies.enableDiscovery ? res.session : undefined;\n\t\t}\n\n\t\t// @TODO: Remove token from the condition, checking the documentPostCreateCallback !== undefined\n\t\t// is sufficient to determine if the token will be undefined or not.\n\t\ttry {\n\t\t\tawait PerformanceEvent.timedExecAsync(\n\t\t\t\tlogger2,\n\t\t\t\t{\n\t\t\t\t\teventName: \"DocPostCreateCallback\",\n\t\t\t\t\tdocId: documentId,\n\t\t\t\t},\n\t\t\t\tasync () => {\n\t\t\t\t\tif (token && this.tokenProvider.documentPostCreateCallback !== undefined) {\n\t\t\t\t\t\treturn this.tokenProvider.documentPostCreateCallback(documentId, token);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t} catch (error: any) {\n\t\t\tthrow new DocumentPostCreateError(error);\n\t\t}\n\n\t\tparsedUrl.pathname = replaceDocumentIdInPath(parsedUrl.pathname, documentId);\n\t\tconst deltaStorageUrl = resolvedUrl.endpoints.deltaStorageUrl;\n\t\tif (!deltaStorageUrl) {\n\t\t\tthrow new Error(\n\t\t\t\t`All endpoints urls must be provided. [deltaStorageUrl:${deltaStorageUrl}]`,\n\t\t\t);\n\t\t}\n\t\tconst parsedDeltaStorageUrl = new URL(deltaStorageUrl);\n\t\tparsedDeltaStorageUrl.pathname = replaceDocumentIdInPath(\n\t\t\tparsedDeltaStorageUrl.pathname,\n\t\t\tdocumentId,\n\t\t);\n\n\t\treturn this.createDocumentService(\n\t\t\t{\n\t\t\t\t...resolvedUrl,\n\t\t\t\turl: parsedUrl.toString(),\n\t\t\t\tid: documentId,\n\t\t\t\tendpoints: {\n\t\t\t\t\t...resolvedUrl.endpoints,\n\t\t\t\t\tdeltaStorageUrl: parsedDeltaStorageUrl.toString(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tlogger,\n\t\t\tclientIsSummarizer,\n\t\t\tsession,\n\t\t);\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createDocumentService}\n\t *\n\t * @returns Routerlicious document service.\n\t */\n\tpublic async createDocumentService(\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t\tsession?: ISession,\n\t): Promise<IDocumentService> {\n\t\tconst parsedUrl = new URL(resolvedUrl.url);\n\t\tconst [, tenantId, documentId] = parsedUrl.pathname.split(\"/\");\n\t\tif (!documentId || !tenantId) {\n\t\t\tthrow new Error(\n\t\t\t\t`Couldn't parse documentId and/or tenantId. [documentId:${documentId}][tenantId:${tenantId}]`,\n\t\t\t);\n\t\t}\n\t\tconst logger2 = createChildLogger({\n\t\t\tlogger,\n\t\t\tnamespace: \"RouterliciousDriver\",\n\t\t\tproperties: {\n\t\t\t\tall: { driverVersion },\n\t\t\t},\n\t\t});\n\n\t\tconst ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst storageTokenFetcher = toInstrumentedR11sStorageTokenFetcher(\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst ordererTokenP = ordererTokenFetcher();\n\t\tconst storageTokenP = storageTokenFetcher();\n\n\t\tconst rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);\n\t\tconst ordererRestWrapper = RouterliciousOrdererRestWrapper.load(\n\t\t\tordererTokenFetcher,\n\t\t\tlogger2,\n\t\t\trateLimiter,\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tundefined /* baseUrl */,\n\t\t\tordererTokenP,\n\t\t);\n\n\t\tconst fluidResolvedUrl: IResolvedUrl = await this.sessionInfoManager.initializeSessionInfo(\n\t\t\t{\n\t\t\t\tsession,\n\t\t\t\tresolvedUrl,\n\t\t\t\tdocumentId,\n\t\t\t\ttenantId,\n\t\t\t\tordererRestWrapper,\n\t\t\t\tlogger: logger2,\n\t\t\t},\n\t\t);\n\n\t\tconst storageUrl = fluidResolvedUrl.endpoints.storageUrl;\n\t\tconst ordererUrl = fluidResolvedUrl.endpoints.ordererUrl;\n\t\tconst deltaStorageUrl = fluidResolvedUrl.endpoints.deltaStorageUrl;\n\t\tconst deltaStreamUrl = fluidResolvedUrl.endpoints.deltaStreamUrl || ordererUrl; // backward compatibility\n\t\tif (!ordererUrl || !deltaStorageUrl) {\n\t\t\tthrow new Error(\n\t\t\t\t`All endpoints urls must be provided. [ordererUrl:${ordererUrl}][deltaStorageUrl:${deltaStorageUrl}]`,\n\t\t\t);\n\t\t}\n\n\t\tconst storageRestWrapper = RouterliciousStorageRestWrapper.load(\n\t\t\ttenantId,\n\t\t\tstorageTokenFetcher,\n\t\t\tlogger2,\n\t\t\tnew RateLimiter(this.driverPolicies.maxConcurrentStorageRequests),\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tstorageUrl /* baseUrl */,\n\t\t\tstorageTokenP,\n\t\t);\n\n\t\tconst documentStorageServicePolicies: IDocumentStorageServicePolicies = {\n\t\t\tcaching: this.driverPolicies.enablePrefetch\n\t\t\t\t? LoaderCachingPolicy.Prefetch\n\t\t\t\t: LoaderCachingPolicy.NoCaching,\n\t\t\tmaximumCacheDurationMs: maximumSnapshotCacheDurationMs,\n\t\t};\n\n\t\treturn new DocumentService(\n\t\t\tfluidResolvedUrl,\n\t\t\tordererUrl,\n\t\t\tdeltaStorageUrl,\n\t\t\tdeltaStreamUrl,\n\t\t\tstorageUrl,\n\t\t\tlogger2,\n\t\t\tthis.tokenProvider,\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tordererRestWrapper,\n\t\t\tdocumentStorageServicePolicies,\n\t\t\tthis.driverPolicies,\n\t\t\tthis.blobCache,\n\t\t\tthis.wholeSnapshotTreeCache,\n\t\t\tthis.shreddedSummaryTreeCache,\n\t\t\tasync () =>\n\t\t\t\tthis.sessionInfoManager.getSessionInfo({\n\t\t\t\t\tresolvedUrl,\n\t\t\t\t\tdocumentId,\n\t\t\t\t\ttenantId,\n\t\t\t\t\tordererRestWrapper,\n\t\t\t\t\tlogger: logger2,\n\t\t\t\t}),\n\t\t\tstorageRestWrapper,\n\t\t\tstorageTokenFetcher,\n\t\t\tordererTokenFetcher,\n\t\t);\n\t}\n}\n\n/**\n * Error returned by {@link RouterliciousDocumentServiceFactory.createContainer} when an error is thrown\n * in {@link ITokenProvider.documentPostCreateCallback}.\n * It is the consumer's responsibility to ensure that any state related to container creation is appropriately\n * cleaned up in the event of failure.\n * This includes the document itself, which will have been created by the time this error was thrown.\n *\n * @remarks TODO: examples of suggested actions for recovery.\n * - How would a user delete the created document?\n * - What would a retry pattern look like here?\n * @internal\n */\nexport class DocumentPostCreateError extends Error {\n\tpublic constructor(\n\t\t/**\n\t\t * Inner error being wrapped.\n\t\t */\n\t\tprivate readonly innerError: Error,\n\t) {\n\t\tsuper(innerError.message);\n\t}\n\n\tpublic readonly name = \"DocumentPostCreateError\";\n\n\tpublic get stack() {\n\t\treturn this.innerError.stack;\n\t}\n}\n\n/**\n * Creates factory for creating the routerlicious document service.\n *\n * @legacy\n * @alpha\n */\nexport function createRouterliciousDocumentServiceFactory(\n\ttokenProvider: ITokenProvider,\n): IDocumentServiceFactory {\n\treturn new RouterliciousDocumentServiceFactory(tokenProvider);\n}\n"]}
|
|
1
|
+
{"version":3,"file":"documentServiceFactory.js","sourceRoot":"","sources":["../src/documentServiceFactory.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type {\n\tILayerCompatDetails,\n\tIProvideLayerCompatDetails,\n} from \"@fluid-internal/client-utils\";\nimport { ITelemetryBaseLogger } from \"@fluidframework/core-interfaces\";\nimport { assert } from \"@fluidframework/core-utils/internal\";\nimport { ISummaryTree } from \"@fluidframework/driver-definitions\";\nimport {\n\tFiveDaysMs,\n\tIDocumentService,\n\tIDocumentServiceFactory,\n\tIDocumentStorageServicePolicies,\n\tIResolvedUrl,\n\tLoaderCachingPolicy,\n} from \"@fluidframework/driver-definitions/internal\";\nimport {\n\tRateLimiter,\n\tgetDocAttributesFromProtocolSummary,\n\tgetQuorumValuesFromProtocolSummary,\n\tisCombinedAppAndProtocolSummary,\n} from \"@fluidframework/driver-utils/internal\";\nimport {\n\tISession,\n\tconvertSummaryTreeToWholeSummaryTree,\n} from \"@fluidframework/server-services-client\";\nimport { PerformanceEvent, createChildLogger } from \"@fluidframework/telemetry-utils/internal\";\n\nimport { ICache, InMemoryCache, NullCache } from \"./cache.js\";\nimport { INormalizedWholeSnapshot } from \"./contracts.js\";\nimport { ISnapshotTreeVersion } from \"./definitions.js\";\nimport { DocumentService } from \"./documentService.js\";\nimport { pkgVersion as driverVersion } from \"./packageVersion.js\";\nimport { IRouterliciousDriverPolicies } from \"./policies.js\";\nimport { r11sDriverCompatDetailsForLoader } from \"./r11sLayerCompatState.js\";\nimport {\n\tRouterliciousOrdererRestWrapper,\n\tRouterliciousStorageRestWrapper,\n\ttoInstrumentedR11sOrdererTokenFetcher,\n\ttoInstrumentedR11sStorageTokenFetcher,\n} from \"./restWrapper.js\";\nimport { isRouterliciousResolvedUrl } from \"./routerliciousResolvedUrl.js\";\nimport { SessionInfoManager } from \"./sessionInfoManager.js\";\nimport { ITokenProvider } from \"./tokens.js\";\nimport { replaceDocumentIdInPath } from \"./urlUtils.js\";\n\nconst maximumSnapshotCacheDurationMs: FiveDaysMs = 432_000_000; // 5 days in ms\n\nconst defaultRouterliciousDriverPolicies: IRouterliciousDriverPolicies = {\n\tenablePrefetch: true,\n\tmaxConcurrentStorageRequests: 100,\n\tmaxConcurrentOrdererRequests: 100,\n\tenableDiscovery: false,\n\tenableWholeSummaryUpload: false,\n\tenableRestLess: true,\n\tenableInternalSummaryCaching: true,\n\tenableLongPollingDowngrade: true,\n};\n\n/**\n * Factory for creating the routerlicious document service. Use this if you want to\n * use the routerlicious implementation.\n * @internal\n */\nexport class RouterliciousDocumentServiceFactory\n\timplements IDocumentServiceFactory, IProvideLayerCompatDetails\n{\n\tprivate readonly driverPolicies: IRouterliciousDriverPolicies;\n\tprivate readonly blobCache: ICache<ArrayBufferLike>;\n\tprivate readonly wholeSnapshotTreeCache: ICache<INormalizedWholeSnapshot> = new NullCache();\n\tprivate readonly shreddedSummaryTreeCache: ICache<ISnapshotTreeVersion> = new NullCache();\n\tprivate readonly sessionInfoManager: SessionInfoManager;\n\n\tconstructor(\n\t\tprivate readonly tokenProvider: ITokenProvider,\n\t\tdriverPolicies: Partial<IRouterliciousDriverPolicies> = {},\n\t) {\n\t\t// Use the maximum allowed by the policy (IDocumentStorageServicePolicies.maximumCacheDurationMs set below)\n\t\tconst snapshotCacheExpiryMs: FiveDaysMs = maximumSnapshotCacheDurationMs;\n\n\t\tthis.driverPolicies = {\n\t\t\t...defaultRouterliciousDriverPolicies,\n\t\t\t...driverPolicies,\n\t\t};\n\t\tthis.blobCache = new InMemoryCache<ArrayBufferLike>();\n\t\tif (this.driverPolicies.enableInternalSummaryCaching) {\n\t\t\tif (this.driverPolicies.enableWholeSummaryUpload) {\n\t\t\t\tthis.wholeSnapshotTreeCache = new InMemoryCache<INormalizedWholeSnapshot>(\n\t\t\t\t\tsnapshotCacheExpiryMs,\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tthis.shreddedSummaryTreeCache = new InMemoryCache<ISnapshotTreeVersion>(\n\t\t\t\t\tsnapshotCacheExpiryMs,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\tthis.sessionInfoManager = new SessionInfoManager(this.driverPolicies.enableDiscovery);\n\t}\n\n\t/**\n\t * The compatibility details of the Routerlicious Driver layer that is exposed to the Loader layer\n\t * for validating Loader-Driver compatibility.\n\t */\n\tpublic get ILayerCompatDetails(): ILayerCompatDetails {\n\t\treturn r11sDriverCompatDetailsForLoader;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createContainer}\n\t *\n\t * @throws {@link DocumentPostCreateError}\n\t * If an exception is thrown while invoking the provided {@link ITokenProvider.documentPostCreateCallback}.\n\t */\n\tpublic async createContainer(\n\t\tcreateNewSummary: ISummaryTree | undefined,\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t): Promise<IDocumentService> {\n\t\tif (createNewSummary === undefined) {\n\t\t\tthrow new Error(\"Empty file summary creation isn't supported in this driver.\");\n\t\t}\n\t\tassert(!!resolvedUrl.endpoints.ordererUrl, 0x0b2 /* \"Missing orderer URL!\" */);\n\t\tconst parsedUrl = new URL(resolvedUrl.url);\n\t\tif (!parsedUrl.pathname) {\n\t\t\tthrow new Error(\"Parsed url should contain tenant and doc Id!!\");\n\t\t}\n\t\tconst [, tenantId] = parsedUrl.pathname.split(\"/\");\n\n\t\tif (!isCombinedAppAndProtocolSummary(createNewSummary)) {\n\t\t\tthrow new Error(\"Protocol and App Summary required in the full summary\");\n\t\t}\n\t\tconst protocolSummary = createNewSummary.tree[\".protocol\"];\n\t\tconst appSummary = createNewSummary.tree[\".app\"];\n\n\t\tconst documentAttributes = getDocAttributesFromProtocolSummary(protocolSummary);\n\t\tconst quorumValues = getQuorumValuesFromProtocolSummary(protocolSummary);\n\n\t\tconst logger2 = createChildLogger({ logger, namespace: \"RouterliciousDriver\" });\n\t\tconst ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(\n\t\t\ttenantId,\n\t\t\tundefined /* documentId */,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);\n\t\tconst ordererRestWrapper = RouterliciousOrdererRestWrapper.load(\n\t\t\tordererTokenFetcher,\n\t\t\tlogger2,\n\t\t\trateLimiter,\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tresolvedUrl.endpoints.ordererUrl /* baseUrl */,\n\t\t);\n\n\t\tconst createAsEphemeral = isRouterliciousResolvedUrl(resolvedUrl)\n\t\t\t? resolvedUrl.createAsEphemeral === true\n\t\t\t: false;\n\n\t\tconst res = await PerformanceEvent.timedExecAsync(\n\t\t\tlogger2,\n\t\t\t{\n\t\t\t\teventName: \"CreateNew\",\n\t\t\t\tdetails: JSON.stringify({\n\t\t\t\t\tenableDiscovery: this.driverPolicies.enableDiscovery,\n\t\t\t\t\tsequenceNumber: documentAttributes.sequenceNumber,\n\t\t\t\t\tisEphemeralContainer: createAsEphemeral,\n\t\t\t\t}),\n\t\t\t},\n\t\t\tasync (event) => {\n\t\t\t\t// @TODO: Remove returned \"string\" type when removing back-compat code\n\t\t\t\tconst postRes = (\n\t\t\t\t\tawait ordererRestWrapper.post<\n\t\t\t\t\t\t{ id: string; token?: string; session?: ISession } | string\n\t\t\t\t\t>(`/documents/${tenantId}`, {\n\t\t\t\t\t\tsummary: convertSummaryTreeToWholeSummaryTree(undefined, appSummary),\n\t\t\t\t\t\tsequenceNumber: documentAttributes.sequenceNumber,\n\t\t\t\t\t\tvalues: quorumValues,\n\t\t\t\t\t\tenableDiscovery: this.driverPolicies.enableDiscovery,\n\t\t\t\t\t\tgenerateToken: this.tokenProvider.documentPostCreateCallback !== undefined,\n\t\t\t\t\t\tisEphemeralContainer: createAsEphemeral,\n\t\t\t\t\t\tenableAnyBinaryBlobOnFirstSummary: true,\n\t\t\t\t\t})\n\t\t\t\t).content;\n\n\t\t\t\tevent.end({\n\t\t\t\t\tdocId: typeof postRes === \"string\" ? postRes : postRes.id,\n\t\t\t\t});\n\t\t\t\treturn postRes;\n\t\t\t},\n\t\t);\n\n\t\t// For supporting backward compatibility, when the request has generateToken === true, it will return\n\t\t// an object instead of string\n\t\t// @TODO: Remove the logic when no need to support back-compat\n\n\t\tlet documentId: string;\n\t\tlet token: string | undefined;\n\t\tlet session: ISession | undefined;\n\t\tif (typeof res === \"string\") {\n\t\t\tdocumentId = res;\n\t\t} else {\n\t\t\tdocumentId = res.id;\n\t\t\ttoken = res.token;\n\t\t\tsession = this.driverPolicies.enableDiscovery ? res.session : undefined;\n\t\t}\n\n\t\t// @TODO: Remove token from the condition, checking the documentPostCreateCallback !== undefined\n\t\t// is sufficient to determine if the token will be undefined or not.\n\t\ttry {\n\t\t\tawait PerformanceEvent.timedExecAsync(\n\t\t\t\tlogger2,\n\t\t\t\t{\n\t\t\t\t\teventName: \"DocPostCreateCallback\",\n\t\t\t\t\tdocId: documentId,\n\t\t\t\t},\n\t\t\t\tasync () => {\n\t\t\t\t\tif (token && this.tokenProvider.documentPostCreateCallback !== undefined) {\n\t\t\t\t\t\treturn this.tokenProvider.documentPostCreateCallback(documentId, token);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t);\n\t\t} catch (error: any) {\n\t\t\tthrow new DocumentPostCreateError(error);\n\t\t}\n\n\t\tparsedUrl.pathname = replaceDocumentIdInPath(parsedUrl.pathname, documentId);\n\t\tconst deltaStorageUrl = resolvedUrl.endpoints.deltaStorageUrl;\n\t\tif (!deltaStorageUrl) {\n\t\t\tthrow new Error(\n\t\t\t\t`All endpoints urls must be provided. [deltaStorageUrl:${deltaStorageUrl}]`,\n\t\t\t);\n\t\t}\n\t\tconst parsedDeltaStorageUrl = new URL(deltaStorageUrl);\n\t\tparsedDeltaStorageUrl.pathname = replaceDocumentIdInPath(\n\t\t\tparsedDeltaStorageUrl.pathname,\n\t\t\tdocumentId,\n\t\t);\n\n\t\treturn this.createDocumentService(\n\t\t\t{\n\t\t\t\t...resolvedUrl,\n\t\t\t\turl: parsedUrl.toString(),\n\t\t\t\tid: documentId,\n\t\t\t\tendpoints: {\n\t\t\t\t\t...resolvedUrl.endpoints,\n\t\t\t\t\tdeltaStorageUrl: parsedDeltaStorageUrl.toString(),\n\t\t\t\t},\n\t\t\t},\n\t\t\tlogger,\n\t\t\tclientIsSummarizer,\n\t\t\tsession,\n\t\t);\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/driver-definitions#IDocumentServiceFactory.createDocumentService}\n\t *\n\t * @returns Routerlicious document service.\n\t */\n\tpublic async createDocumentService(\n\t\tresolvedUrl: IResolvedUrl,\n\t\tlogger?: ITelemetryBaseLogger,\n\t\tclientIsSummarizer?: boolean,\n\t\tsession?: ISession,\n\t): Promise<IDocumentService> {\n\t\tconst parsedUrl = new URL(resolvedUrl.url);\n\t\tconst [, tenantId, documentId] = parsedUrl.pathname.split(\"/\");\n\t\tif (!documentId || !tenantId) {\n\t\t\tthrow new Error(\n\t\t\t\t`Couldn't parse documentId and/or tenantId. [documentId:${documentId}][tenantId:${tenantId}]`,\n\t\t\t);\n\t\t}\n\t\tconst logger2 = createChildLogger({\n\t\t\tlogger,\n\t\t\tnamespace: \"RouterliciousDriver\",\n\t\t\tproperties: {\n\t\t\t\tall: { driverVersion },\n\t\t\t},\n\t\t});\n\n\t\tconst ordererTokenFetcher = toInstrumentedR11sOrdererTokenFetcher(\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst storageTokenFetcher = toInstrumentedR11sStorageTokenFetcher(\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tthis.tokenProvider,\n\t\t\tlogger2,\n\t\t);\n\t\tconst ordererTokenP = ordererTokenFetcher();\n\t\tconst storageTokenP = storageTokenFetcher();\n\n\t\tconst rateLimiter = new RateLimiter(this.driverPolicies.maxConcurrentOrdererRequests);\n\t\tconst ordererRestWrapper = RouterliciousOrdererRestWrapper.load(\n\t\t\tordererTokenFetcher,\n\t\t\tlogger2,\n\t\t\trateLimiter,\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tundefined /* baseUrl */,\n\t\t\tordererTokenP,\n\t\t);\n\n\t\tconst fluidResolvedUrl: IResolvedUrl = await this.sessionInfoManager.initializeSessionInfo(\n\t\t\t{\n\t\t\t\tsession,\n\t\t\t\tresolvedUrl,\n\t\t\t\tdocumentId,\n\t\t\t\ttenantId,\n\t\t\t\tordererRestWrapper,\n\t\t\t\tlogger: logger2,\n\t\t\t},\n\t\t);\n\n\t\tconst storageUrl = fluidResolvedUrl.endpoints.storageUrl;\n\t\tconst ordererUrl = fluidResolvedUrl.endpoints.ordererUrl;\n\t\tconst deltaStorageUrl = fluidResolvedUrl.endpoints.deltaStorageUrl;\n\t\tconst deltaStreamUrl = fluidResolvedUrl.endpoints.deltaStreamUrl || ordererUrl; // backward compatibility\n\t\tif (!ordererUrl || !deltaStorageUrl) {\n\t\t\tthrow new Error(\n\t\t\t\t`All endpoints urls must be provided. [ordererUrl:${ordererUrl}][deltaStorageUrl:${deltaStorageUrl}]`,\n\t\t\t);\n\t\t}\n\n\t\tconst storageRestWrapper = RouterliciousStorageRestWrapper.load(\n\t\t\ttenantId,\n\t\t\tstorageTokenFetcher,\n\t\t\tlogger2,\n\t\t\tnew RateLimiter(this.driverPolicies.maxConcurrentStorageRequests),\n\t\t\tthis.driverPolicies.enableRestLess,\n\t\t\tstorageUrl /* baseUrl */,\n\t\t\tstorageTokenP,\n\t\t);\n\n\t\tconst documentStorageServicePolicies: IDocumentStorageServicePolicies = {\n\t\t\tcaching: this.driverPolicies.enablePrefetch\n\t\t\t\t? LoaderCachingPolicy.Prefetch\n\t\t\t\t: LoaderCachingPolicy.NoCaching,\n\t\t\tmaximumCacheDurationMs: maximumSnapshotCacheDurationMs,\n\t\t};\n\n\t\treturn new DocumentService(\n\t\t\tfluidResolvedUrl,\n\t\t\tordererUrl,\n\t\t\tdeltaStorageUrl,\n\t\t\tdeltaStreamUrl,\n\t\t\tstorageUrl,\n\t\t\tlogger2,\n\t\t\tthis.tokenProvider,\n\t\t\ttenantId,\n\t\t\tdocumentId,\n\t\t\tordererRestWrapper,\n\t\t\tdocumentStorageServicePolicies,\n\t\t\tthis.driverPolicies,\n\t\t\tthis.blobCache,\n\t\t\tthis.wholeSnapshotTreeCache,\n\t\t\tthis.shreddedSummaryTreeCache,\n\t\t\tasync () =>\n\t\t\t\tthis.sessionInfoManager.getSessionInfo({\n\t\t\t\t\tresolvedUrl,\n\t\t\t\t\tdocumentId,\n\t\t\t\t\ttenantId,\n\t\t\t\t\tordererRestWrapper,\n\t\t\t\t\tlogger: logger2,\n\t\t\t\t}),\n\t\t\tstorageRestWrapper,\n\t\t\tstorageTokenFetcher,\n\t\t\tordererTokenFetcher,\n\t\t);\n\t}\n}\n\n/**\n * Error returned by {@link RouterliciousDocumentServiceFactory.createContainer} when an error is thrown\n * in {@link ITokenProvider.documentPostCreateCallback}.\n * It is the consumer's responsibility to ensure that any state related to container creation is appropriately\n * cleaned up in the event of failure.\n * This includes the document itself, which will have been created by the time this error was thrown.\n *\n * @remarks TODO: examples of suggested actions for recovery.\n * - How would a user delete the created document?\n * - What would a retry pattern look like here?\n * @internal\n */\nexport class DocumentPostCreateError extends Error {\n\tpublic constructor(\n\t\t/**\n\t\t * Inner error being wrapped.\n\t\t */\n\t\tprivate readonly innerError: Error,\n\t) {\n\t\tsuper(innerError.message);\n\t}\n\n\tpublic readonly name = \"DocumentPostCreateError\";\n\n\tpublic get stack() {\n\t\treturn this.innerError.stack;\n\t}\n}\n\n/**\n * Creates factory for creating the routerlicious document service.\n *\n * @legacy @beta\n */\nexport function createRouterliciousDocumentServiceFactory(\n\ttokenProvider: ITokenProvider,\n): IDocumentServiceFactory {\n\treturn new RouterliciousDocumentServiceFactory(tokenProvider);\n}\n"]}
|
package/lib/errorUtils.d.ts
CHANGED
|
@@ -26,10 +26,6 @@ export declare const RouterliciousErrorTypes: {
|
|
|
26
26
|
readonly offlineError: "offlineError";
|
|
27
27
|
readonly unsupportedClientProtocolVersion: "unsupportedClientProtocolVersion";
|
|
28
28
|
readonly writeError: "writeError";
|
|
29
|
-
/**
|
|
30
|
-
* Interface for error responses for the WebSocket connection
|
|
31
|
-
* Intended to be compatible with output from `NetworkError.toJSON`.
|
|
32
|
-
*/
|
|
33
29
|
readonly fetchFailure: "fetchFailure";
|
|
34
30
|
readonly fetchTokenError: "fetchTokenError";
|
|
35
31
|
readonly incorrectServerResponse: "incorrectServerResponse";
|
package/lib/errorUtils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorUtils.d.ts","sourceRoot":"","sources":["../src/errorUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,WAAW,EAEX,gBAAgB,EAChB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAKN,KAAK,yBAAyB,EAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAKzF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;IAInC;;OAEG;;IAGH;;;OAGG
|
|
1
|
+
{"version":3,"file":"errorUtils.d.ts","sourceRoot":"","sources":["../src/errorUtils.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACN,WAAW,EAEX,gBAAgB,EAChB,MAAM,6CAA6C,CAAC;AACrD,OAAO,EAKN,KAAK,yBAAyB,EAC9B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAKzF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB;IAInC;;OAEG;;IAGH;;;OAGG;;;;;;;;;;;;;;;;;;;;CAEM,CAAC;AACX;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAClC,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,OAAO,uBAAuB,CAAC,CAAC;AAExE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAChC;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,MAAM,CAAC;IAEhB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACpC;AAED,qBAAa,oBAAqB,SAAQ,YAAa,YAAW,eAAe;IAM/E,QAAQ,CAAC,iBAAiB,EAAE,MAAM;IALnC,QAAQ,CAAC,SAAS,yBAAgD;IAClE,QAAQ,CAAC,QAAQ,QAAQ;gBAGxB,OAAO,EAAE,MAAM,EACN,iBAAiB,EAAE,MAAM,EAClC,KAAK,EAAE,yBAAyB;CAIjC;AAED,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,gBAAgB,EAAE,WAAW,CAAC;IACtE,QAAQ,CAAC,SAAS,EAAE,uBAAuB,CAAC;CAC5C;AAED,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAEjD,wBAAgB,sBAAsB,CACrC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,yBAAyB,EAC3C,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,GACjC,eAAe,GAAG,SAAS,CAqC7B;AAED,wBAAgB,qBAAqB,CACpC,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,EAClB,YAAY,CAAC,EAAE,MAAM,EACrB,eAAe,CAAC,EAAE,yBAAyB,GACzC,KAAK,CAEP;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACzC,WAAW,EAAE,gBAAgB,EAC7B,OAAO,EAAE,MAAM,EACf,eAAe,CAAC,EAAE,yBAAyB,GACzC,SAAS,CAgBX;AAED,kDAAkD;AAClD,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,GAAE,MAAW,GAAG,MAAM,GAAG,SAAS,CAuC1F"}
|
package/lib/legacy.d.ts
CHANGED
|
@@ -9,11 +9,13 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
export {
|
|
12
|
-
// @public APIs
|
|
12
|
+
// #region @public APIs
|
|
13
13
|
ITokenProvider,
|
|
14
14
|
ITokenResponse,
|
|
15
|
+
// #endregion
|
|
15
16
|
|
|
16
|
-
// @
|
|
17
|
+
// #region @legacyBeta APIs
|
|
17
18
|
IRouterliciousResolvedUrl,
|
|
18
19
|
createRouterliciousDocumentServiceFactory
|
|
20
|
+
// #endregion
|
|
19
21
|
} from "./index.js";
|
package/lib/packageVersion.d.ts
CHANGED
|
@@ -5,5 +5,5 @@
|
|
|
5
5
|
* THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY
|
|
6
6
|
*/
|
|
7
7
|
export declare const pkgName = "@fluidframework/routerlicious-driver";
|
|
8
|
-
export declare const pkgVersion = "2.
|
|
8
|
+
export declare const pkgVersion = "2.61.0-355054";
|
|
9
9
|
//# sourceMappingURL=packageVersion.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,yCAAyC,CAAC;AAC9D,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"packageVersion.d.ts","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,OAAO,yCAAyC,CAAC;AAC9D,eAAO,MAAM,UAAU,kBAAkB,CAAC"}
|
package/lib/packageVersion.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAC9D,MAAM,CAAC,MAAM,UAAU,GAAG,
|
|
1
|
+
{"version":3,"file":"packageVersion.js","sourceRoot":"","sources":["../src/packageVersion.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,OAAO,GAAG,sCAAsC,CAAC;AAC9D,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n *\n * THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY\n */\n\nexport const pkgName = \"@fluidframework/routerlicious-driver\";\nexport const pkgVersion = \"2.61.0-355054\";\n"]}
|
package/lib/public.d.ts
CHANGED
|
@@ -10,8 +10,7 @@ import type { IResolvedUrl } from "@fluidframework/driver-definitions/internal";
|
|
|
10
10
|
* {@link isRouterliciousResolvedUrl} can be used to detect whether an {@link @fluidframework/driver-definitions#IResolvedUrl}
|
|
11
11
|
* is an IRouterliciousResolvedUrl.
|
|
12
12
|
*
|
|
13
|
-
* @legacy
|
|
14
|
-
* @alpha
|
|
13
|
+
* @legacy @beta
|
|
15
14
|
*/
|
|
16
15
|
export interface IRouterliciousResolvedUrl extends IResolvedUrl {
|
|
17
16
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerliciousResolvedUrl.d.ts","sourceRoot":"","sources":["../src/routerliciousResolvedUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAEhF
|
|
1
|
+
{"version":3,"file":"routerliciousResolvedUrl.d.ts","sourceRoot":"","sources":["../src/routerliciousResolvedUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6CAA6C,CAAC;AAEhF;;;;;;;;GAQG;AACH,MAAM,WAAW,yBAA0B,SAAQ,YAAY;IAC9D;;OAEG;IACH,wBAAwB,EAAE,IAAI,CAAC;IAC/B;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;GAGG;AACH,eAAO,MAAM,0BAA0B,gBACzB,YAAY,6CAEmD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"routerliciousResolvedUrl.js","sourceRoot":"","sources":["../src/routerliciousResolvedUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"routerliciousResolvedUrl.js","sourceRoot":"","sources":["../src/routerliciousResolvedUrl.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA4BH;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CACzC,WAAyB,EACkB,EAAE,CAC5C,WAAyC,CAAC,wBAAwB,KAAK,IAAI,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IResolvedUrl } from \"@fluidframework/driver-definitions/internal\";\n\n/**\n * Routerlicious extends the resolved url with additional properties to control Routerlicious-specific behaviors.\n *\n * @privateRemarks\n * {@link isRouterliciousResolvedUrl} can be used to detect whether an {@link @fluidframework/driver-definitions#IResolvedUrl}\n * is an IRouterliciousResolvedUrl.\n *\n * @legacy @beta\n */\nexport interface IRouterliciousResolvedUrl extends IResolvedUrl {\n\t/**\n\t * A flag to facilitate type narrowing from {@link @fluidframework/driver-definitions#IResolvedUrl} to IRouterliciousResolvedUrl.\n\t */\n\trouterliciousResolvedUrl: true;\n\t/**\n\t * Controls whether a newly created container will be ephemeral, which means the service will not retain it\n\t * after the collaboration session ends. Only affects\n\t * {@link @fluidframework/driver-definitions#IDocumentServiceFactory.createContainer} requests.\n\t *\n\t * @defaultValue If left undefined, treated as `false`\n\t */\n\tcreateAsEphemeral?: boolean;\n}\n\n/**\n * Type guard to detect if an IResolvedUrl is an IRouterliciousResolvedUrl.\n * @internal\n */\nexport const isRouterliciousResolvedUrl = (\n\tresolvedUrl: IResolvedUrl,\n): resolvedUrl is IRouterliciousResolvedUrl =>\n\t(resolvedUrl as IRouterliciousResolvedUrl).routerliciousResolvedUrl === true;\n"]}
|
package/lib/tsdoc-metadata.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fluidframework/routerlicious-driver",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.61.0-355054",
|
|
4
4
|
"description": "Socket.IO + Git implementation of Fluid service API",
|
|
5
5
|
"homepage": "https://fluidframework.com",
|
|
6
6
|
"repository": {
|
|
@@ -69,14 +69,14 @@
|
|
|
69
69
|
"temp-directory": "nyc/.nyc_output"
|
|
70
70
|
},
|
|
71
71
|
"dependencies": {
|
|
72
|
-
"@fluid-internal/client-utils": "
|
|
73
|
-
"@fluidframework/core-interfaces": "
|
|
74
|
-
"@fluidframework/core-utils": "
|
|
75
|
-
"@fluidframework/driver-base": "
|
|
76
|
-
"@fluidframework/driver-definitions": "
|
|
77
|
-
"@fluidframework/driver-utils": "
|
|
72
|
+
"@fluid-internal/client-utils": "2.61.0-355054",
|
|
73
|
+
"@fluidframework/core-interfaces": "2.61.0-355054",
|
|
74
|
+
"@fluidframework/core-utils": "2.61.0-355054",
|
|
75
|
+
"@fluidframework/driver-base": "2.61.0-355054",
|
|
76
|
+
"@fluidframework/driver-definitions": "2.61.0-355054",
|
|
77
|
+
"@fluidframework/driver-utils": "2.61.0-355054",
|
|
78
78
|
"@fluidframework/server-services-client": "^7.0.0",
|
|
79
|
-
"@fluidframework/telemetry-utils": "
|
|
79
|
+
"@fluidframework/telemetry-utils": "2.61.0-355054",
|
|
80
80
|
"cross-fetch": "^3.1.5",
|
|
81
81
|
"json-stringify-safe": "5.0.1",
|
|
82
82
|
"socket.io-client": "~4.7.5",
|
|
@@ -85,19 +85,19 @@
|
|
|
85
85
|
"devDependencies": {
|
|
86
86
|
"@arethetypeswrong/cli": "^0.17.1",
|
|
87
87
|
"@biomejs/biome": "~1.9.3",
|
|
88
|
-
"@fluid-internal/mocha-test-setup": "
|
|
89
|
-
"@fluid-tools/build-cli": "^0.
|
|
88
|
+
"@fluid-internal/mocha-test-setup": "2.61.0-355054",
|
|
89
|
+
"@fluid-tools/build-cli": "^0.58.2",
|
|
90
90
|
"@fluidframework/build-common": "^2.0.3",
|
|
91
|
-
"@fluidframework/build-tools": "^0.
|
|
92
|
-
"@fluidframework/eslint-config-fluid": "^
|
|
93
|
-
"@fluidframework/routerlicious-driver-previous": "npm:@fluidframework/routerlicious-driver@2.
|
|
94
|
-
"@microsoft/api-extractor": "7.52.
|
|
91
|
+
"@fluidframework/build-tools": "^0.58.2",
|
|
92
|
+
"@fluidframework/eslint-config-fluid": "^6.0.0",
|
|
93
|
+
"@fluidframework/routerlicious-driver-previous": "npm:@fluidframework/routerlicious-driver@2.60.0",
|
|
94
|
+
"@microsoft/api-extractor": "7.52.11",
|
|
95
95
|
"@types/mocha": "^10.0.10",
|
|
96
96
|
"@types/nock": "^9.3.0",
|
|
97
97
|
"@types/node": "^18.19.0",
|
|
98
98
|
"@types/sinon": "^17.0.3",
|
|
99
99
|
"axios": "^1.8.4",
|
|
100
|
-
"c8": "^
|
|
100
|
+
"c8": "^10.1.3",
|
|
101
101
|
"concurrently": "^8.2.1",
|
|
102
102
|
"copyfiles": "^2.4.1",
|
|
103
103
|
"cross-env": "^7.0.3",
|
|
@@ -115,8 +115,8 @@
|
|
|
115
115
|
},
|
|
116
116
|
"scripts": {
|
|
117
117
|
"api": "fluid-build . --task api",
|
|
118
|
-
"api-extractor:commonjs": "flub generate entrypoints --outDir ./dist",
|
|
119
|
-
"api-extractor:esnext": "flub generate entrypoints --outDir ./lib --node10TypeCompat",
|
|
118
|
+
"api-extractor:commonjs": "flub generate entrypoints --outFileLegacyBeta legacy --outDir ./dist",
|
|
119
|
+
"api-extractor:esnext": "flub generate entrypoints --outFileLegacyBeta legacy --outDir ./lib --node10TypeCompat",
|
|
120
120
|
"build": "fluid-build . --task build",
|
|
121
121
|
"build:api-reports": "concurrently \"npm:build:api-reports:*\"",
|
|
122
122
|
"build:api-reports:current": "api-extractor run --local --config api-extractor/api-extractor.current.json",
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"test": "npm run test:mocha",
|
|
153
153
|
"test:coverage": "c8 npm test",
|
|
154
154
|
"test:mocha": "npm run test:mocha:cjs && echo \"ADO #7404 - ESM modules cannot be stubbed - npm run test:mocha:esm\"",
|
|
155
|
-
"test:mocha:cjs": "
|
|
156
|
-
"test:mocha:esm": "mocha
|
|
155
|
+
"test:mocha:cjs": "cross-env MOCHA_SPEC=dist/test mocha",
|
|
156
|
+
"test:mocha:esm": "mocha",
|
|
157
157
|
"test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
|
|
158
158
|
"tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist",
|
|
159
159
|
"typetests:gen": "flub generate typetests --dir . -v",
|
|
@@ -408,8 +408,7 @@ export class DocumentPostCreateError extends Error {
|
|
|
408
408
|
/**
|
|
409
409
|
* Creates factory for creating the routerlicious document service.
|
|
410
410
|
*
|
|
411
|
-
* @legacy
|
|
412
|
-
* @alpha
|
|
411
|
+
* @legacy @beta
|
|
413
412
|
*/
|
|
414
413
|
export function createRouterliciousDocumentServiceFactory(
|
|
415
414
|
tokenProvider: ITokenProvider,
|
package/src/packageVersion.ts
CHANGED
|
@@ -12,8 +12,7 @@ import type { IResolvedUrl } from "@fluidframework/driver-definitions/internal";
|
|
|
12
12
|
* {@link isRouterliciousResolvedUrl} can be used to detect whether an {@link @fluidframework/driver-definitions#IResolvedUrl}
|
|
13
13
|
* is an IRouterliciousResolvedUrl.
|
|
14
14
|
*
|
|
15
|
-
* @legacy
|
|
16
|
-
* @alpha
|
|
15
|
+
* @legacy @beta
|
|
17
16
|
*/
|
|
18
17
|
export interface IRouterliciousResolvedUrl extends IResolvedUrl {
|
|
19
18
|
/**
|