@fluidframework/core-interfaces 2.0.0-internal.7.3.0 → 2.0.0-internal.8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/Removing-IFluidRouter.md +22 -17
  3. package/api-extractor-lint.json +13 -0
  4. package/api-extractor.json +3 -6
  5. package/api-report/core-interfaces.api.md +66 -73
  6. package/dist/config.d.ts +35 -0
  7. package/dist/config.d.ts.map +1 -0
  8. package/dist/config.js +7 -0
  9. package/dist/config.js.map +1 -0
  10. package/dist/core-interfaces-alpha.d.ts +101 -249
  11. package/dist/core-interfaces-beta.d.ts +105 -905
  12. package/dist/core-interfaces-public.d.ts +105 -905
  13. package/dist/core-interfaces-untrimmed.d.ts +112 -18
  14. package/dist/disposable.d.ts +1 -0
  15. package/dist/disposable.d.ts.map +1 -1
  16. package/dist/disposable.js.map +1 -1
  17. package/dist/error.d.ts +9 -0
  18. package/dist/error.d.ts.map +1 -1
  19. package/dist/error.js +1 -0
  20. package/dist/error.js.map +1 -1
  21. package/dist/events.d.ts +8 -1
  22. package/dist/events.d.ts.map +1 -1
  23. package/dist/events.js.map +1 -1
  24. package/dist/fluidLoadable.d.ts +16 -0
  25. package/dist/fluidLoadable.d.ts.map +1 -1
  26. package/dist/fluidLoadable.js +6 -0
  27. package/dist/fluidLoadable.js.map +1 -1
  28. package/dist/fluidPackage.d.ts +9 -0
  29. package/dist/fluidPackage.d.ts.map +1 -1
  30. package/dist/fluidPackage.js +3 -0
  31. package/dist/fluidPackage.js.map +1 -1
  32. package/dist/fluidRouter.d.ts +9 -17
  33. package/dist/fluidRouter.d.ts.map +1 -1
  34. package/dist/fluidRouter.js +0 -5
  35. package/dist/fluidRouter.js.map +1 -1
  36. package/dist/handles.d.ts +14 -0
  37. package/dist/handles.d.ts.map +1 -1
  38. package/dist/handles.js +6 -0
  39. package/dist/handles.js.map +1 -1
  40. package/dist/index.d.ts +2 -1
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +1 -6
  43. package/dist/index.js.map +1 -1
  44. package/dist/logger.d.ts +16 -0
  45. package/dist/logger.d.ts.map +1 -1
  46. package/dist/logger.js +1 -0
  47. package/dist/logger.js.map +1 -1
  48. package/dist/provider.d.ts +3 -2
  49. package/dist/provider.d.ts.map +1 -1
  50. package/dist/provider.js.map +1 -1
  51. package/lib/config.d.ts +35 -0
  52. package/lib/config.d.ts.map +1 -0
  53. package/lib/config.js +7 -0
  54. package/lib/config.js.map +1 -0
  55. package/lib/core-interfaces-alpha.d.ts +101 -249
  56. package/lib/core-interfaces-beta.d.ts +105 -905
  57. package/lib/core-interfaces-public.d.ts +105 -905
  58. package/lib/core-interfaces-untrimmed.d.ts +112 -18
  59. package/lib/disposable.d.ts +1 -0
  60. package/lib/disposable.d.ts.map +1 -1
  61. package/lib/disposable.js +2 -1
  62. package/lib/disposable.js.map +1 -1
  63. package/lib/error.d.ts +9 -0
  64. package/lib/error.d.ts.map +1 -1
  65. package/lib/error.js +5 -1
  66. package/lib/error.js.map +1 -1
  67. package/lib/events.d.ts +8 -1
  68. package/lib/events.d.ts.map +1 -1
  69. package/lib/events.js +2 -1
  70. package/lib/events.js.map +1 -1
  71. package/lib/fluidLoadable.d.ts +16 -0
  72. package/lib/fluidLoadable.d.ts.map +1 -1
  73. package/lib/fluidLoadable.js +11 -2
  74. package/lib/fluidLoadable.js.map +1 -1
  75. package/lib/fluidPackage.d.ts +9 -0
  76. package/lib/fluidPackage.d.ts.map +1 -1
  77. package/lib/fluidPackage.js +12 -4
  78. package/lib/fluidPackage.js.map +1 -1
  79. package/lib/fluidRouter.d.ts +9 -17
  80. package/lib/fluidRouter.d.ts.map +1 -1
  81. package/lib/fluidRouter.js +2 -4
  82. package/lib/fluidRouter.js.map +1 -1
  83. package/lib/handles.d.ts +14 -0
  84. package/lib/handles.d.ts.map +1 -1
  85. package/lib/handles.js +11 -2
  86. package/lib/handles.js.map +1 -1
  87. package/lib/index.d.ts +2 -1
  88. package/lib/index.d.ts.map +1 -1
  89. package/lib/index.js +17 -9
  90. package/lib/index.js.map +1 -1
  91. package/lib/logger.d.ts +16 -0
  92. package/lib/logger.d.ts.map +1 -1
  93. package/lib/logger.js +5 -1
  94. package/lib/logger.js.map +1 -1
  95. package/lib/provider.d.ts +3 -2
  96. package/lib/provider.d.ts.map +1 -1
  97. package/lib/provider.js +2 -1
  98. package/lib/provider.js.map +1 -1
  99. package/package.json +22 -6
  100. package/src/config.ts +36 -0
  101. package/src/disposable.ts +1 -0
  102. package/src/error.ts +9 -0
  103. package/src/events.ts +8 -1
  104. package/src/fluidLoadable.ts +16 -0
  105. package/src/fluidPackage.ts +9 -0
  106. package/src/fluidRouter.ts +9 -20
  107. package/src/handles.ts +14 -0
  108. package/src/index.ts +2 -7
  109. package/src/logger.ts +16 -0
  110. package/src/provider.ts +3 -2
@@ -8,6 +8,7 @@
8
8
  *
9
9
  * @deprecated In favor of {@link @fluidframework/container-definitions#IFluidPackageEnvironment}
10
10
  * to have code loading modules in same package.
11
+ * @internal
11
12
  */
12
13
  export interface IFluidPackageEnvironment {
13
14
  /**
@@ -41,6 +42,7 @@ export interface IFluidPackageEnvironment {
41
42
  *
42
43
  * @deprecated In favor of {@link @fluidframework/container-definitions#IFluidPackage}
43
44
  * to have code loading modules in same package.
45
+ * @internal
44
46
  */
45
47
  export interface IFluidPackage {
46
48
  /**
@@ -72,6 +74,7 @@ export interface IFluidPackage {
72
74
  * to have code loading modules in same package.
73
75
  *
74
76
  * @param pkg - The package json data to check if it is a Fluid package.
77
+ * @internal
75
78
  */
76
79
  export const isFluidPackage = (pkg: unknown): pkg is Readonly<IFluidPackage> =>
77
80
  typeof pkg === "object" &&
@@ -83,6 +86,7 @@ export const isFluidPackage = (pkg: unknown): pkg is Readonly<IFluidPackage> =>
83
86
  *
84
87
  * @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsConfig}
85
88
  * to have code loading modules in same package.
89
+ * @internal
86
90
  */
87
91
  export interface IFluidCodeDetailsConfig {
88
92
  readonly [key: string]: string;
@@ -93,6 +97,7 @@ export interface IFluidCodeDetailsConfig {
93
97
  *
94
98
  * @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetails}
95
99
  * to have code loading modules in same package.
100
+ * @internal
96
101
  */
97
102
  export interface IFluidCodeDetails {
98
103
  /**
@@ -111,6 +116,7 @@ export interface IFluidCodeDetails {
111
116
  /**
112
117
  * @deprecated in favor of {@link @fluidframework/container-definitions#isFluidCodeDetails}
113
118
  * to have code loading modules in same package.
119
+ * @internal
114
120
  */
115
121
  export const isFluidCodeDetails = (details: unknown): details is Readonly<IFluidCodeDetails> => {
116
122
  const maybeCodeDetails = details as Partial<IFluidCodeDetails> | undefined;
@@ -125,6 +131,7 @@ export const isFluidCodeDetails = (details: unknown): details is Readonly<IFluid
125
131
  /**
126
132
  * @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsComparer}
127
133
  * to have code loading modules in same package.
134
+ * @internal
128
135
  */
129
136
  export const IFluidCodeDetailsComparer: keyof IProvideFluidCodeDetailsComparer =
130
137
  "IFluidCodeDetailsComparer";
@@ -132,6 +139,7 @@ export const IFluidCodeDetailsComparer: keyof IProvideFluidCodeDetailsComparer =
132
139
  /**
133
140
  * @deprecated in favor of {@link @fluidframework/container-definitions#IProvideFluidCodeDetailsComparer}
134
141
  * to have code loading modules in same package.
142
+ * @internal
135
143
  */
136
144
  export interface IProvideFluidCodeDetailsComparer {
137
145
  readonly IFluidCodeDetailsComparer: IFluidCodeDetailsComparer;
@@ -142,6 +150,7 @@ export interface IProvideFluidCodeDetailsComparer {
142
150
  *
143
151
  * @deprecated in favor of {@link @fluidframework/container-definitions#IFluidCodeDetailsComparer}
144
152
  * to have code loading modules in same package.
153
+ * @internal
145
154
  */
146
155
  export interface IFluidCodeDetailsComparer extends IProvideFluidCodeDetailsComparer {
147
156
  /**
@@ -3,17 +3,26 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
 
6
+ /**
7
+ * @alpha
8
+ */
6
9
  export interface IRequestHeader {
7
10
  // TODO: Use `unknown` instead (API-Breaking)
8
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
12
  [index: string]: any;
10
13
  }
11
14
 
15
+ /**
16
+ * @alpha
17
+ */
12
18
  export interface IRequest {
13
19
  url: string;
14
20
  headers?: IRequestHeader;
15
21
  }
16
22
 
23
+ /**
24
+ * @alpha
25
+ */
17
26
  export interface IResponse {
18
27
  mimeType: string;
19
28
  status: number;
@@ -25,23 +34,3 @@ export interface IResponse {
25
34
  headers?: { [key: string]: any };
26
35
  stack?: string;
27
36
  }
28
-
29
- /**
30
- * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
31
- */
32
- export const IFluidRouter: keyof IProvideFluidRouter = "IFluidRouter";
33
-
34
- /**
35
- * Request routing
36
- * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
37
- */
38
- export interface IProvideFluidRouter {
39
- readonly IFluidRouter: IFluidRouter;
40
- }
41
-
42
- /**
43
- * @deprecated Will be removed in future major release. Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
44
- */
45
- export interface IFluidRouter extends IProvideFluidRouter {
46
- request(request: IRequest): Promise<IResponse>;
47
- }
package/src/handles.ts CHANGED
@@ -7,14 +7,21 @@ import { IRequest, IResponse } from "./fluidRouter";
7
7
  import { IFluidLoadable } from "./fluidLoadable";
8
8
  import { FluidObject } from "./provider";
9
9
 
10
+ /**
11
+ * @alpha
12
+ */
10
13
  export const IFluidHandleContext: keyof IProvideFluidHandleContext = "IFluidHandleContext";
11
14
 
15
+ /**
16
+ * @alpha
17
+ */
12
18
  export interface IProvideFluidHandleContext {
13
19
  readonly IFluidHandleContext: IFluidHandleContext;
14
20
  }
15
21
 
16
22
  /**
17
23
  * Describes a routing context from which other `IFluidHandleContext`s are defined.
24
+ * @alpha
18
25
  */
19
26
  export interface IFluidHandleContext extends IProvideFluidHandleContext {
20
27
  /**
@@ -41,14 +48,21 @@ export interface IFluidHandleContext extends IProvideFluidHandleContext {
41
48
  resolveHandle(request: IRequest): Promise<IResponse>;
42
49
  }
43
50
 
51
+ /**
52
+ * @alpha
53
+ */
44
54
  export const IFluidHandle: keyof IProvideFluidHandle = "IFluidHandle";
45
55
 
56
+ /**
57
+ * @alpha
58
+ */
46
59
  export interface IProvideFluidHandle {
47
60
  readonly IFluidHandle: IFluidHandle;
48
61
  }
49
62
 
50
63
  /**
51
64
  * Handle to a shared {@link FluidObject}.
65
+ * @alpha
52
66
  */
53
67
  export interface IFluidHandle<
54
68
  // REVIEW: Constrain `T` to something? How do we support dds and datastores safely?
package/src/index.ts CHANGED
@@ -45,13 +45,7 @@ export {
45
45
  // TypeScript forgets the index signature when customers augment IRequestHeader if we export *.
46
46
  // So we export the explicit members as a workaround:
47
47
  // https://github.com/microsoft/TypeScript/issues/18877#issuecomment-476921038
48
- export {
49
- IRequest,
50
- IRequestHeader,
51
- IResponse,
52
- IProvideFluidRouter,
53
- IFluidRouter,
54
- } from "./fluidRouter";
48
+ export { IRequest, IRequestHeader, IResponse } from "./fluidRouter";
55
49
 
56
50
  export {
57
51
  IFluidHandleContext,
@@ -78,3 +72,4 @@ export type {
78
72
  } from "./logger";
79
73
  export { LogLevel } from "./logger";
80
74
  export { FluidObjectProviderKeys, FluidObject, FluidObjectKeys } from "./provider";
75
+ export { ConfigTypes, IConfigProviderBase } from "./config";
package/src/logger.ts CHANGED
@@ -7,6 +7,7 @@
7
7
  * Examples of known categories, however category can be any string for extensibility.
8
8
  *
9
9
  * @deprecated Moved to \@fluidframework/telemetry-utils package
10
+ * @alpha
10
11
  */
11
12
  export type TelemetryEventCategory = "generic" | "error" | "performance";
12
13
 
@@ -16,6 +17,7 @@ export type TelemetryEventCategory = "generic" | "error" | "performance";
16
17
  * @remarks Logging entire objects is considered extremely dangerous from a telemetry point of view because people can
17
18
  * easily add fields to objects that shouldn't be logged and not realize it's going to be logged.
18
19
  * General best practice is to explicitly log the fields you care about from objects.
20
+ * @internal
19
21
  */
20
22
  export type TelemetryBaseEventPropertyType = TelemetryEventPropertyType;
21
23
 
@@ -23,6 +25,7 @@ export type TelemetryBaseEventPropertyType = TelemetryEventPropertyType;
23
25
  * {@inheritDoc TelemetryBaseEventPropertyType}
24
26
  *
25
27
  * @deprecated Renamed to {@link TelemetryBaseEventPropertyType}
28
+ * @alpha
26
29
  */
27
30
  export type TelemetryEventPropertyType = string | number | boolean | undefined;
28
31
 
@@ -32,6 +35,7 @@ export type TelemetryEventPropertyType = string | number | boolean | undefined;
32
35
  *
33
36
  * This indicates that the value should be organized or handled differently by loggers in various first or third
34
37
  * party scenarios. For example, tags are used to mark data that should not be stored in logs for privacy reasons.
38
+ * @alpha
35
39
  */
36
40
  export interface Tagged<V, T extends string = string> {
37
41
  value: V;
@@ -42,6 +46,7 @@ export interface Tagged<V, T extends string = string> {
42
46
  * @see {@link Tagged} for info on tagging
43
47
  *
44
48
  * @deprecated Use Tagged\<TelemetryBaseEventPropertyType\>
49
+ * @internal
45
50
  */
46
51
  export interface ITaggedTelemetryPropertyType {
47
52
  value: TelemetryEventPropertyType;
@@ -50,6 +55,7 @@ export interface ITaggedTelemetryPropertyType {
50
55
 
51
56
  /**
52
57
  * JSON-serializable properties, which will be logged with telemetry.
58
+ * @alpha
53
59
  */
54
60
  export type ITelemetryBaseProperties = ITelemetryProperties;
55
61
 
@@ -57,6 +63,7 @@ export type ITelemetryBaseProperties = ITelemetryProperties;
57
63
  * {@inheritDoc ITelemetryBaseProperties}
58
64
  *
59
65
  * @deprecated Renamed to {@link ITelemetryBaseProperties}
66
+ * @alpha
60
67
  */
61
68
  export interface ITelemetryProperties {
62
69
  [index: string]: TelemetryEventPropertyType | Tagged<TelemetryEventPropertyType>;
@@ -67,6 +74,7 @@ export interface ITelemetryProperties {
67
74
  * Can contain any number of properties that get serialized as json payload.
68
75
  * @param category - category of the event, like "error", "performance", "generic", etc.
69
76
  * @param eventName - name of the event.
77
+ * @alpha
70
78
  */
71
79
  export interface ITelemetryBaseEvent extends ITelemetryBaseProperties {
72
80
  category: string;
@@ -75,6 +83,7 @@ export interface ITelemetryBaseEvent extends ITelemetryBaseProperties {
75
83
 
76
84
  /**
77
85
  * Specify levels of the logs.
86
+ * @alpha
78
87
  */
79
88
  export const LogLevel = {
80
89
  verbose: 10, // To log any verbose event for example when you are debugging something.
@@ -84,12 +93,14 @@ export const LogLevel = {
84
93
 
85
94
  /**
86
95
  * Specify a level to the log to filter out logs based on the level.
96
+ * @alpha
87
97
  */
88
98
  export type LogLevel = (typeof LogLevel)[keyof typeof LogLevel];
89
99
 
90
100
  /**
91
101
  * Interface to output telemetry events.
92
102
  * Implemented by hosting app / loader
103
+ * @alpha
93
104
  */
94
105
  export interface ITelemetryBaseLogger {
95
106
  send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
@@ -103,6 +114,7 @@ export interface ITelemetryBaseLogger {
103
114
  *
104
115
  * @deprecated For internal use within FluidFramework, use ITelemetryGenericEventExt in \@fluidframework/telemetry-utils.
105
116
  * No replacement intended for FluidFramework consumers.
117
+ * @alpha
106
118
  */
107
119
  export interface ITelemetryGenericEvent extends ITelemetryProperties {
108
120
  eventName: string;
@@ -115,6 +127,7 @@ export interface ITelemetryGenericEvent extends ITelemetryProperties {
115
127
  *
116
128
  * @deprecated For internal use within FluidFramework, use ITelemetryErrorEventExt in \@fluidframework/telemetry-utils.
117
129
  * No replacement intended for FluidFramework consumers.
130
+ * @alpha
118
131
  */
119
132
  export interface ITelemetryErrorEvent extends ITelemetryProperties {
120
133
  eventName: string;
@@ -126,6 +139,7 @@ export interface ITelemetryErrorEvent extends ITelemetryProperties {
126
139
  *
127
140
  * @deprecated For internal use within FluidFramework, use ITelemetryPerformanceEventExt in \@fluidframework/telemetry-utils.
128
141
  * No replacement intended for FluidFramework consumers.
142
+ * @alpha
129
143
  */
130
144
  export interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
131
145
  duration?: number; // Duration of event (optional)
@@ -133,6 +147,7 @@ export interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {
133
147
 
134
148
  /**
135
149
  * An error object that supports exporting its properties to be logged to telemetry
150
+ * @internal
136
151
  */
137
152
  export interface ILoggingError extends Error {
138
153
  /**
@@ -148,6 +163,7 @@ export interface ILoggingError extends Error {
148
163
  *
149
164
  * @deprecated For internal use within FluidFramework, use ITelemetryLoggerExt in \@fluidframework/telemetry-utils.
150
165
  * No replacement intended for FluidFramework consumers.
166
+ * @alpha
151
167
  */
152
168
  export interface ITelemetryLogger extends ITelemetryBaseLogger {
153
169
  /**
package/src/provider.ts CHANGED
@@ -27,6 +27,7 @@
27
27
  *
28
28
  * This pattern enables discovery, and delegation in a standard way which is central
29
29
  * to FluidObject pattern.
30
+ * @alpha
30
31
  */
31
32
  export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string extends TProp
32
33
  ? never
@@ -69,7 +70,7 @@ export type FluidObjectProviderKeys<T, TProp extends keyof T = keyof T> = string
69
70
  *
70
71
  * You can inspect multiple types via a intersection. For example:
71
72
  * `FluidObject<IFoo & IBar>`
72
- *
73
+ * @alpha
73
74
  */
74
75
  export type FluidObject<T = unknown> = {
75
76
  [P in FluidObjectProviderKeys<T>]?: T[P];
@@ -82,6 +83,6 @@ export type FluidObject<T = unknown> = {
82
83
  * See {@link FluidObject}
83
84
  *
84
85
  * For example `FluidObjectKeys<IFoo & IBar>` would result in `"IFoo" | "IBar"`
85
- *
86
+ * @alpha
86
87
  */
87
88
  export type FluidObjectKeys<T> = keyof FluidObject<T>;