@fluidframework/devtools 2.10.0 → 2.11.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,26 @@
1
1
  # @fluidframework/devtools
2
2
 
3
+ ## 2.11.0
4
+
5
+ ### Minor Changes
6
+
7
+ - API clarifications for devtools packages ([#23165](https://github.com/microsoft/FluidFramework/pull/23165)) [cea34d10d0](https://github.com/microsoft/FluidFramework/commit/cea34d10d0f816335ab1b88b190940046ae7b696)
8
+
9
+ APIs that were never intended for direct consumer use have been marked as `@system`.
10
+ These are:
11
+
12
+ - HasContainerKey
13
+
14
+ APIs that were not intended to be extended by consumers have been marked as `@sealed`.
15
+ These are:
16
+
17
+ - ContainerDevtoolsProps
18
+ - DevtoolsProps
19
+ - HasContainerKey
20
+ - IDevtools
21
+
22
+ Additionally, interface properties have been marked as `readonly`.
23
+
3
24
  ## 2.10.0
4
25
 
5
26
  Dependency updates only.
@@ -1,4 +1,5 @@
1
1
  {
2
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.no-legacy.json"
3
+ "extends": "../../../../common/build/build-common/api-extractor-base.esm.no-legacy.json",
4
+ "bundledPackages": ["@fluidframework/devtools-core"]
4
5
  }
@@ -4,30 +4,37 @@
4
4
 
5
5
  ```ts
6
6
 
7
- // @beta
7
+ // @beta @sealed
8
8
  export interface ContainerDevtoolsProps extends HasContainerKey {
9
- container: IFluidContainer;
9
+ readonly container: IFluidContainer;
10
10
  }
11
11
 
12
- export { ContainerKey }
13
-
14
- export { createDevtoolsLogger }
12
+ // @beta
13
+ export type ContainerKey = string;
15
14
 
16
15
  // @beta
16
+ export function createDevtoolsLogger(baseLogger?: ITelemetryBaseLogger): IDevtoolsLogger;
17
+
18
+ // @beta @sealed
17
19
  export interface DevtoolsProps {
18
- initialContainers?: ContainerDevtoolsProps[];
19
- logger?: IDevtoolsLogger;
20
+ readonly initialContainers?: ContainerDevtoolsProps[];
21
+ readonly logger?: IDevtoolsLogger;
20
22
  }
21
23
 
22
- export { HasContainerKey }
24
+ // @beta @sealed
25
+ export interface HasContainerKey {
26
+ readonly containerKey: ContainerKey;
27
+ }
23
28
 
24
- // @beta
29
+ // @beta @sealed
25
30
  export interface IDevtools extends IDisposable {
26
31
  closeContainerDevtools(id: string): void;
27
32
  registerContainerDevtools(props: ContainerDevtoolsProps): void;
28
33
  }
29
34
 
30
- export { IDevtoolsLogger }
35
+ // @beta @sealed
36
+ export interface IDevtoolsLogger extends ITelemetryBaseLogger {
37
+ }
31
38
 
32
39
  // @beta
33
40
  export function initializeDevtools(props: DevtoolsProps): IDevtools;
@@ -4,30 +4,37 @@
4
4
 
5
5
  ```ts
6
6
 
7
- // @beta
7
+ // @beta @sealed
8
8
  export interface ContainerDevtoolsProps extends HasContainerKey {
9
- container: IFluidContainer;
9
+ readonly container: IFluidContainer;
10
10
  }
11
11
 
12
- export { ContainerKey }
13
-
14
- export { createDevtoolsLogger }
12
+ // @beta
13
+ export type ContainerKey = string;
15
14
 
16
15
  // @beta
16
+ export function createDevtoolsLogger(baseLogger?: ITelemetryBaseLogger): IDevtoolsLogger;
17
+
18
+ // @beta @sealed
17
19
  export interface DevtoolsProps {
18
- initialContainers?: ContainerDevtoolsProps[];
19
- logger?: IDevtoolsLogger;
20
+ readonly initialContainers?: ContainerDevtoolsProps[];
21
+ readonly logger?: IDevtoolsLogger;
20
22
  }
21
23
 
22
- export { HasContainerKey }
24
+ // @beta @sealed
25
+ export interface HasContainerKey {
26
+ readonly containerKey: ContainerKey;
27
+ }
23
28
 
24
- // @beta
29
+ // @beta @sealed
25
30
  export interface IDevtools extends IDisposable {
26
31
  closeContainerDevtools(id: string): void;
27
32
  registerContainerDevtools(props: ContainerDevtoolsProps): void;
28
33
  }
29
34
 
30
- export { IDevtoolsLogger }
35
+ // @beta @sealed
36
+ export interface IDevtoolsLogger extends ITelemetryBaseLogger {
37
+ }
31
38
 
32
39
  // @beta
33
40
  export function initializeDevtools(props: DevtoolsProps): IDevtools;
@@ -4,12 +4,4 @@
4
4
 
5
5
  ```ts
6
6
 
7
- export { ContainerKey }
8
-
9
- export { createDevtoolsLogger }
10
-
11
- export { HasContainerKey }
12
-
13
- export { IDevtoolsLogger }
14
-
15
7
  ```
package/dist/alpha.d.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  */
10
10
 
11
11
  /**
12
- * Primary entry-point to the Fluid Devtools.
12
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
13
+ * and interaction with Fluid data.
13
14
  *
14
15
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
15
16
  * {@link initializeDevtools}.
@@ -17,9 +18,11 @@
17
18
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
18
19
  * earlier, call {@link IDevtools.dispose}.
19
20
  *
20
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
21
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
21
22
  * provide it during Devtools initialization.
22
23
  *
24
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
25
+ *
23
26
  * @packageDocumentation
24
27
  */
25
28
 
package/dist/beta.d.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  */
10
10
 
11
11
  /**
12
- * Primary entry-point to the Fluid Devtools.
12
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
13
+ * and interaction with Fluid data.
13
14
  *
14
15
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
15
16
  * {@link initializeDevtools}.
@@ -17,9 +18,11 @@
17
18
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
18
19
  * earlier, call {@link IDevtools.dispose}.
19
20
  *
20
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
21
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
21
22
  * provide it during Devtools initialization.
22
23
  *
24
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
25
+ *
23
26
  * @packageDocumentation
24
27
  */
25
28
 
package/dist/index.d.ts CHANGED
@@ -3,7 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  /**
6
- * Primary entry-point to the Fluid Devtools.
6
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
7
+ * and interaction with Fluid data.
7
8
  *
8
9
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
9
10
  * {@link initializeDevtools}.
@@ -11,9 +12,11 @@
11
12
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
12
13
  * earlier, call {@link IDevtools.dispose}.
13
14
  *
14
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
15
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
15
16
  * provide it during Devtools initialization.
16
17
  *
18
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
19
+ *
17
20
  * @packageDocumentation
18
21
  */
19
22
  import type { IDisposable } from "@fluidframework/core-interfaces";
@@ -21,6 +24,8 @@ import { type HasContainerKey, type IDevtoolsLogger } from "@fluidframework/devt
21
24
  import type { IFluidContainer } from "@fluidframework/fluid-static";
22
25
  /**
23
26
  * Properties for configuring {@link IDevtools}.
27
+ *
28
+ * @sealed
24
29
  * @beta
25
30
  */
26
31
  export interface DevtoolsProps {
@@ -34,23 +39,25 @@ export interface DevtoolsProps {
34
39
  * This is provided to the Devtools instance strictly to enable communicating supported / desired functionality with
35
40
  * external listeners.
36
41
  */
37
- logger?: IDevtoolsLogger;
42
+ readonly logger?: IDevtoolsLogger;
38
43
  /**
39
44
  * (optional) List of Containers to initialize the devtools with.
40
45
  *
41
46
  * @remarks Additional Containers can be registered with the Devtools via {@link IDevtools.registerContainerDevtools}.
42
47
  */
43
- initialContainers?: ContainerDevtoolsProps[];
48
+ readonly initialContainers?: ContainerDevtoolsProps[];
44
49
  }
45
50
  /**
46
51
  * Properties for configuring Devtools for an individual {@link @fluidframework/fluid-static#IFluidContainer}.
52
+ *
53
+ * @sealed
47
54
  * @beta
48
55
  */
49
56
  export interface ContainerDevtoolsProps extends HasContainerKey {
50
57
  /**
51
58
  * The Container to register with the Devtools.
52
59
  */
53
- container: IFluidContainer;
60
+ readonly container: IFluidContainer;
54
61
  }
55
62
  /**
56
63
  * Fluid Devtools. A single, global instance is used to generate and communicate stats associated with the general Fluid
@@ -64,6 +71,8 @@ export interface ContainerDevtoolsProps extends HasContainerKey {
64
71
  * The lifetime of the associated singleton is bound by that of the Window (globalThis), and it will be automatically
65
72
  * disposed of on Window unload.
66
73
  * If you wish to dispose of it earlier, you may call its {@link @fluidframework/core-interfaces#IDisposable.dispose} method.
74
+ *
75
+ * @sealed
67
76
  * @beta
68
77
  */
69
78
  export interface IDevtools extends IDisposable {
@@ -85,6 +94,7 @@ export interface IDevtools extends IDisposable {
85
94
  * Initializes the Devtools singleton and returns a handle to it.
86
95
  *
87
96
  * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}
97
+ *
88
98
  * @beta
89
99
  */
90
100
  export declare function initializeDevtools(props: DevtoolsProps): IDevtools;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAEN,KAAK,eAAe,EAEpB,KAAK,eAAe,EAEpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAG7C;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC9D;;OAEG;IACH,SAAS,EAAE,eAAe,CAAC;CAG3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC7C;;;;;;;OAOG;IACH,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAwCD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAUlE;AA2BD,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,oBAAoB,EACpB,KAAK,eAAe,GACpB,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAEN,KAAK,eAAe,EAEpB,KAAK,eAAe,EAEpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAElC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAGtD;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC9D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CAGpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC7C;;;;;;;OAOG;IACH,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAwCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAUlE;AA2BD,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,oBAAoB,EACpB,KAAK,eAAe,GACpB,MAAM,wCAAwC,CAAC"}
package/dist/index.js CHANGED
@@ -45,6 +45,7 @@ class Devtools {
45
45
  * Initializes the Devtools singleton and returns a handle to it.
46
46
  *
47
47
  * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}
48
+ *
48
49
  * @beta
49
50
  */
50
51
  function initializeDevtools(props) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAkBH,qEAMgD;AAEhD,oEAAiF;AAyEjF,MAAM,QAAQ;IACb;IACC;;OAEG;IACc,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IACvC,CAAC;IAEJ;;OAEG;IACI,yBAAyB,CAAC,KAA6B;QAC7D,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,EAAU;QACvC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACD;AAED;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,KAAoB;IACtD,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,uBAAuB,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpF,MAAM,YAAY,GAAG,IAAA,6BAAsB,EAAC;QAC3C,MAAM;QACN,iBAAiB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IACH,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAVD,gDAUC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACzB,cAAsC;IAEtC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC;IACnD,IAAI,CAAC,IAAA,mCAAwB,EAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CAClB,qGAAqG,CACrG,CAAC;IACH,CAAC;IAED,OAAO;QACN,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,YAAY;QACZ,aAAa,EAAE,SAAS,CAAC,cAAgD;KACzE,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,uEAAuE;AACvE,gEAAgE;AAChE,4EAA4E;AAC5E,mEAKgD;AAF/C,gHAAA,oBAAoB,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Primary entry-point to the Fluid Devtools.\n *\n * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call\n * {@link initializeDevtools}.\n *\n * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them\n * earlier, call {@link IDevtools.dispose}.\n *\n * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and\n * provide it during Devtools initialization.\n *\n * @packageDocumentation\n */\n\nimport type { IDisposable, IFluidLoadable } from \"@fluidframework/core-interfaces\";\nimport {\n\ttype ContainerDevtoolsProps as ContainerDevtoolsPropsBase,\n\ttype HasContainerKey,\n\ttype IFluidDevtools as IDevtoolsBase,\n\ttype IDevtoolsLogger,\n\tinitializeDevtools as initializeDevtoolsBase,\n} from \"@fluidframework/devtools-core/internal\";\nimport type { IFluidContainer } from \"@fluidframework/fluid-static\";\nimport { isInternalFluidContainer } from \"@fluidframework/fluid-static/internal\";\n\n/**\n * Properties for configuring {@link IDevtools}.\n * @beta\n */\nexport interface DevtoolsProps {\n\t/**\n\t * (optional) telemetry logger associated with the Fluid runtime.\n\t *\n\t * @remarks\n\t *\n\t * Note: the Devtools do not register this logger with the Fluid runtime; that must be done separately.\n\t *\n\t * This is provided to the Devtools instance strictly to enable communicating supported / desired functionality with\n\t * external listeners.\n\t */\n\tlogger?: IDevtoolsLogger;\n\n\t/**\n\t * (optional) List of Containers to initialize the devtools with.\n\t *\n\t * @remarks Additional Containers can be registered with the Devtools via {@link IDevtools.registerContainerDevtools}.\n\t */\n\tinitialContainers?: ContainerDevtoolsProps[];\n\n\t// TODO: Add ability for customers to specify custom data visualizer overrides\n}\n\n/**\n * Properties for configuring Devtools for an individual {@link @fluidframework/fluid-static#IFluidContainer}.\n * @beta\n */\nexport interface ContainerDevtoolsProps extends HasContainerKey {\n\t/**\n\t * The Container to register with the Devtools.\n\t */\n\tcontainer: IFluidContainer;\n\n\t// TODO: Add ability for customers to specify custom data visualizer overrides\n}\n\n/**\n * Fluid Devtools. A single, global instance is used to generate and communicate stats associated with the general Fluid\n * runtime (i.e., it is not associated with any single Framework entity).\n *\n * @remarks\n *\n * Supports registering {@link @fluidframework/fluid-static#IFluidContainer}s for Container-level stats\n * (via {@link IDevtools.registerContainerDevtools}).\n *\n * The lifetime of the associated singleton is bound by that of the Window (globalThis), and it will be automatically\n * disposed of on Window unload.\n * If you wish to dispose of it earlier, you may call its {@link @fluidframework/core-interfaces#IDisposable.dispose} method.\n * @beta\n */\nexport interface IDevtools extends IDisposable {\n\t/**\n\t * Initializes a {@link IDevtools} from the provided properties and stores it for future reference.\n\t *\n\t * @throws\n\t *\n\t * Will throw if devtools have already been registered for the specified\n\t * {@link @fluidframework/devtools-core#HasContainerKey.containerKey}.\n\t */\n\tregisterContainerDevtools(props: ContainerDevtoolsProps): void;\n\n\t/**\n\t * Closes registered Container-level Devtools associated with the provided ID.\n\t */\n\tcloseContainerDevtools(id: string): void;\n}\n\nclass Devtools implements IDevtools {\n\tpublic constructor(\n\t\t/**\n\t\t * Handle to the underlying Devtools instance (singleton).\n\t\t */\n\t\tprivate readonly _devtools: IDevtoolsBase,\n\t) {}\n\n\t/**\n\t * {@inheritDoc IDevtools.registerContainerDevtools}\n\t */\n\tpublic registerContainerDevtools(props: ContainerDevtoolsProps): void {\n\t\tconst mappedProps = mapContainerProps(props);\n\t\tthis._devtools.registerContainerDevtools(mappedProps);\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.closeContainerDevtools}\n\t */\n\tpublic closeContainerDevtools(id: string): void {\n\t\tthis._devtools.closeContainerDevtools(id);\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.disposed}\n\t */\n\tpublic get disposed(): boolean {\n\t\treturn this._devtools.disposed;\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.dispose}\n\t */\n\tpublic dispose(): void {\n\t\tthis._devtools.dispose();\n\t}\n}\n\n/**\n * Initializes the Devtools singleton and returns a handle to it.\n *\n * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}\n * @beta\n */\nexport function initializeDevtools(props: DevtoolsProps): IDevtools {\n\tconst { initialContainers, logger } = props;\n\n\tconst mappedInitialContainers = initialContainers?.map((p) => mapContainerProps(p));\n\n\tconst baseDevtools = initializeDevtoolsBase({\n\t\tlogger,\n\t\tinitialContainers: mappedInitialContainers,\n\t});\n\treturn new Devtools(baseDevtools);\n}\n\n/**\n * Maps the input props to lower-level {@link @fluidframework/devtools-core#ContainerDevtoolsPropsBase},\n * to be forwarded on to the base library.\n */\nfunction mapContainerProps(\n\tcontainerProps: ContainerDevtoolsProps,\n): ContainerDevtoolsPropsBase {\n\tconst { container, containerKey } = containerProps;\n\tif (!isInternalFluidContainer(container)) {\n\t\tthrow new TypeError(\n\t\t\t\"IFluidContainer was not recognized. Only Containers generated by the Fluid Framework are supported.\",\n\t\t);\n\t}\n\n\treturn {\n\t\tcontainer: container.container,\n\t\tcontainerKey,\n\t\tcontainerData: container.initialObjects as Record<string, IFluidLoadable>,\n\t};\n}\n\n// Convenience re-exports. Need to cover the things we export form this package,\n// so consumers don't need to import from this one *and* devtools-core.\n// DevtoolsLogger is necessary for consumers to set up Devtools.\n// ContainerDevtoolsProps extends HasContainerKey, so it needs ContainerKey.\nexport {\n\ttype ContainerKey,\n\ttype HasContainerKey,\n\tcreateDevtoolsLogger,\n\ttype IDevtoolsLogger,\n} from \"@fluidframework/devtools-core/internal\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAqBH,qEAMgD;AAEhD,oEAAiF;AA+EjF,MAAM,QAAQ;IACb;IACC;;OAEG;IACc,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IACvC,CAAC;IAEJ;;OAEG;IACI,yBAAyB,CAAC,KAA6B;QAC7D,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,EAAU;QACvC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACD;AAED;;;;;;GAMG;AACH,SAAgB,kBAAkB,CAAC,KAAoB;IACtD,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,uBAAuB,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpF,MAAM,YAAY,GAAG,IAAA,6BAAsB,EAAC;QAC3C,MAAM;QACN,iBAAiB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IACH,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAVD,gDAUC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACzB,cAAsC;IAEtC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC;IACnD,IAAI,CAAC,IAAA,mCAAwB,EAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CAClB,qGAAqG,CACrG,CAAC;IACH,CAAC;IAED,OAAO;QACN,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,YAAY;QACZ,aAAa,EAAE,SAAS,CAAC,cAAgD;KACzE,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,uEAAuE;AACvE,gEAAgE;AAChE,4EAA4E;AAC5E,mEAKgD;AAF/C,gHAAA,oBAAoB,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of\n * and interaction with Fluid data.\n *\n * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call\n * {@link initializeDevtools}.\n *\n * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them\n * earlier, call {@link IDevtools.dispose}.\n *\n * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and\n * provide it during Devtools initialization.\n *\n * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.\n *\n * @packageDocumentation\n */\n\nimport type { IDisposable, IFluidLoadable } from \"@fluidframework/core-interfaces\";\nimport {\n\ttype ContainerDevtoolsProps as ContainerDevtoolsPropsBase,\n\ttype HasContainerKey,\n\ttype IFluidDevtools as IDevtoolsBase,\n\ttype IDevtoolsLogger,\n\tinitializeDevtools as initializeDevtoolsBase,\n} from \"@fluidframework/devtools-core/internal\";\nimport type { IFluidContainer } from \"@fluidframework/fluid-static\";\nimport { isInternalFluidContainer } from \"@fluidframework/fluid-static/internal\";\n\n/**\n * Properties for configuring {@link IDevtools}.\n *\n * @sealed\n * @beta\n */\nexport interface DevtoolsProps {\n\t/**\n\t * (optional) telemetry logger associated with the Fluid runtime.\n\t *\n\t * @remarks\n\t *\n\t * Note: the Devtools do not register this logger with the Fluid runtime; that must be done separately.\n\t *\n\t * This is provided to the Devtools instance strictly to enable communicating supported / desired functionality with\n\t * external listeners.\n\t */\n\treadonly logger?: IDevtoolsLogger;\n\n\t/**\n\t * (optional) List of Containers to initialize the devtools with.\n\t *\n\t * @remarks Additional Containers can be registered with the Devtools via {@link IDevtools.registerContainerDevtools}.\n\t */\n\treadonly initialContainers?: ContainerDevtoolsProps[];\n\n\t// TODO: Add ability for customers to specify custom data visualizer overrides\n}\n\n/**\n * Properties for configuring Devtools for an individual {@link @fluidframework/fluid-static#IFluidContainer}.\n *\n * @sealed\n * @beta\n */\nexport interface ContainerDevtoolsProps extends HasContainerKey {\n\t/**\n\t * The Container to register with the Devtools.\n\t */\n\treadonly container: IFluidContainer;\n\n\t// TODO: Add ability for customers to specify custom data visualizer overrides\n}\n\n/**\n * Fluid Devtools. A single, global instance is used to generate and communicate stats associated with the general Fluid\n * runtime (i.e., it is not associated with any single Framework entity).\n *\n * @remarks\n *\n * Supports registering {@link @fluidframework/fluid-static#IFluidContainer}s for Container-level stats\n * (via {@link IDevtools.registerContainerDevtools}).\n *\n * The lifetime of the associated singleton is bound by that of the Window (globalThis), and it will be automatically\n * disposed of on Window unload.\n * If you wish to dispose of it earlier, you may call its {@link @fluidframework/core-interfaces#IDisposable.dispose} method.\n *\n * @sealed\n * @beta\n */\nexport interface IDevtools extends IDisposable {\n\t/**\n\t * Initializes a {@link IDevtools} from the provided properties and stores it for future reference.\n\t *\n\t * @throws\n\t *\n\t * Will throw if devtools have already been registered for the specified\n\t * {@link @fluidframework/devtools-core#HasContainerKey.containerKey}.\n\t */\n\tregisterContainerDevtools(props: ContainerDevtoolsProps): void;\n\n\t/**\n\t * Closes registered Container-level Devtools associated with the provided ID.\n\t */\n\tcloseContainerDevtools(id: string): void;\n}\n\nclass Devtools implements IDevtools {\n\tpublic constructor(\n\t\t/**\n\t\t * Handle to the underlying Devtools instance (singleton).\n\t\t */\n\t\tprivate readonly _devtools: IDevtoolsBase,\n\t) {}\n\n\t/**\n\t * {@inheritDoc IDevtools.registerContainerDevtools}\n\t */\n\tpublic registerContainerDevtools(props: ContainerDevtoolsProps): void {\n\t\tconst mappedProps = mapContainerProps(props);\n\t\tthis._devtools.registerContainerDevtools(mappedProps);\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.closeContainerDevtools}\n\t */\n\tpublic closeContainerDevtools(id: string): void {\n\t\tthis._devtools.closeContainerDevtools(id);\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.disposed}\n\t */\n\tpublic get disposed(): boolean {\n\t\treturn this._devtools.disposed;\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.dispose}\n\t */\n\tpublic dispose(): void {\n\t\tthis._devtools.dispose();\n\t}\n}\n\n/**\n * Initializes the Devtools singleton and returns a handle to it.\n *\n * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}\n *\n * @beta\n */\nexport function initializeDevtools(props: DevtoolsProps): IDevtools {\n\tconst { initialContainers, logger } = props;\n\n\tconst mappedInitialContainers = initialContainers?.map((p) => mapContainerProps(p));\n\n\tconst baseDevtools = initializeDevtoolsBase({\n\t\tlogger,\n\t\tinitialContainers: mappedInitialContainers,\n\t});\n\treturn new Devtools(baseDevtools);\n}\n\n/**\n * Maps the input props to lower-level {@link @fluidframework/devtools-core#ContainerDevtoolsPropsBase},\n * to be forwarded on to the base library.\n */\nfunction mapContainerProps(\n\tcontainerProps: ContainerDevtoolsProps,\n): ContainerDevtoolsPropsBase {\n\tconst { container, containerKey } = containerProps;\n\tif (!isInternalFluidContainer(container)) {\n\t\tthrow new TypeError(\n\t\t\t\"IFluidContainer was not recognized. Only Containers generated by the Fluid Framework are supported.\",\n\t\t);\n\t}\n\n\treturn {\n\t\tcontainer: container.container,\n\t\tcontainerKey,\n\t\tcontainerData: container.initialObjects as Record<string, IFluidLoadable>,\n\t};\n}\n\n// Convenience re-exports. Need to cover the things we export form this package,\n// so consumers don't need to import from this one *and* devtools-core.\n// DevtoolsLogger is necessary for consumers to set up Devtools.\n// ContainerDevtoolsProps extends HasContainerKey, so it needs ContainerKey.\nexport {\n\ttype ContainerKey,\n\ttype HasContainerKey,\n\tcreateDevtoolsLogger,\n\ttype IDevtoolsLogger,\n} from \"@fluidframework/devtools-core/internal\";\n"]}
package/dist/public.d.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  */
10
10
 
11
11
  /**
12
- * Primary entry-point to the Fluid Devtools.
12
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
13
+ * and interaction with Fluid data.
13
14
  *
14
15
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
15
16
  * {@link initializeDevtools}.
@@ -17,9 +18,11 @@
17
18
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
18
19
  * earlier, call {@link IDevtools.dispose}.
19
20
  *
20
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
21
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
21
22
  * provide it during Devtools initialization.
22
23
  *
24
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
25
+ *
23
26
  * @packageDocumentation
24
27
  */export {}
25
28
 
package/lib/alpha.d.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  */
10
10
 
11
11
  /**
12
- * Primary entry-point to the Fluid Devtools.
12
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
13
+ * and interaction with Fluid data.
13
14
  *
14
15
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
15
16
  * {@link initializeDevtools}.
@@ -17,9 +18,11 @@
17
18
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
18
19
  * earlier, call {@link IDevtools.dispose}.
19
20
  *
20
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
21
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
21
22
  * provide it during Devtools initialization.
22
23
  *
24
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
25
+ *
23
26
  * @packageDocumentation
24
27
  */
25
28
 
package/lib/beta.d.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  */
10
10
 
11
11
  /**
12
- * Primary entry-point to the Fluid Devtools.
12
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
13
+ * and interaction with Fluid data.
13
14
  *
14
15
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
15
16
  * {@link initializeDevtools}.
@@ -17,9 +18,11 @@
17
18
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
18
19
  * earlier, call {@link IDevtools.dispose}.
19
20
  *
20
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
21
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
21
22
  * provide it during Devtools initialization.
22
23
  *
24
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
25
+ *
23
26
  * @packageDocumentation
24
27
  */
25
28
 
package/lib/index.d.ts CHANGED
@@ -3,7 +3,8 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  /**
6
- * Primary entry-point to the Fluid Devtools.
6
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
7
+ * and interaction with Fluid data.
7
8
  *
8
9
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
9
10
  * {@link initializeDevtools}.
@@ -11,9 +12,11 @@
11
12
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
12
13
  * earlier, call {@link IDevtools.dispose}.
13
14
  *
14
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
15
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
15
16
  * provide it during Devtools initialization.
16
17
  *
18
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
19
+ *
17
20
  * @packageDocumentation
18
21
  */
19
22
  import type { IDisposable } from "@fluidframework/core-interfaces";
@@ -21,6 +24,8 @@ import { type HasContainerKey, type IDevtoolsLogger } from "@fluidframework/devt
21
24
  import type { IFluidContainer } from "@fluidframework/fluid-static";
22
25
  /**
23
26
  * Properties for configuring {@link IDevtools}.
27
+ *
28
+ * @sealed
24
29
  * @beta
25
30
  */
26
31
  export interface DevtoolsProps {
@@ -34,23 +39,25 @@ export interface DevtoolsProps {
34
39
  * This is provided to the Devtools instance strictly to enable communicating supported / desired functionality with
35
40
  * external listeners.
36
41
  */
37
- logger?: IDevtoolsLogger;
42
+ readonly logger?: IDevtoolsLogger;
38
43
  /**
39
44
  * (optional) List of Containers to initialize the devtools with.
40
45
  *
41
46
  * @remarks Additional Containers can be registered with the Devtools via {@link IDevtools.registerContainerDevtools}.
42
47
  */
43
- initialContainers?: ContainerDevtoolsProps[];
48
+ readonly initialContainers?: ContainerDevtoolsProps[];
44
49
  }
45
50
  /**
46
51
  * Properties for configuring Devtools for an individual {@link @fluidframework/fluid-static#IFluidContainer}.
52
+ *
53
+ * @sealed
47
54
  * @beta
48
55
  */
49
56
  export interface ContainerDevtoolsProps extends HasContainerKey {
50
57
  /**
51
58
  * The Container to register with the Devtools.
52
59
  */
53
- container: IFluidContainer;
60
+ readonly container: IFluidContainer;
54
61
  }
55
62
  /**
56
63
  * Fluid Devtools. A single, global instance is used to generate and communicate stats associated with the general Fluid
@@ -64,6 +71,8 @@ export interface ContainerDevtoolsProps extends HasContainerKey {
64
71
  * The lifetime of the associated singleton is bound by that of the Window (globalThis), and it will be automatically
65
72
  * disposed of on Window unload.
66
73
  * If you wish to dispose of it earlier, you may call its {@link @fluidframework/core-interfaces#IDisposable.dispose} method.
74
+ *
75
+ * @sealed
67
76
  * @beta
68
77
  */
69
78
  export interface IDevtools extends IDisposable {
@@ -85,6 +94,7 @@ export interface IDevtools extends IDisposable {
85
94
  * Initializes the Devtools singleton and returns a handle to it.
86
95
  *
87
96
  * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}
97
+ *
88
98
  * @beta
89
99
  */
90
100
  export declare function initializeDevtools(props: DevtoolsProps): IDevtools;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAEN,KAAK,eAAe,EAEpB,KAAK,eAAe,EAEpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,eAAe,CAAC;IAEzB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAG7C;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC9D;;OAEG;IACH,SAAS,EAAE,eAAe,CAAC;CAG3B;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC7C;;;;;;;OAOG;IACH,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAwCD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAUlE;AA2BD,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,oBAAoB,EACpB,KAAK,eAAe,GACpB,MAAM,wCAAwC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAkB,MAAM,iCAAiC,CAAC;AACnF,OAAO,EAEN,KAAK,eAAe,EAEpB,KAAK,eAAe,EAEpB,MAAM,wCAAwC,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAGpE;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;;;;;;OASG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IAElC;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,sBAAsB,EAAE,CAAC;CAGtD;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAuB,SAAQ,eAAe;IAC9D;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;CAGpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,WAAW,SAAU,SAAQ,WAAW;IAC7C;;;;;;;OAOG;IACH,yBAAyB,CAAC,KAAK,EAAE,sBAAsB,GAAG,IAAI,CAAC;IAE/D;;OAEG;IACH,sBAAsB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAwCD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,SAAS,CAUlE;AA2BD,OAAO,EACN,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,oBAAoB,EACpB,KAAK,eAAe,GACpB,MAAM,wCAAwC,CAAC"}
package/lib/index.js CHANGED
@@ -42,6 +42,7 @@ class Devtools {
42
42
  * Initializes the Devtools singleton and returns a handle to it.
43
43
  *
44
44
  * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}
45
+ *
45
46
  * @beta
46
47
  */
47
48
  export function initializeDevtools(props) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAkBH,OAAO,EAKN,kBAAkB,IAAI,sBAAsB,GAC5C,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAyEjF,MAAM,QAAQ;IACb;IACC;;OAEG;IACc,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IACvC,CAAC;IAEJ;;OAEG;IACI,yBAAyB,CAAC,KAA6B;QAC7D,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,EAAU;QACvC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACD;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACtD,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,uBAAuB,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpF,MAAM,YAAY,GAAG,sBAAsB,CAAC;QAC3C,MAAM;QACN,iBAAiB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IACH,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACzB,cAAsC;IAEtC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC;IACnD,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CAClB,qGAAqG,CACrG,CAAC;IACH,CAAC;IAED,OAAO;QACN,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,YAAY;QACZ,aAAa,EAAE,SAAS,CAAC,cAAgD;KACzE,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,uEAAuE;AACvE,gEAAgE;AAChE,4EAA4E;AAC5E,OAAO,EAGN,oBAAoB,GAEpB,MAAM,wCAAwC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Primary entry-point to the Fluid Devtools.\n *\n * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call\n * {@link initializeDevtools}.\n *\n * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them\n * earlier, call {@link IDevtools.dispose}.\n *\n * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and\n * provide it during Devtools initialization.\n *\n * @packageDocumentation\n */\n\nimport type { IDisposable, IFluidLoadable } from \"@fluidframework/core-interfaces\";\nimport {\n\ttype ContainerDevtoolsProps as ContainerDevtoolsPropsBase,\n\ttype HasContainerKey,\n\ttype IFluidDevtools as IDevtoolsBase,\n\ttype IDevtoolsLogger,\n\tinitializeDevtools as initializeDevtoolsBase,\n} from \"@fluidframework/devtools-core/internal\";\nimport type { IFluidContainer } from \"@fluidframework/fluid-static\";\nimport { isInternalFluidContainer } from \"@fluidframework/fluid-static/internal\";\n\n/**\n * Properties for configuring {@link IDevtools}.\n * @beta\n */\nexport interface DevtoolsProps {\n\t/**\n\t * (optional) telemetry logger associated with the Fluid runtime.\n\t *\n\t * @remarks\n\t *\n\t * Note: the Devtools do not register this logger with the Fluid runtime; that must be done separately.\n\t *\n\t * This is provided to the Devtools instance strictly to enable communicating supported / desired functionality with\n\t * external listeners.\n\t */\n\tlogger?: IDevtoolsLogger;\n\n\t/**\n\t * (optional) List of Containers to initialize the devtools with.\n\t *\n\t * @remarks Additional Containers can be registered with the Devtools via {@link IDevtools.registerContainerDevtools}.\n\t */\n\tinitialContainers?: ContainerDevtoolsProps[];\n\n\t// TODO: Add ability for customers to specify custom data visualizer overrides\n}\n\n/**\n * Properties for configuring Devtools for an individual {@link @fluidframework/fluid-static#IFluidContainer}.\n * @beta\n */\nexport interface ContainerDevtoolsProps extends HasContainerKey {\n\t/**\n\t * The Container to register with the Devtools.\n\t */\n\tcontainer: IFluidContainer;\n\n\t// TODO: Add ability for customers to specify custom data visualizer overrides\n}\n\n/**\n * Fluid Devtools. A single, global instance is used to generate and communicate stats associated with the general Fluid\n * runtime (i.e., it is not associated with any single Framework entity).\n *\n * @remarks\n *\n * Supports registering {@link @fluidframework/fluid-static#IFluidContainer}s for Container-level stats\n * (via {@link IDevtools.registerContainerDevtools}).\n *\n * The lifetime of the associated singleton is bound by that of the Window (globalThis), and it will be automatically\n * disposed of on Window unload.\n * If you wish to dispose of it earlier, you may call its {@link @fluidframework/core-interfaces#IDisposable.dispose} method.\n * @beta\n */\nexport interface IDevtools extends IDisposable {\n\t/**\n\t * Initializes a {@link IDevtools} from the provided properties and stores it for future reference.\n\t *\n\t * @throws\n\t *\n\t * Will throw if devtools have already been registered for the specified\n\t * {@link @fluidframework/devtools-core#HasContainerKey.containerKey}.\n\t */\n\tregisterContainerDevtools(props: ContainerDevtoolsProps): void;\n\n\t/**\n\t * Closes registered Container-level Devtools associated with the provided ID.\n\t */\n\tcloseContainerDevtools(id: string): void;\n}\n\nclass Devtools implements IDevtools {\n\tpublic constructor(\n\t\t/**\n\t\t * Handle to the underlying Devtools instance (singleton).\n\t\t */\n\t\tprivate readonly _devtools: IDevtoolsBase,\n\t) {}\n\n\t/**\n\t * {@inheritDoc IDevtools.registerContainerDevtools}\n\t */\n\tpublic registerContainerDevtools(props: ContainerDevtoolsProps): void {\n\t\tconst mappedProps = mapContainerProps(props);\n\t\tthis._devtools.registerContainerDevtools(mappedProps);\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.closeContainerDevtools}\n\t */\n\tpublic closeContainerDevtools(id: string): void {\n\t\tthis._devtools.closeContainerDevtools(id);\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.disposed}\n\t */\n\tpublic get disposed(): boolean {\n\t\treturn this._devtools.disposed;\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.dispose}\n\t */\n\tpublic dispose(): void {\n\t\tthis._devtools.dispose();\n\t}\n}\n\n/**\n * Initializes the Devtools singleton and returns a handle to it.\n *\n * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}\n * @beta\n */\nexport function initializeDevtools(props: DevtoolsProps): IDevtools {\n\tconst { initialContainers, logger } = props;\n\n\tconst mappedInitialContainers = initialContainers?.map((p) => mapContainerProps(p));\n\n\tconst baseDevtools = initializeDevtoolsBase({\n\t\tlogger,\n\t\tinitialContainers: mappedInitialContainers,\n\t});\n\treturn new Devtools(baseDevtools);\n}\n\n/**\n * Maps the input props to lower-level {@link @fluidframework/devtools-core#ContainerDevtoolsPropsBase},\n * to be forwarded on to the base library.\n */\nfunction mapContainerProps(\n\tcontainerProps: ContainerDevtoolsProps,\n): ContainerDevtoolsPropsBase {\n\tconst { container, containerKey } = containerProps;\n\tif (!isInternalFluidContainer(container)) {\n\t\tthrow new TypeError(\n\t\t\t\"IFluidContainer was not recognized. Only Containers generated by the Fluid Framework are supported.\",\n\t\t);\n\t}\n\n\treturn {\n\t\tcontainer: container.container,\n\t\tcontainerKey,\n\t\tcontainerData: container.initialObjects as Record<string, IFluidLoadable>,\n\t};\n}\n\n// Convenience re-exports. Need to cover the things we export form this package,\n// so consumers don't need to import from this one *and* devtools-core.\n// DevtoolsLogger is necessary for consumers to set up Devtools.\n// ContainerDevtoolsProps extends HasContainerKey, so it needs ContainerKey.\nexport {\n\ttype ContainerKey,\n\ttype HasContainerKey,\n\tcreateDevtoolsLogger,\n\ttype IDevtoolsLogger,\n} from \"@fluidframework/devtools-core/internal\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqBH,OAAO,EAKN,kBAAkB,IAAI,sBAAsB,GAC5C,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AA+EjF,MAAM,QAAQ;IACb;IACC;;OAEG;IACc,SAAwB;QAAxB,cAAS,GAAT,SAAS,CAAe;IACvC,CAAC;IAEJ;;OAEG;IACI,yBAAyB,CAAC,KAA6B;QAC7D,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACI,sBAAsB,CAAC,EAAU;QACvC,IAAI,CAAC,SAAS,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;IAChC,CAAC;IAED;;OAEG;IACI,OAAO;QACb,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;CACD;AAED;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACtD,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAE5C,MAAM,uBAAuB,GAAG,iBAAiB,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEpF,MAAM,YAAY,GAAG,sBAAsB,CAAC;QAC3C,MAAM;QACN,iBAAiB,EAAE,uBAAuB;KAC1C,CAAC,CAAC;IACH,OAAO,IAAI,QAAQ,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,iBAAiB,CACzB,cAAsC;IAEtC,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,GAAG,cAAc,CAAC;IACnD,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,SAAS,CAClB,qGAAqG,CACrG,CAAC;IACH,CAAC;IAED,OAAO;QACN,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,YAAY;QACZ,aAAa,EAAE,SAAS,CAAC,cAAgD;KACzE,CAAC;AACH,CAAC;AAED,gFAAgF;AAChF,uEAAuE;AACvE,gEAAgE;AAChE,4EAA4E;AAC5E,OAAO,EAGN,oBAAoB,GAEpB,MAAM,wCAAwC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of\n * and interaction with Fluid data.\n *\n * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call\n * {@link initializeDevtools}.\n *\n * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them\n * earlier, call {@link IDevtools.dispose}.\n *\n * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and\n * provide it during Devtools initialization.\n *\n * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.\n *\n * @packageDocumentation\n */\n\nimport type { IDisposable, IFluidLoadable } from \"@fluidframework/core-interfaces\";\nimport {\n\ttype ContainerDevtoolsProps as ContainerDevtoolsPropsBase,\n\ttype HasContainerKey,\n\ttype IFluidDevtools as IDevtoolsBase,\n\ttype IDevtoolsLogger,\n\tinitializeDevtools as initializeDevtoolsBase,\n} from \"@fluidframework/devtools-core/internal\";\nimport type { IFluidContainer } from \"@fluidframework/fluid-static\";\nimport { isInternalFluidContainer } from \"@fluidframework/fluid-static/internal\";\n\n/**\n * Properties for configuring {@link IDevtools}.\n *\n * @sealed\n * @beta\n */\nexport interface DevtoolsProps {\n\t/**\n\t * (optional) telemetry logger associated with the Fluid runtime.\n\t *\n\t * @remarks\n\t *\n\t * Note: the Devtools do not register this logger with the Fluid runtime; that must be done separately.\n\t *\n\t * This is provided to the Devtools instance strictly to enable communicating supported / desired functionality with\n\t * external listeners.\n\t */\n\treadonly logger?: IDevtoolsLogger;\n\n\t/**\n\t * (optional) List of Containers to initialize the devtools with.\n\t *\n\t * @remarks Additional Containers can be registered with the Devtools via {@link IDevtools.registerContainerDevtools}.\n\t */\n\treadonly initialContainers?: ContainerDevtoolsProps[];\n\n\t// TODO: Add ability for customers to specify custom data visualizer overrides\n}\n\n/**\n * Properties for configuring Devtools for an individual {@link @fluidframework/fluid-static#IFluidContainer}.\n *\n * @sealed\n * @beta\n */\nexport interface ContainerDevtoolsProps extends HasContainerKey {\n\t/**\n\t * The Container to register with the Devtools.\n\t */\n\treadonly container: IFluidContainer;\n\n\t// TODO: Add ability for customers to specify custom data visualizer overrides\n}\n\n/**\n * Fluid Devtools. A single, global instance is used to generate and communicate stats associated with the general Fluid\n * runtime (i.e., it is not associated with any single Framework entity).\n *\n * @remarks\n *\n * Supports registering {@link @fluidframework/fluid-static#IFluidContainer}s for Container-level stats\n * (via {@link IDevtools.registerContainerDevtools}).\n *\n * The lifetime of the associated singleton is bound by that of the Window (globalThis), and it will be automatically\n * disposed of on Window unload.\n * If you wish to dispose of it earlier, you may call its {@link @fluidframework/core-interfaces#IDisposable.dispose} method.\n *\n * @sealed\n * @beta\n */\nexport interface IDevtools extends IDisposable {\n\t/**\n\t * Initializes a {@link IDevtools} from the provided properties and stores it for future reference.\n\t *\n\t * @throws\n\t *\n\t * Will throw if devtools have already been registered for the specified\n\t * {@link @fluidframework/devtools-core#HasContainerKey.containerKey}.\n\t */\n\tregisterContainerDevtools(props: ContainerDevtoolsProps): void;\n\n\t/**\n\t * Closes registered Container-level Devtools associated with the provided ID.\n\t */\n\tcloseContainerDevtools(id: string): void;\n}\n\nclass Devtools implements IDevtools {\n\tpublic constructor(\n\t\t/**\n\t\t * Handle to the underlying Devtools instance (singleton).\n\t\t */\n\t\tprivate readonly _devtools: IDevtoolsBase,\n\t) {}\n\n\t/**\n\t * {@inheritDoc IDevtools.registerContainerDevtools}\n\t */\n\tpublic registerContainerDevtools(props: ContainerDevtoolsProps): void {\n\t\tconst mappedProps = mapContainerProps(props);\n\t\tthis._devtools.registerContainerDevtools(mappedProps);\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.closeContainerDevtools}\n\t */\n\tpublic closeContainerDevtools(id: string): void {\n\t\tthis._devtools.closeContainerDevtools(id);\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.disposed}\n\t */\n\tpublic get disposed(): boolean {\n\t\treturn this._devtools.disposed;\n\t}\n\n\t/**\n\t * {@inheritDoc IDevtools.dispose}\n\t */\n\tpublic dispose(): void {\n\t\tthis._devtools.dispose();\n\t}\n}\n\n/**\n * Initializes the Devtools singleton and returns a handle to it.\n *\n * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}\n *\n * @beta\n */\nexport function initializeDevtools(props: DevtoolsProps): IDevtools {\n\tconst { initialContainers, logger } = props;\n\n\tconst mappedInitialContainers = initialContainers?.map((p) => mapContainerProps(p));\n\n\tconst baseDevtools = initializeDevtoolsBase({\n\t\tlogger,\n\t\tinitialContainers: mappedInitialContainers,\n\t});\n\treturn new Devtools(baseDevtools);\n}\n\n/**\n * Maps the input props to lower-level {@link @fluidframework/devtools-core#ContainerDevtoolsPropsBase},\n * to be forwarded on to the base library.\n */\nfunction mapContainerProps(\n\tcontainerProps: ContainerDevtoolsProps,\n): ContainerDevtoolsPropsBase {\n\tconst { container, containerKey } = containerProps;\n\tif (!isInternalFluidContainer(container)) {\n\t\tthrow new TypeError(\n\t\t\t\"IFluidContainer was not recognized. Only Containers generated by the Fluid Framework are supported.\",\n\t\t);\n\t}\n\n\treturn {\n\t\tcontainer: container.container,\n\t\tcontainerKey,\n\t\tcontainerData: container.initialObjects as Record<string, IFluidLoadable>,\n\t};\n}\n\n// Convenience re-exports. Need to cover the things we export form this package,\n// so consumers don't need to import from this one *and* devtools-core.\n// DevtoolsLogger is necessary for consumers to set up Devtools.\n// ContainerDevtoolsProps extends HasContainerKey, so it needs ContainerKey.\nexport {\n\ttype ContainerKey,\n\ttype HasContainerKey,\n\tcreateDevtoolsLogger,\n\ttype IDevtoolsLogger,\n} from \"@fluidframework/devtools-core/internal\";\n"]}
package/lib/public.d.ts CHANGED
@@ -9,7 +9,8 @@
9
9
  */
10
10
 
11
11
  /**
12
- * Primary entry-point to the Fluid Devtools.
12
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
13
+ * and interaction with Fluid data.
13
14
  *
14
15
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
15
16
  * {@link initializeDevtools}.
@@ -17,9 +18,11 @@
17
18
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
18
19
  * earlier, call {@link IDevtools.dispose}.
19
20
  *
20
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
21
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
21
22
  * provide it during Devtools initialization.
22
23
  *
24
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
25
+ *
23
26
  * @packageDocumentation
24
27
  */export {}
25
28
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/devtools",
3
- "version": "2.10.0",
3
+ "version": "2.11.0",
4
4
  "description": "Fluid Framework developer tools",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -77,20 +77,20 @@
77
77
  "temp-directory": "nyc/.nyc_output"
78
78
  },
79
79
  "dependencies": {
80
- "@fluidframework/container-definitions": "~2.10.0",
81
- "@fluidframework/core-interfaces": "~2.10.0",
82
- "@fluidframework/devtools-core": "~2.10.0",
83
- "@fluidframework/fluid-static": "~2.10.0"
80
+ "@fluidframework/container-definitions": "~2.11.0",
81
+ "@fluidframework/core-interfaces": "~2.11.0",
82
+ "@fluidframework/devtools-core": "~2.11.0",
83
+ "@fluidframework/fluid-static": "~2.11.0"
84
84
  },
85
85
  "devDependencies": {
86
86
  "@arethetypeswrong/cli": "^0.16.4",
87
87
  "@biomejs/biome": "~1.9.3",
88
- "@fluid-internal/mocha-test-setup": "~2.10.0",
88
+ "@fluid-internal/mocha-test-setup": "~2.11.0",
89
89
  "@fluid-tools/build-cli": "^0.51.0",
90
90
  "@fluidframework/build-common": "^2.0.3",
91
91
  "@fluidframework/build-tools": "^0.51.0",
92
- "@fluidframework/devtools-previous": "npm:@fluidframework/devtools@~2.5.0",
93
- "@fluidframework/eslint-config-fluid": "^5.4.0",
92
+ "@fluidframework/devtools-previous": "npm:@fluidframework/devtools@2.10.0",
93
+ "@fluidframework/eslint-config-fluid": "^5.6.0",
94
94
  "@microsoft/api-extractor": "7.47.8",
95
95
  "@types/chai": "^4.0.0",
96
96
  "@types/mocha": "^9.1.1",
package/src/index.ts CHANGED
@@ -4,7 +4,8 @@
4
4
  */
5
5
 
6
6
  /**
7
- * Primary entry-point to the Fluid Devtools.
7
+ * Used in conjunction with the Fluid Framework Developer Tools browser extension to allow visualization of
8
+ * and interaction with Fluid data.
8
9
  *
9
10
  * To initialize the Devtools alongside your application's {@link @fluidframework/fluid-static#IFluidContainer}, call
10
11
  * {@link initializeDevtools}.
@@ -12,9 +13,11 @@
12
13
  * The Devtools will automatically dispose of themselves upon Window unload, but if you would like to close them
13
14
  * earlier, call {@link IDevtools.dispose}.
14
15
  *
15
- * To enable visualization of Telemetry data, you may create a {@link @fluidframework/devtools-core#DevtoolsLogger} and
16
+ * To enable visualization of Telemetry data, you may create a {@link DevtoolsLogger} and
16
17
  * provide it during Devtools initialization.
17
18
  *
19
+ * For more details and examples, see the {@link https://github.com/microsoft/FluidFramework/tree/main/packages/tools/devtools/devtools | package README}.
20
+ *
18
21
  * @packageDocumentation
19
22
  */
20
23
 
@@ -31,6 +34,8 @@ import { isInternalFluidContainer } from "@fluidframework/fluid-static/internal"
31
34
 
32
35
  /**
33
36
  * Properties for configuring {@link IDevtools}.
37
+ *
38
+ * @sealed
34
39
  * @beta
35
40
  */
36
41
  export interface DevtoolsProps {
@@ -44,27 +49,29 @@ export interface DevtoolsProps {
44
49
  * This is provided to the Devtools instance strictly to enable communicating supported / desired functionality with
45
50
  * external listeners.
46
51
  */
47
- logger?: IDevtoolsLogger;
52
+ readonly logger?: IDevtoolsLogger;
48
53
 
49
54
  /**
50
55
  * (optional) List of Containers to initialize the devtools with.
51
56
  *
52
57
  * @remarks Additional Containers can be registered with the Devtools via {@link IDevtools.registerContainerDevtools}.
53
58
  */
54
- initialContainers?: ContainerDevtoolsProps[];
59
+ readonly initialContainers?: ContainerDevtoolsProps[];
55
60
 
56
61
  // TODO: Add ability for customers to specify custom data visualizer overrides
57
62
  }
58
63
 
59
64
  /**
60
65
  * Properties for configuring Devtools for an individual {@link @fluidframework/fluid-static#IFluidContainer}.
66
+ *
67
+ * @sealed
61
68
  * @beta
62
69
  */
63
70
  export interface ContainerDevtoolsProps extends HasContainerKey {
64
71
  /**
65
72
  * The Container to register with the Devtools.
66
73
  */
67
- container: IFluidContainer;
74
+ readonly container: IFluidContainer;
68
75
 
69
76
  // TODO: Add ability for customers to specify custom data visualizer overrides
70
77
  }
@@ -81,6 +88,8 @@ export interface ContainerDevtoolsProps extends HasContainerKey {
81
88
  * The lifetime of the associated singleton is bound by that of the Window (globalThis), and it will be automatically
82
89
  * disposed of on Window unload.
83
90
  * If you wish to dispose of it earlier, you may call its {@link @fluidframework/core-interfaces#IDisposable.dispose} method.
91
+ *
92
+ * @sealed
84
93
  * @beta
85
94
  */
86
95
  export interface IDevtools extends IDisposable {
@@ -142,6 +151,7 @@ class Devtools implements IDevtools {
142
151
  * Initializes the Devtools singleton and returns a handle to it.
143
152
  *
144
153
  * @see {@link @fluidframework/devtools-core#initializeDevtoolsBase}
154
+ *
145
155
  * @beta
146
156
  */
147
157
  export function initializeDevtools(props: DevtoolsProps): IDevtools {