@fluidframework/driver-base 1.4.0-121020 → 2.0.0-dev-rc.1.0.0.225277

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/.eslintrc.js +8 -7
  2. package/.mocharc.js +12 -0
  3. package/CHANGELOG.md +117 -0
  4. package/README.md +37 -1
  5. package/api-extractor-esm.json +4 -0
  6. package/api-extractor-lint.json +4 -0
  7. package/api-extractor.json +2 -2
  8. package/api-report/driver-base.api.md +112 -0
  9. package/dist/{documentDeltaConnection.js → documentDeltaConnection.cjs} +228 -113
  10. package/dist/documentDeltaConnection.cjs.map +1 -0
  11. package/dist/documentDeltaConnection.d.ts +34 -18
  12. package/dist/documentDeltaConnection.d.ts.map +1 -1
  13. package/dist/driver-base-alpha.d.ts +26 -0
  14. package/dist/driver-base-beta.d.ts +30 -0
  15. package/dist/driver-base-public.d.ts +30 -0
  16. package/dist/driver-base-untrimmed.d.ts +213 -0
  17. package/dist/driverUtils.cjs +146 -0
  18. package/dist/driverUtils.cjs.map +1 -0
  19. package/dist/driverUtils.d.ts +36 -0
  20. package/dist/driverUtils.d.ts.map +1 -0
  21. package/dist/index.cjs +14 -0
  22. package/dist/index.cjs.map +1 -0
  23. package/dist/index.d.ts +2 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/{packageVersion.js → packageVersion.cjs} +2 -2
  26. package/dist/packageVersion.cjs.map +1 -0
  27. package/dist/packageVersion.d.ts +1 -1
  28. package/dist/packageVersion.d.ts.map +1 -1
  29. package/dist/tsdoc-metadata.json +11 -0
  30. package/lib/{documentDeltaConnection.d.ts → documentDeltaConnection.d.mts} +35 -19
  31. package/lib/documentDeltaConnection.d.mts.map +1 -0
  32. package/lib/{documentDeltaConnection.js → documentDeltaConnection.mjs} +218 -104
  33. package/lib/documentDeltaConnection.mjs.map +1 -0
  34. package/lib/driver-base-alpha.d.mts +26 -0
  35. package/lib/driver-base-beta.d.mts +30 -0
  36. package/lib/driver-base-public.d.mts +30 -0
  37. package/lib/driver-base-untrimmed.d.mts +213 -0
  38. package/lib/driverUtils.d.mts +36 -0
  39. package/lib/driverUtils.d.mts.map +1 -0
  40. package/lib/driverUtils.mjs +140 -0
  41. package/lib/driverUtils.mjs.map +1 -0
  42. package/lib/index.d.mts +7 -0
  43. package/lib/index.d.mts.map +1 -0
  44. package/lib/index.mjs +7 -0
  45. package/lib/index.mjs.map +1 -0
  46. package/lib/{packageVersion.d.ts → packageVersion.d.mts} +2 -2
  47. package/lib/packageVersion.d.mts.map +1 -0
  48. package/lib/{packageVersion.js → packageVersion.mjs} +2 -2
  49. package/lib/packageVersion.mjs.map +1 -0
  50. package/package.json +151 -43
  51. package/{lib/index.d.ts → prettier.config.cjs} +4 -2
  52. package/src/documentDeltaConnection.ts +748 -563
  53. package/src/driverUtils.ts +159 -0
  54. package/src/index.ts +2 -1
  55. package/src/packageVersion.ts +1 -1
  56. package/tsc-multi.test.json +4 -0
  57. package/tsconfig.json +11 -13
  58. package/dist/documentDeltaConnection.js.map +0 -1
  59. package/dist/index.js +0 -18
  60. package/dist/index.js.map +0 -1
  61. package/dist/packageVersion.js.map +0 -1
  62. package/lib/documentDeltaConnection.d.ts.map +0 -1
  63. package/lib/documentDeltaConnection.js.map +0 -1
  64. package/lib/index.d.ts.map +0 -1
  65. package/lib/index.js +0 -6
  66. package/lib/index.js.map +0 -1
  67. package/lib/packageVersion.d.ts.map +0 -1
  68. package/lib/packageVersion.js.map +0 -1
  69. package/lib/test/types/validateDriverBasePrevious.d.ts +0 -2
  70. package/lib/test/types/validateDriverBasePrevious.d.ts.map +0 -1
  71. package/lib/test/types/validateDriverBasePrevious.js +0 -4
  72. package/lib/test/types/validateDriverBasePrevious.js.map +0 -1
  73. package/tsconfig.esnext.json +0 -7
package/.eslintrc.js CHANGED
@@ -4,10 +4,11 @@
4
4
  */
5
5
 
6
6
  module.exports = {
7
- "extends": [
8
- require.resolve("@fluidframework/eslint-config-fluid")
9
- ],
10
- "rules": {
11
- "@typescript-eslint/strict-boolean-expressions": "off"
12
- }
13
- }
7
+ extends: [require.resolve("@fluidframework/eslint-config-fluid/minimal"), "prettier"],
8
+ parserOptions: {
9
+ project: ["./tsconfig.json", "./src/test/tsconfig.json"],
10
+ },
11
+ rules: {
12
+ "@typescript-eslint/strict-boolean-expressions": "off",
13
+ },
14
+ };
package/.mocharc.js ADDED
@@ -0,0 +1,12 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+
6
+ "use strict";
7
+
8
+ const getFluidTestMochaConfig = require("@fluidframework/mocha-test-setup/mocharc-common");
9
+
10
+ const packageDir = __dirname;
11
+ const config = getFluidTestMochaConfig(packageDir);
12
+ module.exports = config;
package/CHANGELOG.md ADDED
@@ -0,0 +1,117 @@
1
+ # @fluidframework/driver-base
2
+
3
+ ## 2.0.0-internal.8.0.0
4
+
5
+ Dependency updates only.
6
+
7
+ ## 2.0.0-internal.7.4.0
8
+
9
+ Dependency updates only.
10
+
11
+ ## 2.0.0-internal.7.3.0
12
+
13
+ Dependency updates only.
14
+
15
+ ## 2.0.0-internal.7.2.0
16
+
17
+ Dependency updates only.
18
+
19
+ ## 2.0.0-internal.7.1.0
20
+
21
+ Dependency updates only.
22
+
23
+ ## 2.0.0-internal.7.0.0
24
+
25
+ ### Major Changes
26
+
27
+ - Dependencies on @fluidframework/protocol-definitions package updated to 3.0.0 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
28
+
29
+ This included the following changes from the protocol-definitions release:
30
+
31
+ - Updating signal interfaces for some planned improvements. The intention is split the interface between signals
32
+ submitted by clients to the server and the resulting signals sent from the server to clients.
33
+ - A new optional type member is available on the ISignalMessage interface and a new ISentSignalMessage interface has
34
+ been added, which will be the typing for signals sent from the client to the server. Both extend a new
35
+ ISignalMessageBase interface that contains common members.
36
+ - The @fluidframework/common-definitions package dependency has been updated to version 1.0.0.
37
+
38
+ - Server upgrade: dependencies on Fluid server packages updated to 2.0.1 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
39
+
40
+ Dependencies on the following Fluid server package have been updated to version 2.0.1:
41
+
42
+ - @fluidframework/gitresources: 2.0.1
43
+ - @fluidframework/server-kafka-orderer: 2.0.1
44
+ - @fluidframework/server-lambdas: 2.0.1
45
+ - @fluidframework/server-lambdas-driver: 2.0.1
46
+ - @fluidframework/server-local-server: 2.0.1
47
+ - @fluidframework/server-memory-orderer: 2.0.1
48
+ - @fluidframework/protocol-base: 2.0.1
49
+ - @fluidframework/server-routerlicious: 2.0.1
50
+ - @fluidframework/server-routerlicious-base: 2.0.1
51
+ - @fluidframework/server-services: 2.0.1
52
+ - @fluidframework/server-services-client: 2.0.1
53
+ - @fluidframework/server-services-core: 2.0.1
54
+ - @fluidframework/server-services-ordering-kafkanode: 2.0.1
55
+ - @fluidframework/server-services-ordering-rdkafka: 2.0.1
56
+ - @fluidframework/server-services-ordering-zookeeper: 2.0.1
57
+ - @fluidframework/server-services-shared: 2.0.1
58
+ - @fluidframework/server-services-telemetry: 2.0.1
59
+ - @fluidframework/server-services-utils: 2.0.1
60
+ - @fluidframework/server-test-utils: 2.0.1
61
+ - tinylicious: 2.0.1
62
+
63
+ - Minimum TypeScript version now 5.1.6 [871b3493dd](https://github.com/microsoft/FluidFramework/commits/871b3493dd0d7ea3a89be64998ceb6cb9021a04e)
64
+
65
+ The minimum supported TypeScript version for Fluid 2.0 clients is now 5.1.6.
66
+
67
+ ## 2.0.0-internal.6.4.0
68
+
69
+ Dependency updates only.
70
+
71
+ ## 2.0.0-internal.6.3.0
72
+
73
+ Dependency updates only.
74
+
75
+ ## 2.0.0-internal.6.2.0
76
+
77
+ Dependency updates only.
78
+
79
+ ## 2.0.0-internal.6.1.0
80
+
81
+ Dependency updates only.
82
+
83
+ ## 2.0.0-internal.6.0.0
84
+
85
+ ### Major Changes
86
+
87
+ - Upgraded typescript transpilation target to ES2020 [8abce8cdb4](https://github.com/microsoft/FluidFramework/commits/8abce8cdb4e2832fb6405fb44e393bef03d5648a)
88
+
89
+ Upgraded typescript transpilation target to ES2020. This is done in order to decrease the bundle sizes of Fluid Framework packages. This has provided size improvements across the board for ex. Loader, Driver, Runtime etc. Reduced bundle sizes helps to load lesser code in apps and hence also helps to improve the perf.If any app wants to target any older versions of browsers with which this target version is not compatible, then they can use packages like babel to transpile to a older target.
90
+
91
+ ## 2.0.0-internal.5.4.0
92
+
93
+ Dependency updates only.
94
+
95
+ ## 2.0.0-internal.5.3.0
96
+
97
+ Dependency updates only.
98
+
99
+ ## 2.0.0-internal.5.2.0
100
+
101
+ Dependency updates only.
102
+
103
+ ## 2.0.0-internal.5.1.0
104
+
105
+ Dependency updates only.
106
+
107
+ ## 2.0.0-internal.5.0.0
108
+
109
+ Dependency updates only.
110
+
111
+ ## 2.0.0-internal.4.4.0
112
+
113
+ Dependency updates only.
114
+
115
+ ## 2.0.0-internal.4.1.0
116
+
117
+ Dependency updates only.
package/README.md CHANGED
@@ -3,4 +3,40 @@
3
3
  This package contains an implementation of IDocumentDeltaConnection using websockets. This code is shared by multiple
4
4
  Fluid driver implementations that targeting different services.
5
5
 
6
- See [GitHub](https://github.com/microsoft/FluidFramework) for more details on the Fluid Framework and packages within.
6
+ <!-- AUTO-GENERATED-CONTENT:START (README_DEPENDENCY_GUIDELINES_SECTION:includeHeading=TRUE) -->
7
+
8
+ <!-- prettier-ignore-start -->
9
+ <!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
10
+
11
+ ## Using Fluid Framework libraries
12
+
13
+ When taking a dependency on a Fluid Framework library, we recommend using a `^` (caret) version range, such as `^1.3.4`.
14
+ While Fluid Framework libraries may use different ranges with interdependencies between other Fluid Framework libraries,
15
+ library consumers should always prefer `^`.
16
+
17
+ Note that when depending on a library version of the form `2.0.0-internal.x.y.z`, called the Fluid internal version scheme,
18
+ you must use a `>= <` dependency range (such as `>=2.0.0-internal.x.y.z <2.0.0-internal.w.0.0` where `w` is `x+1`).
19
+ Standard `^` and `~` ranges will not work as expected.
20
+ See the [@fluid-tools/version-tools](https://github.com/microsoft/FluidFramework/blob/main/build-tools/packages/version-tools/README.md)
21
+ package for more information including tools to convert between version schemes.
22
+
23
+ <!-- prettier-ignore-end -->
24
+
25
+ <!-- AUTO-GENERATED-CONTENT:END -->
26
+
27
+ <!-- AUTO-GENERATED-CONTENT:START (README_TRADEMARK_SECTION:includeHeading=TRUE) -->
28
+
29
+ <!-- prettier-ignore-start -->
30
+ <!-- NOTE: This section is automatically generated using @fluid-tools/markdown-magic. Do not update these generated contents directly. -->
31
+
32
+ ## Trademark
33
+
34
+ This project may contain Microsoft trademarks or logos for Microsoft projects, products, or services.
35
+
36
+ Use of these trademarks or logos must follow Microsoft's [Trademark & Brand Guidelines](https://www.microsoft.com/en-us/legal/intellectualproperty/trademarks/usage/general).
37
+
38
+ Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship.
39
+
40
+ <!-- prettier-ignore-end -->
41
+
42
+ <!-- AUTO-GENERATED-CONTENT:END -->
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
+ "extends": "../../../common/build/build-common/api-extractor-base-esm.json"
4
+ }
@@ -0,0 +1,4 @@
1
+ {
2
+ "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
+ "extends": "../../../common/build/build-common/api-extractor-lint.json"
4
+ }
@@ -1,4 +1,4 @@
1
1
  {
2
- "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
- "extends": "@fluidframework/build-common/api-extractor-common-report.json"
2
+ "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
3
+ "extends": "../../../common/build/build-common/api-extractor-base.json"
4
4
  }
@@ -0,0 +1,112 @@
1
+ ## API Report File for "@fluidframework/driver-base"
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 { ConnectionMode } from '@fluidframework/protocol-definitions';
8
+ import { EventEmitterWithErrorHandling } from '@fluidframework/telemetry-utils';
9
+ import { IAnyDriverError } from '@fluidframework/driver-definitions';
10
+ import { IClientConfiguration } from '@fluidframework/protocol-definitions';
11
+ import { IConnect } from '@fluidframework/protocol-definitions';
12
+ import { IConnected } from '@fluidframework/protocol-definitions';
13
+ import { IDisposable } from '@fluidframework/core-interfaces';
14
+ import { IDocumentDeltaConnection } from '@fluidframework/driver-definitions';
15
+ import { IDocumentDeltaConnectionEvents } from '@fluidframework/driver-definitions';
16
+ import { IDocumentMessage } from '@fluidframework/protocol-definitions';
17
+ import { ISequencedDocumentMessage } from '@fluidframework/protocol-definitions';
18
+ import { ISignalClient } from '@fluidframework/protocol-definitions';
19
+ import { ISignalMessage } from '@fluidframework/protocol-definitions';
20
+ import { ITelemetryLoggerExt } from '@fluidframework/telemetry-utils';
21
+ import { ITokenClaims } from '@fluidframework/protocol-definitions';
22
+ import type { Socket } from 'socket.io-client';
23
+
24
+ // @internal
25
+ export class DocumentDeltaConnection extends EventEmitterWithErrorHandling<IDocumentDeltaConnectionEvents> implements IDocumentDeltaConnection, IDisposable {
26
+ protected constructor(socket: Socket, documentId: string, logger: ITelemetryLoggerExt, enableLongPollingDowngrades?: boolean, connectionId?: string | undefined);
27
+ // (undocumented)
28
+ protected addTrackedListener(event: string, listener: (...args: any[]) => void): void;
29
+ checkpointSequenceNumber: number | undefined;
30
+ get claims(): ITokenClaims;
31
+ get clientId(): string;
32
+ // (undocumented)
33
+ protected closeSocketCore(error: IAnyDriverError): void;
34
+ // (undocumented)
35
+ protected readonly connectionId?: string | undefined;
36
+ protected createErrorObject(handler: string, error?: any, canRetry?: boolean): IAnyDriverError;
37
+ // (undocumented)
38
+ get details(): IConnected;
39
+ // (undocumented)
40
+ protected disconnect(err: IAnyDriverError): void;
41
+ protected disconnectCore(): void;
42
+ dispose(): void;
43
+ // (undocumented)
44
+ get disposed(): boolean;
45
+ protected _disposed: boolean;
46
+ // (undocumented)
47
+ documentId: string;
48
+ // (undocumented)
49
+ protected earlyOpHandler: (documentId: string, msgs: ISequencedDocumentMessage[]) => void;
50
+ // (undocumented)
51
+ protected earlySignalHandler: (msg: ISignalMessage | ISignalMessage[]) => void;
52
+ // (undocumented)
53
+ protected emitMessages(type: string, messages: IDocumentMessage[][]): void;
54
+ // (undocumented)
55
+ static readonly eventsAlwaysForwarded: string[];
56
+ // (undocumented)
57
+ static readonly eventsToForward: string[];
58
+ get existing(): boolean;
59
+ // (undocumented)
60
+ protected getConnectionDetailsProps(): {
61
+ disposed: boolean;
62
+ socketConnected: boolean;
63
+ clientId: string | undefined;
64
+ connectionId: string | undefined;
65
+ };
66
+ // (undocumented)
67
+ protected get hasDetails(): boolean;
68
+ get initialClients(): ISignalClient[];
69
+ // (undocumented)
70
+ protected initialize(connectMessage: IConnect, timeout: number): Promise<void>;
71
+ get initialMessages(): ISequencedDocumentMessage[];
72
+ get initialSignals(): ISignalMessage[];
73
+ // @deprecated (undocumented)
74
+ protected get logger(): ITelemetryLoggerExt;
75
+ get maxMessageSize(): number;
76
+ get mode(): ConnectionMode;
77
+ // (undocumented)
78
+ protected readonly queuedMessages: ISequencedDocumentMessage[];
79
+ // (undocumented)
80
+ protected readonly queuedSignals: ISignalMessage[];
81
+ get serviceConfiguration(): IClientConfiguration;
82
+ // (undocumented)
83
+ protected readonly socket: Socket;
84
+ submit(messages: IDocumentMessage[]): void;
85
+ submitSignal(content: IDocumentMessage, targetClientId?: string): void;
86
+ get version(): string;
87
+ }
88
+
89
+ // @internal
90
+ export function getW3CData(url: string, initiatorType: string): {
91
+ dnsLookupTime: number | undefined;
92
+ w3cStartTime: number | undefined;
93
+ redirectTime: number | undefined;
94
+ tcpHandshakeTime: number | undefined;
95
+ secureConnectionTime: number | undefined;
96
+ responseNetworkTime: number | undefined;
97
+ fetchStartToResponseEndTime: number | undefined;
98
+ reqStartToResponseEndTime: number | undefined;
99
+ };
100
+
101
+ // @internal
102
+ export function promiseRaceWithWinner<T>(promises: Promise<T>[]): Promise<{
103
+ index: number;
104
+ value: T;
105
+ }>;
106
+
107
+ // @internal (undocumented)
108
+ export function validateMessages(reason: string, messages: ISequencedDocumentMessage[], from: number, logger: ITelemetryLoggerExt, strict?: boolean): void;
109
+
110
+ // (No @packageDocumentation comment for this package)
111
+
112
+ ```