@itwin/core-backend 5.13.0-dev.1 → 5.13.0-dev.11

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 (508) hide show
  1. package/CHANGELOG.md +30 -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.js +248 -248
  14. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  15. package/lib/cjs/ChangesetReader.js +3 -3
  16. package/lib/cjs/ChangesetReader.js.map +1 -1
  17. package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
  18. package/lib/cjs/ChannelControl.js.map +1 -1
  19. package/lib/cjs/CheckpointManager.d.ts +3 -0
  20. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  21. package/lib/cjs/CheckpointManager.js +8 -2
  22. package/lib/cjs/CheckpointManager.js.map +1 -1
  23. package/lib/cjs/ClassRegistry.js +10 -10
  24. package/lib/cjs/ClassRegistry.js.map +1 -1
  25. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  26. package/lib/cjs/CloudSqlite.js +19 -8
  27. package/lib/cjs/CloudSqlite.js.map +1 -1
  28. package/lib/cjs/CodeService.js.map +1 -1
  29. package/lib/cjs/CodeSpecs.d.ts +3 -3
  30. package/lib/cjs/CodeSpecs.js.map +1 -1
  31. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  32. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  33. package/lib/cjs/DevTools.js.map +1 -1
  34. package/lib/cjs/DisplayStyle.d.ts +2 -2
  35. package/lib/cjs/DisplayStyle.js.map +1 -1
  36. package/lib/cjs/ECDb.js.map +1 -1
  37. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  38. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  39. package/lib/cjs/ECSqlStatement.js.map +1 -1
  40. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  41. package/lib/cjs/EditTxn.js.map +1 -1
  42. package/lib/cjs/Element.d.ts +33 -9
  43. package/lib/cjs/Element.d.ts.map +1 -1
  44. package/lib/cjs/Element.js +47 -2
  45. package/lib/cjs/Element.js.map +1 -1
  46. package/lib/cjs/ElementAspect.js.map +1 -1
  47. package/lib/cjs/ElementGraphics.js.map +1 -1
  48. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  49. package/lib/cjs/Entity.js.map +1 -1
  50. package/lib/cjs/EntityReferences.js +2 -2
  51. package/lib/cjs/EntityReferences.js.map +1 -1
  52. package/lib/cjs/ExportGraphics.js.map +1 -1
  53. package/lib/cjs/ExternalSource.js.map +1 -1
  54. package/lib/cjs/FontFile.js.map +1 -1
  55. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  56. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  57. package/lib/cjs/GeometrySummary.js +47 -47
  58. package/lib/cjs/GeometrySummary.js.map +1 -1
  59. package/lib/cjs/IModelDb.d.ts +60 -22
  60. package/lib/cjs/IModelDb.d.ts.map +1 -1
  61. package/lib/cjs/IModelDb.js +113 -40
  62. package/lib/cjs/IModelDb.js.map +1 -1
  63. package/lib/cjs/IModelDbFonts.js.map +1 -1
  64. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  65. package/lib/cjs/IModelHost.d.ts.map +1 -1
  66. package/lib/cjs/IModelHost.js +3 -0
  67. package/lib/cjs/IModelHost.js.map +1 -1
  68. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  69. package/lib/cjs/IModelJsFs.js.map +1 -1
  70. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  71. package/lib/cjs/IpcHost.js.map +1 -1
  72. package/lib/cjs/LineStyle.js.map +1 -1
  73. package/lib/cjs/LocalHub.js +1 -1
  74. package/lib/cjs/LocalHub.js.map +1 -1
  75. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  76. package/lib/cjs/LockControl.js.map +1 -1
  77. package/lib/cjs/Material.js.map +1 -1
  78. package/lib/cjs/Model.d.ts +5 -5
  79. package/lib/cjs/Model.d.ts.map +1 -1
  80. package/lib/cjs/Model.js.map +1 -1
  81. package/lib/cjs/NativeAppStorage.js.map +1 -1
  82. package/lib/cjs/NativeHost.js.map +1 -1
  83. package/lib/cjs/NavigationRelationship.js.map +1 -1
  84. package/lib/cjs/PartialChangeUnifier.js +7 -7
  85. package/lib/cjs/PartialChangeUnifier.js.map +1 -1
  86. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  87. package/lib/cjs/PropertyStore.js.map +1 -1
  88. package/lib/cjs/Relationship.js.map +1 -1
  89. package/lib/cjs/RpcBackend.js.map +1 -1
  90. package/lib/cjs/SQLiteDb.js.map +1 -1
  91. package/lib/cjs/Schema.js.map +1 -1
  92. package/lib/cjs/SchemaSync.js.map +1 -1
  93. package/lib/cjs/SchemaUtils.js.map +1 -1
  94. package/lib/cjs/SheetIndex.js.map +1 -1
  95. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  96. package/lib/cjs/SqliteStatement.js.map +1 -1
  97. package/lib/cjs/StashManager.js.map +1 -1
  98. package/lib/cjs/Texture.d.ts +1 -1
  99. package/lib/cjs/Texture.js.map +1 -1
  100. package/lib/cjs/TileStorage.js.map +1 -1
  101. package/lib/cjs/TxnManager.js.map +1 -1
  102. package/lib/cjs/ViewDefinition.d.ts +6 -6
  103. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  104. package/lib/cjs/ViewDefinition.js.map +1 -1
  105. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  106. package/lib/cjs/ViewStore.js.map +1 -1
  107. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  108. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  109. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  110. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  111. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  112. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  113. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  114. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  115. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +36 -36
  116. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +28 -28
  117. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  118. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  119. package/lib/cjs/core-backend.js.map +1 -1
  120. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  121. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  122. package/lib/cjs/domains/GenericElements.js.map +1 -1
  123. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  124. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  125. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  126. package/lib/cjs/internal/ECSqlInstanceReshaper.js.map +1 -1
  127. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  128. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  129. package/lib/cjs/internal/HubMock.js.map +1 -1
  130. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  131. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  132. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  133. package/lib/cjs/internal/NoLocks.js.map +1 -1
  134. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  135. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  136. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  137. package/lib/cjs/internal/Symbols.js.map +1 -1
  138. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  139. package/lib/cjs/internal/cross-package.js.map +1 -1
  140. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  141. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  142. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  143. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  144. package/lib/cjs/internal/workspace/WorkspaceImpl.js +19 -3
  145. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  146. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  147. package/lib/cjs/rpc/multipart.js.map +1 -1
  148. package/lib/cjs/rpc/tracing.js.map +1 -1
  149. package/lib/cjs/rpc/web/logging.js.map +1 -1
  150. package/lib/cjs/rpc/web/request.js.map +1 -1
  151. package/lib/cjs/rpc/web/response.js.map +1 -1
  152. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  153. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  154. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  155. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  156. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  157. package/lib/cjs/workspace/Settings.js.map +1 -1
  158. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  159. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  160. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  161. package/lib/cjs/workspace/Workspace.d.ts +2 -0
  162. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  163. package/lib/cjs/workspace/Workspace.js.map +1 -1
  164. package/lib/cjs/workspace/WorkspaceEditor.d.ts +3 -0
  165. package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
  166. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  167. package/lib/esm/BackendHubAccess.js.map +1 -1
  168. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  169. package/lib/esm/BisCoreSchema.js.map +1 -1
  170. package/lib/esm/BlobContainerService.js.map +1 -1
  171. package/lib/esm/BriefcaseManager.js.map +1 -1
  172. package/lib/esm/CatalogDb.js.map +1 -1
  173. package/lib/esm/Category.d.ts +4 -4
  174. package/lib/esm/Category.js.map +1 -1
  175. package/lib/esm/ChangeSummaryManager.js +2 -2
  176. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  177. package/lib/esm/ChangedElementsDb.js.map +1 -1
  178. package/lib/esm/ChangesetECAdaptor.js +248 -248
  179. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  180. package/lib/esm/ChangesetReader.js +3 -3
  181. package/lib/esm/ChangesetReader.js.map +1 -1
  182. package/lib/esm/ChangesetReaderTypes.js.map +1 -1
  183. package/lib/esm/ChannelControl.js.map +1 -1
  184. package/lib/esm/CheckpointManager.d.ts +3 -0
  185. package/lib/esm/CheckpointManager.d.ts.map +1 -1
  186. package/lib/esm/CheckpointManager.js +8 -2
  187. package/lib/esm/CheckpointManager.js.map +1 -1
  188. package/lib/esm/ClassRegistry.js +6 -6
  189. package/lib/esm/ClassRegistry.js.map +1 -1
  190. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  191. package/lib/esm/CloudSqlite.js +19 -8
  192. package/lib/esm/CloudSqlite.js.map +1 -1
  193. package/lib/esm/CodeService.js.map +1 -1
  194. package/lib/esm/CodeSpecs.d.ts +3 -3
  195. package/lib/esm/CodeSpecs.js.map +1 -1
  196. package/lib/esm/ConcurrentQuery.js.map +1 -1
  197. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  198. package/lib/esm/DevTools.js.map +1 -1
  199. package/lib/esm/DisplayStyle.d.ts +2 -2
  200. package/lib/esm/DisplayStyle.js.map +1 -1
  201. package/lib/esm/ECDb.js.map +1 -1
  202. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  203. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  204. package/lib/esm/ECSqlStatement.js.map +1 -1
  205. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  206. package/lib/esm/EditTxn.js.map +1 -1
  207. package/lib/esm/Element.d.ts +33 -9
  208. package/lib/esm/Element.d.ts.map +1 -1
  209. package/lib/esm/Element.js +47 -2
  210. package/lib/esm/Element.js.map +1 -1
  211. package/lib/esm/ElementAspect.js.map +1 -1
  212. package/lib/esm/ElementGraphics.js.map +1 -1
  213. package/lib/esm/ElementTreeWalker.js.map +1 -1
  214. package/lib/esm/Entity.js.map +1 -1
  215. package/lib/esm/EntityReferences.js +1 -1
  216. package/lib/esm/EntityReferences.js.map +1 -1
  217. package/lib/esm/ExportGraphics.js.map +1 -1
  218. package/lib/esm/ExternalSource.js.map +1 -1
  219. package/lib/esm/FontFile.js.map +1 -1
  220. package/lib/esm/GeoCoordConfig.js.map +1 -1
  221. package/lib/esm/GeographicCRSServices.js.map +1 -1
  222. package/lib/esm/GeometrySummary.js +47 -47
  223. package/lib/esm/GeometrySummary.js.map +1 -1
  224. package/lib/esm/IModelDb.d.ts +60 -22
  225. package/lib/esm/IModelDb.d.ts.map +1 -1
  226. package/lib/esm/IModelDb.js +114 -41
  227. package/lib/esm/IModelDb.js.map +1 -1
  228. package/lib/esm/IModelDbFonts.js.map +1 -1
  229. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  230. package/lib/esm/IModelHost.d.ts.map +1 -1
  231. package/lib/esm/IModelHost.js +3 -0
  232. package/lib/esm/IModelHost.js.map +1 -1
  233. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  234. package/lib/esm/IModelJsFs.js.map +1 -1
  235. package/lib/esm/ImageSourceConversion.js.map +1 -1
  236. package/lib/esm/IpcHost.js.map +1 -1
  237. package/lib/esm/LineStyle.js.map +1 -1
  238. package/lib/esm/LocalHub.js +1 -1
  239. package/lib/esm/LocalHub.js.map +1 -1
  240. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  241. package/lib/esm/LockControl.js.map +1 -1
  242. package/lib/esm/Material.js.map +1 -1
  243. package/lib/esm/Model.d.ts +5 -5
  244. package/lib/esm/Model.d.ts.map +1 -1
  245. package/lib/esm/Model.js.map +1 -1
  246. package/lib/esm/NativeAppStorage.js.map +1 -1
  247. package/lib/esm/NativeHost.js.map +1 -1
  248. package/lib/esm/NavigationRelationship.js.map +1 -1
  249. package/lib/esm/PartialChangeUnifier.js +7 -7
  250. package/lib/esm/PartialChangeUnifier.js.map +1 -1
  251. package/lib/esm/PromiseMemoizer.js.map +1 -1
  252. package/lib/esm/PropertyStore.js.map +1 -1
  253. package/lib/esm/Relationship.js.map +1 -1
  254. package/lib/esm/RpcBackend.js.map +1 -1
  255. package/lib/esm/SQLiteDb.js.map +1 -1
  256. package/lib/esm/Schema.js.map +1 -1
  257. package/lib/esm/SchemaSync.js.map +1 -1
  258. package/lib/esm/SchemaUtils.js.map +1 -1
  259. package/lib/esm/SheetIndex.js.map +1 -1
  260. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  261. package/lib/esm/SqliteStatement.js.map +1 -1
  262. package/lib/esm/StashManager.js.map +1 -1
  263. package/lib/esm/Texture.d.ts +1 -1
  264. package/lib/esm/Texture.js.map +1 -1
  265. package/lib/esm/TileStorage.js.map +1 -1
  266. package/lib/esm/TxnManager.js.map +1 -1
  267. package/lib/esm/ViewDefinition.d.ts +6 -6
  268. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  269. package/lib/esm/ViewDefinition.js.map +1 -1
  270. package/lib/esm/ViewStateHydrator.js.map +1 -1
  271. package/lib/esm/ViewStore.js.map +1 -1
  272. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  273. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  274. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  275. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  276. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  277. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  278. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  279. package/lib/esm/core-backend.js.map +1 -1
  280. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  281. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  282. package/lib/esm/domains/GenericElements.js.map +1 -1
  283. package/lib/esm/domains/GenericSchema.js.map +1 -1
  284. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  285. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  286. package/lib/esm/internal/ECSqlInstanceReshaper.js.map +1 -1
  287. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  288. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  289. package/lib/esm/internal/HubMock.js.map +1 -1
  290. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  291. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  292. package/lib/esm/internal/NativePlatform.js.map +1 -1
  293. package/lib/esm/internal/NoLocks.js.map +1 -1
  294. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  295. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  296. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  297. package/lib/esm/internal/Symbols.js.map +1 -1
  298. package/lib/esm/internal/annotations/fields.js.map +1 -1
  299. package/lib/esm/internal/cross-package.js.map +1 -1
  300. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  301. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  302. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  303. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  304. package/lib/esm/internal/workspace/WorkspaceImpl.js +19 -3
  305. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  306. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  307. package/lib/esm/rpc/multipart.js.map +1 -1
  308. package/lib/esm/rpc/tracing.js.map +1 -1
  309. package/lib/esm/rpc/web/logging.js.map +1 -1
  310. package/lib/esm/rpc/web/request.js.map +1 -1
  311. package/lib/esm/rpc/web/response.js.map +1 -1
  312. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  313. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  314. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  315. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  316. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  317. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  318. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  319. package/lib/esm/test/AttachDb.test.js +11 -11
  320. package/lib/esm/test/AttachDb.test.js.map +1 -1
  321. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  322. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  323. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  324. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  325. package/lib/esm/test/IModelHost.test.js.map +1 -1
  326. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  327. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  328. package/lib/esm/test/IpcHost.test.js.map +1 -1
  329. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  330. package/lib/esm/test/PrintElementTree.js.map +1 -1
  331. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  332. package/lib/esm/test/RevisionUtility.js.map +1 -1
  333. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +51 -51
  334. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -1
  335. package/lib/esm/test/SchemaUtils.test.js +25 -25
  336. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  337. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  338. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  339. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  340. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  341. package/lib/esm/test/TestEditTxn.js.map +1 -1
  342. package/lib/esm/test/TestUtils.js.map +1 -1
  343. package/lib/esm/test/annotations/Fields.test.js +53 -53
  344. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  345. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  346. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  347. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  348. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  349. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  350. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  351. package/lib/esm/test/categories/Category.test.js.map +1 -1
  352. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  353. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  354. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  355. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  356. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  357. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  358. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  359. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  360. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  361. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  362. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  363. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  364. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  365. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  366. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  367. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
  368. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  369. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +4 -4
  370. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  371. package/lib/esm/test/ecdb/QueryReaders.test.js +33 -47
  372. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  373. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  374. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  375. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  376. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  377. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  378. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +2 -2
  379. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  380. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  381. package/lib/esm/test/element/ElementAspect.test.js +176 -24
  382. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  383. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  384. package/lib/esm/test/element/ElementRoundTrip.test.js +144 -139
  385. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  386. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  387. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  388. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  389. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  390. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  391. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  392. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  393. package/lib/esm/test/example-code/EditTxn.test.d.ts +2 -0
  394. package/lib/esm/test/example-code/EditTxn.test.d.ts.map +1 -0
  395. package/lib/esm/test/example-code/EditTxn.test.js +47 -0
  396. package/lib/esm/test/example-code/EditTxn.test.js.map +1 -0
  397. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  398. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  399. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  400. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  401. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  402. package/lib/esm/test/hubaccess/CheckpointManager.test.js +43 -1
  403. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  404. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -1
  405. package/lib/esm/test/hubaccess/Rebase.test.js +56 -56
  406. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  407. package/lib/esm/test/hubaccess/SemanticRebase.test.js +345 -345
  408. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  409. package/lib/esm/test/imageData.js.map +1 -1
  410. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  411. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  412. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  413. package/lib/esm/test/imodel/IModel.test.js +353 -294
  414. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  415. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  416. package/lib/esm/test/imodel/SchemaXmlImport.test.js +21 -21
  417. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  418. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  419. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  420. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  421. package/lib/esm/test/index.js.map +1 -1
  422. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js +32 -32
  423. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js.map +1 -1
  424. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  425. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  426. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  427. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  428. package/lib/esm/test/rpc/response.test.js.map +1 -1
  429. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  430. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  431. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  432. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  433. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  434. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  435. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  436. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  437. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js +21 -21
  438. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js.map +1 -1
  439. package/lib/esm/test/schema/SchemaViewHidden.test.js +109 -109
  440. package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -1
  441. package/lib/esm/test/schema/SchemaViewKoQ.test.js +13 -13
  442. package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
  443. package/lib/esm/test/schema/SchemaViewLifecycle.test.js +15 -15
  444. package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -1
  445. package/lib/esm/test/schema/SchemaViewValidation.test.js +8 -8
  446. package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -1
  447. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  448. package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -1
  449. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  450. package/lib/esm/test/standalone/ChangesetReader.test.js +313 -313
  451. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  452. package/lib/esm/test/standalone/CloudSqlite.test.js +73 -0
  453. package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -1
  454. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  455. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
  456. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  457. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  458. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  459. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  460. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  461. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  462. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  463. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  464. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  465. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  466. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  467. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  468. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  469. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  470. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  471. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  472. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  473. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  474. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  475. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  476. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  477. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +135 -135
  478. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
  479. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  480. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  481. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  482. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  483. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  484. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  485. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  486. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  487. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  488. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  489. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  490. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  491. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  492. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  493. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  494. package/lib/esm/test/standalone/Workspace.test.js +115 -1
  495. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  496. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  497. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  498. package/lib/esm/workspace/Settings.js.map +1 -1
  499. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  500. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  501. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  502. package/lib/esm/workspace/Workspace.d.ts +2 -0
  503. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  504. package/lib/esm/workspace/Workspace.js.map +1 -1
  505. package/lib/esm/workspace/WorkspaceEditor.d.ts +3 -0
  506. package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -1
  507. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  508. package/package.json +18 -20
@@ -9,7 +9,7 @@ import * as fs from "fs";
9
9
  import { join } from "path";
10
10
  import * as touch from "touch";
11
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";
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";
@@ -185,12 +185,16 @@ export class IModelDb extends IModel {
185
185
  [_implicitTxn];
186
186
  /** @internal */
187
187
  [_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
188
+ /** Returns the transaction to use for additional edits from an element, model, or aspect callback.
189
+ * In callbacks whose arguments provide an [[IModelDb]] but no transaction, obtain this transaction through
190
+ * `arg.iModel.getIndirectTxn()` and pass it to APIs that accept an [[EditTxn]].
191
+ *
192
+ * If an explicit transaction is active, this returns that transaction. Otherwise, it returns the implicit transaction
193
+ * used by legacy write paths. Callbacks that receive an `indirectEditTxn` argument should use that transaction directly.
194
+ *
195
+ * @note The operation that invoked the callback owns the transaction. Callback implementations must not invoke transaction
196
+ * lifecycle methods such as [[EditTxn.start]], [[EditTxn.end]], [[EditTxn.saveChanges]], [[EditTxn.abandonChanges]], or [[EditTxn.onClose]].
197
+ * @beta
194
198
  */
195
199
  getIndirectTxn() {
196
200
  return this[_activeTxn] ?? this[_implicitTxn];
@@ -356,6 +360,7 @@ export class IModelDb extends IModel {
356
360
  this.optimize();
357
361
  IModelDb._openDbs.delete(this._fileKey);
358
362
  this._workspace?.close();
363
+ this.views[_close]();
359
364
  this.locks[_close]();
360
365
  this._locks = undefined;
361
366
  this._codeService?.close();
@@ -2169,7 +2174,7 @@ function processSchemaWriteStatus(status) {
2169
2174
  * @param props The data for the new model.
2170
2175
  * @returns The newly inserted model's Id.
2171
2176
  * @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.
2177
+ * @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
2178
  */
2174
2179
  insertModel(props) {
2175
2180
  return this._iModel[_implicitTxn].insertModel(props);
@@ -2177,7 +2182,7 @@ function processSchemaWriteStatus(status) {
2177
2182
  /** Update an existing model.
2178
2183
  * @param props the properties of the model to change
2179
2184
  * @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.
2185
+ * @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
2186
  */
2182
2187
  updateModel(props) {
2183
2188
  this._iModel[_implicitTxn].updateModel(props);
@@ -2189,7 +2194,7 @@ function processSchemaWriteStatus(status) {
2189
2194
  * Cached [Tile]($frontend)s are only invalidated after the geometry guid of the model changes.
2190
2195
  * @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
2196
  * @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.
2197
+ * @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
2198
  * @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
2194
2199
  */
2195
2200
  updateGeometryGuid(modelId) {
@@ -2198,7 +2203,7 @@ function processSchemaWriteStatus(status) {
2198
2203
  /** Delete one or more existing models.
2199
2204
  * @param ids The Ids of the models to be deleted
2200
2205
  * @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.
2206
+ * @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
2207
  */
2203
2208
  deleteModel(ids) {
2204
2209
  this._iModel[_implicitTxn].deleteModel(ids);
@@ -2422,7 +2427,7 @@ function processSchemaWriteStatus(status) {
2422
2427
  * However when `elProps.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
2423
2428
  * the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
2424
2429
  * 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.
2430
+ * @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
2431
  */
2427
2432
  insertElement(elProps, options) {
2428
2433
  return this._iModel[_implicitTxn].insertElement(elProps, options);
@@ -2437,7 +2442,7 @@ function processSchemaWriteStatus(status) {
2437
2442
  * @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
2443
  * overwriting their values to the correct values.
2439
2444
  * @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.
2445
+ * @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
2446
  */
2442
2447
  updateElement(elProps) {
2443
2448
  this._iModel[_implicitTxn].updateElement(elProps);
@@ -2446,7 +2451,7 @@ function processSchemaWriteStatus(status) {
2446
2451
  * @param ids The set of Ids of the element(s) to be deleted
2447
2452
  * @throws [[ITwinError]]
2448
2453
  * @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.
2454
+ * @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
2455
  */
2451
2456
  deleteElement(ids) {
2452
2457
  this._iModel[_implicitTxn].deleteElement(ids);
@@ -2471,7 +2476,7 @@ function processSchemaWriteStatus(status) {
2471
2476
  * DefinitionElements rather than calling this method separately for each one. Ids that are not valid DefinitionElements will be ignored.
2472
2477
  * @returns An IdSet of the DefinitionElements that are used and were therefore not deleted.
2473
2478
  * @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.
2479
+ * @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
2480
  */
2476
2481
  deleteDefinitionElements(definitionElementIds) {
2477
2482
  return this._iModel[_implicitTxn].deleteDefinitionElements(definitionElementIds);
@@ -2574,21 +2579,27 @@ function processSchemaWriteStatus(status) {
2574
2579
  return this._queryAspect(aspectInstanceId, aspectClassFullName);
2575
2580
  }
2576
2581
  static classMap = new Map();
2582
+ getAspectPropsFromInstanceQuery(rawInstance) {
2583
+ const parsedRow = typeof rawInstance === "string" ? JSON.parse(rawInstance, Base64EncodedString.reviver) : rawInstance;
2584
+ if (!JsonUtils.isObject(parsedRow))
2585
+ throw new IModelError(IModelStatus.BadRequest, "Expected an ElementAspect instance query to return an object");
2586
+ const row = {};
2587
+ for (const [key, value] of Object.entries(parsedRow)) {
2588
+ const ecPropertyName = key.length === 0 ? key : key[0].toUpperCase() + key.substring(1);
2589
+ row[ECJsNames.toJsName(ecPropertyName)] = value;
2590
+ }
2591
+ const className = row.className;
2592
+ if (typeof className !== "string")
2593
+ throw new IModelError(IModelStatus.BadRequest, "Expected an ElementAspect instance query to return a className");
2594
+ row.classFullName = className.replace(".", ":"); // add in property required by EntityProps
2595
+ delete row.className; // clear property from SELECT $ that we don't want in the final instance
2596
+ return row;
2597
+ }
2577
2598
  runInstanceQuery(sql, elementId, excludedClassFullNames) {
2578
2599
  return this._iModel.withQueryReader(sql, (reader) => {
2579
2600
  const aspects = [];
2580
2601
  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
2602
+ const aspectProps = this.getAspectPropsFromInstanceQuery(queryRow[0]);
2592
2603
  if ((undefined === excludedClassFullNames) || !excludedClassFullNames.has(aspectProps.classFullName))
2593
2604
  aspects.push(this._iModel.constructEntity(aspectProps));
2594
2605
  }
@@ -2603,9 +2614,9 @@ function processSchemaWriteStatus(status) {
2603
2614
  */
2604
2615
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
2605
2616
  if (aspectClassFullName === undefined) {
2606
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2607
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2608
- UNION ALL
2617
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2618
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2619
+ UNION ALL
2609
2620
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2610
2621
  if (allAspects.length === 0)
2611
2622
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2624,7 +2635,7 @@ function processSchemaWriteStatus(status) {
2624
2635
  let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
2625
2636
  if (classIdList === undefined) {
2626
2637
  const classIds = [];
2627
- const sql = `select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name=:className
2638
+ const sql = `select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name=:className
2628
2639
  and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name=:schemaName)) and SourceECInstanceId != TargetECInstanceId`;
2629
2640
  this._iModel.withQueryReader(sql, (reader) => {
2630
2641
  for (const row of reader) {
@@ -2643,22 +2654,72 @@ function processSchemaWriteStatus(status) {
2643
2654
  return [];
2644
2655
  }
2645
2656
  // 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})
2657
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
2658
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2659
+ UNION ALL
2660
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2650
2661
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2651
2662
  if (aspects.length === 0)
2652
2663
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
2653
2664
  return aspects;
2654
2665
  }
2666
+ /** Stream the [[ElementAspect]] instances owned by a set of elements.
2667
+ *
2668
+ * 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.
2669
+ *
2670
+ * The order is unspecified unless [[QueryAspectOptions.groupByOwner]] is true.
2671
+ * @param options Defines the element Ids, class filters, result ordering, and query connection.
2672
+ * @returns An async iterator over the matching aspects.
2673
+ * @beta
2674
+ */
2675
+ async *queryAspects(options) {
2676
+ const elementIds = Id64.toIdSet(options.elementIds);
2677
+ if (elementIds.size === 0)
2678
+ return;
2679
+ const params = new QueryBinder().bindIdSet("elementIds", elementIds);
2680
+ const classFilter = options.aspectClassFullName === undefined ? "" : `AND aspect.ECClassId IN (
2681
+ SELECT SourceECInstanceId FROM meta.ClassHasAllBaseClasses
2682
+ WHERE TargetECInstanceId=ec_classid(:aspectClassFullName)
2683
+ )`;
2684
+ if (options.aspectClassFullName !== undefined)
2685
+ params.bindString("aspectClassFullName", options.aspectClassFullName.replace(".", ":"));
2686
+ const excludedClassIds = [];
2687
+ let excludedClassIndex = 0;
2688
+ for (const classFullName of options.excludedAspectClassFullNames ?? []) {
2689
+ const parameterName = `excludedAspectClass${excludedClassIndex++}`;
2690
+ excludedClassIds.push(`ec_classid(:${parameterName})`);
2691
+ params.bindString(parameterName, classFullName.replace(".", ":"));
2692
+ }
2693
+ const excludedClassFilter = excludedClassIds.length === 0 ? "" : `AND aspect.ECClassId NOT IN (
2694
+ SELECT ECInstanceId FROM meta.ECClassDef WHERE ECInstanceId IN (${excludedClassIds.join(",")})
2695
+ )`;
2696
+ const orderBy = options.groupByOwner
2697
+ ? "ORDER BY OwnerId, AspectKind, ECClassId, ECInstanceId"
2698
+ : "";
2699
+ const sql = `WITH OwnerIds AS (SELECT id FROM IdSet(:elementIds))
2700
+ SELECT $ FROM (
2701
+ SELECT aspect.ECInstanceId, aspect.ECClassId, aspect.Element.Id AS OwnerId, 0 AS AspectKind
2702
+ FROM OwnerIds owners
2703
+ CROSS JOIN Bis.ElementMultiAspect aspect ON aspect.Element.Id=owners.id
2704
+ WHERE TRUE ${classFilter} ${excludedClassFilter}
2705
+ UNION ALL
2706
+ SELECT aspect.ECInstanceId, aspect.ECClassId, aspect.Element.Id AS OwnerId, 1 AS AspectKind
2707
+ FROM OwnerIds owners
2708
+ CROSS JOIN Bis.ElementUniqueAspect aspect ON aspect.Element.Id=owners.id
2709
+ WHERE TRUE ${classFilter} ${excludedClassFilter}
2710
+ ) ${orderBy}
2711
+ OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`;
2712
+ const reader = this._iModel.createQueryReader(sql, params, { usePrimaryConn: options.usePrimaryConn });
2713
+ for await (const queryRow of reader)
2714
+ yield this._iModel.constructEntity(this.getAspectPropsFromInstanceQuery(queryRow[0]));
2715
+ }
2655
2716
  /** Insert a new ElementAspect into the iModel.
2656
2717
  * @param aspectProps The properties of the new ElementAspect.
2657
2718
  * @throws [[IModelError]] if unable to insert the ElementAspect.
2658
2719
  * @returns the id of the newly inserted aspect.
2659
2720
  * @note Aspect Ids may collide with element Ids, so don't put both in a container like Set or Map
2660
2721
  * 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.
2722
+ * @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
2723
  */
2663
2724
  insertAspect(aspectProps) {
2664
2725
  return this._iModel[_implicitTxn].insertAspect(aspectProps);
@@ -2666,7 +2727,7 @@ function processSchemaWriteStatus(status) {
2666
2727
  /** Update an exist ElementAspect within the iModel.
2667
2728
  * @param aspectProps The properties to use to update the ElementAspect.
2668
2729
  * @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.
2730
+ * @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
2731
  */
2671
2732
  updateAspect(aspectProps) {
2672
2733
  this._iModel[_implicitTxn].updateAspect(aspectProps);
@@ -2674,7 +2735,7 @@ function processSchemaWriteStatus(status) {
2674
2735
  /** Delete one or more ElementAspects from this iModel.
2675
2736
  * @param aspectInstanceIds The set of instance Ids of the ElementAspect(s) to be deleted
2676
2737
  * @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.
2738
+ * @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
2739
  */
2679
2740
  deleteAspect(aspectInstanceIds) {
2680
2741
  this._iModel[_implicitTxn].deleteAspect(aspectInstanceIds);
@@ -2683,7 +2744,7 @@ function processSchemaWriteStatus(status) {
2683
2744
  * @param props The properties specifying the element to reparent and its new parent.
2684
2745
  * @throws [[ITwinError]] if the operation fails.
2685
2746
  * @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.
2747
+ * @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
2748
  */
2688
2749
  changeElementParent(props) {
2689
2750
  this._iModel[_implicitTxn].changeElementParent(props);
@@ -2692,7 +2753,7 @@ function processSchemaWriteStatus(status) {
2692
2753
  * @param props The properties specifying the element to move and its new model.
2693
2754
  * @throws [[ITwinError]] if the operation fails.
2694
2755
  * @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.
2756
+ * @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
2757
  */
2697
2758
  changeElementModel(props) {
2698
2759
  this._iModel[_implicitTxn].changeElementModel(props);
@@ -2711,15 +2772,27 @@ function processSchemaWriteStatus(status) {
2711
2772
  static viewStoreProperty = { namespace: "itwinjs", name: "DefaultViewStore" };
2712
2773
  _viewStore;
2713
2774
  get hasViewStore() { return undefined !== this._viewStore; }
2714
- /** @beta */
2775
+ /** The [[ViewStore.CloudAccess]] for this iModel.
2776
+ * @note The iModel owns its ViewStore (whether assigned via this setter or created by [[accessViewStore]]): it is closed when the iModel is closed.
2777
+ * @beta
2778
+ */
2715
2779
  get viewStore() {
2716
2780
  if (undefined === this._viewStore)
2717
2781
  throw new IModelError(IModelStatus.BadRequest, "No ViewStore available");
2718
2782
  return this._viewStore;
2719
2783
  }
2720
2784
  set viewStore(viewStore) {
2785
+ if (this._viewStore !== undefined && this._viewStore !== viewStore)
2786
+ this._viewStore.close();
2721
2787
  this._viewStore = viewStore;
2722
2788
  }
2789
+ /** Close the ViewStore for this iModel, if one is open. Called when the iModel is closed.
2790
+ * @internal
2791
+ */
2792
+ [_close]() {
2793
+ this._viewStore?.close();
2794
+ this._viewStore = undefined;
2795
+ }
2723
2796
  /** @beta */
2724
2797
  async accessViewStore(args) {
2725
2798
  let props = args.props;
@@ -2739,7 +2812,7 @@ function processSchemaWriteStatus(status) {
2739
2812
  return this._viewStore;
2740
2813
  }
2741
2814
  /**
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.
2815
+ * @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
2816
  */
2744
2817
  saveDefaultViewStore(arg) {
2745
2818
  this._iModel[_implicitTxn].saveDefaultViewStore(arg);