@itwin/core-backend 5.13.0-dev.2 → 5.13.0-dev.20

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 (642) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.d.ts +4 -4
  9. package/lib/cjs/Category.js.map +1 -1
  10. package/lib/cjs/ChangeSummaryManager.js +2 -2
  11. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  12. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  13. package/lib/cjs/ChangesetECAdaptor.d.ts +5 -0
  14. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  15. package/lib/cjs/ChangesetECAdaptor.js +261 -251
  16. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  17. package/lib/cjs/ChangesetReader.js +3 -3
  18. package/lib/cjs/ChangesetReader.js.map +1 -1
  19. package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
  20. package/lib/cjs/ChannelControl.js.map +1 -1
  21. package/lib/cjs/CheckpointManager.d.ts +3 -0
  22. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  23. package/lib/cjs/CheckpointManager.js +8 -2
  24. package/lib/cjs/CheckpointManager.js.map +1 -1
  25. package/lib/cjs/ClassRegistry.js +10 -10
  26. package/lib/cjs/ClassRegistry.js.map +1 -1
  27. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  28. package/lib/cjs/CloudSqlite.js +19 -8
  29. package/lib/cjs/CloudSqlite.js.map +1 -1
  30. package/lib/cjs/CodeService.js.map +1 -1
  31. package/lib/cjs/CodeSpecs.d.ts +3 -3
  32. package/lib/cjs/CodeSpecs.js.map +1 -1
  33. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  34. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  35. package/lib/cjs/DevTools.js.map +1 -1
  36. package/lib/cjs/DisplayStyle.d.ts +2 -2
  37. package/lib/cjs/DisplayStyle.js.map +1 -1
  38. package/lib/cjs/ECDb.js.map +1 -1
  39. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  40. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  41. package/lib/cjs/ECSqlStatement.js.map +1 -1
  42. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  43. package/lib/cjs/EditTxn.d.ts.map +1 -1
  44. package/lib/cjs/EditTxn.js +1 -0
  45. package/lib/cjs/EditTxn.js.map +1 -1
  46. package/lib/cjs/Element.d.ts +48 -12
  47. package/lib/cjs/Element.d.ts.map +1 -1
  48. package/lib/cjs/Element.js +120 -24
  49. package/lib/cjs/Element.js.map +1 -1
  50. package/lib/cjs/ElementAspect.js.map +1 -1
  51. package/lib/cjs/ElementGraphics.js.map +1 -1
  52. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  53. package/lib/cjs/Entity.js.map +1 -1
  54. package/lib/cjs/EntityReferences.js +2 -2
  55. package/lib/cjs/EntityReferences.js.map +1 -1
  56. package/lib/cjs/ExportGraphics.js.map +1 -1
  57. package/lib/cjs/ExternalSource.js.map +1 -1
  58. package/lib/cjs/FontFile.js.map +1 -1
  59. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  60. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  61. package/lib/cjs/GeometrySummary.js +47 -47
  62. package/lib/cjs/GeometrySummary.js.map +1 -1
  63. package/lib/cjs/IModelDb.d.ts +76 -23
  64. package/lib/cjs/IModelDb.d.ts.map +1 -1
  65. package/lib/cjs/IModelDb.js +150 -41
  66. package/lib/cjs/IModelDb.js.map +1 -1
  67. package/lib/cjs/IModelDbFonts.js.map +1 -1
  68. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  69. package/lib/cjs/IModelHost.d.ts.map +1 -1
  70. package/lib/cjs/IModelHost.js +3 -0
  71. package/lib/cjs/IModelHost.js.map +1 -1
  72. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  73. package/lib/cjs/IModelJsFs.js.map +1 -1
  74. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  75. package/lib/cjs/IpcHost.js.map +1 -1
  76. package/lib/cjs/LineStyle.js.map +1 -1
  77. package/lib/cjs/LocalHub.js +1 -1
  78. package/lib/cjs/LocalHub.js.map +1 -1
  79. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  80. package/lib/cjs/LockControl.js.map +1 -1
  81. package/lib/cjs/Material.js.map +1 -1
  82. package/lib/cjs/Model.d.ts +5 -5
  83. package/lib/cjs/Model.d.ts.map +1 -1
  84. package/lib/cjs/Model.js.map +1 -1
  85. package/lib/cjs/NativeAppStorage.js.map +1 -1
  86. package/lib/cjs/NativeHost.js.map +1 -1
  87. package/lib/cjs/NavigationRelationship.js.map +1 -1
  88. package/lib/cjs/PartialChangeUnifier.js +7 -7
  89. package/lib/cjs/PartialChangeUnifier.js.map +1 -1
  90. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  91. package/lib/cjs/PropertyStore.js +1 -1
  92. package/lib/cjs/PropertyStore.js.map +1 -1
  93. package/lib/cjs/Relationship.js.map +1 -1
  94. package/lib/cjs/RpcBackend.js.map +1 -1
  95. package/lib/cjs/SQLiteDb.js.map +1 -1
  96. package/lib/cjs/Schema.js.map +1 -1
  97. package/lib/cjs/SchemaSync.d.ts +37 -9
  98. package/lib/cjs/SchemaSync.d.ts.map +1 -1
  99. package/lib/cjs/SchemaSync.js +125 -6
  100. package/lib/cjs/SchemaSync.js.map +1 -1
  101. package/lib/cjs/SchemaUtils.js.map +1 -1
  102. package/lib/cjs/SheetIndex.js.map +1 -1
  103. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  104. package/lib/cjs/SqliteStatement.js.map +1 -1
  105. package/lib/cjs/StashManager.js.map +1 -1
  106. package/lib/cjs/SynchronousChannel.d.ts +62 -0
  107. package/lib/cjs/SynchronousChannel.d.ts.map +1 -0
  108. package/lib/cjs/SynchronousChannel.js +11 -0
  109. package/lib/cjs/SynchronousChannel.js.map +1 -0
  110. package/lib/cjs/Texture.d.ts +1 -1
  111. package/lib/cjs/Texture.js.map +1 -1
  112. package/lib/cjs/TileStorage.js.map +1 -1
  113. package/lib/cjs/TxnManager.d.ts +44 -4
  114. package/lib/cjs/TxnManager.d.ts.map +1 -1
  115. package/lib/cjs/TxnManager.js +72 -14
  116. package/lib/cjs/TxnManager.js.map +1 -1
  117. package/lib/cjs/ViewDefinition.d.ts +6 -6
  118. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  119. package/lib/cjs/ViewDefinition.js.map +1 -1
  120. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  121. package/lib/cjs/ViewStore.js.map +1 -1
  122. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  123. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  124. package/lib/cjs/annotations/LeaderGeometry.d.ts +22 -7
  125. package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -1
  126. package/lib/cjs/annotations/LeaderGeometry.js +104 -36
  127. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  128. package/lib/cjs/annotations/TextAnnotationElement.d.ts +1 -1
  129. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  130. package/lib/cjs/annotations/TextAnnotationElement.js +25 -10
  131. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  132. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  133. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  134. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  135. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  136. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +36 -36
  137. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +28 -28
  138. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  139. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  140. package/lib/cjs/core-backend.d.ts +1 -0
  141. package/lib/cjs/core-backend.d.ts.map +1 -1
  142. package/lib/cjs/core-backend.js +1 -0
  143. package/lib/cjs/core-backend.js.map +1 -1
  144. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  145. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  146. package/lib/cjs/domains/GenericElements.js.map +1 -1
  147. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  148. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  149. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  150. package/lib/cjs/internal/ECSqlInstanceReshaper.js.map +1 -1
  151. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  152. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  153. package/lib/cjs/internal/HubMock.js.map +1 -1
  154. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  155. package/lib/cjs/internal/IntegrityCheck.d.ts +22 -0
  156. package/lib/cjs/internal/IntegrityCheck.d.ts.map +1 -1
  157. package/lib/cjs/internal/IntegrityCheck.js +13 -0
  158. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  159. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  160. package/lib/cjs/internal/NoLocks.js.map +1 -1
  161. package/lib/cjs/internal/NoReservations.d.ts +6 -0
  162. package/lib/cjs/internal/NoReservations.d.ts.map +1 -0
  163. package/lib/cjs/internal/NoReservations.js +21 -0
  164. package/lib/cjs/internal/NoReservations.js.map +1 -0
  165. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  166. package/lib/cjs/internal/SchemaSyncReservations.d.ts +4 -0
  167. package/lib/cjs/internal/SchemaSyncReservations.d.ts.map +1 -0
  168. package/lib/cjs/internal/SchemaSyncReservations.js +118 -0
  169. package/lib/cjs/internal/SchemaSyncReservations.js.map +1 -0
  170. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  171. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  172. package/lib/cjs/internal/Symbols.d.ts +1 -0
  173. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  174. package/lib/cjs/internal/Symbols.js +2 -1
  175. package/lib/cjs/internal/Symbols.js.map +1 -1
  176. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  177. package/lib/cjs/internal/cross-package.js.map +1 -1
  178. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  179. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  180. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  181. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  182. package/lib/cjs/internal/workspace/WorkspaceImpl.js +7 -2
  183. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  184. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  185. package/lib/cjs/rpc/multipart.js.map +1 -1
  186. package/lib/cjs/rpc/tracing.js.map +1 -1
  187. package/lib/cjs/rpc/web/logging.js.map +1 -1
  188. package/lib/cjs/rpc/web/request.js.map +1 -1
  189. package/lib/cjs/rpc/web/response.js.map +1 -1
  190. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  191. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  192. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  193. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  194. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  195. package/lib/cjs/workspace/Settings.js.map +1 -1
  196. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  197. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  198. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  199. package/lib/cjs/workspace/Workspace.js.map +1 -1
  200. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  201. package/lib/esm/BackendHubAccess.js.map +1 -1
  202. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  203. package/lib/esm/BisCoreSchema.js.map +1 -1
  204. package/lib/esm/BlobContainerService.js.map +1 -1
  205. package/lib/esm/BriefcaseManager.js.map +1 -1
  206. package/lib/esm/CatalogDb.js.map +1 -1
  207. package/lib/esm/Category.d.ts +4 -4
  208. package/lib/esm/Category.js.map +1 -1
  209. package/lib/esm/ChangeSummaryManager.js +2 -2
  210. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  211. package/lib/esm/ChangedElementsDb.js.map +1 -1
  212. package/lib/esm/ChangesetECAdaptor.d.ts +5 -0
  213. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  214. package/lib/esm/ChangesetECAdaptor.js +261 -251
  215. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  216. package/lib/esm/ChangesetReader.js +3 -3
  217. package/lib/esm/ChangesetReader.js.map +1 -1
  218. package/lib/esm/ChangesetReaderTypes.js.map +1 -1
  219. package/lib/esm/ChannelControl.js.map +1 -1
  220. package/lib/esm/CheckpointManager.d.ts +3 -0
  221. package/lib/esm/CheckpointManager.d.ts.map +1 -1
  222. package/lib/esm/CheckpointManager.js +8 -2
  223. package/lib/esm/CheckpointManager.js.map +1 -1
  224. package/lib/esm/ClassRegistry.js +6 -6
  225. package/lib/esm/ClassRegistry.js.map +1 -1
  226. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  227. package/lib/esm/CloudSqlite.js +19 -8
  228. package/lib/esm/CloudSqlite.js.map +1 -1
  229. package/lib/esm/CodeService.js.map +1 -1
  230. package/lib/esm/CodeSpecs.d.ts +3 -3
  231. package/lib/esm/CodeSpecs.js.map +1 -1
  232. package/lib/esm/ConcurrentQuery.js.map +1 -1
  233. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  234. package/lib/esm/DevTools.js.map +1 -1
  235. package/lib/esm/DisplayStyle.d.ts +2 -2
  236. package/lib/esm/DisplayStyle.js.map +1 -1
  237. package/lib/esm/ECDb.js.map +1 -1
  238. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  239. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  240. package/lib/esm/ECSqlStatement.js.map +1 -1
  241. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  242. package/lib/esm/EditTxn.d.ts.map +1 -1
  243. package/lib/esm/EditTxn.js +1 -0
  244. package/lib/esm/EditTxn.js.map +1 -1
  245. package/lib/esm/Element.d.ts +48 -12
  246. package/lib/esm/Element.d.ts.map +1 -1
  247. package/lib/esm/Element.js +121 -25
  248. package/lib/esm/Element.js.map +1 -1
  249. package/lib/esm/ElementAspect.js.map +1 -1
  250. package/lib/esm/ElementGraphics.js.map +1 -1
  251. package/lib/esm/ElementTreeWalker.js.map +1 -1
  252. package/lib/esm/Entity.js.map +1 -1
  253. package/lib/esm/EntityReferences.js +1 -1
  254. package/lib/esm/EntityReferences.js.map +1 -1
  255. package/lib/esm/ExportGraphics.js.map +1 -1
  256. package/lib/esm/ExternalSource.js.map +1 -1
  257. package/lib/esm/FontFile.js.map +1 -1
  258. package/lib/esm/GeoCoordConfig.js.map +1 -1
  259. package/lib/esm/GeographicCRSServices.js.map +1 -1
  260. package/lib/esm/GeometrySummary.js +47 -47
  261. package/lib/esm/GeometrySummary.js.map +1 -1
  262. package/lib/esm/IModelDb.d.ts +76 -23
  263. package/lib/esm/IModelDb.d.ts.map +1 -1
  264. package/lib/esm/IModelDb.js +152 -43
  265. package/lib/esm/IModelDb.js.map +1 -1
  266. package/lib/esm/IModelDbFonts.js.map +1 -1
  267. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  268. package/lib/esm/IModelHost.d.ts.map +1 -1
  269. package/lib/esm/IModelHost.js +3 -0
  270. package/lib/esm/IModelHost.js.map +1 -1
  271. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  272. package/lib/esm/IModelJsFs.js.map +1 -1
  273. package/lib/esm/ImageSourceConversion.js.map +1 -1
  274. package/lib/esm/IpcHost.js.map +1 -1
  275. package/lib/esm/LineStyle.js.map +1 -1
  276. package/lib/esm/LocalHub.js +1 -1
  277. package/lib/esm/LocalHub.js.map +1 -1
  278. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  279. package/lib/esm/LockControl.js.map +1 -1
  280. package/lib/esm/Material.js.map +1 -1
  281. package/lib/esm/Model.d.ts +5 -5
  282. package/lib/esm/Model.d.ts.map +1 -1
  283. package/lib/esm/Model.js.map +1 -1
  284. package/lib/esm/NativeAppStorage.js.map +1 -1
  285. package/lib/esm/NativeHost.js.map +1 -1
  286. package/lib/esm/NavigationRelationship.js.map +1 -1
  287. package/lib/esm/PartialChangeUnifier.js +7 -7
  288. package/lib/esm/PartialChangeUnifier.js.map +1 -1
  289. package/lib/esm/PromiseMemoizer.js.map +1 -1
  290. package/lib/esm/PropertyStore.js +1 -1
  291. package/lib/esm/PropertyStore.js.map +1 -1
  292. package/lib/esm/Relationship.js.map +1 -1
  293. package/lib/esm/RpcBackend.js.map +1 -1
  294. package/lib/esm/SQLiteDb.js.map +1 -1
  295. package/lib/esm/Schema.js.map +1 -1
  296. package/lib/esm/SchemaSync.d.ts +37 -9
  297. package/lib/esm/SchemaSync.d.ts.map +1 -1
  298. package/lib/esm/SchemaSync.js +127 -8
  299. package/lib/esm/SchemaSync.js.map +1 -1
  300. package/lib/esm/SchemaUtils.js.map +1 -1
  301. package/lib/esm/SheetIndex.js.map +1 -1
  302. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  303. package/lib/esm/SqliteStatement.js.map +1 -1
  304. package/lib/esm/StashManager.js.map +1 -1
  305. package/lib/esm/SynchronousChannel.d.ts +62 -0
  306. package/lib/esm/SynchronousChannel.d.ts.map +1 -0
  307. package/lib/esm/SynchronousChannel.js +9 -0
  308. package/lib/esm/SynchronousChannel.js.map +1 -0
  309. package/lib/esm/Texture.d.ts +1 -1
  310. package/lib/esm/Texture.js.map +1 -1
  311. package/lib/esm/TileStorage.js.map +1 -1
  312. package/lib/esm/TxnManager.d.ts +44 -4
  313. package/lib/esm/TxnManager.d.ts.map +1 -1
  314. package/lib/esm/TxnManager.js +72 -14
  315. package/lib/esm/TxnManager.js.map +1 -1
  316. package/lib/esm/ViewDefinition.d.ts +6 -6
  317. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  318. package/lib/esm/ViewDefinition.js.map +1 -1
  319. package/lib/esm/ViewStateHydrator.js.map +1 -1
  320. package/lib/esm/ViewStore.js.map +1 -1
  321. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  322. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  323. package/lib/esm/annotations/LeaderGeometry.d.ts +22 -7
  324. package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -1
  325. package/lib/esm/annotations/LeaderGeometry.js +104 -36
  326. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  327. package/lib/esm/annotations/TextAnnotationElement.d.ts +1 -1
  328. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  329. package/lib/esm/annotations/TextAnnotationElement.js +25 -10
  330. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  331. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  332. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  333. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  334. package/lib/esm/core-backend.d.ts +1 -0
  335. package/lib/esm/core-backend.d.ts.map +1 -1
  336. package/lib/esm/core-backend.js +1 -0
  337. package/lib/esm/core-backend.js.map +1 -1
  338. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  339. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  340. package/lib/esm/domains/GenericElements.js.map +1 -1
  341. package/lib/esm/domains/GenericSchema.js.map +1 -1
  342. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  343. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  344. package/lib/esm/internal/ECSqlInstanceReshaper.js.map +1 -1
  345. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  346. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  347. package/lib/esm/internal/HubMock.js.map +1 -1
  348. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  349. package/lib/esm/internal/IntegrityCheck.d.ts +22 -0
  350. package/lib/esm/internal/IntegrityCheck.d.ts.map +1 -1
  351. package/lib/esm/internal/IntegrityCheck.js +13 -0
  352. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  353. package/lib/esm/internal/NativePlatform.js.map +1 -1
  354. package/lib/esm/internal/NoLocks.js.map +1 -1
  355. package/lib/esm/internal/NoReservations.d.ts +6 -0
  356. package/lib/esm/internal/NoReservations.d.ts.map +1 -0
  357. package/lib/esm/internal/NoReservations.js +18 -0
  358. package/lib/esm/internal/NoReservations.js.map +1 -0
  359. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  360. package/lib/esm/internal/SchemaSyncReservations.d.ts +4 -0
  361. package/lib/esm/internal/SchemaSyncReservations.d.ts.map +1 -0
  362. package/lib/esm/internal/SchemaSyncReservations.js +115 -0
  363. package/lib/esm/internal/SchemaSyncReservations.js.map +1 -0
  364. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  365. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  366. package/lib/esm/internal/Symbols.d.ts +1 -0
  367. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  368. package/lib/esm/internal/Symbols.js +1 -0
  369. package/lib/esm/internal/Symbols.js.map +1 -1
  370. package/lib/esm/internal/annotations/fields.js.map +1 -1
  371. package/lib/esm/internal/cross-package.js.map +1 -1
  372. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  373. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  374. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  375. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  376. package/lib/esm/internal/workspace/WorkspaceImpl.js +7 -2
  377. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  378. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  379. package/lib/esm/rpc/multipart.js.map +1 -1
  380. package/lib/esm/rpc/tracing.js.map +1 -1
  381. package/lib/esm/rpc/web/logging.js.map +1 -1
  382. package/lib/esm/rpc/web/request.js.map +1 -1
  383. package/lib/esm/rpc/web/response.js.map +1 -1
  384. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  385. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  386. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  387. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  388. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  389. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  390. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  391. package/lib/esm/test/AttachDb.test.js +11 -11
  392. package/lib/esm/test/AttachDb.test.js.map +1 -1
  393. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  394. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  395. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  396. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  397. package/lib/esm/test/IModelHost.test.js.map +1 -1
  398. package/lib/esm/test/IModelTestUtils.d.ts +1 -1
  399. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  400. package/lib/esm/test/IModelTestUtils.js +8 -3
  401. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  402. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  403. package/lib/esm/test/IpcHost.test.js.map +1 -1
  404. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  405. package/lib/esm/test/PrintElementTree.js.map +1 -1
  406. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  407. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +51 -51
  408. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -1
  409. package/lib/esm/test/SchemaUtils.test.js +25 -25
  410. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  411. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  412. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  413. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  414. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  415. package/lib/esm/test/TestEditTxn.js.map +1 -1
  416. package/lib/esm/test/TestUtils.js.map +1 -1
  417. package/lib/esm/test/annotations/Fields.test.js +53 -53
  418. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  419. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  420. package/lib/esm/test/annotations/LeaderGeometry.test.js +178 -2
  421. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  422. package/lib/esm/test/annotations/TextAnnotation.test.js +48 -18
  423. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  424. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  425. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  426. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  427. package/lib/esm/test/categories/Category.test.js.map +1 -1
  428. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  429. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  430. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  431. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  432. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  433. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  434. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  435. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  436. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  437. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  438. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  439. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  440. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  441. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  442. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  443. package/lib/esm/test/ecdb/ECSqlStatement.test.js +509 -332
  444. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  445. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +4 -4
  446. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  447. package/lib/esm/test/ecdb/QueryReaders.test.js +33 -47
  448. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  449. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  450. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  451. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  452. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  453. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  454. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +2 -2
  455. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  456. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  457. package/lib/esm/test/element/ElementAspect.test.js +176 -24
  458. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  459. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  460. package/lib/esm/test/element/ElementRoundTrip.test.js +224 -141
  461. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  462. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  463. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  464. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  465. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  466. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  467. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  468. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  469. package/lib/esm/test/example-code/EditTxn.test.d.ts +2 -0
  470. package/lib/esm/test/example-code/EditTxn.test.d.ts.map +1 -0
  471. package/lib/esm/test/example-code/EditTxn.test.js +47 -0
  472. package/lib/esm/test/example-code/EditTxn.test.js.map +1 -0
  473. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  474. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  475. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  476. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  477. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  478. package/lib/esm/test/hubaccess/CheckpointManager.test.js +43 -1
  479. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  480. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -1
  481. package/lib/esm/test/hubaccess/Rebase.test.js +56 -56
  482. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  483. package/lib/esm/test/hubaccess/SemanticRebase.test.js +345 -345
  484. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  485. package/lib/esm/test/imageData.js.map +1 -1
  486. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  487. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  488. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  489. package/lib/esm/test/imodel/IModelECSql.test.d.ts +2 -0
  490. package/lib/esm/test/imodel/IModelECSql.test.d.ts.map +1 -0
  491. package/lib/esm/test/imodel/IModelECSql.test.js +367 -0
  492. package/lib/esm/test/imodel/IModelECSql.test.js.map +1 -0
  493. package/lib/esm/test/imodel/IModelElements.test.d.ts +2 -0
  494. package/lib/esm/test/imodel/IModelElements.test.d.ts.map +1 -0
  495. package/lib/esm/test/imodel/IModelElements.test.js +969 -0
  496. package/lib/esm/test/imodel/IModelElements.test.js.map +1 -0
  497. package/lib/esm/test/imodel/IModelGeolocation.test.d.ts +2 -0
  498. package/lib/esm/test/imodel/IModelGeolocation.test.d.ts.map +1 -0
  499. package/lib/esm/test/imodel/IModelGeolocation.test.js +539 -0
  500. package/lib/esm/test/imodel/IModelGeolocation.test.js.map +1 -0
  501. package/lib/esm/test/imodel/IModelLifecycle.test.d.ts +2 -0
  502. package/lib/esm/test/imodel/IModelLifecycle.test.d.ts.map +1 -0
  503. package/lib/esm/test/imodel/IModelLifecycle.test.js +499 -0
  504. package/lib/esm/test/imodel/IModelLifecycle.test.js.map +1 -0
  505. package/lib/esm/test/imodel/IModelMetadata.test.d.ts +2 -0
  506. package/lib/esm/test/imodel/IModelMetadata.test.d.ts.map +1 -0
  507. package/lib/esm/test/imodel/IModelMetadata.test.js +274 -0
  508. package/lib/esm/test/imodel/IModelMetadata.test.js.map +1 -0
  509. package/lib/esm/test/imodel/IModelModels.test.d.ts +2 -0
  510. package/lib/esm/test/imodel/IModelModels.test.d.ts.map +1 -0
  511. package/lib/esm/test/imodel/IModelModels.test.js +357 -0
  512. package/lib/esm/test/imodel/IModelModels.test.js.map +1 -0
  513. package/lib/esm/test/imodel/IModelRelationships.test.d.ts +2 -0
  514. package/lib/esm/test/imodel/IModelRelationships.test.d.ts.map +1 -0
  515. package/lib/esm/test/imodel/IModelRelationships.test.js +407 -0
  516. package/lib/esm/test/imodel/IModelRelationships.test.js.map +1 -0
  517. package/lib/esm/test/imodel/IModelTestFixtures.d.ts +53 -0
  518. package/lib/esm/test/imodel/IModelTestFixtures.d.ts.map +1 -0
  519. package/lib/esm/test/imodel/IModelTestFixtures.js +107 -0
  520. package/lib/esm/test/imodel/IModelTestFixtures.js.map +1 -0
  521. package/lib/esm/test/imodel/IModelViews.test.d.ts +2 -0
  522. package/lib/esm/test/imodel/IModelViews.test.d.ts.map +1 -0
  523. package/lib/esm/test/imodel/IModelViews.test.js +199 -0
  524. package/lib/esm/test/imodel/IModelViews.test.js.map +1 -0
  525. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  526. package/lib/esm/test/imodel/SchemaXmlImport.test.js +21 -21
  527. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  528. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  529. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  530. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  531. package/lib/esm/test/index.d.ts +0 -1
  532. package/lib/esm/test/index.d.ts.map +1 -1
  533. package/lib/esm/test/index.js +0 -1
  534. package/lib/esm/test/index.js.map +1 -1
  535. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js +32 -32
  536. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js.map +1 -1
  537. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  538. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  539. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  540. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  541. package/lib/esm/test/rpc/response.test.js.map +1 -1
  542. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  543. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  544. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  545. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  546. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  547. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  548. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  549. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  550. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js +21 -21
  551. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js.map +1 -1
  552. package/lib/esm/test/schema/SchemaViewHidden.test.js +109 -109
  553. package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -1
  554. package/lib/esm/test/schema/SchemaViewKoQ.test.js +13 -13
  555. package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
  556. package/lib/esm/test/schema/SchemaViewLifecycle.test.js +15 -15
  557. package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -1
  558. package/lib/esm/test/schema/SchemaViewValidation.test.js +8 -8
  559. package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -1
  560. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  561. package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -1
  562. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  563. package/lib/esm/test/standalone/ChangesetReader.test.js +321 -339
  564. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  565. package/lib/esm/test/standalone/CloudSqlite.test.js +73 -0
  566. package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -1
  567. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  568. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
  569. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts +2 -0
  570. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts.map +1 -0
  571. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js +263 -0
  572. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js.map +1 -0
  573. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  574. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  575. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  576. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  577. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  578. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  579. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  580. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  581. package/lib/esm/test/standalone/GeometryStream.test.js +1 -3
  582. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  583. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  584. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  585. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  586. package/lib/esm/test/standalone/IModelWrite.test.js +105 -28
  587. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  588. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  589. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  590. package/lib/esm/test/standalone/IntegrityCheck.test.js +29 -10
  591. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  592. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  593. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  594. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  595. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  596. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  597. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +158 -135
  598. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
  599. package/lib/esm/test/standalone/SchemaSyncDb.test.d.ts +2 -0
  600. package/lib/esm/test/standalone/SchemaSyncDb.test.d.ts.map +1 -0
  601. package/lib/esm/test/standalone/SchemaSyncDb.test.js +221 -0
  602. package/lib/esm/test/standalone/SchemaSyncDb.test.js.map +1 -0
  603. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.d.ts +2 -0
  604. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.d.ts.map +1 -0
  605. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js +459 -0
  606. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js.map +1 -0
  607. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  608. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  609. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  610. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  611. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  612. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  613. package/lib/esm/test/standalone/SnapshotDb.test.js +1 -0
  614. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  615. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  616. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  617. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  618. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  619. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  620. package/lib/esm/test/standalone/TxnManager.test.js +108 -8
  621. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  622. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  623. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  624. package/lib/esm/test/standalone/Workspace.test.js +52 -0
  625. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  626. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  627. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  628. package/lib/esm/workspace/Settings.js.map +1 -1
  629. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  630. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  631. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  632. package/lib/esm/workspace/Workspace.js.map +1 -1
  633. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  634. package/package.json +19 -23
  635. package/lib/esm/test/RevisionUtility.d.ts +0 -33
  636. package/lib/esm/test/RevisionUtility.d.ts.map +0 -1
  637. package/lib/esm/test/RevisionUtility.js +0 -52
  638. package/lib/esm/test/RevisionUtility.js.map +0 -1
  639. package/lib/esm/test/imodel/IModel.test.d.ts +0 -2
  640. package/lib/esm/test/imodel/IModel.test.d.ts.map +0 -1
  641. package/lib/esm/test/imodel/IModel.test.js +0 -3279
  642. package/lib/esm/test/imodel/IModel.test.js.map +0 -1
@@ -8,8 +8,8 @@
8
8
  import * as fs from "fs";
9
9
  import { join } from "path";
10
10
  import * as touch from "touch";
11
- import { assert, BeEvent, BentleyStatus, ChangeSetStatus, DbChangeStage, DbConflictCause, DbConflictResolution, DbResult, Guid, Id64, IModelStatus, JsonUtils, Logger, LogLevel, LRUMap, OpenMode } from "@itwin/core-bentley";
12
- import { BriefcaseIdValue, Code, DomainOptions, ECJsNames, ECSqlReader, EditTxnError, EntityMetaData, FontMap, IModel, IModelError, IModelNotFoundResponse, ProfileOptions, QueryBinder, QueryRowFormat, resolveNavPropId, SchemaState, ViewStoreError, ViewStoreRpc } from "@itwin/core-common";
11
+ import { assert, BeEvent, BentleyStatus, ChangeSetStatus, DbChangeStage, DbConflictCause, DbConflictResolution, DbOpcode, DbResult, Guid, Id64, IModelStatus, JsonUtils, Logger, LogLevel, LRUMap, OpenMode } from "@itwin/core-bentley";
12
+ import { Base64EncodedString, BriefcaseIdValue, Code, DomainOptions, ECJsNames, ECSqlReader, EditTxnError, EntityMetaData, FontMap, IModel, IModelError, IModelNotFoundResponse, ProfileOptions, QueryBinder, QueryRowFormat, resolveNavPropId, SchemaState, ViewStoreError, ViewStoreRpc } from "@itwin/core-common";
13
13
  import { Range2d, Range3d } from "@itwin/core-geometry";
14
14
  import { BackendLoggerCategory } from "./BackendLoggerCategory";
15
15
  import { BriefcaseManager } from "./BriefcaseManager";
@@ -45,7 +45,9 @@ import { constructWorkspace, throwWorkspaceDbLoadErrors } from "./internal/works
45
45
  import { SettingsImpl } from "./internal/workspace/SettingsImpl";
46
46
  import { IModelNative } from "./internal/NativePlatform";
47
47
  import { createNoOpLockControl } from "./internal/NoLocks";
48
+ import { createNoOpReservations } from "./internal/NoReservations";
48
49
  import { createIModelDbFonts } from "./internal/IModelDbFontsImpl";
50
+ import { createSchemaSyncReservations } from "./internal/SchemaSyncReservations";
49
51
  import { _activeTxn, _cache, _close, _hubAccess, _implicitTxn, _instanceKeyCache, _nativeDb, _releaseAllLocks, _resetIModelDb } from "./internal/Symbols";
50
52
  import { ECVersion, SchemaContext, SchemaJsonLocater, SchemaManifest, SchemaViewManager } from "@itwin/ecschema-metadata";
51
53
  import { SchemaMap } from "./Schema";
@@ -175,6 +177,8 @@ export class IModelDb extends IModel {
175
177
  /** @internal */
176
178
  _locks = createNoOpLockControl();
177
179
  /** @internal */
180
+ _reservations = createNoOpReservations();
181
+ /** @internal */
178
182
  _codeService;
179
183
  /**
180
184
  * The always-available implicit transaction for this iModel.
@@ -185,12 +189,16 @@ export class IModelDb extends IModel {
185
189
  [_implicitTxn];
186
190
  /** @internal */
187
191
  [_activeTxn];
188
- /** Returns the active [[EditTxn]] if one is current, otherwise the implicit transaction.
189
- * Use this inside element and relationship callbacks that may be invoked either during an explicit transaction or
190
- * during indirect change processing.
191
- * @note This method is a temporary workaround until [[OnElementArg]] (and related callback arg types) are updated
192
- * to carry the transaction directly in a future PR.
193
- * @internal
192
+ /** Returns the transaction to use for additional edits from an element, model, or aspect callback.
193
+ * In callbacks whose arguments provide an [[IModelDb]] but no transaction, obtain this transaction through
194
+ * `arg.iModel.getIndirectTxn()` and pass it to APIs that accept an [[EditTxn]].
195
+ *
196
+ * If an explicit transaction is active, this returns that transaction. Otherwise, it returns the implicit transaction
197
+ * used by legacy write paths. Callbacks that receive an `indirectEditTxn` argument should use that transaction directly.
198
+ *
199
+ * @note The operation that invoked the callback owns the transaction. Callback implementations must not invoke transaction
200
+ * lifecycle methods such as [[EditTxn.start]], [[EditTxn.end]], [[EditTxn.saveChanges]], [[EditTxn.abandonChanges]], or [[EditTxn.onClose]].
201
+ * @beta
194
202
  */
195
203
  getIndirectTxn() {
196
204
  return this[_activeTxn] ?? this[_implicitTxn];
@@ -199,6 +207,16 @@ export class IModelDb extends IModel {
199
207
  get codeService() { return this._codeService; }
200
208
  /** The [[LockControl]] that orchestrates [concurrent editing]($docs/learning/backend/ConcurrencyControl.md) of this iModel. */
201
209
  get locks() { return this._locks; } // eslint-disable-line @typescript-eslint/no-non-null-assertion
210
+ /** @beta The [[SynchronousChannel.Reservations]] that orchestrates [concurrent editing]($docs/learning/backend/ConcurrencyControl.md) of this iModel. */
211
+ get reservations() { return this._reservations; } // eslint-disable-line @typescript-eslint/no-non-null-assertion
212
+ /** @internal */
213
+ async initializeSharedElementReservations() {
214
+ this._reservations?.[_close]();
215
+ if (SchemaSync.isEnabled(this))
216
+ this._reservations = await createSchemaSyncReservations(this);
217
+ else
218
+ this._reservations = createNoOpReservations();
219
+ }
202
220
  /** Provides methods for interacting with [font-related information]($docs/learning/backend/Fonts.md) stored in this iModel.
203
221
  * @beta
204
222
  */
@@ -356,8 +374,11 @@ export class IModelDb extends IModel {
356
374
  this.optimize();
357
375
  IModelDb._openDbs.delete(this._fileKey);
358
376
  this._workspace?.close();
377
+ this.views[_close]();
359
378
  this.locks[_close]();
360
379
  this._locks = undefined;
380
+ this.reservations[_close]();
381
+ this._reservations = undefined;
361
382
  this._codeService?.close();
362
383
  this._codeService = undefined;
363
384
  this[_nativeDb].closeFile();
@@ -2169,7 +2190,7 @@ function processSchemaWriteStatus(status) {
2169
2190
  * @param props The data for the new model.
2170
2191
  * @returns The newly inserted model's Id.
2171
2192
  * @throws [[IModelError]] if insertion fails.
2172
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2193
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2173
2194
  */
2174
2195
  insertModel(props) {
2175
2196
  return this._iModel[_implicitTxn].insertModel(props);
@@ -2177,7 +2198,7 @@ function processSchemaWriteStatus(status) {
2177
2198
  /** Update an existing model.
2178
2199
  * @param props the properties of the model to change
2179
2200
  * @throws [[IModelError]] if update fails.
2180
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2201
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2181
2202
  */
2182
2203
  updateModel(props) {
2183
2204
  this._iModel[_implicitTxn].updateModel(props);
@@ -2189,7 +2210,7 @@ function processSchemaWriteStatus(status) {
2189
2210
  * Cached [Tile]($frontend)s are only invalidated after the geometry guid of the model changes.
2190
2211
  * @note This will throw IModelError with [IModelStatus.VersionTooOld]($core-bentley) if a version of the BisCore schema older than 1.0.11 is present in the iModel.
2191
2212
  * @throws [[IModelError]] if the update fails.
2192
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateGeometryGuid instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2213
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateGeometryGuid instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2193
2214
  * @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
2194
2215
  */
2195
2216
  updateGeometryGuid(modelId) {
@@ -2198,7 +2219,7 @@ function processSchemaWriteStatus(status) {
2198
2219
  /** Delete one or more existing models.
2199
2220
  * @param ids The Ids of the models to be deleted
2200
2221
  * @throws [[IModelError]] if deletion fails.
2201
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2222
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2202
2223
  */
2203
2224
  deleteModel(ids) {
2204
2225
  this._iModel[_implicitTxn].deleteModel(ids);
@@ -2422,7 +2443,7 @@ function processSchemaWriteStatus(status) {
2422
2443
  * However when `elProps.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
2423
2444
  * the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
2424
2445
  * if you intend to continue working with it. That will ensure its values reflect the persistent state.
2425
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2446
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2426
2447
  */
2427
2448
  insertElement(elProps, options) {
2428
2449
  return this._iModel[_implicitTxn].insertElement(elProps, options);
@@ -2437,7 +2458,7 @@ function processSchemaWriteStatus(status) {
2437
2458
  * @note The values of `classFullName` and `model` *may not be changed* by this method. Further, it will permute the `elProps` object by adding or
2438
2459
  * overwriting their values to the correct values.
2439
2460
  * @throws [[ITwinError]] if update fails.
2440
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2461
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2441
2462
  */
2442
2463
  updateElement(elProps) {
2443
2464
  this._iModel[_implicitTxn].updateElement(elProps);
@@ -2446,7 +2467,7 @@ function processSchemaWriteStatus(status) {
2446
2467
  * @param ids The set of Ids of the element(s) to be deleted
2447
2468
  * @throws [[ITwinError]]
2448
2469
  * @see deleteDefinitionElements
2449
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2470
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2450
2471
  */
2451
2472
  deleteElement(ids) {
2452
2473
  this._iModel[_implicitTxn].deleteElement(ids);
@@ -2457,7 +2478,7 @@ function processSchemaWriteStatus(status) {
2457
2478
  * @param deleteOptions Options for the delete operation.
2458
2479
  * @returns A result object containing information about the deletion operation success and the element ids that failed to delete (if any).
2459
2480
  * @throws [[ITwinError]] if any of the supplied ids are not well-formed/valid [[Id64String]]s.
2460
- * @deprecated in 5.1.9 - will not be removed until after 2026-08-15. Use EditTxn.deleteElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2481
+ * @deprecated in 5.1.9 - might be removed in next major version. Use EditTxn.deleteElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2461
2482
  * @beta
2462
2483
  */
2463
2484
  deleteElements(ids, deleteOptions) {
@@ -2471,7 +2492,7 @@ function processSchemaWriteStatus(status) {
2471
2492
  * DefinitionElements rather than calling this method separately for each one. Ids that are not valid DefinitionElements will be ignored.
2472
2493
  * @returns An IdSet of the DefinitionElements that are used and were therefore not deleted.
2473
2494
  * @see deleteElement
2474
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteDefinitionElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2495
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteDefinitionElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2475
2496
  */
2476
2497
  deleteDefinitionElements(definitionElementIds) {
2477
2498
  return this._iModel[_implicitTxn].deleteDefinitionElements(definitionElementIds);
@@ -2574,21 +2595,27 @@ function processSchemaWriteStatus(status) {
2574
2595
  return this._queryAspect(aspectInstanceId, aspectClassFullName);
2575
2596
  }
2576
2597
  static classMap = new Map();
2598
+ getAspectPropsFromInstanceQuery(rawInstance) {
2599
+ const parsedRow = typeof rawInstance === "string" ? JSON.parse(rawInstance, Base64EncodedString.reviver) : rawInstance;
2600
+ if (!JsonUtils.isObject(parsedRow))
2601
+ throw new IModelError(IModelStatus.BadRequest, "Expected an ElementAspect instance query to return an object");
2602
+ const row = {};
2603
+ for (const [key, value] of Object.entries(parsedRow)) {
2604
+ const ecPropertyName = key.length === 0 ? key : key[0].toUpperCase() + key.substring(1);
2605
+ row[ECJsNames.toJsName(ecPropertyName)] = value;
2606
+ }
2607
+ const className = row.className;
2608
+ if (typeof className !== "string")
2609
+ throw new IModelError(IModelStatus.BadRequest, "Expected an ElementAspect instance query to return a className");
2610
+ row.classFullName = className.replace(".", ":"); // add in property required by EntityProps
2611
+ delete row.className; // clear property from SELECT $ that we don't want in the final instance
2612
+ return row;
2613
+ }
2577
2614
  runInstanceQuery(sql, elementId, excludedClassFullNames) {
2578
2615
  return this._iModel.withQueryReader(sql, (reader) => {
2579
2616
  const aspects = [];
2580
2617
  for (const queryRow of reader) {
2581
- const row = {};
2582
- const rawInstance = queryRow[0];
2583
- const parsedRow = typeof rawInstance === "string" ? JSON.parse(rawInstance) : rawInstance;
2584
- // eslint-disable-next-line guard-for-in
2585
- for (const key in parsedRow) {
2586
- const jsName = ECJsNames.toJsName(key[0].toUpperCase() + key.substring(1));
2587
- Object.defineProperty(row, jsName, { enumerable: true, configurable: true, writable: true, value: parsedRow[key] });
2588
- }
2589
- const aspectProps = row;
2590
- aspectProps.classFullName = aspectProps.className.replace(".", ":"); // add in property required by EntityProps
2591
- aspectProps.className = undefined; // clear property from SELECT $ that we don't want in the final instance
2618
+ const aspectProps = this.getAspectPropsFromInstanceQuery(queryRow[0]);
2592
2619
  if ((undefined === excludedClassFullNames) || !excludedClassFullNames.has(aspectProps.classFullName))
2593
2620
  aspects.push(this._iModel.constructEntity(aspectProps));
2594
2621
  }
@@ -2603,9 +2630,9 @@ function processSchemaWriteStatus(status) {
2603
2630
  */
2604
2631
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
2605
2632
  if (aspectClassFullName === undefined) {
2606
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2607
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2608
- UNION ALL
2633
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2634
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2635
+ UNION ALL
2609
2636
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2610
2637
  if (allAspects.length === 0)
2611
2638
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2624,7 +2651,7 @@ function processSchemaWriteStatus(status) {
2624
2651
  let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
2625
2652
  if (classIdList === undefined) {
2626
2653
  const classIds = [];
2627
- const sql = `select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name=:className
2654
+ const sql = `select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name=:className
2628
2655
  and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name=:schemaName)) and SourceECInstanceId != TargetECInstanceId`;
2629
2656
  this._iModel.withQueryReader(sql, (reader) => {
2630
2657
  for (const row of reader) {
@@ -2643,22 +2670,72 @@ function processSchemaWriteStatus(status) {
2643
2670
  return [];
2644
2671
  }
2645
2672
  // Execute an instance query to retrieve all aspects from all the derived classes
2646
- const aspects = this.runInstanceQuery(`SELECT $ FROM (
2647
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2648
- UNION ALL
2649
- SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2673
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
2674
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2675
+ UNION ALL
2676
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2650
2677
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2651
2678
  if (aspects.length === 0)
2652
2679
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
2653
2680
  return aspects;
2654
2681
  }
2682
+ /** Stream the [[ElementAspect]] instances owned by a set of elements.
2683
+ *
2684
+ * Use this method instead of calling [[getAspects]] repeatedly when reading aspects for multiple elements or when the result may be large. The query reads all requested owners together and yields each aspect without buffering the complete result set. For a single element with a small result, [[getAspects]] provides a simpler synchronous API.
2685
+ *
2686
+ * The order is unspecified unless [[QueryAspectOptions.groupByOwner]] is true.
2687
+ * @param options Defines the element Ids, class filters, result ordering, and query connection.
2688
+ * @returns An async iterator over the matching aspects.
2689
+ * @beta
2690
+ */
2691
+ async *queryAspects(options) {
2692
+ const elementIds = Id64.toIdSet(options.elementIds);
2693
+ if (elementIds.size === 0)
2694
+ return;
2695
+ const params = new QueryBinder().bindIdSet("elementIds", elementIds);
2696
+ const classFilter = options.aspectClassFullName === undefined ? "" : `AND aspect.ECClassId IN (
2697
+ SELECT SourceECInstanceId FROM meta.ClassHasAllBaseClasses
2698
+ WHERE TargetECInstanceId=ec_classid(:aspectClassFullName)
2699
+ )`;
2700
+ if (options.aspectClassFullName !== undefined)
2701
+ params.bindString("aspectClassFullName", options.aspectClassFullName.replace(".", ":"));
2702
+ const excludedClassIds = [];
2703
+ let excludedClassIndex = 0;
2704
+ for (const classFullName of options.excludedAspectClassFullNames ?? []) {
2705
+ const parameterName = `excludedAspectClass${excludedClassIndex++}`;
2706
+ excludedClassIds.push(`ec_classid(:${parameterName})`);
2707
+ params.bindString(parameterName, classFullName.replace(".", ":"));
2708
+ }
2709
+ const excludedClassFilter = excludedClassIds.length === 0 ? "" : `AND aspect.ECClassId NOT IN (
2710
+ SELECT ECInstanceId FROM meta.ECClassDef WHERE ECInstanceId IN (${excludedClassIds.join(",")})
2711
+ )`;
2712
+ const orderBy = options.groupByOwner
2713
+ ? "ORDER BY OwnerId, AspectKind, ECClassId, ECInstanceId"
2714
+ : "";
2715
+ const sql = `WITH OwnerIds AS (SELECT id FROM IdSet(:elementIds))
2716
+ SELECT $ FROM (
2717
+ SELECT aspect.ECInstanceId, aspect.ECClassId, aspect.Element.Id AS OwnerId, 0 AS AspectKind
2718
+ FROM OwnerIds owners
2719
+ CROSS JOIN Bis.ElementMultiAspect aspect ON aspect.Element.Id=owners.id
2720
+ WHERE TRUE ${classFilter} ${excludedClassFilter}
2721
+ UNION ALL
2722
+ SELECT aspect.ECInstanceId, aspect.ECClassId, aspect.Element.Id AS OwnerId, 1 AS AspectKind
2723
+ FROM OwnerIds owners
2724
+ CROSS JOIN Bis.ElementUniqueAspect aspect ON aspect.Element.Id=owners.id
2725
+ WHERE TRUE ${classFilter} ${excludedClassFilter}
2726
+ ) ${orderBy}
2727
+ OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`;
2728
+ const reader = this._iModel.createQueryReader(sql, params, { usePrimaryConn: options.usePrimaryConn });
2729
+ for await (const queryRow of reader)
2730
+ yield this._iModel.constructEntity(this.getAspectPropsFromInstanceQuery(queryRow[0]));
2731
+ }
2655
2732
  /** Insert a new ElementAspect into the iModel.
2656
2733
  * @param aspectProps The properties of the new ElementAspect.
2657
2734
  * @throws [[IModelError]] if unable to insert the ElementAspect.
2658
2735
  * @returns the id of the newly inserted aspect.
2659
2736
  * @note Aspect Ids may collide with element Ids, so don't put both in a container like Set or Map
2660
2737
  * use [EntityReference]($common) for that instead.
2661
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2738
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2662
2739
  */
2663
2740
  insertAspect(aspectProps) {
2664
2741
  return this._iModel[_implicitTxn].insertAspect(aspectProps);
@@ -2666,7 +2743,7 @@ function processSchemaWriteStatus(status) {
2666
2743
  /** Update an exist ElementAspect within the iModel.
2667
2744
  * @param aspectProps The properties to use to update the ElementAspect.
2668
2745
  * @throws [[IModelError]] if unable to update the ElementAspect.
2669
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2746
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2670
2747
  */
2671
2748
  updateAspect(aspectProps) {
2672
2749
  this._iModel[_implicitTxn].updateAspect(aspectProps);
@@ -2674,7 +2751,7 @@ function processSchemaWriteStatus(status) {
2674
2751
  /** Delete one or more ElementAspects from this iModel.
2675
2752
  * @param aspectInstanceIds The set of instance Ids of the ElementAspect(s) to be deleted
2676
2753
  * @throws [[IModelError]] if unable to delete the ElementAspect.
2677
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2754
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2678
2755
  */
2679
2756
  deleteAspect(aspectInstanceIds) {
2680
2757
  this._iModel[_implicitTxn].deleteAspect(aspectInstanceIds);
@@ -2683,7 +2760,7 @@ function processSchemaWriteStatus(status) {
2683
2760
  * @param props The properties specifying the element to reparent and its new parent.
2684
2761
  * @throws [[ITwinError]] if the operation fails.
2685
2762
  * @beta
2686
- * @deprecated in 5.11.0 - will not be removed until after 2026-08-04. Use EditTxn.changeElementParent instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2763
+ * @deprecated in 5.11.0 - might be removed in next major version. Use EditTxn.changeElementParent instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2687
2764
  */
2688
2765
  changeElementParent(props) {
2689
2766
  this._iModel[_implicitTxn].changeElementParent(props);
@@ -2692,7 +2769,7 @@ function processSchemaWriteStatus(status) {
2692
2769
  * @param props The properties specifying the element to move and its new model.
2693
2770
  * @throws [[ITwinError]] if the operation fails.
2694
2771
  * @beta
2695
- * @deprecated in 5.11.0 - will not be removed until after 2026-08-04. Use EditTxn.changeElementModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2772
+ * @deprecated in 5.11.0 - might be removed in next major version. Use EditTxn.changeElementModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2696
2773
  */
2697
2774
  changeElementModel(props) {
2698
2775
  this._iModel[_implicitTxn].changeElementModel(props);
@@ -2711,15 +2788,27 @@ function processSchemaWriteStatus(status) {
2711
2788
  static viewStoreProperty = { namespace: "itwinjs", name: "DefaultViewStore" };
2712
2789
  _viewStore;
2713
2790
  get hasViewStore() { return undefined !== this._viewStore; }
2714
- /** @beta */
2791
+ /** The [[ViewStore.CloudAccess]] for this iModel.
2792
+ * @note The iModel owns its ViewStore (whether assigned via this setter or created by [[accessViewStore]]): it is closed when the iModel is closed.
2793
+ * @beta
2794
+ */
2715
2795
  get viewStore() {
2716
2796
  if (undefined === this._viewStore)
2717
2797
  throw new IModelError(IModelStatus.BadRequest, "No ViewStore available");
2718
2798
  return this._viewStore;
2719
2799
  }
2720
2800
  set viewStore(viewStore) {
2801
+ if (this._viewStore !== undefined && this._viewStore !== viewStore)
2802
+ this._viewStore.close();
2721
2803
  this._viewStore = viewStore;
2722
2804
  }
2805
+ /** Close the ViewStore for this iModel, if one is open. Called when the iModel is closed.
2806
+ * @internal
2807
+ */
2808
+ [_close]() {
2809
+ this._viewStore?.close();
2810
+ this._viewStore = undefined;
2811
+ }
2723
2812
  /** @beta */
2724
2813
  async accessViewStore(args) {
2725
2814
  let props = args.props;
@@ -2739,7 +2828,7 @@ function processSchemaWriteStatus(status) {
2739
2828
  return this._viewStore;
2740
2829
  }
2741
2830
  /**
2742
- * @beta @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.saveDefaultViewStore instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2831
+ * @beta @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.saveDefaultViewStore instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2743
2832
  */
2744
2833
  saveDefaultViewStore(arg) {
2745
2834
  this._iModel[_implicitTxn].saveDefaultViewStore(arg);
@@ -3190,6 +3279,7 @@ export class BriefcaseDb extends IModelDb {
3190
3279
  }
3191
3280
  // load all of the settings from workspaces
3192
3281
  await briefcaseDb.loadWorkspaceSettings();
3282
+ await briefcaseDb.initializeSharedElementReservations();
3193
3283
  if (openMode === OpenMode.ReadWrite && CodeService.createForIModel) {
3194
3284
  try {
3195
3285
  briefcaseDb._codeService = await CodeService.createForIModel(briefcaseDb);
@@ -3245,6 +3335,18 @@ export class BriefcaseDb extends IModelDb {
3245
3335
  return "foreign key";
3246
3336
  }
3247
3337
  };
3338
+ // `dgn_Domain` holds one bookkeeping row per BIS domain present in the briefcase. The row is
3339
+ // created automatically as soon as the domain's schema is imported, so merging a changeset
3340
+ // that registers a domain inserts a row that was just created locally. Both rows describe the
3341
+ // same domain and the incoming one is authoritative, so this duplicate insert is never fatal.
3342
+ // Only a primary key collision on an insert is benign - an update or delete whose "before"
3343
+ // values do not match (`DbConflictCause.Data`) describes a real divergence and must not be
3344
+ // silently discarded here.
3345
+ if (args.tableName === "dgn_Domain" && args.cause === DbConflictCause.Conflict && args.opcode === DbOpcode.Insert) {
3346
+ Logger.logWarning(category, `${interpretConflictCause(args.cause)} conflict on dgn_Domain - resolved by replacing the existing row with the incoming row`);
3347
+ args.dump();
3348
+ return DbConflictResolution.Replace;
3349
+ }
3248
3350
  if (args.cause === DbConflictCause.Data && !args.indirect) {
3249
3351
  /*
3250
3352
  * From SQLite Docs CHANGESET_DATA as the second argument
@@ -3417,6 +3519,9 @@ export class BriefcaseDb extends IModelDb {
3417
3519
  await SchemaSync.pull(this);
3418
3520
  this.initializeIModelDb("pullMerge");
3419
3521
  });
3522
+ // If this pull enabled or disabled SchemaSync for this briefcase, its reservations must now be re-initialized
3523
+ if (this.reservations.isServerBased !== SchemaSync.isEnabled(this))
3524
+ await this.initializeSharedElementReservations();
3420
3525
  this.txns._onChangesPulled(this.changeset);
3421
3526
  }
3422
3527
  async enableChangesetStatTracking() {
@@ -3605,6 +3710,9 @@ export class BriefcaseDb extends IModelDb {
3605
3710
  await BriefcaseManager.pullMergePush(this, arg);
3606
3711
  this.initializeIModelDb("pullMerge");
3607
3712
  });
3713
+ // If this pull enabled or disabled SchemaSync for this briefcase, its reservations must now be re-initialized
3714
+ if (this.reservations.isServerBased !== SchemaSync.isEnabled(this))
3715
+ await this.initializeSharedElementReservations();
3608
3716
  this.txns._onChangesPushed(this.changeset);
3609
3717
  BriefcaseManager.deleteRebaseFolders(this);
3610
3718
  }
@@ -3779,6 +3887,7 @@ export class SnapshotDb extends IModelDb {
3779
3887
  const key = CheckpointManager.getKey(checkpoint);
3780
3888
  const db = SnapshotDb.openFile(dbName, { key, container });
3781
3889
  await db.loadWorkspaceSettings();
3890
+ await db.initializeSharedElementReservations();
3782
3891
  return db;
3783
3892
  }
3784
3893
  /** @internal */