@fluidframework/task-manager 2.0.0-dev-rc.3.0.0.254866 → 2.0.0-dev-rc.5.0.0.263932

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 (49) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/api-report/task-manager.api.md +9 -35
  3. package/dist/index.d.ts +1 -1
  4. package/dist/index.d.ts.map +1 -1
  5. package/dist/index.js +2 -2
  6. package/dist/index.js.map +1 -1
  7. package/dist/interfaces.d.ts +5 -5
  8. package/dist/interfaces.js.map +1 -1
  9. package/{lib/alpha.d.ts → dist/legacy.d.ts} +8 -0
  10. package/dist/packageVersion.d.ts +1 -1
  11. package/dist/packageVersion.js +1 -1
  12. package/dist/packageVersion.js.map +1 -1
  13. package/dist/public.d.ts +3 -0
  14. package/dist/taskManager.d.ts +3 -17
  15. package/dist/taskManager.d.ts.map +1 -1
  16. package/dist/taskManager.js +5 -24
  17. package/dist/taskManager.js.map +1 -1
  18. package/dist/taskManagerFactory.d.ts +11 -1
  19. package/dist/taskManagerFactory.d.ts.map +1 -1
  20. package/dist/taskManagerFactory.js +9 -3
  21. package/dist/taskManagerFactory.js.map +1 -1
  22. package/{dist/alpha.d.ts → internal.d.ts} +2 -0
  23. package/{dist/beta.d.ts → legacy.d.ts} +2 -0
  24. package/lib/index.d.ts +1 -1
  25. package/lib/index.d.ts.map +1 -1
  26. package/lib/index.js +1 -1
  27. package/lib/index.js.map +1 -1
  28. package/lib/interfaces.d.ts +5 -5
  29. package/lib/interfaces.js.map +1 -1
  30. package/lib/{beta.d.ts → legacy.d.ts} +8 -0
  31. package/lib/packageVersion.d.ts +1 -1
  32. package/lib/packageVersion.js +1 -1
  33. package/lib/packageVersion.js.map +1 -1
  34. package/lib/public.d.ts +3 -0
  35. package/lib/taskManager.d.ts +3 -17
  36. package/lib/taskManager.d.ts.map +1 -1
  37. package/lib/taskManager.js +3 -22
  38. package/lib/taskManager.js.map +1 -1
  39. package/lib/taskManagerFactory.d.ts +11 -1
  40. package/lib/taskManagerFactory.d.ts.map +1 -1
  41. package/lib/taskManagerFactory.js +9 -3
  42. package/lib/taskManagerFactory.js.map +1 -1
  43. package/lib/tsdoc-metadata.json +1 -1
  44. package/package.json +43 -25
  45. package/src/index.ts +1 -1
  46. package/src/interfaces.ts +5 -5
  47. package/src/packageVersion.ts +1 -1
  48. package/src/taskManager.ts +4 -26
  49. package/src/taskManagerFactory.ts +17 -4
@@ -1 +1 @@
1
- {"version":3,"file":"taskManagerFactory.js","sourceRoot":"","sources":["../src/taskManagerFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAUH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAS9B,IAAW,IAAI;QACd,OAAO,kBAAkB,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,kBAAkB,CAAC,UAAU,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAChB,OAA+B,EAC/B,EAAU,EACV,QAA0B,EAC1B,UAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3D,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,QAAgC,EAAE,EAAU;QACzD,MAAM,SAAS,GAAG,IAAI,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACjE,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IAClB,CAAC;;AAlCsB,uBAAI,GAAG,gDAAgD,CAAC;AAExD,6BAAU,GAAuB;IACvD,IAAI,EAAE,kBAAkB,CAAC,IAAI;IAC7B,qBAAqB,EAAE,KAAK;IAC5B,cAAc,EAAE,UAAU;CAC1B,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIChannelAttributes,\n\tIChannelFactory,\n\tIChannelServices,\n\tIFluidDataStoreRuntime,\n} from \"@fluidframework/datastore-definitions\";\n\nimport { ITaskManager } from \"./interfaces.js\";\nimport { pkgVersion } from \"./packageVersion.js\";\nimport { TaskManager } from \"./taskManager.js\";\n\n/**\n * The factory that defines the task queue\n */\nexport class TaskManagerFactory implements IChannelFactory {\n\tpublic static readonly Type = \"https://graph.microsoft.com/types/task-manager\";\n\n\tpublic static readonly Attributes: IChannelAttributes = {\n\t\ttype: TaskManagerFactory.Type,\n\t\tsnapshotFormatVersion: \"0.1\",\n\t\tpackageVersion: pkgVersion,\n\t};\n\n\tpublic get type() {\n\t\treturn TaskManagerFactory.Type;\n\t}\n\n\tpublic get attributes() {\n\t\treturn TaskManagerFactory.Attributes;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}\n\t */\n\tpublic async load(\n\t\truntime: IFluidDataStoreRuntime,\n\t\tid: string,\n\t\tservices: IChannelServices,\n\t\tattributes: IChannelAttributes,\n\t): Promise<ITaskManager> {\n\t\tconst taskQueue = new TaskManager(id, runtime, attributes);\n\t\tawait taskQueue.load(services);\n\t\treturn taskQueue;\n\t}\n\n\tpublic create(document: IFluidDataStoreRuntime, id: string): ITaskManager {\n\t\tconst taskQueue = new TaskManager(id, document, this.attributes);\n\t\ttaskQueue.initializeLocal();\n\t\treturn taskQueue;\n\t}\n}\n"]}
1
+ {"version":3,"file":"taskManagerFactory.js","sourceRoot":"","sources":["../src/taskManagerFactory.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAQH,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AAGrF,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;GAEG;AACH,MAAM,OAAO,kBAAkB;IAS9B,IAAW,IAAI;QACd,OAAO,kBAAkB,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,IAAW,UAAU;QACpB,OAAO,kBAAkB,CAAC,UAAU,CAAC;IACtC,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAChB,OAA+B,EAC/B,EAAU,EACV,QAA0B,EAC1B,UAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/B,OAAO,SAAS,CAAC;IAClB,CAAC;IAEM,MAAM,CAAC,QAAgC,EAAE,EAAU;QACzD,MAAM,SAAS,GAAG,IAAI,gBAAgB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACtE,SAAS,CAAC,eAAe,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IAClB,CAAC;;AAlCsB,uBAAI,GAAG,gDAAgD,CAAC;AAExD,6BAAU,GAAuB;IACvD,IAAI,EAAE,kBAAkB,CAAC,IAAI;IAC7B,qBAAqB,EAAE,KAAK;IAC5B,cAAc,EAAE,UAAU;CAC1B,CAAC;AA+BH;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,sBAAsB,CAAC,kBAAkB,CAAC,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport {\n\tIChannelAttributes,\n\tIChannelFactory,\n\tIChannelServices,\n\tIFluidDataStoreRuntime,\n} from \"@fluidframework/datastore-definitions\";\nimport { createSharedObjectKind } from \"@fluidframework/shared-object-base/internal\";\n\nimport { ITaskManager } from \"./interfaces.js\";\nimport { pkgVersion } from \"./packageVersion.js\";\nimport { TaskManagerClass } from \"./taskManager.js\";\n\n/**\n * The factory that defines the task queue\n */\nexport class TaskManagerFactory implements IChannelFactory<ITaskManager> {\n\tpublic static readonly Type = \"https://graph.microsoft.com/types/task-manager\";\n\n\tpublic static readonly Attributes: IChannelAttributes = {\n\t\ttype: TaskManagerFactory.Type,\n\t\tsnapshotFormatVersion: \"0.1\",\n\t\tpackageVersion: pkgVersion,\n\t};\n\n\tpublic get type() {\n\t\treturn TaskManagerFactory.Type;\n\t}\n\n\tpublic get attributes() {\n\t\treturn TaskManagerFactory.Attributes;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/datastore-definitions#IChannelFactory.load}\n\t */\n\tpublic async load(\n\t\truntime: IFluidDataStoreRuntime,\n\t\tid: string,\n\t\tservices: IChannelServices,\n\t\tattributes: IChannelAttributes,\n\t): Promise<ITaskManager> {\n\t\tconst taskQueue = new TaskManagerClass(id, runtime, attributes);\n\t\tawait taskQueue.load(services);\n\t\treturn taskQueue;\n\t}\n\n\tpublic create(document: IFluidDataStoreRuntime, id: string): ITaskManager {\n\t\tconst taskQueue = new TaskManagerClass(id, document, this.attributes);\n\t\ttaskQueue.initializeLocal();\n\t\treturn taskQueue;\n\t}\n}\n\n/**\n * {@inheritDoc ITaskManager}\n * @alpha\n */\nexport const TaskManager = createSharedObjectKind(TaskManagerFactory);\n\n/**\n * {@inheritDoc ITaskManager}\n * @alpha\n */\nexport type TaskManager = ITaskManager;\n"]}
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.42.3"
8
+ "packageVersion": "7.43.1"
9
9
  }
10
10
  ]
11
11
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/task-manager",
3
- "version": "2.0.0-dev-rc.3.0.0.254866",
3
+ "version": "2.0.0-dev-rc.5.0.0.263932",
4
4
  "description": "Distributed data structure for queueing exclusive tasks",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -23,6 +23,16 @@
23
23
  "default": "./dist/index.js"
24
24
  }
25
25
  },
26
+ "./legacy": {
27
+ "import": {
28
+ "types": "./lib/legacy.d.ts",
29
+ "default": "./lib/index.js"
30
+ },
31
+ "require": {
32
+ "types": "./dist/legacy.d.ts",
33
+ "default": "./dist/index.js"
34
+ }
35
+ },
26
36
  "./internal": {
27
37
  "import": {
28
38
  "types": "./lib/index.d.ts",
@@ -34,8 +44,8 @@
34
44
  }
35
45
  }
36
46
  },
37
- "main": "dist/index.js",
38
- "types": "./dist/public.d.ts",
47
+ "main": "lib/index.js",
48
+ "types": "lib/public.d.ts",
39
49
  "c8": {
40
50
  "all": true,
41
51
  "cache-dir": "nyc/.cache",
@@ -57,30 +67,30 @@
57
67
  "temp-directory": "nyc/.nyc_output"
58
68
  },
59
69
  "dependencies": {
60
- "@fluid-internal/client-utils": "2.0.0-dev-rc.3.0.0.254866",
61
- "@fluidframework/container-definitions": "2.0.0-dev-rc.3.0.0.254866",
62
- "@fluidframework/container-runtime-definitions": "2.0.0-dev-rc.3.0.0.254866",
63
- "@fluidframework/core-interfaces": "2.0.0-dev-rc.3.0.0.254866",
64
- "@fluidframework/core-utils": "2.0.0-dev-rc.3.0.0.254866",
65
- "@fluidframework/datastore-definitions": "2.0.0-dev-rc.3.0.0.254866",
66
- "@fluidframework/driver-utils": "2.0.0-dev-rc.3.0.0.254866",
70
+ "@fluid-internal/client-utils": "2.0.0-dev-rc.5.0.0.263932",
71
+ "@fluidframework/container-definitions": "2.0.0-dev-rc.5.0.0.263932",
72
+ "@fluidframework/container-runtime-definitions": "2.0.0-dev-rc.5.0.0.263932",
73
+ "@fluidframework/core-interfaces": "2.0.0-dev-rc.5.0.0.263932",
74
+ "@fluidframework/core-utils": "2.0.0-dev-rc.5.0.0.263932",
75
+ "@fluidframework/datastore-definitions": "2.0.0-dev-rc.5.0.0.263932",
76
+ "@fluidframework/driver-utils": "2.0.0-dev-rc.5.0.0.263932",
67
77
  "@fluidframework/protocol-definitions": "^3.2.0",
68
- "@fluidframework/runtime-definitions": "2.0.0-dev-rc.3.0.0.254866",
69
- "@fluidframework/shared-object-base": "2.0.0-dev-rc.3.0.0.254866"
78
+ "@fluidframework/runtime-definitions": "2.0.0-dev-rc.5.0.0.263932",
79
+ "@fluidframework/shared-object-base": "2.0.0-dev-rc.5.0.0.263932"
70
80
  },
71
81
  "devDependencies": {
72
82
  "@arethetypeswrong/cli": "^0.15.2",
73
83
  "@biomejs/biome": "^1.6.2",
74
- "@fluid-internal/mocha-test-setup": "2.0.0-dev-rc.3.0.0.254866",
75
- "@fluid-private/stochastic-test-utils": "2.0.0-dev-rc.3.0.0.254866",
76
- "@fluid-private/test-dds-utils": "2.0.0-dev-rc.3.0.0.254866",
77
- "@fluid-tools/build-cli": "^0.35.0",
84
+ "@fluid-internal/mocha-test-setup": "2.0.0-dev-rc.5.0.0.263932",
85
+ "@fluid-private/stochastic-test-utils": "2.0.0-dev-rc.5.0.0.263932",
86
+ "@fluid-private/test-dds-utils": "2.0.0-dev-rc.5.0.0.263932",
87
+ "@fluid-tools/build-cli": "^0.38.0",
78
88
  "@fluidframework/build-common": "^2.0.3",
79
- "@fluidframework/build-tools": "^0.35.0",
89
+ "@fluidframework/build-tools": "^0.38.0",
80
90
  "@fluidframework/eslint-config-fluid": "^5.1.0",
81
- "@fluidframework/task-manager-previous": "npm:@fluidframework/task-manager@2.0.0-internal.8.0.0",
82
- "@fluidframework/test-runtime-utils": "2.0.0-dev-rc.3.0.0.254866",
83
- "@microsoft/api-extractor": "^7.42.3",
91
+ "@fluidframework/task-manager-previous": "npm:@fluidframework/task-manager@2.0.0-rc.3.0.0",
92
+ "@fluidframework/test-runtime-utils": "2.0.0-dev-rc.5.0.0.263932",
93
+ "@microsoft/api-extractor": "^7.43.1",
84
94
  "@types/mocha": "^9.1.1",
85
95
  "@types/node": "^18.19.0",
86
96
  "c8": "^8.0.1",
@@ -100,14 +110,22 @@
100
110
  "typeValidation": {
101
111
  "broken": {
102
112
  "ClassDeclaration_TaskManager": {
113
+ "forwardCompat": false
114
+ },
115
+ "InterfaceDeclaration_ITaskManager": {
116
+ "forwardCompat": false,
117
+ "backCompat": false
118
+ },
119
+ "RemovedClassDeclaration_TaskManager": {
120
+ "forwardCompat": false,
103
121
  "backCompat": false
104
122
  }
105
123
  }
106
124
  },
107
125
  "scripts": {
108
126
  "api": "fluid-build . --task api",
109
- "api-extractor:commonjs": "flub generate entrypoints --outDir ./dist",
110
- "api-extractor:esnext": "flub generate entrypoints --outDir ./lib",
127
+ "api-extractor:commonjs": "flub generate entrypoints --outFileAlpha legacy --outDir ./dist",
128
+ "api-extractor:esnext": "flub generate entrypoints --outFileAlpha legacy --outDir ./lib --node10TypeCompat",
111
129
  "build": "fluid-build . --task build",
112
130
  "build:commonjs": "fluid-build . --task commonjs",
113
131
  "build:compile": "fluid-build . --task compile",
@@ -117,11 +135,11 @@
117
135
  "build:test": "npm run build:test:esm && npm run build:test:cjs",
118
136
  "build:test:cjs": "fluid-tsc commonjs --project ./src/test/tsconfig.cjs.json",
119
137
  "build:test:esm": "tsc --project ./src/test/tsconfig.json",
120
- "check:are-the-types-wrong": "attw --pack . --entrypoints .",
138
+ "check:are-the-types-wrong": "attw --pack .",
121
139
  "check:prettier": "prettier --check . --cache --ignore-path ../../../.prettierignore",
122
140
  "check:release-tags": "api-extractor run --local --config ./api-extractor-lint.json",
123
141
  "ci:build:docs": "api-extractor run",
124
- "clean": "rimraf --glob dist lib \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
142
+ "clean": "rimraf --glob dist lib \"*.d.ts\" \"**/*.tsbuildinfo\" \"**/*.build.log\" _api-extractor-temp nyc",
125
143
  "eslint": "eslint --format stylish src",
126
144
  "eslint:fix": "eslint --format stylish src --fix --fix-type problem,suggestion,layout",
127
145
  "format": "fluid-build --task format .",
@@ -135,7 +153,7 @@
135
153
  "test:mocha:esm": "mocha --recursive \"lib/test/**/*.spec.*js\" --exit",
136
154
  "test:mocha:verbose": "cross-env FLUID_TEST_VERBOSE=1 npm run test:mocha",
137
155
  "tsc": "fluid-tsc commonjs --project ./tsconfig.cjs.json && copyfiles -f ../../../common/build/build-common/src/cjs/package.json ./dist",
138
- "typetests:gen": "fluid-type-test-generator",
156
+ "typetests:gen": "flub generate typetests --dir . -v --publicFallback",
139
157
  "typetests:prepare": "flub typetests --dir . --reset --previous --normalize"
140
158
  }
141
159
  }
package/src/index.ts CHANGED
@@ -11,4 +11,4 @@
11
11
  */
12
12
 
13
13
  export { ITaskManager, ITaskManagerEvents, TaskEventListener } from "./interfaces.js";
14
- export { TaskManager } from "./taskManager.js";
14
+ export { TaskManager } from "./taskManagerFactory.js";
package/src/interfaces.ts CHANGED
@@ -9,13 +9,13 @@ import { ISharedObject, ISharedObjectEvents } from "@fluidframework/shared-objec
9
9
  * Describes the event listener format for {@link ITaskManagerEvents} events.
10
10
  *
11
11
  * @param taskId - The unique identifier of the related task.
12
- * @internal
12
+ * @alpha
13
13
  */
14
14
  export type TaskEventListener = (taskId: string) => void;
15
15
 
16
16
  /**
17
- * Events emitted by {@link TaskManager}.
18
- * @internal
17
+ * Events emitted by {@link ITaskManager}.
18
+ * @alpha
19
19
  */
20
20
  export interface ITaskManagerEvents extends ISharedObjectEvents {
21
21
  /**
@@ -49,7 +49,7 @@ export interface ITaskManagerEvents extends ISharedObjectEvents {
49
49
  *
50
50
  * @example Creation
51
51
  *
52
- * To create a {@link TaskManager}, call the static create method:
52
+ * To create a {@link ITaskManager}, call the static create method:
53
53
  *
54
54
  * ```typescript
55
55
  * const taskManager = TaskManager.create(this.runtime, id);
@@ -133,7 +133,7 @@ export interface ITaskManagerEvents extends ISharedObjectEvents {
133
133
  * when using {@link ITaskManager.subscribeToTask}.
134
134
  *
135
135
  * See {@link ITaskManagerEvents} for more details.
136
- * @internal
136
+ * @alpha
137
137
  */
138
138
  export interface ITaskManager extends ISharedObject<ITaskManagerEvents> {
139
139
  /**
@@ -6,4 +6,4 @@
6
6
  */
7
7
 
8
8
  export const pkgName = "@fluidframework/task-manager";
9
- export const pkgVersion = "2.0.0-dev-rc.3.0.0.254866";
9
+ export const pkgVersion = "2.0.0-dev-rc.5.0.0.263932";
@@ -4,11 +4,10 @@
4
4
  */
5
5
 
6
6
  import { EventEmitter } from "@fluid-internal/client-utils";
7
- import { ReadOnlyInfo } from "@fluidframework/container-definitions";
7
+ import { ReadOnlyInfo } from "@fluidframework/container-definitions/internal";
8
8
  import { assert, unreachableCase } from "@fluidframework/core-utils/internal";
9
9
  import {
10
10
  IChannelAttributes,
11
- IChannelFactory,
12
11
  IChannelStorageService,
13
12
  IFluidDataStoreRuntime,
14
13
  } from "@fluidframework/datastore-definitions";
@@ -19,7 +18,6 @@ import { IFluidSerializer } from "@fluidframework/shared-object-base";
19
18
  import { SharedObject, createSingleBlobSummary } from "@fluidframework/shared-object-base/internal";
20
19
 
21
20
  import { ITaskManager, ITaskManagerEvents } from "./interfaces.js";
22
- import { TaskManagerFactory } from "./taskManagerFactory.js";
23
21
 
24
22
  /**
25
23
  * Description of a task manager operation
@@ -60,29 +58,9 @@ const placeholderClientId = "placeholder";
60
58
  * {@inheritDoc ITaskManager}
61
59
  *
62
60
  * @sealed
63
- * @internal
61
+ * @alpha
64
62
  */
65
- export class TaskManager extends SharedObject<ITaskManagerEvents> implements ITaskManager {
66
- /**
67
- * Create a new TaskManager
68
- *
69
- * @param runtime - data store runtime the new task queue belongs to
70
- * @param id - optional name of the task queue
71
- * @returns newly create task queue (but not attached yet)
72
- */
73
- public static create(runtime: IFluidDataStoreRuntime, id?: string) {
74
- return runtime.createChannel(id, TaskManagerFactory.Type) as TaskManager;
75
- }
76
-
77
- /**
78
- * Get a factory for TaskManager to register with the data store.
79
- *
80
- * @returns a factory that creates and load TaskManager
81
- */
82
- public static getFactory(): IChannelFactory {
83
- return new TaskManagerFactory();
84
- }
85
-
63
+ export class TaskManagerClass extends SharedObject<ITaskManagerEvents> implements ITaskManager {
86
64
  /**
87
65
  * Mapping of taskId to a queue of clientIds that are waiting on the task. Maintains the consensus state of the
88
66
  * queue, even if we know we've submitted an op that should eventually modify the queue.
@@ -127,7 +105,7 @@ export class TaskManager extends SharedObject<ITaskManagerEvents> implements ITa
127
105
  * Returns a ReadOnlyInfo object to determine current read/write permissions.
128
106
  */
129
107
  private get readOnlyInfo(): ReadOnlyInfo {
130
- return this.runtime.deltaManager.readOnlyInfo;
108
+ return this.deltaManager.readOnlyInfo;
131
109
  }
132
110
 
133
111
  /**
@@ -9,15 +9,16 @@ import {
9
9
  IChannelServices,
10
10
  IFluidDataStoreRuntime,
11
11
  } from "@fluidframework/datastore-definitions";
12
+ import { createSharedObjectKind } from "@fluidframework/shared-object-base/internal";
12
13
 
13
14
  import { ITaskManager } from "./interfaces.js";
14
15
  import { pkgVersion } from "./packageVersion.js";
15
- import { TaskManager } from "./taskManager.js";
16
+ import { TaskManagerClass } from "./taskManager.js";
16
17
 
17
18
  /**
18
19
  * The factory that defines the task queue
19
20
  */
20
- export class TaskManagerFactory implements IChannelFactory {
21
+ export class TaskManagerFactory implements IChannelFactory<ITaskManager> {
21
22
  public static readonly Type = "https://graph.microsoft.com/types/task-manager";
22
23
 
23
24
  public static readonly Attributes: IChannelAttributes = {
@@ -43,14 +44,26 @@ export class TaskManagerFactory implements IChannelFactory {
43
44
  services: IChannelServices,
44
45
  attributes: IChannelAttributes,
45
46
  ): Promise<ITaskManager> {
46
- const taskQueue = new TaskManager(id, runtime, attributes);
47
+ const taskQueue = new TaskManagerClass(id, runtime, attributes);
47
48
  await taskQueue.load(services);
48
49
  return taskQueue;
49
50
  }
50
51
 
51
52
  public create(document: IFluidDataStoreRuntime, id: string): ITaskManager {
52
- const taskQueue = new TaskManager(id, document, this.attributes);
53
+ const taskQueue = new TaskManagerClass(id, document, this.attributes);
53
54
  taskQueue.initializeLocal();
54
55
  return taskQueue;
55
56
  }
56
57
  }
58
+
59
+ /**
60
+ * {@inheritDoc ITaskManager}
61
+ * @alpha
62
+ */
63
+ export const TaskManager = createSharedObjectKind(TaskManagerFactory);
64
+
65
+ /**
66
+ * {@inheritDoc ITaskManager}
67
+ * @alpha
68
+ */
69
+ export type TaskManager = ITaskManager;