@fluidframework/aqueduct 2.0.0-rc.1.0.3 → 2.0.0-rc.2.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 (135) hide show
  1. package/dist/aqueduct-alpha.d.ts +116 -48
  2. package/dist/aqueduct-beta.d.ts +10 -0
  3. package/dist/aqueduct-public.d.ts +10 -0
  4. package/dist/aqueduct-untrimmed.d.ts +116 -48
  5. package/dist/container-runtime-factories/baseContainerRuntimeFactory.d.ts +39 -23
  6. package/dist/container-runtime-factories/baseContainerRuntimeFactory.d.ts.map +1 -1
  7. package/dist/container-runtime-factories/baseContainerRuntimeFactory.js +3 -8
  8. package/dist/container-runtime-factories/baseContainerRuntimeFactory.js.map +1 -1
  9. package/dist/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.d.ts +37 -25
  10. package/dist/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -1
  11. package/dist/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.js +4 -13
  12. package/dist/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.js.map +1 -1
  13. package/dist/container-runtime-factories/index.d.ts +2 -2
  14. package/dist/container-runtime-factories/index.d.ts.map +1 -1
  15. package/dist/container-runtime-factories/index.js +4 -4
  16. package/dist/container-runtime-factories/index.js.map +1 -1
  17. package/dist/data-object-factories/dataObjectFactory.d.ts +6 -6
  18. package/dist/data-object-factories/dataObjectFactory.d.ts.map +1 -1
  19. package/dist/data-object-factories/dataObjectFactory.js +4 -4
  20. package/dist/data-object-factories/dataObjectFactory.js.map +1 -1
  21. package/dist/data-object-factories/index.d.ts +2 -2
  22. package/dist/data-object-factories/index.d.ts.map +1 -1
  23. package/dist/data-object-factories/index.js +4 -4
  24. package/dist/data-object-factories/index.js.map +1 -1
  25. package/dist/data-object-factories/pureDataObjectFactory.d.ts +44 -14
  26. package/dist/data-object-factories/pureDataObjectFactory.d.ts.map +1 -1
  27. package/dist/data-object-factories/pureDataObjectFactory.js +56 -14
  28. package/dist/data-object-factories/pureDataObjectFactory.js.map +1 -1
  29. package/dist/data-objects/dataObject.d.ts +3 -3
  30. package/dist/data-objects/dataObject.d.ts.map +1 -1
  31. package/dist/data-objects/dataObject.js +8 -8
  32. package/dist/data-objects/dataObject.js.map +1 -1
  33. package/dist/data-objects/index.d.ts +3 -3
  34. package/dist/data-objects/index.d.ts.map +1 -1
  35. package/dist/data-objects/index.js +4 -4
  36. package/dist/data-objects/index.js.map +1 -1
  37. package/dist/data-objects/pureDataObject.d.ts +12 -6
  38. package/dist/data-objects/pureDataObject.d.ts.map +1 -1
  39. package/dist/data-objects/pureDataObject.js +10 -0
  40. package/dist/data-objects/pureDataObject.js.map +1 -1
  41. package/dist/data-objects/types.d.ts +7 -7
  42. package/dist/data-objects/types.d.ts.map +1 -1
  43. package/dist/data-objects/types.js.map +1 -1
  44. package/dist/index.d.ts +3 -3
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +9 -9
  47. package/dist/index.js.map +1 -1
  48. package/dist/package.json +3 -0
  49. package/dist/tsdoc-metadata.json +1 -1
  50. package/lib/{aqueduct-alpha.d.mts → aqueduct-alpha.d.ts} +131 -48
  51. package/lib/{aqueduct-beta.d.mts → aqueduct-beta.d.ts} +25 -0
  52. package/lib/{aqueduct-public.d.mts → aqueduct-public.d.ts} +25 -0
  53. package/lib/{aqueduct-untrimmed.d.mts → aqueduct-untrimmed.d.ts} +131 -48
  54. package/lib/container-runtime-factories/{baseContainerRuntimeFactory.d.mts → baseContainerRuntimeFactory.d.ts} +40 -24
  55. package/lib/container-runtime-factories/baseContainerRuntimeFactory.d.ts.map +1 -0
  56. package/lib/container-runtime-factories/{baseContainerRuntimeFactory.mjs → baseContainerRuntimeFactory.js} +6 -10
  57. package/lib/container-runtime-factories/baseContainerRuntimeFactory.js.map +1 -0
  58. package/lib/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.d.ts +57 -0
  59. package/lib/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.d.ts.map +1 -0
  60. package/lib/container-runtime-factories/{containerRuntimeFactoryWithDefaultDataStore.mjs → containerRuntimeFactoryWithDefaultDataStore.js} +4 -13
  61. package/lib/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.js.map +1 -0
  62. package/lib/container-runtime-factories/index.d.ts +7 -0
  63. package/lib/container-runtime-factories/index.d.ts.map +1 -0
  64. package/lib/container-runtime-factories/index.js +7 -0
  65. package/lib/container-runtime-factories/index.js.map +1 -0
  66. package/lib/data-object-factories/dataObjectFactory.d.ts +23 -0
  67. package/lib/data-object-factories/dataObjectFactory.d.ts.map +1 -0
  68. package/lib/data-object-factories/{dataObjectFactory.mjs → dataObjectFactory.js} +4 -4
  69. package/lib/data-object-factories/dataObjectFactory.js.map +1 -0
  70. package/lib/data-object-factories/index.d.ts +7 -0
  71. package/lib/data-object-factories/index.d.ts.map +1 -0
  72. package/lib/data-object-factories/index.js +7 -0
  73. package/lib/data-object-factories/index.js.map +1 -0
  74. package/lib/data-object-factories/{pureDataObjectFactory.d.mts → pureDataObjectFactory.d.ts} +45 -15
  75. package/lib/data-object-factories/pureDataObjectFactory.d.ts.map +1 -0
  76. package/lib/data-object-factories/{pureDataObjectFactory.mjs → pureDataObjectFactory.js} +57 -15
  77. package/lib/data-object-factories/pureDataObjectFactory.js.map +1 -0
  78. package/lib/data-objects/{dataObject.d.mts → dataObject.d.ts} +4 -4
  79. package/lib/data-objects/dataObject.d.ts.map +1 -0
  80. package/lib/data-objects/{dataObject.mjs → dataObject.js} +8 -8
  81. package/lib/data-objects/dataObject.js.map +1 -0
  82. package/lib/data-objects/index.d.ts +8 -0
  83. package/lib/data-objects/index.d.ts.map +1 -0
  84. package/lib/data-objects/index.js +7 -0
  85. package/lib/data-objects/index.js.map +1 -0
  86. package/lib/data-objects/{pureDataObject.d.mts → pureDataObject.d.ts} +13 -7
  87. package/lib/data-objects/pureDataObject.d.ts.map +1 -0
  88. package/lib/data-objects/{pureDataObject.mjs → pureDataObject.js} +11 -1
  89. package/lib/data-objects/pureDataObject.js.map +1 -0
  90. package/lib/data-objects/{types.d.mts → types.d.ts} +8 -8
  91. package/lib/data-objects/types.d.ts.map +1 -0
  92. package/lib/data-objects/{types.mjs → types.js} +1 -1
  93. package/lib/data-objects/types.js.map +1 -0
  94. package/lib/index.d.ts +22 -0
  95. package/lib/index.d.ts.map +1 -0
  96. package/lib/index.js +22 -0
  97. package/lib/index.js.map +1 -0
  98. package/lib/test/aqueduct.spec.js +8 -0
  99. package/lib/test/aqueduct.spec.js.map +1 -0
  100. package/lib/test/tsconfig.tsbuildinfo +1 -0
  101. package/lib/test/types/validateAqueductPrevious.generated.js +24 -0
  102. package/lib/test/types/validateAqueductPrevious.generated.js.map +1 -0
  103. package/package.json +54 -54
  104. package/lib/container-runtime-factories/baseContainerRuntimeFactory.d.mts.map +0 -1
  105. package/lib/container-runtime-factories/baseContainerRuntimeFactory.mjs.map +0 -1
  106. package/lib/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.d.mts +0 -45
  107. package/lib/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.d.mts.map +0 -1
  108. package/lib/container-runtime-factories/containerRuntimeFactoryWithDefaultDataStore.mjs.map +0 -1
  109. package/lib/container-runtime-factories/index.d.mts +0 -7
  110. package/lib/container-runtime-factories/index.d.mts.map +0 -1
  111. package/lib/container-runtime-factories/index.mjs +0 -7
  112. package/lib/container-runtime-factories/index.mjs.map +0 -1
  113. package/lib/data-object-factories/dataObjectFactory.d.mts +0 -23
  114. package/lib/data-object-factories/dataObjectFactory.d.mts.map +0 -1
  115. package/lib/data-object-factories/dataObjectFactory.mjs.map +0 -1
  116. package/lib/data-object-factories/index.d.mts +0 -7
  117. package/lib/data-object-factories/index.d.mts.map +0 -1
  118. package/lib/data-object-factories/index.mjs +0 -7
  119. package/lib/data-object-factories/index.mjs.map +0 -1
  120. package/lib/data-object-factories/pureDataObjectFactory.d.mts.map +0 -1
  121. package/lib/data-object-factories/pureDataObjectFactory.mjs.map +0 -1
  122. package/lib/data-objects/dataObject.d.mts.map +0 -1
  123. package/lib/data-objects/dataObject.mjs.map +0 -1
  124. package/lib/data-objects/index.d.mts +0 -8
  125. package/lib/data-objects/index.d.mts.map +0 -1
  126. package/lib/data-objects/index.mjs +0 -7
  127. package/lib/data-objects/index.mjs.map +0 -1
  128. package/lib/data-objects/pureDataObject.d.mts.map +0 -1
  129. package/lib/data-objects/pureDataObject.mjs.map +0 -1
  130. package/lib/data-objects/types.d.mts.map +0 -1
  131. package/lib/data-objects/types.mjs.map +0 -1
  132. package/lib/index.d.mts +0 -8
  133. package/lib/index.d.mts.map +0 -1
  134. package/lib/index.mjs +0 -8
  135. package/lib/index.mjs.map +0 -1
@@ -2,7 +2,7 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- export { DataObject } from "./dataObject";
6
- export { PureDataObject } from "./pureDataObject";
7
- export { DataObjectTypes, IDataObjectProps } from "./types";
5
+ export { DataObject } from "./dataObject.js";
6
+ export { PureDataObject } from "./pureDataObject.js";
7
+ export type { DataObjectTypes, IDataObjectProps } from "./types.js";
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-objects/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-objects/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}
@@ -5,8 +5,8 @@
5
5
  */
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.PureDataObject = exports.DataObject = void 0;
8
- var dataObject_1 = require("./dataObject");
9
- Object.defineProperty(exports, "DataObject", { enumerable: true, get: function () { return dataObject_1.DataObject; } });
10
- var pureDataObject_1 = require("./pureDataObject");
11
- Object.defineProperty(exports, "PureDataObject", { enumerable: true, get: function () { return pureDataObject_1.PureDataObject; } });
8
+ var dataObject_js_1 = require("./dataObject.js");
9
+ Object.defineProperty(exports, "DataObject", { enumerable: true, get: function () { return dataObject_js_1.DataObject; } });
10
+ var pureDataObject_js_1 = require("./pureDataObject.js");
11
+ Object.defineProperty(exports, "PureDataObject", { enumerable: true, get: function () { return pureDataObject_js_1.PureDataObject; } });
12
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-objects/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,mDAAkD;AAAzC,gHAAA,cAAc,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { DataObject } from \"./dataObject\";\nexport { PureDataObject } from \"./pureDataObject\";\nexport { DataObjectTypes, IDataObjectProps } from \"./types\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-objects/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAA6C;AAApC,2GAAA,UAAU,OAAA;AACnB,yDAAqD;AAA5C,mHAAA,cAAc,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport { DataObject } from \"./dataObject.js\";\nexport { PureDataObject } from \"./pureDataObject.js\";\nexport type { DataObjectTypes, IDataObjectProps } from \"./types.js\";\n"]}
@@ -3,11 +3,11 @@
3
3
  * Licensed under the MIT License.
4
4
  */
5
5
  import { TypedEventEmitter } from "@fluid-internal/client-utils";
6
- import { IEvent, IFluidHandle, IFluidLoadable, IProvideFluidHandle, IRequest, IResponse } from "@fluidframework/core-interfaces";
7
- import { IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
8
- import { IFluidDataStoreContext } from "@fluidframework/runtime-definitions";
9
- import { AsyncFluidObjectProvider } from "@fluidframework/synthesize";
10
- import { DataObjectTypes, IDataObjectProps } from "./types";
6
+ import { type IEvent, type IFluidHandle, type IFluidLoadable, type IProvideFluidHandle, type IRequest, type IResponse } from "@fluidframework/core-interfaces";
7
+ import { type IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
8
+ import { type IFluidDataStoreContext } from "@fluidframework/runtime-definitions";
9
+ import { type AsyncFluidObjectProvider } from "@fluidframework/synthesize";
10
+ import { type DataObjectTypes, type IDataObjectProps } from "./types.js";
11
11
  /**
12
12
  * This is a bare-bones base class that does basic setup and enables for factory on an initialize call.
13
13
  * You probably don't want to inherit from this data store directly unless
@@ -36,13 +36,19 @@ export declare abstract class PureDataObject<I extends DataObjectTypes = DataObj
36
36
  protected initProps?: I["InitialState"];
37
37
  protected initializeP: Promise<void> | undefined;
38
38
  get id(): string;
39
+ /**
40
+ * {@inheritDoc @fluidframework/core-interfaces#IProvideFluidLoadable.IFluidLoadable}
41
+ */
39
42
  get IFluidLoadable(): this;
43
+ /**
44
+ * {@inheritDoc @fluidframework/core-interfaces#IProvideFluidHandle.IFluidHandle}
45
+ */
40
46
  get IFluidHandle(): IFluidHandle<this>;
41
47
  /**
42
48
  * Handle to a data store
43
49
  */
44
50
  get handle(): IFluidHandle<this>;
45
- static getDataObject(runtime: IFluidDataStoreRuntime): Promise<PureDataObject<DataObjectTypes>>;
51
+ static getDataObject(runtime: IFluidDataStoreRuntime): Promise<PureDataObject>;
46
52
  constructor(props: IDataObjectProps<I>);
47
53
  /**
48
54
  * Return this object if someone requests it directly
@@ -1 +1 @@
1
- {"version":3,"file":"pureDataObject.d.ts","sourceRoot":"","sources":["../../src/data-objects/pureDataObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EACN,MAAM,EACN,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,QAAQ,EACR,SAAS,EACT,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE5D;;;;;;;GAOG;AACH,8BAAsB,cAAc,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,CAC/E,SAAQ,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAC9C,YAAW,cAAc,EAAE,mBAAmB;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAEnD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE/E,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;IAExC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAEjD,IAAW,EAAE,WAEZ;IACD,IAAW,cAAc,SAExB;IACD,IAAW,YAAY,uBAEtB;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAMtC;WAEmB,aAAa,CAAC,OAAO,EAAE,sBAAsB;gBAK9C,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAc7C;;;;;;;OAOG;IACU,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAMvD;;;;;;OAMG;IACU,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE;;;;;;OAMG;IACU,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjE;;;OAGG;cACa,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9C;;;;;OAKG;cACa,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/E;;;OAGG;cACa,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzD;;OAEG;cACa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAC/C"}
1
+ {"version":3,"file":"pureDataObject.d.ts","sourceRoot":"","sources":["../../src/data-objects/pureDataObject.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,8BAA8B,CAAC;AAEjE,OAAO,EACN,KAAK,MAAM,EACX,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,MAAM,iCAAiC,CAAC;AACzC,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEzE;;;;;;;GAOG;AACH,8BAAsB,cAAc,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe,CAC/E,SAAQ,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,MAAM,CAC9C,YAAW,cAAc,EAAE,mBAAmB;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAEnD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IAEnD;;;;;;OAMG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAE/E,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;IAExC,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;IAEjD,IAAW,EAAE,IAAI,MAAM,CAEtB;IAED;;OAEG;IACH,IAAW,cAAc,IAAI,IAAI,CAEhC;IAED;;OAEG;IACH,IAAW,YAAY,IAAI,YAAY,CAAC,IAAI,CAAC,CAE5C;IAED;;OAEG;IACH,IAAW,MAAM,IAAI,YAAY,CAAC,IAAI,CAAC,CAMtC;WAEmB,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,cAAc,CAAC;gBAKxE,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAkB7C;;;;;;;OAOG;IACU,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;IAMvD;;;;;;OAMG;IACU,oBAAoB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQnE;;;;;;OAMG;IACU,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBjE;;;OAGG;cACa,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9C;;;;;OAKG;cACa,qBAAqB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/E;;;OAGG;cACa,wBAAwB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzD;;OAEG;cACa,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;CAC/C"}
@@ -20,9 +20,15 @@ class PureDataObject extends client_utils_1.TypedEventEmitter {
20
20
  get id() {
21
21
  return this.runtime.id;
22
22
  }
23
+ /**
24
+ * {@inheritDoc @fluidframework/core-interfaces#IProvideFluidLoadable.IFluidLoadable}
25
+ */
23
26
  get IFluidLoadable() {
24
27
  return this;
25
28
  }
29
+ /**
30
+ * {@inheritDoc @fluidframework/core-interfaces#IProvideFluidHandle.IFluidHandle}
31
+ */
26
32
  get IFluidHandle() {
27
33
  return this.handle;
28
34
  }
@@ -46,8 +52,12 @@ class PureDataObject extends client_utils_1.TypedEventEmitter {
46
52
  this.context = props.context;
47
53
  this.providers = props.providers;
48
54
  this.initProps = props.initProps;
55
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access */
56
+ /* eslint-disable @typescript-eslint/no-explicit-any */
49
57
  (0, core_utils_1.assert)(this.runtime._dataObject === undefined, 0x0bd /* "Object runtime already has DataObject!" */);
50
58
  this.runtime._dataObject = this;
59
+ /* eslint-enable @typescript-eslint/no-explicit-any */
60
+ /* eslint-enable @typescript-eslint/no-unsafe-member-access */
51
61
  }
52
62
  /**
53
63
  * Return this object if someone requests it directly
@@ -1 +1 @@
1
- {"version":3,"file":"pureDataObject.js","sourceRoot":"","sources":["../../src/data-objects/pureDataObject.ts"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TypedEventEmitter } from \"@fluid-internal/client-utils\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport {\n\tIEvent,\n\tIFluidHandle,\n\tIFluidLoadable,\n\tIProvideFluidHandle,\n\tIRequest,\n\tIResponse,\n} from \"@fluidframework/core-interfaces\";\nimport { IFluidDataStoreRuntime } from \"@fluidframework/datastore-definitions\";\nimport { IFluidDataStoreContext } from \"@fluidframework/runtime-definitions\";\nimport { AsyncFluidObjectProvider } from \"@fluidframework/synthesize\";\nimport { create404Response } from \"@fluidframework/runtime-utils\";\nimport { DataObjectTypes, IDataObjectProps } from \"./types\";\n\n/**\n * This is a bare-bones base class that does basic setup and enables for factory on an initialize call.\n * You probably don't want to inherit from this data store directly unless\n * you are creating another base data store class\n *\n * @typeParam I - The optional input types used to strongly type the data object\n * @alpha\n */\nexport abstract class PureDataObject<I extends DataObjectTypes = DataObjectTypes>\n\textends TypedEventEmitter<I[\"Events\"] & IEvent>\n\timplements IFluidLoadable, IProvideFluidHandle\n{\n\t/**\n\t * This is your FluidDataStoreRuntime object\n\t */\n\tprotected readonly runtime: IFluidDataStoreRuntime;\n\n\t/**\n\t * This context is used to talk up to the ContainerRuntime\n\t */\n\tprotected readonly context: IFluidDataStoreContext;\n\n\t/**\n\t * Providers are FluidObject keyed objects that provide back\n\t * a promise to the corresponding FluidObject or undefined.\n\t * Providers injected/provided by the Container and/or HostingApplication\n\t *\n\t * To define providers set FluidObject interfaces in the OptionalProviders generic type for your data store\n\t */\n\tprotected readonly providers: AsyncFluidObjectProvider<I[\"OptionalProviders\"]>;\n\n\tprotected initProps?: I[\"InitialState\"];\n\n\tprotected initializeP: Promise<void> | undefined;\n\n\tpublic get id() {\n\t\treturn this.runtime.id;\n\t}\n\tpublic get IFluidLoadable() {\n\t\treturn this;\n\t}\n\tpublic get IFluidHandle() {\n\t\treturn this.handle;\n\t}\n\n\t/**\n\t * Handle to a data store\n\t */\n\tpublic get handle(): IFluidHandle<this> {\n\t\t// PureDataObjectFactory already provides an entryPoint initialization function to the data store runtime,\n\t\t// so this object should always have access to a non-null entryPoint. Need to cast because PureDataObject\n\t\t// tried to be too smart with its typing for handles :).\n\t\tassert(this.runtime.entryPoint !== undefined, 0x46b /* EntryPoint was undefined */);\n\t\treturn this.runtime.entryPoint as IFluidHandle<this>;\n\t}\n\n\tpublic static async getDataObject(runtime: IFluidDataStoreRuntime) {\n\t\tconst obj = await runtime.entryPoint.get();\n\t\treturn obj as PureDataObject;\n\t}\n\n\tpublic constructor(props: IDataObjectProps<I>) {\n\t\tsuper();\n\t\tthis.runtime = props.runtime;\n\t\tthis.context = props.context;\n\t\tthis.providers = props.providers;\n\t\tthis.initProps = props.initProps;\n\n\t\tassert(\n\t\t\t(this.runtime as any)._dataObject === undefined,\n\t\t\t0x0bd /* \"Object runtime already has DataObject!\" */,\n\t\t);\n\t\t(this.runtime as any)._dataObject = this;\n\t}\n\n\t/**\n\t * Return this object if someone requests it directly\n\t * We will return this object in two scenarios:\n\t *\n\t * 1. the request url is a \"/\"\n\t *\n\t * 2. the request url is empty\n\t */\n\tpublic async request(req: IRequest): Promise<IResponse> {\n\t\treturn req.url === \"\" || req.url === \"/\" || req.url.startsWith(\"/?\")\n\t\t\t? { mimeType: \"fluid/object\", status: 200, value: this }\n\t\t\t: create404Response(req);\n\t}\n\n\t/**\n\t * Call this API to ensure PureDataObject is fully initialized.\n\t * Initialization happens on demand, only on as-needed bases.\n\t * In most cases you should allow factory/object to decide when to finish initialization.\n\t * But if you are supplying your own implementation of DataStoreRuntime factory and overriding some methods\n\t * and need a fully initialized object, then you can call this API to ensure object is fully initialized.\n\t */\n\tpublic async finishInitialization(existing: boolean): Promise<void> {\n\t\tif (this.initializeP !== undefined) {\n\t\t\treturn this.initializeP;\n\t\t}\n\t\tthis.initializeP = this.initializeInternal(existing);\n\t\treturn this.initializeP;\n\t}\n\n\t/**\n\t * Internal initialize implementation. Overwriting this will change the flow of the PureDataObject and should\n\t * generally not be done.\n\t *\n\t * Calls initializingFirstTime, initializingFromExisting, and hasInitialized. Caller is\n\t * responsible for ensuring this is only invoked once.\n\t */\n\tpublic async initializeInternal(existing: boolean): Promise<void> {\n\t\tawait this.preInitialize();\n\t\tif (existing) {\n\t\t\tassert(\n\t\t\t\tthis.initProps === undefined,\n\t\t\t\t0x0be /* \"Trying to initialize from existing while initProps is set!\" */,\n\t\t\t);\n\t\t\tawait this.initializingFromExisting();\n\t\t} else {\n\t\t\tawait this.initializingFirstTime(\n\t\t\t\t(this.context.createProps as I[\"InitialState\"]) ?? this.initProps,\n\t\t\t);\n\t\t}\n\t\tawait this.hasInitialized();\n\t}\n\n\t/**\n\t * Called every time the data store is initialized, before initializingFirstTime or\n\t * initializingFromExisting is called.\n\t */\n\tprotected async preInitialize(): Promise<void> {}\n\n\t/**\n\t * Called the first time the data store is initialized (new creations with a new\n\t * data store runtime)\n\t *\n\t * @param props - Optional props to be passed in on create\n\t */\n\tprotected async initializingFirstTime(props?: I[\"InitialState\"]): Promise<void> {}\n\n\t/**\n\t * Called every time but the first time the data store is initialized (creations\n\t * with an existing data store runtime)\n\t */\n\tprotected async initializingFromExisting(): Promise<void> {}\n\n\t/**\n\t * Called every time the data store is initialized after create or existing.\n\t */\n\tprotected async hasInitialized(): Promise<void> {}\n}\n"]}
1
+ {"version":3,"file":"pureDataObject.js","sourceRoot":"","sources":["../../src/data-objects/pureDataObject.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,+DAAiE;AACjE,2DAAoD;AAYpD,iEAAkE;AAGlE;;;;;;;GAOG;AACH,MAAsB,cACrB,SAAQ,gCAAuC;IA0B/C,IAAW,EAAE;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IACxB,CAAC;IAED;;OAEG;IACH,IAAW,cAAc;QACxB,OAAO,IAAI,CAAC;IACb,CAAC;IAED;;OAEG;IACH,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,IAAW,MAAM;QAChB,0GAA0G;QAC1G,yGAAyG;QACzG,wDAAwD;QACxD,IAAA,mBAAM,EAAC,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK,SAAS,EAAE,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACpF,OAAO,IAAI,CAAC,OAAO,CAAC,UAAgC,CAAC;IACtD,CAAC;IAEM,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,OAA+B;QAChE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC;QAC3C,OAAO,GAAqB,CAAC;IAC9B,CAAC;IAED,YAAmB,KAA0B;QAC5C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;QAEjC,+DAA+D;QAC/D,uDAAuD;QACvD,IAAA,mBAAM,EACJ,IAAI,CAAC,OAAe,CAAC,WAAW,KAAK,SAAS,EAC/C,KAAK,CAAC,8CAA8C,CACpD,CAAC;QACD,IAAI,CAAC,OAAe,CAAC,WAAW,GAAG,IAAI,CAAC;QACzC,sDAAsD;QACtD,8DAA8D;IAC/D,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,OAAO,CAAC,GAAa;QACjC,OAAO,GAAG,CAAC,GAAG,KAAK,EAAE,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;YACnE,CAAC,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;YACxD,CAAC,CAAC,IAAA,iCAAiB,EAAC,GAAG,CAAC,CAAC;IAC3B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,oBAAoB,CAAC,QAAiB;QAClD,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;YACnC,OAAO,IAAI,CAAC,WAAW,CAAC;SACxB;QACD,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,WAAW,CAAC;IACzB,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,kBAAkB,CAAC,QAAiB;QAChD,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC3B,IAAI,QAAQ,EAAE;YACb,IAAA,mBAAM,EACL,IAAI,CAAC,SAAS,KAAK,SAAS,EAC5B,KAAK,CAAC,kEAAkE,CACxE,CAAC;YACF,MAAM,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACtC;aAAM;YACN,MAAM,IAAI,CAAC,qBAAqB,CAC9B,IAAI,CAAC,OAAO,CAAC,WAAiC,IAAI,IAAI,CAAC,SAAS,CACjE,CAAC;SACF;QACD,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACO,KAAK,CAAC,aAAa,KAAmB,CAAC;IAEjD;;;;;OAKG;IACO,KAAK,CAAC,qBAAqB,CAAC,KAAyB,IAAkB,CAAC;IAElF;;;OAGG;IACO,KAAK,CAAC,wBAAwB,KAAmB,CAAC;IAE5D;;OAEG;IACO,KAAK,CAAC,cAAc,KAAmB,CAAC;CAClD;AA3JD,wCA2JC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { TypedEventEmitter } from \"@fluid-internal/client-utils\";\nimport { assert } from \"@fluidframework/core-utils\";\nimport {\n\ttype IEvent,\n\ttype IFluidHandle,\n\ttype IFluidLoadable,\n\ttype IProvideFluidHandle,\n\ttype IRequest,\n\ttype IResponse,\n} from \"@fluidframework/core-interfaces\";\nimport { type IFluidDataStoreRuntime } from \"@fluidframework/datastore-definitions\";\nimport { type IFluidDataStoreContext } from \"@fluidframework/runtime-definitions\";\nimport { type AsyncFluidObjectProvider } from \"@fluidframework/synthesize\";\nimport { create404Response } from \"@fluidframework/runtime-utils\";\nimport { type DataObjectTypes, type IDataObjectProps } from \"./types.js\";\n\n/**\n * This is a bare-bones base class that does basic setup and enables for factory on an initialize call.\n * You probably don't want to inherit from this data store directly unless\n * you are creating another base data store class\n *\n * @typeParam I - The optional input types used to strongly type the data object\n * @alpha\n */\nexport abstract class PureDataObject<I extends DataObjectTypes = DataObjectTypes>\n\textends TypedEventEmitter<I[\"Events\"] & IEvent>\n\timplements IFluidLoadable, IProvideFluidHandle\n{\n\t/**\n\t * This is your FluidDataStoreRuntime object\n\t */\n\tprotected readonly runtime: IFluidDataStoreRuntime;\n\n\t/**\n\t * This context is used to talk up to the ContainerRuntime\n\t */\n\tprotected readonly context: IFluidDataStoreContext;\n\n\t/**\n\t * Providers are FluidObject keyed objects that provide back\n\t * a promise to the corresponding FluidObject or undefined.\n\t * Providers injected/provided by the Container and/or HostingApplication\n\t *\n\t * To define providers set FluidObject interfaces in the OptionalProviders generic type for your data store\n\t */\n\tprotected readonly providers: AsyncFluidObjectProvider<I[\"OptionalProviders\"]>;\n\n\tprotected initProps?: I[\"InitialState\"];\n\n\tprotected initializeP: Promise<void> | undefined;\n\n\tpublic get id(): string {\n\t\treturn this.runtime.id;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IProvideFluidLoadable.IFluidLoadable}\n\t */\n\tpublic get IFluidLoadable(): this {\n\t\treturn this;\n\t}\n\n\t/**\n\t * {@inheritDoc @fluidframework/core-interfaces#IProvideFluidHandle.IFluidHandle}\n\t */\n\tpublic get IFluidHandle(): IFluidHandle<this> {\n\t\treturn this.handle;\n\t}\n\n\t/**\n\t * Handle to a data store\n\t */\n\tpublic get handle(): IFluidHandle<this> {\n\t\t// PureDataObjectFactory already provides an entryPoint initialization function to the data store runtime,\n\t\t// so this object should always have access to a non-null entryPoint. Need to cast because PureDataObject\n\t\t// tried to be too smart with its typing for handles :).\n\t\tassert(this.runtime.entryPoint !== undefined, 0x46b /* EntryPoint was undefined */);\n\t\treturn this.runtime.entryPoint as IFluidHandle<this>;\n\t}\n\n\tpublic static async getDataObject(runtime: IFluidDataStoreRuntime): Promise<PureDataObject> {\n\t\tconst obj = await runtime.entryPoint.get();\n\t\treturn obj as PureDataObject;\n\t}\n\n\tpublic constructor(props: IDataObjectProps<I>) {\n\t\tsuper();\n\t\tthis.runtime = props.runtime;\n\t\tthis.context = props.context;\n\t\tthis.providers = props.providers;\n\t\tthis.initProps = props.initProps;\n\n\t\t/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n\t\t/* eslint-disable @typescript-eslint/no-explicit-any */\n\t\tassert(\n\t\t\t(this.runtime as any)._dataObject === undefined,\n\t\t\t0x0bd /* \"Object runtime already has DataObject!\" */,\n\t\t);\n\t\t(this.runtime as any)._dataObject = this;\n\t\t/* eslint-enable @typescript-eslint/no-explicit-any */\n\t\t/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n\t}\n\n\t/**\n\t * Return this object if someone requests it directly\n\t * We will return this object in two scenarios:\n\t *\n\t * 1. the request url is a \"/\"\n\t *\n\t * 2. the request url is empty\n\t */\n\tpublic async request(req: IRequest): Promise<IResponse> {\n\t\treturn req.url === \"\" || req.url === \"/\" || req.url.startsWith(\"/?\")\n\t\t\t? { mimeType: \"fluid/object\", status: 200, value: this }\n\t\t\t: create404Response(req);\n\t}\n\n\t/**\n\t * Call this API to ensure PureDataObject is fully initialized.\n\t * Initialization happens on demand, only on as-needed bases.\n\t * In most cases you should allow factory/object to decide when to finish initialization.\n\t * But if you are supplying your own implementation of DataStoreRuntime factory and overriding some methods\n\t * and need a fully initialized object, then you can call this API to ensure object is fully initialized.\n\t */\n\tpublic async finishInitialization(existing: boolean): Promise<void> {\n\t\tif (this.initializeP !== undefined) {\n\t\t\treturn this.initializeP;\n\t\t}\n\t\tthis.initializeP = this.initializeInternal(existing);\n\t\treturn this.initializeP;\n\t}\n\n\t/**\n\t * Internal initialize implementation. Overwriting this will change the flow of the PureDataObject and should\n\t * generally not be done.\n\t *\n\t * Calls initializingFirstTime, initializingFromExisting, and hasInitialized. Caller is\n\t * responsible for ensuring this is only invoked once.\n\t */\n\tpublic async initializeInternal(existing: boolean): Promise<void> {\n\t\tawait this.preInitialize();\n\t\tif (existing) {\n\t\t\tassert(\n\t\t\t\tthis.initProps === undefined,\n\t\t\t\t0x0be /* \"Trying to initialize from existing while initProps is set!\" */,\n\t\t\t);\n\t\t\tawait this.initializingFromExisting();\n\t\t} else {\n\t\t\tawait this.initializingFirstTime(\n\t\t\t\t(this.context.createProps as I[\"InitialState\"]) ?? this.initProps,\n\t\t\t);\n\t\t}\n\t\tawait this.hasInitialized();\n\t}\n\n\t/**\n\t * Called every time the data store is initialized, before initializingFirstTime or\n\t * initializingFromExisting is called.\n\t */\n\tprotected async preInitialize(): Promise<void> {}\n\n\t/**\n\t * Called the first time the data store is initialized (new creations with a new\n\t * data store runtime)\n\t *\n\t * @param props - Optional props to be passed in on create\n\t */\n\tprotected async initializingFirstTime(props?: I[\"InitialState\"]): Promise<void> {}\n\n\t/**\n\t * Called every time but the first time the data store is initialized (creations\n\t * with an existing data store runtime)\n\t */\n\tprotected async initializingFromExisting(): Promise<void> {}\n\n\t/**\n\t * Called every time the data store is initialized after create or existing.\n\t */\n\tprotected async hasInitialized(): Promise<void> {}\n}\n"]}
@@ -2,25 +2,25 @@
2
2
  * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
3
  * Licensed under the MIT License.
4
4
  */
5
- import { IEvent, FluidObject } from "@fluidframework/core-interfaces";
6
- import { AsyncFluidObjectProvider } from "@fluidframework/synthesize";
7
- import { IFluidDataStoreContext } from "@fluidframework/runtime-definitions";
8
- import { IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
5
+ import { type IEvent, type FluidObject } from "@fluidframework/core-interfaces";
6
+ import { type AsyncFluidObjectProvider } from "@fluidframework/synthesize";
7
+ import { type IFluidDataStoreContext } from "@fluidframework/runtime-definitions";
8
+ import { type IFluidDataStoreRuntime } from "@fluidframework/datastore-definitions";
9
9
  /**
10
10
  * This type is used as the base generic input to DataObject and PureDataObject.
11
11
  * @alpha
12
12
  */
13
13
  export interface DataObjectTypes {
14
14
  /**
15
- * represents a type that will define optional providers that will be injected
15
+ * Represents a type that will define optional providers that will be injected.
16
16
  */
17
17
  OptionalProviders?: FluidObject;
18
18
  /**
19
- * the initial state type that the produced data object may take during creation
19
+ * The initial state type that the produced data object may take during creation.
20
20
  */
21
21
  InitialState?: any;
22
22
  /**
23
- * represents events that will be available in the EventForwarder
23
+ * Represents events that will be available in the EventForwarder.
24
24
  */
25
25
  Events?: IEvent;
26
26
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data-objects/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC;;OAEG;IACH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IAC5E,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;CACvC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/data-objects/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAC3E,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAClF,OAAO,EAAE,KAAK,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAEpF;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC/B;;OAEG;IACH,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC;;OAEG;IAGH,YAAY,CAAC,EAAE,GAAG,CAAC;IACnB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,SAAS,eAAe,GAAG,eAAe;IAC5E,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,OAAO,EAAE,sBAAsB,CAAC;IACzC,QAAQ,CAAC,SAAS,EAAE,wBAAwB,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC;CACvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/data-objects/types.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { IEvent, FluidObject } from \"@fluidframework/core-interfaces\";\nimport { AsyncFluidObjectProvider } from \"@fluidframework/synthesize\";\nimport { IFluidDataStoreContext } from \"@fluidframework/runtime-definitions\";\nimport { IFluidDataStoreRuntime } from \"@fluidframework/datastore-definitions\";\n\n/**\n * This type is used as the base generic input to DataObject and PureDataObject.\n * @alpha\n */\nexport interface DataObjectTypes {\n\t/**\n\t * represents a type that will define optional providers that will be injected\n\t */\n\tOptionalProviders?: FluidObject;\n\t/**\n\t * the initial state type that the produced data object may take during creation\n\t */\n\tInitialState?: any;\n\t/**\n\t * represents events that will be available in the EventForwarder\n\t */\n\tEvents?: IEvent;\n}\n\n/**\n * @alpha\n */\nexport interface IDataObjectProps<I extends DataObjectTypes = DataObjectTypes> {\n\treadonly runtime: IFluidDataStoreRuntime;\n\treadonly context: IFluidDataStoreContext;\n\treadonly providers: AsyncFluidObjectProvider<I[\"OptionalProviders\"]>;\n\treadonly initProps?: I[\"InitialState\"];\n}\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/data-objects/types.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { type IEvent, type FluidObject } from \"@fluidframework/core-interfaces\";\nimport { type AsyncFluidObjectProvider } from \"@fluidframework/synthesize\";\nimport { type IFluidDataStoreContext } from \"@fluidframework/runtime-definitions\";\nimport { type IFluidDataStoreRuntime } from \"@fluidframework/datastore-definitions\";\n\n/**\n * This type is used as the base generic input to DataObject and PureDataObject.\n * @alpha\n */\nexport interface DataObjectTypes {\n\t/**\n\t * Represents a type that will define optional providers that will be injected.\n\t */\n\tOptionalProviders?: FluidObject;\n\t/**\n\t * The initial state type that the produced data object may take during creation.\n\t */\n\t// TODO: Use a real type here.\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tInitialState?: any;\n\t/**\n\t * Represents events that will be available in the EventForwarder.\n\t */\n\tEvents?: IEvent;\n}\n\n/**\n * @alpha\n */\nexport interface IDataObjectProps<I extends DataObjectTypes = DataObjectTypes> {\n\treadonly runtime: IFluidDataStoreRuntime;\n\treadonly context: IFluidDataStoreContext;\n\treadonly providers: AsyncFluidObjectProvider<I[\"OptionalProviders\"]>;\n\treadonly initProps?: I[\"InitialState\"];\n}\n"]}
package/dist/index.d.ts CHANGED
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * @packageDocumentation
18
18
  */
19
- export { DataObjectFactory, PureDataObjectFactory } from "./data-object-factories";
20
- export { DataObject, DataObjectTypes, IDataObjectProps, PureDataObject } from "./data-objects";
21
- export { BaseContainerRuntimeFactory, ContainerRuntimeFactoryWithDefaultDataStore, } from "./container-runtime-factories";
19
+ export { DataObjectFactory, PureDataObjectFactory } from "./data-object-factories/index.js";
20
+ export { DataObject, type DataObjectTypes, type IDataObjectProps, PureDataObject, } from "./data-objects/index.js";
21
+ export { BaseContainerRuntimeFactory, type BaseContainerRuntimeFactoryProps, ContainerRuntimeFactoryWithDefaultDataStore, type ContainerRuntimeFactoryWithDefaultDataStoreProps, } from "./container-runtime-factories/index.js";
22
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC/F,OAAO,EACN,2BAA2B,EAC3B,2CAA2C,GAC3C,MAAM,+BAA+B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,kCAAkC,CAAC;AAC5F,OAAO,EACN,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,cAAc,GACd,MAAM,yBAAyB,CAAC;AACjC,OAAO,EACN,2BAA2B,EAC3B,KAAK,gCAAgC,EACrC,2CAA2C,EAC3C,KAAK,gDAAgD,GACrD,MAAM,wCAAwC,CAAC"}
package/dist/index.js CHANGED
@@ -19,13 +19,13 @@ exports.ContainerRuntimeFactoryWithDefaultDataStore = exports.BaseContainerRunti
19
19
  *
20
20
  * @packageDocumentation
21
21
  */
22
- var data_object_factories_1 = require("./data-object-factories");
23
- Object.defineProperty(exports, "DataObjectFactory", { enumerable: true, get: function () { return data_object_factories_1.DataObjectFactory; } });
24
- Object.defineProperty(exports, "PureDataObjectFactory", { enumerable: true, get: function () { return data_object_factories_1.PureDataObjectFactory; } });
25
- var data_objects_1 = require("./data-objects");
26
- Object.defineProperty(exports, "DataObject", { enumerable: true, get: function () { return data_objects_1.DataObject; } });
27
- Object.defineProperty(exports, "PureDataObject", { enumerable: true, get: function () { return data_objects_1.PureDataObject; } });
28
- var container_runtime_factories_1 = require("./container-runtime-factories");
29
- Object.defineProperty(exports, "BaseContainerRuntimeFactory", { enumerable: true, get: function () { return container_runtime_factories_1.BaseContainerRuntimeFactory; } });
30
- Object.defineProperty(exports, "ContainerRuntimeFactoryWithDefaultDataStore", { enumerable: true, get: function () { return container_runtime_factories_1.ContainerRuntimeFactoryWithDefaultDataStore; } });
22
+ var index_js_1 = require("./data-object-factories/index.js");
23
+ Object.defineProperty(exports, "DataObjectFactory", { enumerable: true, get: function () { return index_js_1.DataObjectFactory; } });
24
+ Object.defineProperty(exports, "PureDataObjectFactory", { enumerable: true, get: function () { return index_js_1.PureDataObjectFactory; } });
25
+ var index_js_2 = require("./data-objects/index.js");
26
+ Object.defineProperty(exports, "DataObject", { enumerable: true, get: function () { return index_js_2.DataObject; } });
27
+ Object.defineProperty(exports, "PureDataObject", { enumerable: true, get: function () { return index_js_2.PureDataObject; } });
28
+ var index_js_3 = require("./container-runtime-factories/index.js");
29
+ Object.defineProperty(exports, "BaseContainerRuntimeFactory", { enumerable: true, get: function () { return index_js_3.BaseContainerRuntimeFactory; } });
30
+ Object.defineProperty(exports, "ContainerRuntimeFactoryWithDefaultDataStore", { enumerable: true, get: function () { return index_js_3.ContainerRuntimeFactoryWithDefaultDataStore; } });
31
31
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;;;;;;;;;;;GAaG;AAEH,iEAAmF;AAA1E,0HAAA,iBAAiB,OAAA;AAAE,8HAAA,qBAAqB,OAAA;AACjD,+CAA+F;AAAtF,0GAAA,UAAU,OAAA;AAAqC,8GAAA,cAAc,OAAA;AACtE,6EAGuC;AAFtC,0IAAA,2BAA2B,OAAA;AAC3B,0JAAA,2CAA2C,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * The `aqueduct` package is a library for building Fluid objects and Fluid\n * containers within the Fluid Framework. Its goal is to provide a thin base\n * layer over the existing Fluid Framework interfaces that allows developers to\n * get started quickly.\n *\n * @remarks\n * About the library name: An \"aqueduct\" is a way to transport water from a source\n * to another location. The library name was chosen because its purpose is to\n * facilitate using lower level constructs and therefore handle 'fluid' items\n * same as an aqueduct.\n *\n * @packageDocumentation\n */\n\nexport { DataObjectFactory, PureDataObjectFactory } from \"./data-object-factories\";\nexport { DataObject, DataObjectTypes, IDataObjectProps, PureDataObject } from \"./data-objects\";\nexport {\n\tBaseContainerRuntimeFactory,\n\tContainerRuntimeFactoryWithDefaultDataStore,\n} from \"./container-runtime-factories\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH;;;;;;;;;;;;;GAaG;AAEH,6DAA4F;AAAnF,6GAAA,iBAAiB,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AACjD,oDAKiC;AAJhC,sGAAA,UAAU,OAAA;AAGV,0GAAA,cAAc,OAAA;AAEf,mEAKgD;AAJ/C,uHAAA,2BAA2B,OAAA;AAE3B,uIAAA,2CAA2C,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * The `aqueduct` package is a library for building Fluid objects and Fluid\n * containers within the Fluid Framework. Its goal is to provide a thin base\n * layer over the existing Fluid Framework interfaces that allows developers to\n * get started quickly.\n *\n * @remarks\n * About the library name: An \"aqueduct\" is a way to transport water from a source\n * to another location. The library name was chosen because its purpose is to\n * facilitate using lower level constructs and therefore handle 'fluid' items\n * same as an aqueduct.\n *\n * @packageDocumentation\n */\n\nexport { DataObjectFactory, PureDataObjectFactory } from \"./data-object-factories/index.js\";\nexport {\n\tDataObject,\n\ttype DataObjectTypes,\n\ttype IDataObjectProps,\n\tPureDataObject,\n} from \"./data-objects/index.js\";\nexport {\n\tBaseContainerRuntimeFactory,\n\ttype BaseContainerRuntimeFactoryProps,\n\tContainerRuntimeFactoryWithDefaultDataStore,\n\ttype ContainerRuntimeFactoryWithDefaultDataStoreProps,\n} from \"./container-runtime-factories/index.js\";\n"]}
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "commonjs"
3
+ }
@@ -5,7 +5,7 @@
5
5
  "toolPackages": [
6
6
  {
7
7
  "packageName": "@microsoft/api-extractor",
8
- "packageVersion": "7.38.3"
8
+ "packageVersion": "7.42.3"
9
9
  }
10
10
  ]
11
11
  }
@@ -1,3 +1,18 @@
1
+ /**
2
+ * The `aqueduct` package is a library for building Fluid objects and Fluid
3
+ * containers within the Fluid Framework. Its goal is to provide a thin base
4
+ * layer over the existing Fluid Framework interfaces that allows developers to
5
+ * get started quickly.
6
+ *
7
+ * @remarks
8
+ * About the library name: An "aqueduct" is a way to transport water from a source
9
+ * to another location. The library name was chosen because its purpose is to
10
+ * facilitate using lower level constructs and therefore handle 'fluid' items
11
+ * same as an aqueduct.
12
+ *
13
+ * @packageDocumentation
14
+ */
15
+
1
16
  import { AsyncFluidObjectProvider } from '@fluidframework/synthesize';
2
17
  import { ContainerRuntime } from '@fluidframework/container-runtime';
3
18
  import { FluidDataStoreRuntime } from '@fluidframework/datastore';
@@ -8,7 +23,9 @@ import { IContainerContext } from '@fluidframework/container-definitions';
8
23
  import { IContainerRuntime } from '@fluidframework/container-runtime-definitions';
9
24
  import { IContainerRuntimeBase } from '@fluidframework/runtime-definitions';
10
25
  import { IContainerRuntimeOptions } from '@fluidframework/container-runtime';
26
+ import { IDataStore } from '@fluidframework/runtime-definitions';
11
27
  import { IEvent } from '@fluidframework/core-interfaces';
28
+ import { IFluidDataStoreChannel } from '@fluidframework/runtime-definitions';
12
29
  import { IFluidDataStoreContext } from '@fluidframework/runtime-definitions';
13
30
  import { IFluidDataStoreContextDetached } from '@fluidframework/runtime-definitions';
14
31
  import { IFluidDataStoreFactory } from '@fluidframework/runtime-definitions';
@@ -35,6 +52,9 @@ import { TypedEventEmitter } from '@fluid-internal/client-utils';
35
52
  * @alpha
36
53
  */
37
54
  export declare class BaseContainerRuntimeFactory extends RuntimeFactoryHelper implements IProvideFluidDataStoreRegistry {
55
+ /**
56
+ * {@inheritDoc @fluidframework/runtime-definitions#IProvideFluidDataStoreRegistry.IFluidDataStoreRegistry}
57
+ */
38
58
  get IFluidDataStoreRegistry(): IFluidDataStoreRegistry;
39
59
  private readonly registry;
40
60
  private readonly registryEntries;
@@ -42,22 +62,7 @@ export declare class BaseContainerRuntimeFactory extends RuntimeFactoryHelper im
42
62
  private readonly runtimeOptions?;
43
63
  private readonly requestHandlers;
44
64
  private readonly provideEntryPoint;
45
- /**
46
- * @param registryEntries - The data store registry for containers produced
47
- * @param dependencyContainer - deprecated, will be removed in a future release
48
- * @param requestHandlers - Request handlers for containers produced
49
- * @param runtimeOptions - The runtime options passed to the ContainerRuntime when instantiating it
50
- * @param provideEntryPoint - Function that will initialize the entryPoint of the ContainerRuntime instances
51
- * created with this factory
52
- */
53
- constructor(props: {
54
- registryEntries: NamedFluidDataStoreRegistryEntries;
55
- dependencyContainer?: IFluidDependencySynthesizer;
56
- /** @deprecated Will be removed once Loader LTS version is "2.0.0-internal.7.0.0". Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
57
- requestHandlers?: RuntimeRequestHandler[];
58
- runtimeOptions?: IContainerRuntimeOptions;
59
- provideEntryPoint: (runtime: IContainerRuntime) => Promise<FluidObject>;
60
- });
65
+ constructor(props: BaseContainerRuntimeFactoryProps);
61
66
  instantiateFirstTime(runtime: ContainerRuntime): Promise<void>;
62
67
  instantiateFromExisting(runtime: ContainerRuntime): Promise<void>;
63
68
  preInitialize(context: IContainerContext, existing: boolean): Promise<ContainerRuntime>;
@@ -75,6 +80,35 @@ export declare class BaseContainerRuntimeFactory extends RuntimeFactoryHelper im
75
80
  protected containerHasInitialized(runtime: IContainerRuntime): Promise<void>;
76
81
  }
77
82
 
83
+ /**
84
+ * {@link BaseContainerRuntimeFactory} construction properties.
85
+ * @alpha
86
+ */
87
+ export declare interface BaseContainerRuntimeFactoryProps {
88
+ /**
89
+ * The data store registry for containers produced.
90
+ */
91
+ registryEntries: NamedFluidDataStoreRegistryEntries;
92
+ /**
93
+ * @deprecated Will be removed in a future release.
94
+ */
95
+ dependencyContainer?: IFluidDependencySynthesizer;
96
+ /**
97
+ * Request handlers for containers produced.
98
+ * @deprecated Will be removed once Loader LTS version is "2.0.0-internal.7.0.0". Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
99
+ */
100
+ requestHandlers?: RuntimeRequestHandler[];
101
+ /**
102
+ * The runtime options passed to the ContainerRuntime when instantiating it
103
+ */
104
+ runtimeOptions?: IContainerRuntimeOptions;
105
+ /**
106
+ * Function that will initialize the entryPoint of the ContainerRuntime instances
107
+ * created with this factory
108
+ */
109
+ provideEntryPoint: (runtime: IContainerRuntime) => Promise<FluidObject>;
110
+ }
111
+
78
112
  /**
79
113
  * A ContainerRuntimeFactory that initializes Containers with a single default data store, which can be requested from
80
114
  * the container with an empty URL.
@@ -85,30 +119,43 @@ export declare class BaseContainerRuntimeFactory extends RuntimeFactoryHelper im
85
119
  export declare class ContainerRuntimeFactoryWithDefaultDataStore extends BaseContainerRuntimeFactory {
86
120
  static readonly defaultDataStoreId = "default";
87
121
  protected readonly defaultFactory: IFluidDataStoreFactory;
88
- /**
89
- * Constructor
90
- * @param defaultFactory -
91
- * @param registryEntries -
92
- * @param dependencyContainer - deprecated, will be removed in a future release
93
- * @param requestHandlers -
94
- * @param runtimeOptions -
95
- * @param provideEntryPoint -
96
- */
97
- constructor(props: {
98
- defaultFactory: IFluidDataStoreFactory;
99
- registryEntries: NamedFluidDataStoreRegistryEntries;
100
- dependencyContainer?: IFluidDependencySynthesizer;
101
- /** @deprecated Will be removed once Loader LTS version is "2.0.0-internal.7.0.0". Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md */
102
- requestHandlers?: RuntimeRequestHandler[];
103
- runtimeOptions?: IContainerRuntimeOptions;
104
- provideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;
105
- });
122
+ constructor(props: ContainerRuntimeFactoryWithDefaultDataStoreProps);
106
123
  /**
107
124
  * {@inheritDoc BaseContainerRuntimeFactory.containerInitializingFirstTime}
108
125
  */
109
126
  protected containerInitializingFirstTime(runtime: IContainerRuntime): Promise<void>;
110
127
  }
111
128
 
129
+ /**
130
+ * {@link ContainerRuntimeFactoryWithDefaultDataStore} construction properties.
131
+ * @alpha
132
+ */
133
+ export declare interface ContainerRuntimeFactoryWithDefaultDataStoreProps {
134
+ defaultFactory: IFluidDataStoreFactory;
135
+ /**
136
+ * The data store registry for containers produced.
137
+ */
138
+ registryEntries: NamedFluidDataStoreRegistryEntries;
139
+ /**
140
+ * @deprecated Will be removed in a future release.
141
+ */
142
+ dependencyContainer?: IFluidDependencySynthesizer;
143
+ /**
144
+ * Request handlers for containers produced.
145
+ * @deprecated Will be removed once Loader LTS version is "2.0.0-internal.7.0.0". Migrate all usage of IFluidRouter to the "entryPoint" pattern. Refer to Removing-IFluidRouter.md
146
+ */
147
+ requestHandlers?: RuntimeRequestHandler[];
148
+ /**
149
+ * The runtime options passed to the ContainerRuntime when instantiating it
150
+ */
151
+ runtimeOptions?: IContainerRuntimeOptions;
152
+ /**
153
+ * Function that will initialize the entryPoint of the ContainerRuntime instances
154
+ * created with this factory
155
+ */
156
+ provideEntryPoint?: (runtime: IContainerRuntime) => Promise<FluidObject>;
157
+ }
158
+
112
159
  /**
113
160
  * DataObject is a base data store that is primed with a root directory. It
114
161
  * ensures that it is created and ready before you can access it.
@@ -150,7 +197,7 @@ export declare abstract class DataObject<I extends DataObjectTypes = DataObjectT
150
197
  * @alpha
151
198
  */
152
199
  export declare class DataObjectFactory<TObj extends DataObject<I>, I extends DataObjectTypes = DataObjectTypes> extends PureDataObjectFactory<TObj, I> {
153
- constructor(type: string, ctor: new (props: IDataObjectProps<I>) => TObj, sharedObjects: readonly IChannelFactory[] | undefined, optionalProviders: FluidObjectSymbolProvider<I["OptionalProviders"]>, registryEntries?: NamedFluidDataStoreRegistryEntries, runtimeFactory?: typeof FluidDataStoreRuntime);
200
+ constructor(type: string, ctor: new (props: IDataObjectProps<I>) => TObj, sharedObjects: readonly IChannelFactory<IFluidLoadable>[] | undefined, optionalProviders: FluidObjectSymbolProvider<I["OptionalProviders"]>, registryEntries?: NamedFluidDataStoreRegistryEntries, runtimeFactory?: typeof FluidDataStoreRuntime);
154
201
  }
155
202
 
156
203
  /**
@@ -159,15 +206,15 @@ export declare class DataObjectFactory<TObj extends DataObject<I>, I extends Dat
159
206
  */
160
207
  export declare interface DataObjectTypes {
161
208
  /**
162
- * represents a type that will define optional providers that will be injected
209
+ * Represents a type that will define optional providers that will be injected.
163
210
  */
164
211
  OptionalProviders?: FluidObject;
165
212
  /**
166
- * the initial state type that the produced data object may take during creation
213
+ * The initial state type that the produced data object may take during creation.
167
214
  */
168
215
  InitialState?: any;
169
216
  /**
170
- * represents events that will be available in the EventForwarder
217
+ * Represents events that will be available in the EventForwarder.
171
218
  */
172
219
  Events?: IEvent;
173
220
  }
@@ -210,13 +257,19 @@ export declare abstract class PureDataObject<I extends DataObjectTypes = DataObj
210
257
  protected initProps?: I["InitialState"];
211
258
  protected initializeP: Promise<void> | undefined;
212
259
  get id(): string;
260
+ /**
261
+ * {@inheritDoc @fluidframework/core-interfaces#IProvideFluidLoadable.IFluidLoadable}
262
+ */
213
263
  get IFluidLoadable(): this;
264
+ /**
265
+ * {@inheritDoc @fluidframework/core-interfaces#IProvideFluidHandle.IFluidHandle}
266
+ */
214
267
  get IFluidHandle(): IFluidHandle<this>;
215
268
  /**
216
269
  * Handle to a data store
217
270
  */
218
271
  get handle(): IFluidHandle<this>;
219
- static getDataObject(runtime: IFluidDataStoreRuntime): Promise<PureDataObject<DataObjectTypes>>;
272
+ static getDataObject(runtime: IFluidDataStoreRuntime): Promise<PureDataObject>;
220
273
  constructor(props: IDataObjectProps<I>);
221
274
  /**
222
275
  * Return this object if someone requests it directly
@@ -276,14 +329,27 @@ export declare abstract class PureDataObject<I extends DataObjectTypes = DataObj
276
329
  * @alpha
277
330
  */
278
331
  export declare class PureDataObjectFactory<TObj extends PureDataObject<I>, I extends DataObjectTypes = DataObjectTypes> implements IFluidDataStoreFactory, Partial<IProvideFluidDataStoreRegistry> {
332
+ /**
333
+ * {@inheritDoc @fluidframework/runtime-definitions#IFluidDataStoreFactory."type"}
334
+ */
279
335
  readonly type: string;
280
336
  private readonly ctor;
281
337
  private readonly optionalProviders;
282
338
  private readonly runtimeClass;
283
339
  private readonly sharedObjectRegistry;
284
340
  private readonly registry;
285
- constructor(type: string, ctor: new (props: IDataObjectProps<I>) => TObj, sharedObjects: readonly IChannelFactory[], optionalProviders: FluidObjectSymbolProvider<I["OptionalProviders"]>, registryEntries?: NamedFluidDataStoreRegistryEntries, runtimeClass?: typeof FluidDataStoreRuntime);
341
+ constructor(
342
+ /**
343
+ * {@inheritDoc @fluidframework/runtime-definitions#IFluidDataStoreFactory."type"}
344
+ */
345
+ type: string, ctor: new (props: IDataObjectProps<I>) => TObj, sharedObjects: readonly IChannelFactory[], optionalProviders: FluidObjectSymbolProvider<I["OptionalProviders"]>, registryEntries?: NamedFluidDataStoreRegistryEntries, runtimeClass?: typeof FluidDataStoreRuntime);
346
+ /**
347
+ * {@inheritDoc @fluidframework/runtime-definitions#IProvideFluidDataStoreFactory.IFluidDataStoreFactory}
348
+ */
286
349
  get IFluidDataStoreFactory(): this;
350
+ /**
351
+ * {@inheritDoc @fluidframework/runtime-definitions#IProvideFluidDataStoreRegistry.IFluidDataStoreRegistry}
352
+ */
287
353
  get IFluidDataStoreRegistry(): IFluidDataStoreRegistry | undefined;
288
354
  /**
289
355
  * Convenience helper to get the data store's/factory's data store registry entry.
@@ -293,11 +359,9 @@ export declare class PureDataObjectFactory<TObj extends PureDataObject<I>, I ext
293
359
  */
294
360
  get registryEntry(): NamedFluidDataStoreRegistryEntry;
295
361
  /**
296
- * This is where we do data store setup.
297
- *
298
- * @param context - data store context used to load a data store runtime
362
+ * {@inheritDoc @fluidframework/runtime-definitions#IFluidDataStoreFactory.instantiateDataStore}
299
363
  */
300
- instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<FluidDataStoreRuntime>;
364
+ instantiateDataStore(context: IFluidDataStoreContext, existing: boolean): Promise<IFluidDataStoreChannel>;
301
365
  /**
302
366
  * Creates a new instance of the object. Uses parent context's registry to build package path to this factory.
303
367
  * In other words, registry of context passed in has to contain this factory, with the name that matches
@@ -306,10 +370,11 @@ export declare class PureDataObjectFactory<TObj extends PureDataObject<I>, I ext
306
370
  * @param context - The context being used to create the runtime
307
371
  * (the created object will have its own new context created as well)
308
372
  * @param initialState - The initial state to provide to the created data store.
373
+ * @param loadingGroupId - NOT production ready, EXPERIMENTAL, please read {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}. The service needs to support this feature, does not work for most services
309
374
  * @returns an object created by this factory. Data store and objects created are not attached to container.
310
375
  * They get attached only when a handle to one of them is attached to already attached objects.
311
376
  */
312
- createChildInstance(parentContext: IFluidDataStoreContext, initialState?: I["InitialState"]): Promise<TObj>;
377
+ createChildInstance(parentContext: IFluidDataStoreContext, initialState?: I["InitialState"], loadingGroupId?: string): Promise<TObj>;
313
378
  /**
314
379
  * Creates a new instance of the object. Uses peer context's registry and its package path to identify this factory.
315
380
  * In other words, registry of context passed in has to have this factory.
@@ -317,10 +382,11 @@ export declare class PureDataObjectFactory<TObj extends PureDataObject<I>, I ext
317
382
  * @param context - The component context being used to create the object
318
383
  * (the created object will have its own new context created as well)
319
384
  * @param initialState - The initial state to provide to the created component.
385
+ * @param loadingGroupId - NOT production ready, EXPERIMENTAL, please read {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}. The service needs to support this feature, does not work for most services
320
386
  * @returns an object created by this factory. Data store and objects created are not attached to container.
321
387
  * They get attached only when a handle to one of them is attached to already attached objects.
322
388
  */
323
- createPeerInstance(peerContext: IFluidDataStoreContext, initialState?: I["InitialState"]): Promise<TObj>;
389
+ createPeerInstance(peerContext: IFluidDataStoreContext, initialState?: I["InitialState"], loadingGroupId?: string): Promise<TObj>;
324
390
  /**
325
391
  * Creates a new instance of the object. Uses container's registry to find this factory.
326
392
  * It's expected that only container owners would use this functionality, as only such developers
@@ -328,10 +394,24 @@ export declare class PureDataObjectFactory<TObj extends PureDataObject<I>, I ext
328
394
  * The name in this registry for such record should match type of this factory.
329
395
  * @param runtime - container runtime. It's registry is used to create an object.
330
396
  * @param initialState - The initial state to provide to the created component.
397
+ * @param loadingGroupId - NOT production ready, EXPERIMENTAL, please read {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}. The service needs to support this feature, does not work for most services
331
398
  * @returns an object created by this factory. Data store and objects created are not attached to container.
332
399
  * They get attached only when a handle to one of them is attached to already attached objects.
333
400
  */
334
- createInstance(runtime: IContainerRuntimeBase, initialState?: I["InitialState"]): Promise<TObj>;
401
+ createInstance(runtime: IContainerRuntimeBase, initialState?: I["InitialState"], loadingGroupId?: string): Promise<TObj>;
402
+ /**
403
+ * Creates a new instance of the object with a datastore which exposes the aliasing api.
404
+ * @param runtime - container runtime. It is the runtime that will be used to create the object. It will produce
405
+ * the underlying infrastructure to get the data object to operate.
406
+ * @param initialState - The initial state to provide to the created component.
407
+ * @param packagePath - The path to the data store factory to use to create the data object.
408
+ * @param loadingGroupId - NOT production ready, EXPERIMENTAL, please read {@link https://github.com/microsoft/FluidFramework/blob/main/packages/runtime/container-runtime/README.md | README}. The service needs to support this feature, does not work for most services
409
+ * @returns an array containing the object created by this factory and an IDataStore object that enables users to
410
+ * alias the data object.
411
+ * The data object is attached only when it is attached to the handle graph that connects to an aliased object or
412
+ * when the data object is aliased.
413
+ */
414
+ createInstanceWithDataStore(containerRuntime: IContainerRuntimeBase, initialState?: I["InitialState"], packagePath?: Readonly<string[]>, loadingGroupId?: string): Promise<[TObj, IDataStore]>;
335
415
  /**
336
416
  * Creates a new root instance of the object. Uses container's registry to find this factory.
337
417
  * It's expected that only container owners would use this functionality, as only such developers
@@ -341,9 +421,12 @@ export declare class PureDataObjectFactory<TObj extends PureDataObject<I>, I ext
341
421
  * @param initialState - The initial state to provide to the created component.
342
422
  * @returns an object created by this factory. Data store and objects created are not attached to container.
343
423
  * They get attached only when a handle to one of them is attached to already attached objects.
424
+ *
425
+ * @deprecated - the issue is that it does not allow the customer to decide the conflict resolution policy when an
426
+ * aliasing conflict occurs. Use {@link PureDataObjectFactory.createInstanceWithDataStore} instead.
344
427
  */
345
428
  createRootInstance(rootDataStoreId: string, runtime: IContainerRuntime, initialState?: I["InitialState"]): Promise<TObj>;
346
- protected createNonRootInstanceCore(containerRuntime: IContainerRuntimeBase, packagePath: Readonly<string[]>, initialState?: I["InitialState"]): Promise<TObj>;
429
+ protected createNonRootInstanceCore(containerRuntime: IContainerRuntimeBase, packagePath: Readonly<string[]>, initialState?: I["InitialState"], loadingGroupId?: string): Promise<TObj>;
347
430
  protected createInstanceCore(context: IFluidDataStoreContextDetached, initialState?: I["InitialState"]): Promise<TObj>;
348
431
  }
349
432