@fluidframework/fluid-static 2.0.0-dev.7.3.0.212138 → 2.0.0-dev.7.4.0.215366

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 (54) hide show
  1. package/api-extractor.json +9 -2
  2. package/api-report/fluid-static.api.md +28 -4
  3. package/dist/fluid-static-alpha.d.ts +580 -0
  4. package/dist/fluid-static-beta.d.ts +580 -0
  5. package/dist/fluid-static-public.d.ts +580 -0
  6. package/dist/fluid-static-untrimmed.d.ts +589 -0
  7. package/dist/fluidContainer.cjs +6 -1
  8. package/dist/fluidContainer.cjs.map +1 -1
  9. package/dist/fluidContainer.d.ts +5 -0
  10. package/dist/fluidContainer.d.ts.map +1 -1
  11. package/dist/index.cjs +4 -1
  12. package/dist/index.cjs.map +1 -1
  13. package/dist/index.d.ts +4 -4
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/rootDataObject.cjs +9 -2
  16. package/dist/rootDataObject.cjs.map +1 -1
  17. package/dist/rootDataObject.d.ts +7 -38
  18. package/dist/rootDataObject.d.ts.map +1 -1
  19. package/dist/serviceAudience.cjs +12 -1
  20. package/dist/serviceAudience.cjs.map +1 -1
  21. package/dist/serviceAudience.d.ts +5 -0
  22. package/dist/serviceAudience.d.ts.map +1 -1
  23. package/dist/types.cjs.map +1 -1
  24. package/dist/types.d.ts +4 -1
  25. package/dist/types.d.ts.map +1 -1
  26. package/lib/fluid-static-alpha.d.ts +580 -0
  27. package/lib/fluid-static-beta.d.ts +580 -0
  28. package/lib/fluid-static-public.d.ts +580 -0
  29. package/lib/fluid-static-untrimmed.d.ts +589 -0
  30. package/lib/fluidContainer.d.ts +5 -0
  31. package/lib/fluidContainer.d.ts.map +1 -1
  32. package/lib/fluidContainer.mjs +4 -0
  33. package/lib/fluidContainer.mjs.map +1 -1
  34. package/lib/index.d.ts +4 -4
  35. package/lib/index.d.ts.map +1 -1
  36. package/lib/index.mjs +3 -3
  37. package/lib/index.mjs.map +1 -1
  38. package/lib/rootDataObject.d.ts +7 -38
  39. package/lib/rootDataObject.d.ts.map +1 -1
  40. package/lib/rootDataObject.mjs +8 -1
  41. package/lib/rootDataObject.mjs.map +1 -1
  42. package/lib/serviceAudience.d.ts +5 -0
  43. package/lib/serviceAudience.d.ts.map +1 -1
  44. package/lib/serviceAudience.mjs +10 -0
  45. package/lib/serviceAudience.mjs.map +1 -1
  46. package/lib/types.d.ts +4 -1
  47. package/lib/types.d.ts.map +1 -1
  48. package/lib/types.mjs.map +1 -1
  49. package/package.json +33 -17
  50. package/src/fluidContainer.ts +10 -0
  51. package/src/index.ts +7 -2
  52. package/src/rootDataObject.ts +12 -1
  53. package/src/serviceAudience.ts +14 -0
  54. package/src/types.ts +5 -1
@@ -12,6 +12,7 @@ import {
12
12
  import { IContainerRuntime } from "@fluidframework/container-runtime-definitions";
13
13
  import { IFluidLoadable } from "@fluidframework/core-interfaces";
14
14
  import { FlushMode } from "@fluidframework/runtime-definitions";
15
+ import { IRuntimeFactory } from "@fluidframework/container-definitions";
15
16
  import {
16
17
  ContainerSchema,
17
18
  DataObjectClass,
@@ -39,12 +40,15 @@ export interface RootDataObjectProps {
39
40
  * The entry-point/root collaborative object of the {@link IFluidContainer | Fluid Container}.
40
41
  * Abstracts the dynamic code required to build a Fluid Container into a static representation for end customers.
41
42
  */
42
- export class RootDataObject
43
+ class RootDataObject
43
44
  extends DataObject<{ InitialState: RootDataObjectProps }>
44
45
  implements IRootDataObject
45
46
  {
46
47
  private readonly initialObjectsDirKey = "initial-objects-key";
47
48
  private readonly _initialObjects: LoadableObjectRecord = {};
49
+ public get IRootDataObject() {
50
+ return this;
51
+ }
48
52
 
49
53
  private get initialObjectsDir() {
50
54
  const dir = this.root.getSubDirectory(this.initialObjectsDirKey);
@@ -139,6 +143,12 @@ export class RootDataObject
139
143
 
140
144
  const rootDataStoreId = "rootDOId";
141
145
 
146
+ export function createDOProviderContainerRuntimeFactory(props: {
147
+ schema: ContainerSchema;
148
+ }): IRuntimeFactory {
149
+ return new DOProviderContainerRuntimeFactory(props.schema);
150
+ }
151
+
142
152
  /**
143
153
  * Container code that provides a single {@link IRootDataObject}.
144
154
  *
@@ -146,6 +156,7 @@ const rootDataStoreId = "rootDOId";
146
156
  *
147
157
  * This data object is dynamically customized (registry and initial objects) based on the schema provided.
148
158
  * to the container runtime factory.
159
+ * @deprecated use {@link createDOProviderContainerRuntimeFactory} instead
149
160
  */
150
161
  export class DOProviderContainerRuntimeFactory extends BaseContainerRuntimeFactory {
151
162
  private readonly rootDataObjectFactory: DataObjectFactory<
@@ -8,6 +8,19 @@ import { IAudience, IContainer } from "@fluidframework/container-definitions";
8
8
  import { IClient } from "@fluidframework/protocol-definitions";
9
9
  import { IServiceAudience, IServiceAudienceEvents, IMember, Myself } from "./types";
10
10
 
11
+ export function createServiceAudience<M extends IMember = IMember>(props: {
12
+ container: IContainer;
13
+ createServiceMember: (audienceMember: IClient) => M;
14
+ }): IServiceAudience<M> {
15
+ // todo: once ServiceAudience isn't exported, we can remove abstract from it, and just use that here
16
+ const c = class NewServiceAudience extends ServiceAudience<M> {
17
+ protected createServiceMember(audienceMember: IClient) {
18
+ return props.createServiceMember(audienceMember);
19
+ }
20
+ };
21
+ return new c(props.container);
22
+ }
23
+
11
24
  /**
12
25
  * Base class for providing audience information for sessions interacting with {@link IFluidContainer}
13
26
  *
@@ -17,6 +30,7 @@ import { IServiceAudience, IServiceAudienceEvents, IMember, Myself } from "./typ
17
30
  * the user and client details returned in {@link IMember}.
18
31
  *
19
32
  * @typeParam M - A service-specific {@link IMember} implementation.
33
+ * @deprecated use {@link createServiceAudience} and {@link IServiceAudience} instead
20
34
  */
21
35
  export abstract class ServiceAudience<M extends IMember = IMember>
22
36
  extends TypedEventEmitter<IServiceAudienceEvents<M>>
package/src/types.ts CHANGED
@@ -96,11 +96,15 @@ export interface ContainerSchema {
96
96
  dynamicObjectTypes?: LoadableObjectClass<any>[];
97
97
  }
98
98
 
99
+ export interface IProvideRootDataObject {
100
+ readonly IRootDataObject?: IRootDataObject;
101
+ }
102
+
99
103
  /**
100
104
  * Holds the collection of objects that the container was initially created with, as well as provides the ability
101
105
  * to dynamically create further objects during usage.
102
106
  */
103
- export interface IRootDataObject {
107
+ export interface IRootDataObject extends IProvideRootDataObject {
104
108
  /**
105
109
  * Provides a record of the initial objects defined on creation.
106
110
  */