@itwin/core-backend 3.5.0-dev.7 → 3.6.0-dev.1

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 (140) hide show
  1. package/CHANGELOG.md +92 -1
  2. package/lib/cjs/BriefcaseManager.d.ts +7 -2
  3. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  4. package/lib/cjs/BriefcaseManager.js +11 -3
  5. package/lib/cjs/BriefcaseManager.js.map +1 -1
  6. package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
  7. package/lib/cjs/ChangeSummaryManager.js +2 -0
  8. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  9. package/lib/cjs/ClassRegistry.d.ts +8 -0
  10. package/lib/cjs/ClassRegistry.d.ts.map +1 -1
  11. package/lib/cjs/ClassRegistry.js +47 -13
  12. package/lib/cjs/ClassRegistry.js.map +1 -1
  13. package/lib/cjs/CloudSqlite.d.ts +1 -0
  14. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  15. package/lib/cjs/CloudSqlite.js +1 -0
  16. package/lib/cjs/CloudSqlite.js.map +1 -1
  17. package/lib/cjs/ConcurrentQuery.d.ts +3 -1
  18. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  19. package/lib/cjs/ConcurrentQuery.js +6 -0
  20. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  21. package/lib/cjs/CustomViewState3dCreator.d.ts +3 -14
  22. package/lib/cjs/CustomViewState3dCreator.d.ts.map +1 -1
  23. package/lib/cjs/CustomViewState3dCreator.js +11 -43
  24. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  25. package/lib/cjs/DisplayStyle.d.ts +9 -9
  26. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  27. package/lib/cjs/DisplayStyle.js +12 -12
  28. package/lib/cjs/DisplayStyle.js.map +1 -1
  29. package/lib/cjs/Element.d.ts +23 -30
  30. package/lib/cjs/Element.d.ts.map +1 -1
  31. package/lib/cjs/Element.js +42 -46
  32. package/lib/cjs/Element.js.map +1 -1
  33. package/lib/cjs/ElementAspect.d.ts +24 -4
  34. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  35. package/lib/cjs/ElementAspect.js +35 -2
  36. package/lib/cjs/ElementAspect.js.map +1 -1
  37. package/lib/cjs/Entity.d.ts +31 -1
  38. package/lib/cjs/Entity.d.ts.map +1 -1
  39. package/lib/cjs/Entity.js +52 -0
  40. package/lib/cjs/Entity.js.map +1 -1
  41. package/lib/cjs/EntityReferences.d.ts +50 -0
  42. package/lib/cjs/EntityReferences.d.ts.map +1 -0
  43. package/lib/cjs/EntityReferences.js +96 -0
  44. package/lib/cjs/EntityReferences.js.map +1 -0
  45. package/lib/cjs/ExternalSource.d.ts +3 -1
  46. package/lib/cjs/ExternalSource.d.ts.map +1 -1
  47. package/lib/cjs/ExternalSource.js +6 -0
  48. package/lib/cjs/ExternalSource.js.map +1 -1
  49. package/lib/cjs/GeoCoordConfig.d.ts.map +1 -1
  50. package/lib/cjs/GeoCoordConfig.js +10 -7
  51. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  52. package/lib/cjs/HubMock.d.ts +1 -0
  53. package/lib/cjs/HubMock.d.ts.map +1 -1
  54. package/lib/cjs/HubMock.js +34 -2
  55. package/lib/cjs/HubMock.js.map +1 -1
  56. package/lib/cjs/IModelCloneContext.d.ts +5 -82
  57. package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
  58. package/lib/cjs/IModelCloneContext.js +7 -142
  59. package/lib/cjs/IModelCloneContext.js.map +1 -1
  60. package/lib/cjs/IModelDb.d.ts +21 -2
  61. package/lib/cjs/IModelDb.d.ts.map +1 -1
  62. package/lib/cjs/IModelDb.js +64 -14
  63. package/lib/cjs/IModelDb.js.map +1 -1
  64. package/lib/cjs/IModelElementCloneContext.d.ts +90 -0
  65. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -0
  66. package/lib/cjs/IModelElementCloneContext.js +160 -0
  67. package/lib/cjs/IModelElementCloneContext.js.map +1 -0
  68. package/lib/cjs/IModelHost.d.ts +9 -0
  69. package/lib/cjs/IModelHost.d.ts.map +1 -1
  70. package/lib/cjs/IModelHost.js +9 -2
  71. package/lib/cjs/IModelHost.js.map +1 -1
  72. package/lib/cjs/IpcHost.d.ts +6 -0
  73. package/lib/cjs/IpcHost.d.ts.map +1 -1
  74. package/lib/cjs/IpcHost.js +47 -3
  75. package/lib/cjs/IpcHost.js.map +1 -1
  76. package/lib/cjs/Model.d.ts +8 -2
  77. package/lib/cjs/Model.d.ts.map +1 -1
  78. package/lib/cjs/Model.js +15 -1
  79. package/lib/cjs/Model.js.map +1 -1
  80. package/lib/cjs/NativeHost.d.ts.map +1 -1
  81. package/lib/cjs/NativeHost.js +10 -15
  82. package/lib/cjs/NativeHost.js.map +1 -1
  83. package/lib/cjs/PromiseMemoizer.d.ts +4 -4
  84. package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
  85. package/lib/cjs/PromiseMemoizer.js +44 -44
  86. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  87. package/lib/cjs/Relationship.d.ts +18 -2
  88. package/lib/cjs/Relationship.d.ts.map +1 -1
  89. package/lib/cjs/Relationship.js +30 -1
  90. package/lib/cjs/Relationship.js.map +1 -1
  91. package/lib/cjs/RpcBackend.d.ts +0 -23
  92. package/lib/cjs/RpcBackend.d.ts.map +1 -1
  93. package/lib/cjs/RpcBackend.js +13 -108
  94. package/lib/cjs/RpcBackend.js.map +1 -1
  95. package/lib/cjs/SqliteStatement.d.ts +81 -4
  96. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  97. package/lib/cjs/SqliteStatement.js +163 -25
  98. package/lib/cjs/SqliteStatement.js.map +1 -1
  99. package/lib/cjs/ViewDefinition.d.ts +14 -10
  100. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  101. package/lib/cjs/ViewDefinition.js +31 -20
  102. package/lib/cjs/ViewDefinition.js.map +1 -1
  103. package/lib/cjs/ViewStateHydrator.js +2 -2
  104. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  105. package/lib/cjs/core-backend.d.ts +4 -2
  106. package/lib/cjs/core-backend.d.ts.map +1 -1
  107. package/lib/cjs/core-backend.js +4 -2
  108. package/lib/cjs/core-backend.js.map +1 -1
  109. package/lib/cjs/rpc/multipart.d.ts +12 -0
  110. package/lib/cjs/rpc/multipart.d.ts.map +1 -0
  111. package/lib/cjs/rpc/multipart.js +71 -0
  112. package/lib/cjs/rpc/multipart.js.map +1 -0
  113. package/lib/cjs/rpc/tracing.d.ts +29 -0
  114. package/lib/cjs/rpc/tracing.d.ts.map +1 -0
  115. package/lib/cjs/rpc/tracing.js +74 -0
  116. package/lib/cjs/rpc/tracing.js.map +1 -0
  117. package/lib/cjs/rpc/web/logging.d.ts +10 -0
  118. package/lib/cjs/rpc/web/logging.d.ts.map +1 -0
  119. package/lib/cjs/rpc/web/logging.js +43 -0
  120. package/lib/cjs/rpc/web/logging.js.map +1 -0
  121. package/lib/cjs/rpc/web/request.d.ts +7 -0
  122. package/lib/cjs/rpc/web/request.d.ts.map +1 -0
  123. package/lib/cjs/rpc/web/request.js +74 -0
  124. package/lib/cjs/rpc/web/request.js.map +1 -0
  125. package/lib/cjs/rpc/web/response.d.ts +7 -0
  126. package/lib/cjs/rpc/web/response.d.ts.map +1 -0
  127. package/lib/cjs/rpc/web/response.js +106 -0
  128. package/lib/cjs/rpc/web/response.js.map +1 -0
  129. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +4 -2
  130. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
  131. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +80 -51
  132. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  133. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -1
  134. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +13 -15
  135. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  136. package/lib/cjs/workspace/Workspace.d.ts +1 -1
  137. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  138. package/lib/cjs/workspace/Workspace.js +2 -2
  139. package/lib/cjs/workspace/Workspace.js.map +1 -1
  140. package/package.json +14 -14
@@ -236,21 +236,14 @@ class Element extends Entity_1.Entity {
236
236
  collectPredecessorIds(predecessorIds) {
237
237
  return this.collectReferenceIds(predecessorIds);
238
238
  }
239
- /** Collect the Ids of this entity's *references* at this level of the class hierarchy.
240
- * A *reference* is any entity referenced by this entity's EC Data
241
- * This is important for cloning operations but can be useful in other situations as well.
242
- * @param referenceIds The Id64Set to populate with reference Ids.
243
- * @note In order to clone/transform an entity, all referenced elements must have been previously cloned and remapped within the [IModelCloneContext]($backend).
244
- * @note This should be overridden (with `super` called) at each level the class hierarchy that introduces references.
245
- * @see getReferenceIds
246
- * @beta
247
- */
248
- collectReferenceIds(referenceIds) {
249
- referenceIds.add(this.model); // The modeledElement is a reference
239
+ /** @internal */
240
+ collectReferenceConcreteIds(referenceIds) {
241
+ super.collectReferenceConcreteIds(referenceIds);
242
+ referenceIds.addModel(this.model); // The modeledElement is a reference
250
243
  if (this.code.scope && core_bentley_1.Id64.isValidId64(this.code.scope))
251
- referenceIds.add(this.code.scope); // The element that scopes the code is a reference
244
+ referenceIds.addElement(this.code.scope); // The element that scopes the code is a reference
252
245
  if (this.parent)
253
- referenceIds.add(this.parent.id); // A parent element is a reference
246
+ referenceIds.addElement(this.parent.id); // A parent element is a reference
254
247
  }
255
248
  /** Get the Ids of this element's *references*. A *reference* is any element whose id is stored in the EC data of this element
256
249
  * This is important for cloning operations but can be useful in other situations as well.
@@ -260,16 +253,6 @@ class Element extends Entity_1.Entity {
260
253
  getPredecessorIds() {
261
254
  return this.getReferenceIds();
262
255
  }
263
- /** Get the Ids of this element's *references*. A *reference* is an element that this element references.
264
- * This is important for cloning operations but can be useful in other situations as well.
265
- * @see collectReferenceIds
266
- * @beta
267
- */
268
- getReferenceIds() {
269
- const referenceIds = new Set();
270
- this.collectReferenceIds(referenceIds);
271
- return referenceIds;
272
- }
273
256
  /** Get the class metadata for this element. */
274
257
  getClassMetaData() { return this.iModel.classMetaDataRegistry.find(this.classFullName); }
275
258
  getAllUserProperties() {
@@ -311,11 +294,19 @@ class Element extends Entity_1.Entity {
311
294
  exports.Element = Element;
312
295
  /** A *required reference* is an element that had to be inserted before this element could have been inserted.
313
296
  * This is the list of property keys on this element that store references to those elements
314
- * @note This should be overridden (with `super` called) at each level the class hierarchy that introduces required references.
297
+ * @note This should be overridden (with `super` called) at each level of the class hierarchy that introduces required references.
315
298
  * @note any property listed here must be added to the reference ids in [[collectReferenceIds]]
316
299
  * @beta
317
300
  */
318
301
  Element.requiredReferenceKeys = ["parent", "model"];
302
+ /** A map of every [[requiredReferenceKeys]] on this class to their entity type.
303
+ * @note This should be overridden (with `super` called) at each level of the class hierarchy that introduces required references.
304
+ * @alpha
305
+ */
306
+ Element.requiredReferenceKeyTypeMap = {
307
+ parent: core_common_1.ConcreteEntityTypes.Element,
308
+ model: core_common_1.ConcreteEntityTypes.Model,
309
+ };
319
310
  /** An abstract base class to model real world entities that intrinsically have geometry.
320
311
  * @public
321
312
  */
@@ -344,9 +335,9 @@ class GeometricElement extends (_b = Element) {
344
335
  return val;
345
336
  }
346
337
  /** @internal */
347
- collectReferenceIds(referenceIds) {
348
- super.collectReferenceIds(referenceIds);
349
- referenceIds.add(this.category);
338
+ collectReferenceConcreteIds(referenceIds) {
339
+ super.collectReferenceConcreteIds(referenceIds);
340
+ referenceIds.addElement(this.category);
350
341
  // TODO: GeometryPartIds?
351
342
  }
352
343
  }
@@ -354,6 +345,11 @@ exports.GeometricElement = GeometricElement;
354
345
  _a = GeometricElement;
355
346
  /** @beta */
356
347
  GeometricElement.requiredReferenceKeys = [...Reflect.get(_b, "requiredReferenceKeys", _a), "category"];
348
+ /** @alpha */
349
+ GeometricElement.requiredReferenceKeyTypeMap = {
350
+ ...Reflect.get(_b, "requiredReferenceKeyTypeMap", _a),
351
+ category: core_common_1.ConcreteEntityTypes.Element,
352
+ };
357
353
  /** An abstract base class to model real world entities that intrinsically have 3d geometry.
358
354
  * See [how to create a GeometricElement3d]($docs/learning/backend/CreateElements.md#GeometricElement3d).
359
355
  * @public
@@ -377,10 +373,10 @@ class GeometricElement3d extends GeometricElement {
377
373
  return val;
378
374
  }
379
375
  /** @internal */
380
- collectReferenceIds(referenceIds) {
381
- super.collectReferenceIds(referenceIds);
376
+ collectReferenceConcreteIds(referenceIds) {
377
+ super.collectReferenceConcreteIds(referenceIds);
382
378
  if (undefined !== this.typeDefinition)
383
- referenceIds.add(this.typeDefinition.id);
379
+ referenceIds.addElement(this.typeDefinition.id);
384
380
  }
385
381
  }
386
382
  exports.GeometricElement3d = GeometricElement3d;
@@ -416,10 +412,10 @@ class GeometricElement2d extends GeometricElement {
416
412
  return val;
417
413
  }
418
414
  /** @internal */
419
- collectReferenceIds(referenceIds) {
420
- super.collectReferenceIds(referenceIds);
415
+ collectReferenceConcreteIds(referenceIds) {
416
+ super.collectReferenceConcreteIds(referenceIds);
421
417
  if (undefined !== this.typeDefinition)
422
- referenceIds.add(this.typeDefinition.id);
418
+ referenceIds.addElement(this.typeDefinition.id);
423
419
  }
424
420
  }
425
421
  exports.GeometricElement2d = GeometricElement2d;
@@ -747,10 +743,10 @@ class SheetTemplate extends Document {
747
743
  /** @internal */
748
744
  static get className() { return "SheetTemplate"; }
749
745
  /** @internal */
750
- collectReferenceIds(referenceIds) {
751
- super.collectReferenceIds(referenceIds);
746
+ collectReferenceConcreteIds(referenceIds) {
747
+ super.collectReferenceConcreteIds(referenceIds);
752
748
  if (undefined !== this.border)
753
- referenceIds.add(this.border);
749
+ referenceIds.addElement(this.border);
754
750
  }
755
751
  }
756
752
  exports.SheetTemplate = SheetTemplate;
@@ -769,10 +765,10 @@ class Sheet extends Document {
769
765
  /** @internal */
770
766
  static get className() { return "Sheet"; }
771
767
  /** @internal */
772
- collectReferenceIds(referenceIds) {
773
- super.collectReferenceIds(referenceIds);
768
+ collectReferenceConcreteIds(referenceIds) {
769
+ super.collectReferenceConcreteIds(referenceIds);
774
770
  if (undefined !== this.sheetTemplate)
775
- referenceIds.add(this.sheetTemplate);
771
+ referenceIds.addElement(this.sheetTemplate);
776
772
  }
777
773
  /** Create a Code for a Sheet given a name that is meant to be unique within the scope of the specified DocumentListModel.
778
774
  * @param iModel The IModelDb
@@ -907,10 +903,10 @@ class TypeDefinitionElement extends DefinitionElement {
907
903
  /** @internal */
908
904
  static get className() { return "TypeDefinitionElement"; }
909
905
  /** @internal */
910
- collectReferenceIds(referenceIds) {
911
- super.collectReferenceIds(referenceIds);
906
+ collectReferenceConcreteIds(referenceIds) {
907
+ super.collectReferenceConcreteIds(referenceIds);
912
908
  if (undefined !== this.recipe)
913
- referenceIds.add(this.recipe.id);
909
+ referenceIds.addElement(this.recipe.id);
914
910
  }
915
911
  }
916
912
  exports.TypeDefinitionElement = TypeDefinitionElement;
@@ -1378,11 +1374,11 @@ class RenderTimeline extends InformationRecordElement {
1378
1374
  return [];
1379
1375
  }
1380
1376
  }
1381
- /** @alpha */
1382
- collectReferenceIds(ids) {
1383
- super.collectReferenceIds(ids);
1377
+ /** @internal */
1378
+ collectReferenceConcreteIds(ids) {
1379
+ super.collectReferenceConcreteIds(ids);
1384
1380
  const script = core_common_1.RenderSchedule.Script.fromJSON(this.scriptProps);
1385
- script === null || script === void 0 ? void 0 : script.discloseIds(ids);
1381
+ script === null || script === void 0 ? void 0 : script.discloseIds(ids); // eslint-disable-line deprecation/deprecation
1386
1382
  }
1387
1383
  /** @alpha */
1388
1384
  static onCloned(context, sourceProps, targetProps) {