@itwin/core-backend 5.9.0-dev.9 → 5.10.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (539) hide show
  1. package/CHANGELOG.md +18 -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.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +6 -3
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.js.map +1 -1
  10. package/lib/cjs/Category.js.map +1 -1
  11. package/lib/cjs/ChangeSummaryManager.js +2 -2
  12. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  13. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  14. package/lib/cjs/ChangesetECAdaptor.d.ts +9 -1
  15. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  16. package/lib/cjs/ChangesetECAdaptor.js +255 -249
  17. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  18. package/lib/cjs/ChangesetReader.d.ts +186 -0
  19. package/lib/cjs/ChangesetReader.d.ts.map +1 -0
  20. package/lib/cjs/ChangesetReader.js +372 -0
  21. package/lib/cjs/ChangesetReader.js.map +1 -0
  22. package/lib/cjs/ChangesetReaderTypes.d.ts +120 -0
  23. package/lib/cjs/ChangesetReaderTypes.d.ts.map +1 -0
  24. package/lib/cjs/ChangesetReaderTypes.js +23 -0
  25. package/lib/cjs/ChangesetReaderTypes.js.map +1 -0
  26. package/lib/cjs/ChannelControl.js.map +1 -1
  27. package/lib/cjs/CheckpointManager.js.map +1 -1
  28. package/lib/cjs/ClassRegistry.js +5 -5
  29. package/lib/cjs/ClassRegistry.js.map +1 -1
  30. package/lib/cjs/CloudSqlite.d.ts +1 -1
  31. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  32. package/lib/cjs/CloudSqlite.js +68 -13
  33. package/lib/cjs/CloudSqlite.js.map +1 -1
  34. package/lib/cjs/CodeService.js.map +1 -1
  35. package/lib/cjs/CodeSpecs.js.map +1 -1
  36. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  37. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  38. package/lib/cjs/DevTools.js.map +1 -1
  39. package/lib/cjs/DisplayStyle.js.map +1 -1
  40. package/lib/cjs/ECDb.js.map +1 -1
  41. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  42. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  43. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  44. package/lib/cjs/ECSqlStatement.js.map +1 -1
  45. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  46. package/lib/cjs/EditTxn.d.ts +55 -1
  47. package/lib/cjs/EditTxn.d.ts.map +1 -1
  48. package/lib/cjs/EditTxn.js +43 -1
  49. package/lib/cjs/EditTxn.js.map +1 -1
  50. package/lib/cjs/Element.d.ts +69 -0
  51. package/lib/cjs/Element.d.ts.map +1 -1
  52. package/lib/cjs/Element.js +36 -0
  53. package/lib/cjs/Element.js.map +1 -1
  54. package/lib/cjs/ElementAspect.js.map +1 -1
  55. package/lib/cjs/ElementGraphics.js.map +1 -1
  56. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  57. package/lib/cjs/Entity.js.map +1 -1
  58. package/lib/cjs/EntityReferences.js.map +1 -1
  59. package/lib/cjs/ExportGraphics.js.map +1 -1
  60. package/lib/cjs/ExternalSource.js.map +1 -1
  61. package/lib/cjs/FontFile.js.map +1 -1
  62. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  63. package/lib/cjs/GeographicCRSServices.d.ts +15 -0
  64. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  65. package/lib/cjs/GeographicCRSServices.js +13 -4
  66. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  67. package/lib/cjs/GeometrySummary.js +47 -47
  68. package/lib/cjs/GeometrySummary.js.map +1 -1
  69. package/lib/cjs/IModelDb.d.ts +9 -1
  70. package/lib/cjs/IModelDb.d.ts.map +1 -1
  71. package/lib/cjs/IModelDb.js +32 -13
  72. package/lib/cjs/IModelDb.js.map +1 -1
  73. package/lib/cjs/IModelDbFonts.js.map +1 -1
  74. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  75. package/lib/cjs/IModelHost.js.map +1 -1
  76. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  77. package/lib/cjs/IModelJsFs.js.map +1 -1
  78. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  79. package/lib/cjs/IpcHost.d.ts.map +1 -1
  80. package/lib/cjs/IpcHost.js +20 -9
  81. package/lib/cjs/IpcHost.js.map +1 -1
  82. package/lib/cjs/LineStyle.js.map +1 -1
  83. package/lib/cjs/LocalHub.js +1 -1
  84. package/lib/cjs/LocalHub.js.map +1 -1
  85. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  86. package/lib/cjs/LockControl.js.map +1 -1
  87. package/lib/cjs/Material.js.map +1 -1
  88. package/lib/cjs/Model.d.ts +34 -0
  89. package/lib/cjs/Model.d.ts.map +1 -1
  90. package/lib/cjs/Model.js +24 -0
  91. package/lib/cjs/Model.js.map +1 -1
  92. package/lib/cjs/NativeAppStorage.js.map +1 -1
  93. package/lib/cjs/NativeHost.js.map +1 -1
  94. package/lib/cjs/NavigationRelationship.js.map +1 -1
  95. package/lib/cjs/PartialChangeUnifier.d.ts +77 -0
  96. package/lib/cjs/PartialChangeUnifier.d.ts.map +1 -0
  97. package/lib/cjs/PartialChangeUnifier.js +234 -0
  98. package/lib/cjs/PartialChangeUnifier.js.map +1 -0
  99. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  100. package/lib/cjs/PropertyStore.js.map +1 -1
  101. package/lib/cjs/Relationship.js.map +1 -1
  102. package/lib/cjs/RpcBackend.js.map +1 -1
  103. package/lib/cjs/SQLiteDb.js.map +1 -1
  104. package/lib/cjs/Schema.js.map +1 -1
  105. package/lib/cjs/SchemaSync.js.map +1 -1
  106. package/lib/cjs/SchemaUtils.js.map +1 -1
  107. package/lib/cjs/SheetIndex.js.map +1 -1
  108. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  109. package/lib/cjs/SqliteChangesetReader.js +1 -1
  110. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  111. package/lib/cjs/SqliteStatement.js.map +1 -1
  112. package/lib/cjs/StashManager.js.map +1 -1
  113. package/lib/cjs/Texture.js.map +1 -1
  114. package/lib/cjs/TileStorage.js.map +1 -1
  115. package/lib/cjs/TxnManager.d.ts +14 -0
  116. package/lib/cjs/TxnManager.d.ts.map +1 -1
  117. package/lib/cjs/TxnManager.js +25 -0
  118. package/lib/cjs/TxnManager.js.map +1 -1
  119. package/lib/cjs/ViewDefinition.d.ts +19 -7
  120. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  121. package/lib/cjs/ViewDefinition.js +77 -25
  122. package/lib/cjs/ViewDefinition.js.map +1 -1
  123. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  124. package/lib/cjs/ViewStore.d.ts.map +1 -1
  125. package/lib/cjs/ViewStore.js +63 -21
  126. package/lib/cjs/ViewStore.js.map +1 -1
  127. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  128. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  129. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  130. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  131. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  132. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  133. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  134. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  135. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  136. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  137. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  138. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  139. package/lib/cjs/core-backend.d.ts +3 -0
  140. package/lib/cjs/core-backend.d.ts.map +1 -1
  141. package/lib/cjs/core-backend.js +3 -0
  142. package/lib/cjs/core-backend.js.map +1 -1
  143. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  144. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  145. package/lib/cjs/domains/GenericElements.js.map +1 -1
  146. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  147. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  148. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  149. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  150. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  151. package/lib/cjs/internal/HubMock.js.map +1 -1
  152. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  153. package/lib/cjs/internal/IntegrityCheck.d.ts +10 -10
  154. package/lib/cjs/internal/IntegrityCheck.js +22 -22
  155. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  156. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  157. package/lib/cjs/internal/NoLocks.js.map +1 -1
  158. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  159. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  160. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  161. package/lib/cjs/internal/Symbols.js.map +1 -1
  162. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  163. package/lib/cjs/internal/cross-package.js.map +1 -1
  164. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  165. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  166. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  167. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  168. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  169. package/lib/cjs/rpc/multipart.js.map +1 -1
  170. package/lib/cjs/rpc/tracing.js.map +1 -1
  171. package/lib/cjs/rpc/web/logging.js.map +1 -1
  172. package/lib/cjs/rpc/web/request.js.map +1 -1
  173. package/lib/cjs/rpc/web/response.js.map +1 -1
  174. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  175. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  176. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  177. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  178. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  179. package/lib/cjs/workspace/Settings.d.ts +6 -4
  180. package/lib/cjs/workspace/Settings.d.ts.map +1 -1
  181. package/lib/cjs/workspace/Settings.js.map +1 -1
  182. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  183. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  184. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  185. package/lib/cjs/workspace/Workspace.js.map +1 -1
  186. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  187. package/lib/esm/BackendHubAccess.js.map +1 -1
  188. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  189. package/lib/esm/BisCoreSchema.js.map +1 -1
  190. package/lib/esm/BlobContainerService.js.map +1 -1
  191. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  192. package/lib/esm/BriefcaseManager.js +6 -3
  193. package/lib/esm/BriefcaseManager.js.map +1 -1
  194. package/lib/esm/CatalogDb.js.map +1 -1
  195. package/lib/esm/Category.js.map +1 -1
  196. package/lib/esm/ChangeSummaryManager.js +2 -2
  197. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  198. package/lib/esm/ChangedElementsDb.js.map +1 -1
  199. package/lib/esm/ChangesetECAdaptor.d.ts +9 -1
  200. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  201. package/lib/esm/ChangesetECAdaptor.js +255 -249
  202. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  203. package/lib/esm/ChangesetReader.d.ts +186 -0
  204. package/lib/esm/ChangesetReader.d.ts.map +1 -0
  205. package/lib/esm/ChangesetReader.js +368 -0
  206. package/lib/esm/ChangesetReader.js.map +1 -0
  207. package/lib/esm/ChangesetReaderTypes.d.ts +120 -0
  208. package/lib/esm/ChangesetReaderTypes.d.ts.map +1 -0
  209. package/lib/esm/ChangesetReaderTypes.js +20 -0
  210. package/lib/esm/ChangesetReaderTypes.js.map +1 -0
  211. package/lib/esm/ChannelControl.js.map +1 -1
  212. package/lib/esm/CheckpointManager.js.map +1 -1
  213. package/lib/esm/ClassRegistry.js +5 -5
  214. package/lib/esm/ClassRegistry.js.map +1 -1
  215. package/lib/esm/CloudSqlite.d.ts +1 -1
  216. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  217. package/lib/esm/CloudSqlite.js +69 -14
  218. package/lib/esm/CloudSqlite.js.map +1 -1
  219. package/lib/esm/CodeService.js.map +1 -1
  220. package/lib/esm/CodeSpecs.js.map +1 -1
  221. package/lib/esm/ConcurrentQuery.js.map +1 -1
  222. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  223. package/lib/esm/DevTools.js.map +1 -1
  224. package/lib/esm/DisplayStyle.js.map +1 -1
  225. package/lib/esm/ECDb.js.map +1 -1
  226. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  227. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  228. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  229. package/lib/esm/ECSqlStatement.js.map +1 -1
  230. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  231. package/lib/esm/EditTxn.d.ts +55 -1
  232. package/lib/esm/EditTxn.d.ts.map +1 -1
  233. package/lib/esm/EditTxn.js +43 -1
  234. package/lib/esm/EditTxn.js.map +1 -1
  235. package/lib/esm/Element.d.ts +69 -0
  236. package/lib/esm/Element.d.ts.map +1 -1
  237. package/lib/esm/Element.js +36 -0
  238. package/lib/esm/Element.js.map +1 -1
  239. package/lib/esm/ElementAspect.js.map +1 -1
  240. package/lib/esm/ElementGraphics.js.map +1 -1
  241. package/lib/esm/ElementTreeWalker.js.map +1 -1
  242. package/lib/esm/Entity.js.map +1 -1
  243. package/lib/esm/EntityReferences.js.map +1 -1
  244. package/lib/esm/ExportGraphics.js.map +1 -1
  245. package/lib/esm/ExternalSource.js.map +1 -1
  246. package/lib/esm/FontFile.js.map +1 -1
  247. package/lib/esm/GeoCoordConfig.js.map +1 -1
  248. package/lib/esm/GeographicCRSServices.d.ts +15 -0
  249. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  250. package/lib/esm/GeographicCRSServices.js +12 -4
  251. package/lib/esm/GeographicCRSServices.js.map +1 -1
  252. package/lib/esm/GeometrySummary.js +47 -47
  253. package/lib/esm/GeometrySummary.js.map +1 -1
  254. package/lib/esm/IModelDb.d.ts +9 -1
  255. package/lib/esm/IModelDb.d.ts.map +1 -1
  256. package/lib/esm/IModelDb.js +33 -14
  257. package/lib/esm/IModelDb.js.map +1 -1
  258. package/lib/esm/IModelDbFonts.js.map +1 -1
  259. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  260. package/lib/esm/IModelHost.js.map +1 -1
  261. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  262. package/lib/esm/IModelJsFs.js.map +1 -1
  263. package/lib/esm/ImageSourceConversion.js.map +1 -1
  264. package/lib/esm/IpcHost.d.ts.map +1 -1
  265. package/lib/esm/IpcHost.js +20 -9
  266. package/lib/esm/IpcHost.js.map +1 -1
  267. package/lib/esm/LineStyle.js.map +1 -1
  268. package/lib/esm/LocalHub.js +1 -1
  269. package/lib/esm/LocalHub.js.map +1 -1
  270. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  271. package/lib/esm/LockControl.js.map +1 -1
  272. package/lib/esm/Material.js.map +1 -1
  273. package/lib/esm/Model.d.ts +34 -0
  274. package/lib/esm/Model.d.ts.map +1 -1
  275. package/lib/esm/Model.js +24 -0
  276. package/lib/esm/Model.js.map +1 -1
  277. package/lib/esm/NativeAppStorage.js.map +1 -1
  278. package/lib/esm/NativeHost.js.map +1 -1
  279. package/lib/esm/NavigationRelationship.js.map +1 -1
  280. package/lib/esm/PartialChangeUnifier.d.ts +77 -0
  281. package/lib/esm/PartialChangeUnifier.d.ts.map +1 -0
  282. package/lib/esm/PartialChangeUnifier.js +230 -0
  283. package/lib/esm/PartialChangeUnifier.js.map +1 -0
  284. package/lib/esm/PromiseMemoizer.js.map +1 -1
  285. package/lib/esm/PropertyStore.js.map +1 -1
  286. package/lib/esm/Relationship.js.map +1 -1
  287. package/lib/esm/RpcBackend.js.map +1 -1
  288. package/lib/esm/SQLiteDb.js.map +1 -1
  289. package/lib/esm/Schema.js.map +1 -1
  290. package/lib/esm/SchemaSync.js.map +1 -1
  291. package/lib/esm/SchemaUtils.js.map +1 -1
  292. package/lib/esm/SheetIndex.js.map +1 -1
  293. package/lib/esm/SqliteChangesetReader.d.ts.map +1 -1
  294. package/lib/esm/SqliteChangesetReader.js +1 -1
  295. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  296. package/lib/esm/SqliteStatement.js.map +1 -1
  297. package/lib/esm/StashManager.js.map +1 -1
  298. package/lib/esm/Texture.js.map +1 -1
  299. package/lib/esm/TileStorage.js.map +1 -1
  300. package/lib/esm/TxnManager.d.ts +14 -0
  301. package/lib/esm/TxnManager.d.ts.map +1 -1
  302. package/lib/esm/TxnManager.js +25 -0
  303. package/lib/esm/TxnManager.js.map +1 -1
  304. package/lib/esm/ViewDefinition.d.ts +19 -7
  305. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  306. package/lib/esm/ViewDefinition.js +78 -26
  307. package/lib/esm/ViewDefinition.js.map +1 -1
  308. package/lib/esm/ViewStateHydrator.js.map +1 -1
  309. package/lib/esm/ViewStore.d.ts.map +1 -1
  310. package/lib/esm/ViewStore.js +64 -22
  311. package/lib/esm/ViewStore.js.map +1 -1
  312. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  313. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  314. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  315. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  316. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  317. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  318. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  319. package/lib/esm/core-backend.d.ts +3 -0
  320. package/lib/esm/core-backend.d.ts.map +1 -1
  321. package/lib/esm/core-backend.js +3 -0
  322. package/lib/esm/core-backend.js.map +1 -1
  323. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  324. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  325. package/lib/esm/domains/GenericElements.js.map +1 -1
  326. package/lib/esm/domains/GenericSchema.js.map +1 -1
  327. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  328. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  329. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  330. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  331. package/lib/esm/internal/HubMock.js.map +1 -1
  332. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  333. package/lib/esm/internal/IntegrityCheck.d.ts +10 -10
  334. package/lib/esm/internal/IntegrityCheck.js +22 -22
  335. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  336. package/lib/esm/internal/NativePlatform.js.map +1 -1
  337. package/lib/esm/internal/NoLocks.js.map +1 -1
  338. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  339. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  340. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  341. package/lib/esm/internal/Symbols.js.map +1 -1
  342. package/lib/esm/internal/annotations/fields.js.map +1 -1
  343. package/lib/esm/internal/cross-package.js.map +1 -1
  344. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  345. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  346. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  347. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  348. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  349. package/lib/esm/rpc/multipart.js.map +1 -1
  350. package/lib/esm/rpc/tracing.js.map +1 -1
  351. package/lib/esm/rpc/web/logging.js.map +1 -1
  352. package/lib/esm/rpc/web/request.js.map +1 -1
  353. package/lib/esm/rpc/web/response.js.map +1 -1
  354. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  355. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  356. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  357. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  358. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  359. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  360. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  361. package/lib/esm/test/AttachDb.test.js +11 -11
  362. package/lib/esm/test/AttachDb.test.js.map +1 -1
  363. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  364. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  365. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  366. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  367. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  368. package/lib/esm/test/IModelHost.test.js.map +1 -1
  369. package/lib/esm/test/IModelTestUtils.d.ts +1 -0
  370. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  371. package/lib/esm/test/IModelTestUtils.js +5 -0
  372. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  373. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  374. package/lib/esm/test/IpcHost.test.js +112 -0
  375. package/lib/esm/test/IpcHost.test.js.map +1 -1
  376. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  377. package/lib/esm/test/PrintElementTree.js.map +1 -1
  378. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  379. package/lib/esm/test/RevisionUtility.js.map +1 -1
  380. package/lib/esm/test/SchemaUtils.test.js +25 -25
  381. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  382. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  383. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  384. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  385. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  386. package/lib/esm/test/TestEditTxn.js.map +1 -1
  387. package/lib/esm/test/TestUtils.js.map +1 -1
  388. package/lib/esm/test/annotations/Fields.test.js +53 -53
  389. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  390. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  391. package/lib/esm/test/annotations/LeaderGeometry.test.js +0 -1
  392. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  393. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  394. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  395. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  396. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  397. package/lib/esm/test/categories/Category.test.js.map +1 -1
  398. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  399. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  400. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  401. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  402. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  403. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  404. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  405. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  406. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  407. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  408. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  409. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  410. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  411. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  412. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  413. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
  414. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  415. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  416. package/lib/esm/test/ecdb/QueryReaders.test.js +31 -31
  417. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  418. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  419. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  420. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  421. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  422. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  423. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  424. package/lib/esm/test/element/DeleteDefinitionElements.test.js +819 -26
  425. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  426. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  427. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  428. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  429. package/lib/esm/test/element/ElementRoundTrip.test.js +283 -142
  430. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  431. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  432. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  433. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  434. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  435. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  436. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  437. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  438. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  439. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  440. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  441. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  442. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  443. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  444. package/lib/esm/test/hubaccess/Rebase.test.js +57 -57
  445. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  446. package/lib/esm/test/hubaccess/SemanticRebase.test.js +145 -145
  447. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  448. package/lib/esm/test/imageData.js.map +1 -1
  449. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  450. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  451. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  452. package/lib/esm/test/imodel/IModel.test.js +45 -45
  453. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  454. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  455. package/lib/esm/test/imodel/SchemaXmlImport.test.js +77 -13
  456. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  457. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  458. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  459. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  460. package/lib/esm/test/index.js.map +1 -1
  461. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  462. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  463. package/lib/esm/test/misc/GeoServices.test.js +43 -1
  464. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  465. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  466. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  467. package/lib/esm/test/rpc/response.test.js.map +1 -1
  468. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  469. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  470. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  471. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  472. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  473. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  474. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  475. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  476. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  477. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  478. package/lib/esm/test/standalone/ChangesetReader.test.js +4201 -1671
  479. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  480. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  481. package/lib/esm/test/standalone/DeleteElements.test.d.ts +2 -0
  482. package/lib/esm/test/standalone/DeleteElements.test.d.ts.map +1 -0
  483. package/lib/esm/test/standalone/DeleteElements.test.js +625 -0
  484. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -0
  485. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  486. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  487. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  488. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  489. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  490. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  491. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  492. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  493. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  494. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  495. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  496. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  497. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  498. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  499. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  500. package/lib/esm/test/standalone/IntegrityCheck.test.js +214 -5
  501. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  502. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  503. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  504. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  505. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  506. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  507. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts +2 -0
  508. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts.map +1 -0
  509. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +1862 -0
  510. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -0
  511. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  512. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  513. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  514. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  515. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  516. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  517. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  518. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  519. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  520. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  521. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  522. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  523. package/lib/esm/test/standalone/TxnManager.test.js +90 -0
  524. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  525. package/lib/esm/test/standalone/ViewDefinition.test.js +18 -7
  526. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  527. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  528. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  529. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  530. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  531. package/lib/esm/workspace/Settings.d.ts +6 -4
  532. package/lib/esm/workspace/Settings.d.ts.map +1 -1
  533. package/lib/esm/workspace/Settings.js.map +1 -1
  534. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  535. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  536. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  537. package/lib/esm/workspace/Workspace.js.map +1 -1
  538. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  539. package/package.json +15 -15
@@ -5,10 +5,23 @@
5
5
  /** @packageDocumentation
6
6
  * @module iModels
7
7
  */
8
- import { DbResult, Id64, IModelStatus, OpenMode } from "@itwin/core-bentley";
8
+ import { DbResult, Id64, IModelStatus, ITwinError, OpenMode } from "@itwin/core-bentley";
9
9
  import { EcefLocation, EditTxnError, IModelError } from "@itwin/core-common";
10
10
  import { Range3d } from "@itwin/core-geometry";
11
11
  import { _activeTxn, _cache, _instanceKeyCache, _nativeDb } from "./internal/Symbols";
12
+ /**
13
+ * Status of a bulk element delete operation, mirroring the C++ `BulkDeleteStatus` enum.
14
+ * @beta
15
+ */
16
+ export var BulkDeleteElementsStatus;
17
+ (function (BulkDeleteElementsStatus) {
18
+ /** All supplied elements were deleted successfully. */
19
+ BulkDeleteElementsStatus[BulkDeleteElementsStatus["Success"] = 0] = "Success";
20
+ /** Some elements were deleted but others could not be, typically due to foreign key constraints on the elements not being deleted. */
21
+ BulkDeleteElementsStatus[BulkDeleteElementsStatus["PartialSuccess"] = 1] = "PartialSuccess";
22
+ /** No elements were deleted. This occurs when the SQL DELETE statement itself fails, e.g. due to a FK constraint violation that prevents the entire batch from being processed. */
23
+ BulkDeleteElementsStatus[BulkDeleteElementsStatus["DeletionFailed"] = 2] = "DeletionFailed";
24
+ })(BulkDeleteElementsStatus || (BulkDeleteElementsStatus = {}));
12
25
  /**
13
26
  * Represents an explicit editing transaction for an iModel.
14
27
  *
@@ -194,6 +207,35 @@ export class EditTxn {
194
207
  }
195
208
  });
196
209
  }
210
+ /**
211
+ * Delete multiple elements from the iModel.
212
+ * @param ids The ids of the elements to delete. All ids must be well-formed and valid [[Id64String]]s.
213
+ * @param deleteOptions Options for the delete operation.
214
+ * @returns A result object containing information about the deletion operation success and the element ids that failed to delete (if any).
215
+ * @throws [[ITwinError]] if any of the supplied ids are not well-formed/valid [[Id64String]]s.
216
+ * @beta
217
+ */
218
+ deleteElements(ids, deleteOptions) {
219
+ this.verifyWriteable();
220
+ const invalidIds = new Set();
221
+ for (const id of ids) {
222
+ if (!Id64.isValidId64(id))
223
+ invalidIds.add(id);
224
+ }
225
+ if (invalidIds.size > 0)
226
+ ITwinError.throwError({ message: `Invalid element ids: ${Array.from(invalidIds).join(", ")}`, iTwinErrorId: { scope: "imodel", key: "invalid-arguments" } });
227
+ const bulkDeletionResult = this.iModel[_nativeDb].deleteElements(ids, deleteOptions);
228
+ const finalResult = { ...bulkDeletionResult, failedIds: Id64.toIdSet(bulkDeletionResult.failedIds) };
229
+ if (finalResult.status === BulkDeleteElementsStatus.DeletionFailed)
230
+ return finalResult;
231
+ for (const id of ids) {
232
+ if (!finalResult.failedIds.has(id)) {
233
+ this.iModel.elements[_cache].delete({ id });
234
+ this.iModel.elements[_instanceKeyCache].deleteById(id);
235
+ }
236
+ }
237
+ return finalResult;
238
+ }
197
239
  /** Insert a new aspect into the iModel.
198
240
  * @param aspectProps The properties of the new aspect.
199
241
  * @returns The newly inserted aspect Id.
@@ -1 +1 @@
1
- {"version":3,"file":"EditTxn.js","sourceRoot":"","sources":["../../src/EditTxn.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module iModels\n */\n\nimport { DbResult, Id64, Id64Arg, Id64Array, Id64Set, Id64String, IModelStatus, OpenMode } from \"@itwin/core-bentley\";\nimport { EcefLocation, EcefLocationProps, EditTxnError, ElementAspectProps, ElementProps, FilePropertyProps, IModelError, ModelProps, RelationshipProps, SaveChangesArgs } from \"@itwin/core-common\";\nimport { Range3d, Range3dProps } from \"@itwin/core-geometry\";\nimport type { CloudSqlite } from \"./CloudSqlite\";\nimport type { ImplicitWriteEnforcement } from \"./IModelHost\";\nimport type { IModelDb, InsertElementOptions, UpdateModelOptions } from \"./IModelDb\";\nimport type { SettingsContainer } from \"./workspace/Settings\";\nimport { _activeTxn, _cache, _instanceKeyCache, _nativeDb } from \"./internal/Symbols\";\n\n/**\n * Represents an explicit editing transaction for an iModel.\n *\n * An explicit EditTxn lets callers define a deliberate unit of work by choosing when editing\n * starts (`start`) and how it ends (`end()` / `end(\"save\")` or `end(\"abandon\")`). This avoids mixing\n * unrelated edits into one implicit unit of work and makes save/rollback boundaries explicit.\n *\n * Explicit EditTxn instances must be active before mutating operations are performed, regardless of enforcement level.\n * In other words, explicit transaction behavior is independent of `implicitWriteEnforcement`.\n *\n * @see [EditTxn transaction model and migration guidance]($docs/learning/backend/EditTxn.md)\n *\n * *During indirect changes (commit processing):* Use callback args (`indirectEditTxn`) in callbacks like\n * [[Relationship.onRootChangedArg]] and [[Relationship.onDeletedDependencyArg]] that fire during indirect processing.\n *\n * @beta\n */\nexport class EditTxn {\n /** Controls how writes through the implicit transaction are handled.\n *\n * This does not relax activation requirements for explicit transactions: explicit EditTxn writes\n * must always come from the active EditTxn.\n *\n * - `allow`: allow implicit writes for backwards compatibility, even while an explicit EditTxn is active.\n * - `log`: allow implicit writes but log `implicit-txn-write-disallowed` errors.\n * - `throw`: reject implicit writes with `implicit-txn-write-disallowed`.\n *\n * This is initialized from [[IModelHostOptions.implicitWriteEnforcement]] during [[IModelHost.startup]].\n *\n * Defaults to `allow` for backwards compatibility.\n * @beta\n */\n public static implicitWriteEnforcement: ImplicitWriteEnforcement = \"allow\";\n\n /** The iModel this EditTxn may modify. */\n public readonly iModel: IModelDb;\n\n /** Default description passed to [[saveChanges]] when saving this transaction. */\n public description: string;\n\n /** True if this transaction currently owns the iModel write surface. */\n public get isActive(): boolean {\n return this.iModel[_activeTxn] === this;\n }\n\n public constructor(iModel: IModelDb, description: string) {\n this.iModel = iModel;\n this.description = description;\n }\n\n public verifyWriteable(): void {\n // Explicit transactions must always be active before writing.\n if (!this.isActive)\n EditTxnError.throwError(\"not-active\", \"EditTxn is not active\", this.iModel.key);\n }\n\n /** Start this EditTxn, making it the active transaction for the iModel.\n * @throws EditTxnError if this EditTxn is already active, another EditTxn is already active, or if unsaved changes are present.\n */\n public start(): void {\n if (this.isActive)\n EditTxnError.throwError(\"already-active\", \"This EditTxn is already active\", this.iModel.key);\n\n const activeTxn = this.iModel[_activeTxn];\n if (undefined !== activeTxn)\n EditTxnError.throwError(\"already-active\", \"Cannot start EditTxn while another EditTxn is active\", this.iModel.key, activeTxn.description);\n\n if (this.iModel[_nativeDb].hasUnsavedChanges())\n EditTxnError.throwError(\"unsaved-changes\", \"Cannot start a new EditTxn with unsaved changes\", this.iModel.key);\n\n this.iModel[_activeTxn] = this;\n }\n\n /** End this EditTxn, either by saving or abandoning the changes.\n * @param mode Whether to \"save\" or \"abandon\" the changes. Defaults to \"save\".\n * @param args Save changes arguments when saving.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if saving changes fails.\n */\n public end(): void;\n public end(mode: \"save\" | \"abandon\", args?: string | SaveChangesArgs): void;\n public end(mode: \"save\" | \"abandon\" = \"save\", args?: string | SaveChangesArgs): void {\n if (!this.isActive)\n EditTxnError.throwError(\"not-active\", \"EditTxn is not active\", this.iModel.key);\n\n if (mode === \"save\") {\n this.saveChanges(args);\n } else {\n this.abandonChanges();\n }\n this.iModel[_activeTxn] = undefined;\n }\n\n /** Invoked when the owning iModel is closing.\n * The base implementation commits unsaved changes. Subclasses may override to customize how\n * their changes are handled before the iModel closes.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if saving on close fails.\n */\n public onClose(): void {\n if (!this.iModel.isReadonly && this.iModel[_nativeDb].hasUnsavedChanges())\n this.saveChanges();\n }\n\n /** Abandon database changes while keeping this EditTxn active.\n * @throws EditTxnError if this EditTxn is not active.\n */\n public abandonChanges(): void {\n this.verifyWriteable();\n this.iModel.clearCaches({ instanceCachesOnly: true });\n this.iModel[_nativeDb].abandonChanges();\n }\n\n /** Save changes with additional arguments.\n * @param args Save changes arguments.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if the iModel is readonly, if indirect changes are active, or if the native save fails.\n */\n public saveChanges(args?: string | SaveChangesArgs): void {\n this.verifyWriteable();\n const iModel = this.iModel;\n if (iModel.openMode === OpenMode.Readonly)\n throw new IModelError(IModelStatus.ReadOnly, \"IModelDb was opened read-only\");\n\n if (iModel.isBriefcaseDb() && iModel.txns.isIndirectChanges)\n throw new IModelError(IModelStatus.BadRequest, \"Cannot save changes while in an indirect change scope\");\n\n args ??= this.description;\n const saveArgs = typeof args === \"string\" ? { description: args } : args;\n const stat = iModel[_nativeDb].saveChanges(JSON.stringify(saveArgs));\n if (DbResult.BE_SQLITE_ERROR_PropagateChangesFailed === stat)\n throw new IModelError(stat, \"Could not save changes due to propagation failure.\");\n\n if (DbResult.BE_SQLITE_OK !== stat)\n throw new IModelError(stat, `Could not save changes (${saveArgs.description})`);\n }\n\n /** Insert a new element into the iModel.\n * @param elProps The properties of the new element.\n * @returns The newly inserted element's Id.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws [[ITwinError]] if insertion fails.\n */\n public insertElement(elProps: ElementProps, options?: InsertElementOptions): Id64String {\n this.verifyWriteable();\n try {\n this.iModel.elements[_cache].delete({\n id: elProps.id,\n federationGuid: elProps.federationGuid,\n code: elProps.code,\n });\n return elProps.id = this.iModel[_nativeDb].insertElement(elProps, options);\n } catch (err: any) {\n err.message = `Error inserting element [${err.message}]`;\n err.metadata = { elProps };\n throw err;\n }\n }\n\n /** Update an existing element in the iModel.\n * @param elProps The properties to update.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws [[ITwinError]] if update fails.\n */\n public updateElement<T extends ElementProps>(elProps: Partial<T>): void {\n this.verifyWriteable();\n try {\n if (elProps.id) {\n this.iModel.elements[_instanceKeyCache].deleteById(elProps.id);\n } else {\n this.iModel.elements[_instanceKeyCache].delete({\n federationGuid: elProps.federationGuid,\n code: elProps.code,\n });\n }\n this.iModel.elements[_cache].delete({\n id: elProps.id,\n federationGuid: elProps.federationGuid,\n code: elProps.code,\n });\n this.iModel[_nativeDb].updateElement(elProps);\n } catch (err: any) {\n err.message = `Error updating element [${err.message}], id: ${elProps.id}`;\n err.metadata = { elProps };\n throw err;\n }\n }\n\n /** Delete elements from the iModel.\n * @param ids The Ids of the elements to delete.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws [[ITwinError]] if deletion fails.\n */\n public deleteElement(ids: Id64Arg): void {\n this.verifyWriteable();\n const iModel = this.iModel;\n Id64.toIdSet(ids).forEach((id) => {\n try {\n this.iModel.elements[_cache].delete({ id });\n this.iModel.elements[_instanceKeyCache].deleteById(id);\n iModel[_nativeDb].deleteElement(id);\n } catch (err: any) {\n err.message = `Error deleting element [${err.message}], id: ${id}`;\n err.metadata = { elementId: id };\n throw err;\n }\n });\n }\n\n /** Insert a new aspect into the iModel.\n * @param aspectProps The properties of the new aspect.\n * @returns The newly inserted aspect Id.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if insertion fails.\n */\n public insertAspect(aspectProps: ElementAspectProps): Id64String {\n this.verifyWriteable();\n try {\n return this.iModel[_nativeDb].insertElementAspect(aspectProps);\n } catch (err: any) {\n const error = new IModelError(err.errorNumber, `Error inserting ElementAspect [${err.message}], class: ${aspectProps.classFullName}`, aspectProps);\n error.cause = err;\n throw error;\n }\n }\n\n /** Update an existing aspect in the iModel.\n * @param aspectProps The properties of the aspect to update.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if update fails.\n */\n public updateAspect(aspectProps: ElementAspectProps): void {\n this.verifyWriteable();\n try {\n this.iModel[_nativeDb].updateElementAspect(aspectProps);\n } catch (err: any) {\n const error = new IModelError(err.errorNumber, `Error updating ElementAspect [${err.message}], id: ${aspectProps.id}`, aspectProps);\n error.cause = err;\n throw error;\n }\n }\n\n /** Delete one or more aspects from the iModel.\n * @param aspectInstanceIds The Ids of the aspects to delete.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if deletion fails.\n */\n public deleteAspect(aspectInstanceIds: Id64Arg): void {\n this.verifyWriteable();\n Id64.toIdSet(aspectInstanceIds).forEach((aspectInstanceId) => {\n try {\n this.iModel[_nativeDb].deleteElementAspect(aspectInstanceId);\n } catch (err: any) {\n const error = new IModelError(err.errorNumber, `Error deleting ElementAspect [${err.message}], id: ${aspectInstanceId}`);\n error.cause = err;\n throw error;\n }\n });\n }\n\n /** Delete definition elements from the iModel when they are not referenced.\n * @param definitionElementIds The Ids of the definition elements to attempt to delete.\n * @returns The set of definition elements that were still in use and therefore not deleted.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if usage queries fail.\n */\n public deleteDefinitionElements(definitionElementIds: Id64Array): Id64Set {\n this.verifyWriteable();\n const usageInfo = this.iModel[_nativeDb].queryDefinitionElementUsage(definitionElementIds);\n if (!usageInfo)\n throw new IModelError(IModelStatus.BadRequest, \"Error querying for DefinitionElement usage\");\n\n const usedIdSet = usageInfo.usedIds ? Id64.toIdSet(usageInfo.usedIds) : new Set<Id64String>();\n const deleteIfUnused = (ids: Id64Array | undefined, used: Id64Set): void => {\n ids?.forEach((id) => {\n if (!used.has(id))\n this.deleteElement(id);\n });\n };\n\n try {\n this.iModel[_nativeDb].beginPurgeOperation();\n deleteIfUnused(usageInfo.spatialCategoryIds, usedIdSet);\n deleteIfUnused(usageInfo.drawingCategoryIds, usedIdSet);\n deleteIfUnused(usageInfo.viewDefinitionIds, usedIdSet);\n deleteIfUnused(usageInfo.geometryPartIds, usedIdSet);\n deleteIfUnused(usageInfo.lineStyleIds, usedIdSet);\n deleteIfUnused(usageInfo.renderMaterialIds, usedIdSet);\n deleteIfUnused(usageInfo.subCategoryIds, usedIdSet);\n deleteIfUnused(usageInfo.textureIds, usedIdSet);\n deleteIfUnused(usageInfo.displayStyleIds, usedIdSet);\n deleteIfUnused(usageInfo.categorySelectorIds, usedIdSet);\n deleteIfUnused(usageInfo.modelSelectorIds, usedIdSet);\n if (usageInfo.otherDefinitionElementIds)\n this.deleteElement(usageInfo.otherDefinitionElementIds);\n } finally {\n this.iModel[_nativeDb].endPurgeOperation();\n }\n\n if (usageInfo.viewDefinitionIds) {\n // Recheck view-related definitions after deleting view definitions that may have been their last reference.\n let viewRelatedIds: Id64Array = [];\n if (usageInfo.displayStyleIds)\n viewRelatedIds = viewRelatedIds.concat(usageInfo.displayStyleIds.filter((id) => usedIdSet.has(id)));\n\n if (usageInfo.categorySelectorIds)\n viewRelatedIds = viewRelatedIds.concat(usageInfo.categorySelectorIds.filter((id) => usedIdSet.has(id)));\n\n if (usageInfo.modelSelectorIds)\n viewRelatedIds = viewRelatedIds.concat(usageInfo.modelSelectorIds.filter((id) => usedIdSet.has(id)));\n\n if (viewRelatedIds.length > 0) {\n const viewRelatedUsageInfo = this.iModel[_nativeDb].queryDefinitionElementUsage(viewRelatedIds);\n if (viewRelatedUsageInfo) {\n const usedViewRelatedIdSet: Id64Set = viewRelatedUsageInfo.usedIds ? Id64.toIdSet(viewRelatedUsageInfo.usedIds) : new Set<Id64String>();\n try {\n this.iModel[_nativeDb].beginPurgeOperation();\n deleteIfUnused(viewRelatedUsageInfo.displayStyleIds, usedViewRelatedIdSet);\n deleteIfUnused(viewRelatedUsageInfo.categorySelectorIds, usedViewRelatedIdSet);\n deleteIfUnused(viewRelatedUsageInfo.modelSelectorIds, usedViewRelatedIdSet);\n } finally {\n this.iModel[_nativeDb].endPurgeOperation();\n }\n\n viewRelatedIds.forEach((id) => {\n if (!usedViewRelatedIdSet.has(id))\n usedIdSet.delete(id);\n });\n }\n }\n }\n\n return usedIdSet;\n }\n\n /** Insert a new model into the iModel.\n * @param props The data for the new model.\n * @returns The newly inserted model's Id.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if insertion fails.\n */\n public insertModel(props: ModelProps): Id64String {\n this.verifyWriteable();\n try {\n return props.id = this.iModel[_nativeDb].insertModel(props);\n } catch (err: any) {\n const error = new IModelError(err.errorNumber, `Error inserting model [${err.message}], class=${props.classFullName}`);\n error.cause = err;\n throw error;\n }\n }\n\n /** Update an existing model in the iModel.\n * @param props the properties of the model to change\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if update fails.\n */\n public updateModel(props: UpdateModelOptions): void {\n this.verifyWriteable();\n try {\n if (props.id)\n this.iModel.models[_cache].delete(props.id);\n\n this.iModel[_nativeDb].updateModel(props);\n } catch (err: any) {\n const error = new IModelError(err.errorNumber, `Error updating model [${err.message}], id: ${props.id}`);\n error.cause = err;\n throw error;\n }\n }\n\n /** Update the geometry guid of a model.\n * @param modelId The Id of the model to update.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if the update fails.\n */\n public updateGeometryGuid(modelId: Id64String): void {\n this.verifyWriteable();\n this.iModel.models[_cache].delete(modelId);\n const error = this.iModel[_nativeDb].updateModelGeometryGuid(modelId);\n if (error !== IModelStatus.Success)\n throw new IModelError(error, `Error updating geometry guid for model ${modelId}`);\n }\n\n /** Delete models from the iModel.\n * @param ids The Ids of the models to delete.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if deletion fails.\n */\n public deleteModel(ids: Id64Arg): void {\n this.verifyWriteable();\n Id64.toIdSet(ids).forEach((id) => {\n try {\n this.iModel.models[_cache].delete(id);\n this.iModel.models[_instanceKeyCache].deleteById(id);\n this.iModel[_nativeDb].deleteModel(id);\n } catch (err: any) {\n const error = new IModelError(err.errorNumber, `Error deleting model [${err.message}], id: ${id}`);\n error.cause = err;\n throw error;\n }\n });\n }\n\n /** Insert a new relationship into the iModel.\n * @param props The properties of the new relationship.\n * @returns The Id of the newly inserted relationship.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if the class is invalid for link-table insertion.\n */\n public insertRelationship(props: RelationshipProps): Id64String {\n this.verifyWriteable();\n if (!this.iModel[_nativeDb].isLinkTableRelationship(props.classFullName.replace(\".\", \":\")))\n throw new IModelError(DbResult.BE_SQLITE_ERROR, `Class '${props.classFullName}' must be a relationship class and it should be subclass of BisCore:ElementRefersToElements or BisCore:ElementDrivesElement.`);\n\n return props.id = this.iModel[_nativeDb].insertLinkTableRelationship(props);\n }\n\n /** Update an existing relationship in the iModel.\n * @param props the properties of the relationship to update.\n * @throws EditTxnError if this EditTxn is not active.\n */\n public updateRelationship(props: RelationshipProps): void {\n this.verifyWriteable();\n this.iModel[_nativeDb].updateLinkTableRelationship(props);\n }\n\n /** Delete a relationship from the iModel.\n * @param props The properties of the relationship to delete.\n * @throws EditTxnError if this EditTxn is not active.\n */\n public deleteRelationship(props: RelationshipProps): void {\n this.verifyWriteable();\n this.iModel[_nativeDb].deleteLinkTableRelationship(props);\n }\n\n /** Delete multiple relationships from the iModel.\n * @param props The properties of the relationships to delete.\n * @throws EditTxnError if this EditTxn is not active.\n */\n public deleteRelationships(props: ReadonlyArray<RelationshipProps>): void {\n this.verifyWriteable();\n this.iModel[_nativeDb].deleteLinkTableRelationships(props);\n }\n\n\n /** Save a file property to the iModel.\n * @param prop The file property to save.\n * @param strValue String value.\n * @param blobVal Blob value.\n * @throws EditTxnError if this EditTxn is not active.\n */\n public saveFileProperty(prop: FilePropertyProps, strValue: string | undefined, blobVal?: Uint8Array): void {\n this.verifyWriteable();\n const imodel = this.iModel;\n if (imodel.isBriefcaseDb()) {\n if (imodel.txns.isIndirectChanges) {\n throw new IModelError(IModelStatus.BadRequest, \"Cannot save file property while in an indirect change scope\");\n }\n }\n imodel[_nativeDb].saveFileProperty(prop, strValue, blobVal);\n }\n\n /** Delete a file property from the iModel.\n * @param prop The file property to delete.\n * @throws EditTxnError if this EditTxn is not active.\n */\n public deleteFileProperty(prop: FilePropertyProps): void {\n this.saveFileProperty(prop, undefined, undefined);\n }\n\n /** Update the project extents of the iModel.\n * @param newExtents The new project extents.\n * @throws EditTxnError if this EditTxn is not active.\n * @throws IModelError if extents are invalid.\n */\n public updateProjectExtents(newExtents: Range3dProps): void {\n this.verifyWriteable();\n const extents = Range3d.fromJSON(newExtents);\n if (extents.isNull)\n throw new IModelError(DbResult.BE_SQLITE_ERROR, \"Invalid project extents\");\n\n this.iModel.projectExtents = extents;\n this.updateIModelProps();\n }\n\n /** Update the ECEF location of the iModel.\n * @param ecef The new ECEF location.\n * @throws EditTxnError if this EditTxn is not active.\n */\n public updateEcefLocation(ecef: EcefLocationProps): void {\n this.verifyWriteable();\n this.iModel.setEcefLocation(new EcefLocation(ecef));\n this.updateIModelProps();\n }\n\n /** Update the iModel props in the database from the current in-memory state.\n * @throws EditTxnError if this EditTxn is not active.\n */\n public updateIModelProps(): void {\n this.verifyWriteable();\n this.iModel[_nativeDb].updateIModelProps(this.iModel.toJSON());\n }\n\n private static readonly _settingPropNamespace = \"settings\";\n private static readonly _viewStoreProperty: FilePropertyProps = { namespace: \"itwinjs\", name: \"DefaultViewStore\" };\n\n /** Save a `SettingDictionary` in this iModel.\n * @param name The name for the SettingDictionary. If a dictionary by that name already exists, its value is replaced.\n * @param dict The SettingDictionary object to stringify and save.\n * @throws EditTxnError if this EditTxn is not active.\n * @beta\n */\n public saveSettingDictionary(name: string, dict: SettingsContainer): void {\n this.verifyWriteable();\n this.iModel.withSqliteStatement(\"REPLACE INTO be_Prop(id,SubId,TxnMode,Namespace,Name,strData) VALUES(0,0,0,?,?,?)\", (stmt) => {\n stmt.bindString(1, EditTxn._settingPropNamespace);\n stmt.bindString(2, name);\n stmt.bindString(3, JSON.stringify(dict));\n stmt.stepForWrite();\n });\n this.saveChanges(\"add settings\");\n }\n\n /** Delete a SettingDictionary from this iModel.\n * @param name The name of the dictionary to delete.\n * @throws EditTxnError if this EditTxn is not active.\n * @beta\n */\n public deleteSettingDictionary(name: string): void {\n this.verifyWriteable();\n this.iModel.withSqliteStatement(\"DELETE FROM be_Prop WHERE Namespace=? AND Name=?\", (stmt) => {\n stmt.bindString(1, EditTxn._settingPropNamespace);\n stmt.bindString(2, name);\n stmt.stepForWrite();\n });\n this.saveChanges(\"delete settings\");\n }\n\n /** Save a default ViewStore container reference in this iModel.\n * @param arg The cloud container properties for the ViewStore.\n * @throws EditTxnError if this EditTxn is not active.\n * @beta\n */\n public saveDefaultViewStore(arg: CloudSqlite.ContainerProps): void {\n this.verifyWriteable();\n const props = { baseUri: arg.baseUri, containerId: arg.containerId, storageType: arg.storageType }; // sanitize to only known properties\n this.saveFileProperty(EditTxn._viewStoreProperty, JSON.stringify(props));\n this.saveChanges(\"update default ViewStore\");\n }\n}\n\n/** Execute a callback within an explicit editing transaction. A new [[EditTxn]] is created, started,\n * and passed to `fn`. If `fn` returns normally (or its returned Promise resolves), the transaction\n * is committed. If `fn` throws (or its returned Promise rejects), the transaction is abandoned —\n * none of the changes made during the callback are saved — and the error is re-thrown.\n *\n * This is the recommended way to perform a scoped unit of work on an iModel. It ensures that\n * edits are committed atomically on success and rolled back on failure, without the caller needing\n * to manage `start` / `end` manually.\n *\n * @param iModel The iModel to edit.\n * @param fn A callback that receives the active [[EditTxn]] and performs edits.\n * @returns The value returned by `fn`.\n * @throws EditTxnError if the transaction cannot be started (e.g. unsaved changes or another EditTxn is active).\n * @throws Re-throws any error thrown by `fn` after abandoning the transaction.\n * @beta\n */\nexport function withEditTxn<T>(iModel: IModelDb, fn: (txn: EditTxn) => T): T;\n/** Execute a callback within an explicit editing transaction, supplying commit arguments.\n * @param iModel The iModel to edit.\n * @param saveArgs Description or structured arguments passed to [[EditTxn.saveChanges]] on save.\n * @param fn A callback that receives the active [[EditTxn]] and performs edits.\n * @returns The value returned by `fn`.\n * @beta\n */\nexport function withEditTxn<T>(iModel: IModelDb, saveArgs: string | SaveChangesArgs, fn: (txn: EditTxn) => T): T;\n/** Execute an async callback within an explicit editing transaction.\n * @param iModel The iModel to edit.\n * @param fn An async callback that receives the active [[EditTxn]] and performs edits.\n * @returns A Promise that resolves to the value returned by `fn`.\n * @beta\n */\nexport function withEditTxn<T>(iModel: IModelDb, fn: (txn: EditTxn) => Promise<T>): Promise<T>;\n/** Execute an async callback within an explicit editing transaction, supplying commit arguments.\n * @param iModel The iModel to edit.\n * @param saveArgs Description or structured arguments passed to [[EditTxn.saveChanges]] on save.\n * @param fn An async callback that receives the active [[EditTxn]] and performs edits.\n * @returns A Promise that resolves to the value returned by `fn`.\n * @beta\n */\nexport function withEditTxn<T>(iModel: IModelDb, saveArgs: string | SaveChangesArgs, fn: (txn: EditTxn) => Promise<T>): Promise<T>;\nexport function withEditTxn<T>(iModel: IModelDb, saveArgsOrFn: string | SaveChangesArgs | ((txn: EditTxn) => T | Promise<T>), maybeFn?: (txn: EditTxn) => T | Promise<T>): T | Promise<T> {\n const saveArgs = \"function\" === typeof saveArgsOrFn ? undefined : saveArgsOrFn;\n const fn = \"function\" === typeof saveArgsOrFn ? saveArgsOrFn : maybeFn;\n\n if (undefined === fn)\n throw new Error(\"withEditTxn requires a callback\");\n\n const txn = new EditTxn(iModel, \"\");\n txn.start();\n\n try {\n const result = fn(txn);\n if (result instanceof Promise) {\n return result.then((value) => {\n txn.end(\"save\", saveArgs);\n return value;\n }, (err) => {\n if (txn.isActive)\n txn.end(\"abandon\");\n\n throw err;\n });\n }\n\n txn.end(\"save\", saveArgs);\n return result;\n } catch (err) {\n if (txn.isActive)\n txn.end(\"abandon\");\n\n throw err;\n }\n}\n"]}
1
+ {"version":3,"file":"EditTxn.js","sourceRoot":"","sources":["../../src/EditTxn.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\n/** @packageDocumentation\r\n * @module iModels\r\n */\r\n\r\nimport { DbResult, Id64, Id64Arg, Id64Array, Id64Set, Id64String, IModelStatus, ITwinError, OpenMode } from \"@itwin/core-bentley\";\r\nimport { EcefLocation, EcefLocationProps, EditTxnError, ElementAspectProps, ElementProps, FilePropertyProps, IModelError, ModelProps, RelationshipProps, SaveChangesArgs } from \"@itwin/core-common\";\r\nimport { Range3d, Range3dProps } from \"@itwin/core-geometry\";\r\nimport type { CloudSqlite } from \"./CloudSqlite\";\r\nimport type { ImplicitWriteEnforcement } from \"./IModelHost\";\r\nimport type { IModelDb, InsertElementOptions, UpdateModelOptions } from \"./IModelDb\";\r\nimport type { SettingsContainer } from \"./workspace/Settings\";\r\nimport { _activeTxn, _cache, _instanceKeyCache, _nativeDb } from \"./internal/Symbols\";\r\n\r\n/** Options for bulk deleting elements from an iModelDb.\r\n * @beta\r\n */\r\nexport interface BulkDeleteElementsArgs {\r\n /**\r\n * Skips pre-deletion **NO ACTION** foreign key constraint validation checks, which may improve performance for large deletions.\r\n * This will improve performance, but if the user supplies elements which have FK constraint violations, it will result in the delete failing and an eventual rollback.\r\n */\r\n skipFKConstraintValidations?: boolean;\r\n}\r\n\r\n/**\r\n * Result of a bulk element delete operation.\r\n * @beta\r\n */\r\nexport interface BulkDeleteElementsResult {\r\n /**\r\n * Overall status of the bulk delete operation.\r\n * - `Success`: All elements were deleted successfully. `failedIds` will be empty.\r\n * - `PartialSuccess`: Some elements were deleted, but others failed. `failedIds` contains the ids that could not be deleted.\r\n * - `DeletionFailed`: The delete operation failed entirely (e.g. due to an FK constraint violation). `failedIds` contains the ids that could not be deleted.\r\n */\r\n status: BulkDeleteElementsStatus;\r\n /**\r\n * The raw SQLite result code from the underlying SQL DELETE statement.\r\n * `DbResult.BE_SQLITE_OK` on success; a non-OK code indicates a database-level error such as a constraint violation.\r\n */\r\n sqlDeleteStatus: DbResult;\r\n /**\r\n * The set of element ids that could not be deleted.\r\n * Empty when `status` is `Success`. Non-empty when `status` is `PartialSuccess` or `DeletionFailed`.\r\n */\r\n failedIds: Id64Set;\r\n}\r\n\r\n/**\r\n * Status of a bulk element delete operation, mirroring the C++ `BulkDeleteStatus` enum.\r\n * @beta\r\n */\r\nexport enum BulkDeleteElementsStatus {\r\n /** All supplied elements were deleted successfully. */\r\n Success = 0,\r\n /** Some elements were deleted but others could not be, typically due to foreign key constraints on the elements not being deleted. */\r\n PartialSuccess = 1,\r\n /** No elements were deleted. This occurs when the SQL DELETE statement itself fails, e.g. due to a FK constraint violation that prevents the entire batch from being processed. */\r\n DeletionFailed = 2,\r\n}\r\n\r\n/**\r\n * Represents an explicit editing transaction for an iModel.\r\n *\r\n * An explicit EditTxn lets callers define a deliberate unit of work by choosing when editing\r\n * starts (`start`) and how it ends (`end()` / `end(\"save\")` or `end(\"abandon\")`). This avoids mixing\r\n * unrelated edits into one implicit unit of work and makes save/rollback boundaries explicit.\r\n *\r\n * Explicit EditTxn instances must be active before mutating operations are performed, regardless of enforcement level.\r\n * In other words, explicit transaction behavior is independent of `implicitWriteEnforcement`.\r\n *\r\n * @see [EditTxn transaction model and migration guidance]($docs/learning/backend/EditTxn.md)\r\n *\r\n * *During indirect changes (commit processing):* Use callback args (`indirectEditTxn`) in callbacks like\r\n * [[Relationship.onRootChangedArg]] and [[Relationship.onDeletedDependencyArg]] that fire during indirect processing.\r\n *\r\n * @beta\r\n */\r\nexport class EditTxn {\r\n /** Controls how writes through the implicit transaction are handled.\r\n *\r\n * This does not relax activation requirements for explicit transactions: explicit EditTxn writes\r\n * must always come from the active EditTxn.\r\n *\r\n * - `allow`: allow implicit writes for backwards compatibility, even while an explicit EditTxn is active.\r\n * - `log`: allow implicit writes but log `implicit-txn-write-disallowed` errors.\r\n * - `throw`: reject implicit writes with `implicit-txn-write-disallowed`.\r\n *\r\n * This is initialized from [[IModelHostOptions.implicitWriteEnforcement]] during [[IModelHost.startup]].\r\n *\r\n * Defaults to `allow` for backwards compatibility.\r\n * @beta\r\n */\r\n public static implicitWriteEnforcement: ImplicitWriteEnforcement = \"allow\";\r\n\r\n /** The iModel this EditTxn may modify. */\r\n public readonly iModel: IModelDb;\r\n\r\n /** Default description passed to [[saveChanges]] when saving this transaction. */\r\n public description: string;\r\n\r\n /** True if this transaction currently owns the iModel write surface. */\r\n public get isActive(): boolean {\r\n return this.iModel[_activeTxn] === this;\r\n }\r\n\r\n public constructor(iModel: IModelDb, description: string) {\r\n this.iModel = iModel;\r\n this.description = description;\r\n }\r\n\r\n public verifyWriteable(): void {\r\n // Explicit transactions must always be active before writing.\r\n if (!this.isActive)\r\n EditTxnError.throwError(\"not-active\", \"EditTxn is not active\", this.iModel.key);\r\n }\r\n\r\n /** Start this EditTxn, making it the active transaction for the iModel.\r\n * @throws EditTxnError if this EditTxn is already active, another EditTxn is already active, or if unsaved changes are present.\r\n */\r\n public start(): void {\r\n if (this.isActive)\r\n EditTxnError.throwError(\"already-active\", \"This EditTxn is already active\", this.iModel.key);\r\n\r\n const activeTxn = this.iModel[_activeTxn];\r\n if (undefined !== activeTxn)\r\n EditTxnError.throwError(\"already-active\", \"Cannot start EditTxn while another EditTxn is active\", this.iModel.key, activeTxn.description);\r\n\r\n if (this.iModel[_nativeDb].hasUnsavedChanges())\r\n EditTxnError.throwError(\"unsaved-changes\", \"Cannot start a new EditTxn with unsaved changes\", this.iModel.key);\r\n\r\n this.iModel[_activeTxn] = this;\r\n }\r\n\r\n /** End this EditTxn, either by saving or abandoning the changes.\r\n * @param mode Whether to \"save\" or \"abandon\" the changes. Defaults to \"save\".\r\n * @param args Save changes arguments when saving.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if saving changes fails.\r\n */\r\n public end(): void;\r\n public end(mode: \"save\" | \"abandon\", args?: string | SaveChangesArgs): void;\r\n public end(mode: \"save\" | \"abandon\" = \"save\", args?: string | SaveChangesArgs): void {\r\n if (!this.isActive)\r\n EditTxnError.throwError(\"not-active\", \"EditTxn is not active\", this.iModel.key);\r\n\r\n if (mode === \"save\") {\r\n this.saveChanges(args);\r\n } else {\r\n this.abandonChanges();\r\n }\r\n this.iModel[_activeTxn] = undefined;\r\n }\r\n\r\n /** Invoked when the owning iModel is closing.\r\n * The base implementation commits unsaved changes. Subclasses may override to customize how\r\n * their changes are handled before the iModel closes.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if saving on close fails.\r\n */\r\n public onClose(): void {\r\n if (!this.iModel.isReadonly && this.iModel[_nativeDb].hasUnsavedChanges())\r\n this.saveChanges();\r\n }\r\n\r\n /** Abandon database changes while keeping this EditTxn active.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n */\r\n public abandonChanges(): void {\r\n this.verifyWriteable();\r\n this.iModel.clearCaches({ instanceCachesOnly: true });\r\n this.iModel[_nativeDb].abandonChanges();\r\n }\r\n\r\n /** Save changes with additional arguments.\r\n * @param args Save changes arguments.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if the iModel is readonly, if indirect changes are active, or if the native save fails.\r\n */\r\n public saveChanges(args?: string | SaveChangesArgs): void {\r\n this.verifyWriteable();\r\n const iModel = this.iModel;\r\n if (iModel.openMode === OpenMode.Readonly)\r\n throw new IModelError(IModelStatus.ReadOnly, \"IModelDb was opened read-only\");\r\n\r\n if (iModel.isBriefcaseDb() && iModel.txns.isIndirectChanges)\r\n throw new IModelError(IModelStatus.BadRequest, \"Cannot save changes while in an indirect change scope\");\r\n\r\n args ??= this.description;\r\n const saveArgs = typeof args === \"string\" ? { description: args } : args;\r\n const stat = iModel[_nativeDb].saveChanges(JSON.stringify(saveArgs));\r\n if (DbResult.BE_SQLITE_ERROR_PropagateChangesFailed === stat)\r\n throw new IModelError(stat, \"Could not save changes due to propagation failure.\");\r\n\r\n if (DbResult.BE_SQLITE_OK !== stat)\r\n throw new IModelError(stat, `Could not save changes (${saveArgs.description})`);\r\n }\r\n\r\n /** Insert a new element into the iModel.\r\n * @param elProps The properties of the new element.\r\n * @returns The newly inserted element's Id.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws [[ITwinError]] if insertion fails.\r\n */\r\n public insertElement(elProps: ElementProps, options?: InsertElementOptions): Id64String {\r\n this.verifyWriteable();\r\n try {\r\n this.iModel.elements[_cache].delete({\r\n id: elProps.id,\r\n federationGuid: elProps.federationGuid,\r\n code: elProps.code,\r\n });\r\n return elProps.id = this.iModel[_nativeDb].insertElement(elProps, options);\r\n } catch (err: any) {\r\n err.message = `Error inserting element [${err.message}]`;\r\n err.metadata = { elProps };\r\n throw err;\r\n }\r\n }\r\n\r\n /** Update an existing element in the iModel.\r\n * @param elProps The properties to update.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws [[ITwinError]] if update fails.\r\n */\r\n public updateElement<T extends ElementProps>(elProps: Partial<T>): void {\r\n this.verifyWriteable();\r\n try {\r\n if (elProps.id) {\r\n this.iModel.elements[_instanceKeyCache].deleteById(elProps.id);\r\n } else {\r\n this.iModel.elements[_instanceKeyCache].delete({\r\n federationGuid: elProps.federationGuid,\r\n code: elProps.code,\r\n });\r\n }\r\n this.iModel.elements[_cache].delete({\r\n id: elProps.id,\r\n federationGuid: elProps.federationGuid,\r\n code: elProps.code,\r\n });\r\n this.iModel[_nativeDb].updateElement(elProps);\r\n } catch (err: any) {\r\n err.message = `Error updating element [${err.message}], id: ${elProps.id}`;\r\n err.metadata = { elProps };\r\n throw err;\r\n }\r\n }\r\n\r\n /** Delete elements from the iModel.\r\n * @param ids The Ids of the elements to delete.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws [[ITwinError]] if deletion fails.\r\n */\r\n public deleteElement(ids: Id64Arg): void {\r\n this.verifyWriteable();\r\n const iModel = this.iModel;\r\n Id64.toIdSet(ids).forEach((id) => {\r\n try {\r\n this.iModel.elements[_cache].delete({ id });\r\n this.iModel.elements[_instanceKeyCache].deleteById(id);\r\n iModel[_nativeDb].deleteElement(id);\r\n } catch (err: any) {\r\n err.message = `Error deleting element [${err.message}], id: ${id}`;\r\n err.metadata = { elementId: id };\r\n throw err;\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Delete multiple elements from the iModel.\r\n * @param ids The ids of the elements to delete. All ids must be well-formed and valid [[Id64String]]s.\r\n * @param deleteOptions Options for the delete operation.\r\n * @returns A result object containing information about the deletion operation success and the element ids that failed to delete (if any).\r\n * @throws [[ITwinError]] if any of the supplied ids are not well-formed/valid [[Id64String]]s.\r\n * @beta\r\n */\r\n public deleteElements(ids: Id64Array, deleteOptions?: BulkDeleteElementsArgs): BulkDeleteElementsResult {\r\n this.verifyWriteable();\r\n const invalidIds: Id64Set = new Set<Id64String>();\r\n for (const id of ids) {\r\n if (!Id64.isValidId64(id))\r\n invalidIds.add(id);\r\n }\r\n\r\n if (invalidIds.size > 0)\r\n ITwinError.throwError({ message: `Invalid element ids: ${Array.from(invalidIds).join(\", \")}`, iTwinErrorId: { scope: \"imodel\", key: \"invalid-arguments\" } });\r\n\r\n const bulkDeletionResult = this.iModel[_nativeDb].deleteElements(ids, deleteOptions);\r\n const finalResult = { ...bulkDeletionResult, failedIds: Id64.toIdSet(bulkDeletionResult.failedIds) };\r\n\r\n if (finalResult.status === BulkDeleteElementsStatus.DeletionFailed)\r\n return finalResult;\r\n\r\n for (const id of ids) {\r\n if (!finalResult.failedIds.has(id)) {\r\n this.iModel.elements[_cache].delete({ id });\r\n this.iModel.elements[_instanceKeyCache].deleteById(id);\r\n }\r\n }\r\n\r\n return finalResult;\r\n }\r\n\r\n /** Insert a new aspect into the iModel.\r\n * @param aspectProps The properties of the new aspect.\r\n * @returns The newly inserted aspect Id.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if insertion fails.\r\n */\r\n public insertAspect(aspectProps: ElementAspectProps): Id64String {\r\n this.verifyWriteable();\r\n try {\r\n return this.iModel[_nativeDb].insertElementAspect(aspectProps);\r\n } catch (err: any) {\r\n const error = new IModelError(err.errorNumber, `Error inserting ElementAspect [${err.message}], class: ${aspectProps.classFullName}`, aspectProps);\r\n error.cause = err;\r\n throw error;\r\n }\r\n }\r\n\r\n /** Update an existing aspect in the iModel.\r\n * @param aspectProps The properties of the aspect to update.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if update fails.\r\n */\r\n public updateAspect(aspectProps: ElementAspectProps): void {\r\n this.verifyWriteable();\r\n try {\r\n this.iModel[_nativeDb].updateElementAspect(aspectProps);\r\n } catch (err: any) {\r\n const error = new IModelError(err.errorNumber, `Error updating ElementAspect [${err.message}], id: ${aspectProps.id}`, aspectProps);\r\n error.cause = err;\r\n throw error;\r\n }\r\n }\r\n\r\n /** Delete one or more aspects from the iModel.\r\n * @param aspectInstanceIds The Ids of the aspects to delete.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if deletion fails.\r\n */\r\n public deleteAspect(aspectInstanceIds: Id64Arg): void {\r\n this.verifyWriteable();\r\n Id64.toIdSet(aspectInstanceIds).forEach((aspectInstanceId) => {\r\n try {\r\n this.iModel[_nativeDb].deleteElementAspect(aspectInstanceId);\r\n } catch (err: any) {\r\n const error = new IModelError(err.errorNumber, `Error deleting ElementAspect [${err.message}], id: ${aspectInstanceId}`);\r\n error.cause = err;\r\n throw error;\r\n }\r\n });\r\n }\r\n\r\n /** Delete definition elements from the iModel when they are not referenced.\r\n * @param definitionElementIds The Ids of the definition elements to attempt to delete.\r\n * @returns The set of definition elements that were still in use and therefore not deleted.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if usage queries fail.\r\n */\r\n public deleteDefinitionElements(definitionElementIds: Id64Array): Id64Set {\r\n this.verifyWriteable();\r\n const usageInfo = this.iModel[_nativeDb].queryDefinitionElementUsage(definitionElementIds);\r\n if (!usageInfo)\r\n throw new IModelError(IModelStatus.BadRequest, \"Error querying for DefinitionElement usage\");\r\n\r\n const usedIdSet = usageInfo.usedIds ? Id64.toIdSet(usageInfo.usedIds) : new Set<Id64String>();\r\n const deleteIfUnused = (ids: Id64Array | undefined, used: Id64Set): void => {\r\n ids?.forEach((id) => {\r\n if (!used.has(id))\r\n this.deleteElement(id);\r\n });\r\n };\r\n\r\n try {\r\n this.iModel[_nativeDb].beginPurgeOperation();\r\n deleteIfUnused(usageInfo.spatialCategoryIds, usedIdSet);\r\n deleteIfUnused(usageInfo.drawingCategoryIds, usedIdSet);\r\n deleteIfUnused(usageInfo.viewDefinitionIds, usedIdSet);\r\n deleteIfUnused(usageInfo.geometryPartIds, usedIdSet);\r\n deleteIfUnused(usageInfo.lineStyleIds, usedIdSet);\r\n deleteIfUnused(usageInfo.renderMaterialIds, usedIdSet);\r\n deleteIfUnused(usageInfo.subCategoryIds, usedIdSet);\r\n deleteIfUnused(usageInfo.textureIds, usedIdSet);\r\n deleteIfUnused(usageInfo.displayStyleIds, usedIdSet);\r\n deleteIfUnused(usageInfo.categorySelectorIds, usedIdSet);\r\n deleteIfUnused(usageInfo.modelSelectorIds, usedIdSet);\r\n if (usageInfo.otherDefinitionElementIds)\r\n this.deleteElement(usageInfo.otherDefinitionElementIds);\r\n } finally {\r\n this.iModel[_nativeDb].endPurgeOperation();\r\n }\r\n\r\n if (usageInfo.viewDefinitionIds) {\r\n // Recheck view-related definitions after deleting view definitions that may have been their last reference.\r\n let viewRelatedIds: Id64Array = [];\r\n if (usageInfo.displayStyleIds)\r\n viewRelatedIds = viewRelatedIds.concat(usageInfo.displayStyleIds.filter((id) => usedIdSet.has(id)));\r\n\r\n if (usageInfo.categorySelectorIds)\r\n viewRelatedIds = viewRelatedIds.concat(usageInfo.categorySelectorIds.filter((id) => usedIdSet.has(id)));\r\n\r\n if (usageInfo.modelSelectorIds)\r\n viewRelatedIds = viewRelatedIds.concat(usageInfo.modelSelectorIds.filter((id) => usedIdSet.has(id)));\r\n\r\n if (viewRelatedIds.length > 0) {\r\n const viewRelatedUsageInfo = this.iModel[_nativeDb].queryDefinitionElementUsage(viewRelatedIds);\r\n if (viewRelatedUsageInfo) {\r\n const usedViewRelatedIdSet: Id64Set = viewRelatedUsageInfo.usedIds ? Id64.toIdSet(viewRelatedUsageInfo.usedIds) : new Set<Id64String>();\r\n try {\r\n this.iModel[_nativeDb].beginPurgeOperation();\r\n deleteIfUnused(viewRelatedUsageInfo.displayStyleIds, usedViewRelatedIdSet);\r\n deleteIfUnused(viewRelatedUsageInfo.categorySelectorIds, usedViewRelatedIdSet);\r\n deleteIfUnused(viewRelatedUsageInfo.modelSelectorIds, usedViewRelatedIdSet);\r\n } finally {\r\n this.iModel[_nativeDb].endPurgeOperation();\r\n }\r\n\r\n viewRelatedIds.forEach((id) => {\r\n if (!usedViewRelatedIdSet.has(id))\r\n usedIdSet.delete(id);\r\n });\r\n }\r\n }\r\n }\r\n\r\n return usedIdSet;\r\n }\r\n\r\n /** Insert a new model into the iModel.\r\n * @param props The data for the new model.\r\n * @returns The newly inserted model's Id.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if insertion fails.\r\n */\r\n public insertModel(props: ModelProps): Id64String {\r\n this.verifyWriteable();\r\n try {\r\n return props.id = this.iModel[_nativeDb].insertModel(props);\r\n } catch (err: any) {\r\n const error = new IModelError(err.errorNumber, `Error inserting model [${err.message}], class=${props.classFullName}`);\r\n error.cause = err;\r\n throw error;\r\n }\r\n }\r\n\r\n /** Update an existing model in the iModel.\r\n * @param props the properties of the model to change\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if update fails.\r\n */\r\n public updateModel(props: UpdateModelOptions): void {\r\n this.verifyWriteable();\r\n try {\r\n if (props.id)\r\n this.iModel.models[_cache].delete(props.id);\r\n\r\n this.iModel[_nativeDb].updateModel(props);\r\n } catch (err: any) {\r\n const error = new IModelError(err.errorNumber, `Error updating model [${err.message}], id: ${props.id}`);\r\n error.cause = err;\r\n throw error;\r\n }\r\n }\r\n\r\n /** Update the geometry guid of a model.\r\n * @param modelId The Id of the model to update.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if the update fails.\r\n */\r\n public updateGeometryGuid(modelId: Id64String): void {\r\n this.verifyWriteable();\r\n this.iModel.models[_cache].delete(modelId);\r\n const error = this.iModel[_nativeDb].updateModelGeometryGuid(modelId);\r\n if (error !== IModelStatus.Success)\r\n throw new IModelError(error, `Error updating geometry guid for model ${modelId}`);\r\n }\r\n\r\n /** Delete models from the iModel.\r\n * @param ids The Ids of the models to delete.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if deletion fails.\r\n */\r\n public deleteModel(ids: Id64Arg): void {\r\n this.verifyWriteable();\r\n Id64.toIdSet(ids).forEach((id) => {\r\n try {\r\n this.iModel.models[_cache].delete(id);\r\n this.iModel.models[_instanceKeyCache].deleteById(id);\r\n this.iModel[_nativeDb].deleteModel(id);\r\n } catch (err: any) {\r\n const error = new IModelError(err.errorNumber, `Error deleting model [${err.message}], id: ${id}`);\r\n error.cause = err;\r\n throw error;\r\n }\r\n });\r\n }\r\n\r\n /** Insert a new relationship into the iModel.\r\n * @param props The properties of the new relationship.\r\n * @returns The Id of the newly inserted relationship.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if the class is invalid for link-table insertion.\r\n */\r\n public insertRelationship(props: RelationshipProps): Id64String {\r\n this.verifyWriteable();\r\n if (!this.iModel[_nativeDb].isLinkTableRelationship(props.classFullName.replace(\".\", \":\")))\r\n throw new IModelError(DbResult.BE_SQLITE_ERROR, `Class '${props.classFullName}' must be a relationship class and it should be subclass of BisCore:ElementRefersToElements or BisCore:ElementDrivesElement.`);\r\n\r\n return props.id = this.iModel[_nativeDb].insertLinkTableRelationship(props);\r\n }\r\n\r\n /** Update an existing relationship in the iModel.\r\n * @param props the properties of the relationship to update.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n */\r\n public updateRelationship(props: RelationshipProps): void {\r\n this.verifyWriteable();\r\n this.iModel[_nativeDb].updateLinkTableRelationship(props);\r\n }\r\n\r\n /** Delete a relationship from the iModel.\r\n * @param props The properties of the relationship to delete.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n */\r\n public deleteRelationship(props: RelationshipProps): void {\r\n this.verifyWriteable();\r\n this.iModel[_nativeDb].deleteLinkTableRelationship(props);\r\n }\r\n\r\n /** Delete multiple relationships from the iModel.\r\n * @param props The properties of the relationships to delete.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n */\r\n public deleteRelationships(props: ReadonlyArray<RelationshipProps>): void {\r\n this.verifyWriteable();\r\n this.iModel[_nativeDb].deleteLinkTableRelationships(props);\r\n }\r\n\r\n\r\n /** Save a file property to the iModel.\r\n * @param prop The file property to save.\r\n * @param strValue String value.\r\n * @param blobVal Blob value.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n */\r\n public saveFileProperty(prop: FilePropertyProps, strValue: string | undefined, blobVal?: Uint8Array): void {\r\n this.verifyWriteable();\r\n const imodel = this.iModel;\r\n if (imodel.isBriefcaseDb()) {\r\n if (imodel.txns.isIndirectChanges) {\r\n throw new IModelError(IModelStatus.BadRequest, \"Cannot save file property while in an indirect change scope\");\r\n }\r\n }\r\n imodel[_nativeDb].saveFileProperty(prop, strValue, blobVal);\r\n }\r\n\r\n /** Delete a file property from the iModel.\r\n * @param prop The file property to delete.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n */\r\n public deleteFileProperty(prop: FilePropertyProps): void {\r\n this.saveFileProperty(prop, undefined, undefined);\r\n }\r\n\r\n /** Update the project extents of the iModel.\r\n * @param newExtents The new project extents.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @throws IModelError if extents are invalid.\r\n */\r\n public updateProjectExtents(newExtents: Range3dProps): void {\r\n this.verifyWriteable();\r\n const extents = Range3d.fromJSON(newExtents);\r\n if (extents.isNull)\r\n throw new IModelError(DbResult.BE_SQLITE_ERROR, \"Invalid project extents\");\r\n\r\n this.iModel.projectExtents = extents;\r\n this.updateIModelProps();\r\n }\r\n\r\n /** Update the ECEF location of the iModel.\r\n * @param ecef The new ECEF location.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n */\r\n public updateEcefLocation(ecef: EcefLocationProps): void {\r\n this.verifyWriteable();\r\n this.iModel.setEcefLocation(new EcefLocation(ecef));\r\n this.updateIModelProps();\r\n }\r\n\r\n /** Update the iModel props in the database from the current in-memory state.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n */\r\n public updateIModelProps(): void {\r\n this.verifyWriteable();\r\n this.iModel[_nativeDb].updateIModelProps(this.iModel.toJSON());\r\n }\r\n\r\n private static readonly _settingPropNamespace = \"settings\";\r\n private static readonly _viewStoreProperty: FilePropertyProps = { namespace: \"itwinjs\", name: \"DefaultViewStore\" };\r\n\r\n /** Save a `SettingDictionary` in this iModel.\r\n * @param name The name for the SettingDictionary. If a dictionary by that name already exists, its value is replaced.\r\n * @param dict The SettingDictionary object to stringify and save.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @beta\r\n */\r\n public saveSettingDictionary(name: string, dict: SettingsContainer): void {\r\n this.verifyWriteable();\r\n this.iModel.withSqliteStatement(\"REPLACE INTO be_Prop(id,SubId,TxnMode,Namespace,Name,strData) VALUES(0,0,0,?,?,?)\", (stmt) => {\r\n stmt.bindString(1, EditTxn._settingPropNamespace);\r\n stmt.bindString(2, name);\r\n stmt.bindString(3, JSON.stringify(dict));\r\n stmt.stepForWrite();\r\n });\r\n this.saveChanges(\"add settings\");\r\n }\r\n\r\n /** Delete a SettingDictionary from this iModel.\r\n * @param name The name of the dictionary to delete.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @beta\r\n */\r\n public deleteSettingDictionary(name: string): void {\r\n this.verifyWriteable();\r\n this.iModel.withSqliteStatement(\"DELETE FROM be_Prop WHERE Namespace=? AND Name=?\", (stmt) => {\r\n stmt.bindString(1, EditTxn._settingPropNamespace);\r\n stmt.bindString(2, name);\r\n stmt.stepForWrite();\r\n });\r\n this.saveChanges(\"delete settings\");\r\n }\r\n\r\n /** Save a default ViewStore container reference in this iModel.\r\n * @param arg The cloud container properties for the ViewStore.\r\n * @throws EditTxnError if this EditTxn is not active.\r\n * @beta\r\n */\r\n public saveDefaultViewStore(arg: CloudSqlite.ContainerProps): void {\r\n this.verifyWriteable();\r\n const props = { baseUri: arg.baseUri, containerId: arg.containerId, storageType: arg.storageType }; // sanitize to only known properties\r\n this.saveFileProperty(EditTxn._viewStoreProperty, JSON.stringify(props));\r\n this.saveChanges(\"update default ViewStore\");\r\n }\r\n}\r\n\r\n/** Execute a callback within an explicit editing transaction. A new [[EditTxn]] is created, started,\r\n * and passed to `fn`. If `fn` returns normally (or its returned Promise resolves), the transaction\r\n * is committed. If `fn` throws (or its returned Promise rejects), the transaction is abandoned —\r\n * none of the changes made during the callback are saved — and the error is re-thrown.\r\n *\r\n * This is the recommended way to perform a scoped unit of work on an iModel. It ensures that\r\n * edits are committed atomically on success and rolled back on failure, without the caller needing\r\n * to manage `start` / `end` manually.\r\n *\r\n * @param iModel The iModel to edit.\r\n * @param fn A callback that receives the active [[EditTxn]] and performs edits.\r\n * @returns The value returned by `fn`.\r\n * @throws EditTxnError if the transaction cannot be started (e.g. unsaved changes or another EditTxn is active).\r\n * @throws Re-throws any error thrown by `fn` after abandoning the transaction.\r\n * @beta\r\n */\r\nexport function withEditTxn<T>(iModel: IModelDb, fn: (txn: EditTxn) => T): T;\r\n/** Execute a callback within an explicit editing transaction, supplying commit arguments.\r\n * @param iModel The iModel to edit.\r\n * @param saveArgs Description or structured arguments passed to [[EditTxn.saveChanges]] on save.\r\n * @param fn A callback that receives the active [[EditTxn]] and performs edits.\r\n * @returns The value returned by `fn`.\r\n * @beta\r\n */\r\nexport function withEditTxn<T>(iModel: IModelDb, saveArgs: string | SaveChangesArgs, fn: (txn: EditTxn) => T): T;\r\n/** Execute an async callback within an explicit editing transaction.\r\n * @param iModel The iModel to edit.\r\n * @param fn An async callback that receives the active [[EditTxn]] and performs edits.\r\n * @returns A Promise that resolves to the value returned by `fn`.\r\n * @beta\r\n */\r\nexport function withEditTxn<T>(iModel: IModelDb, fn: (txn: EditTxn) => Promise<T>): Promise<T>;\r\n/** Execute an async callback within an explicit editing transaction, supplying commit arguments.\r\n * @param iModel The iModel to edit.\r\n * @param saveArgs Description or structured arguments passed to [[EditTxn.saveChanges]] on save.\r\n * @param fn An async callback that receives the active [[EditTxn]] and performs edits.\r\n * @returns A Promise that resolves to the value returned by `fn`.\r\n * @beta\r\n */\r\nexport function withEditTxn<T>(iModel: IModelDb, saveArgs: string | SaveChangesArgs, fn: (txn: EditTxn) => Promise<T>): Promise<T>;\r\nexport function withEditTxn<T>(iModel: IModelDb, saveArgsOrFn: string | SaveChangesArgs | ((txn: EditTxn) => T | Promise<T>), maybeFn?: (txn: EditTxn) => T | Promise<T>): T | Promise<T> {\r\n const saveArgs = \"function\" === typeof saveArgsOrFn ? undefined : saveArgsOrFn;\r\n const fn = \"function\" === typeof saveArgsOrFn ? saveArgsOrFn : maybeFn;\r\n\r\n if (undefined === fn)\r\n throw new Error(\"withEditTxn requires a callback\");\r\n\r\n const txn = new EditTxn(iModel, \"\");\r\n txn.start();\r\n\r\n try {\r\n const result = fn(txn);\r\n if (result instanceof Promise) {\r\n return result.then((value) => {\r\n txn.end(\"save\", saveArgs);\r\n return value;\r\n }, (err) => {\r\n if (txn.isActive)\r\n txn.end(\"abandon\");\r\n\r\n throw err;\r\n });\r\n }\r\n\r\n txn.end(\"save\", saveArgs);\r\n return result;\r\n } catch (err) {\r\n if (txn.isActive)\r\n txn.end(\"abandon\");\r\n\r\n throw err;\r\n }\r\n}\r\n"]}
@@ -36,6 +36,53 @@ export interface OnElementIdArg extends OnElementArg {
36
36
  /** The federationGuid of the element affected by this method */
37
37
  federationGuid: GuidString;
38
38
  }
39
+ /**
40
+ * Per-element argument supplied to the [[Element.onBulkDeleted]] static method.
41
+ * @beta
42
+ */
43
+ export interface OnBulkDeleteArg {
44
+ /** The Id of the element that was deleted. */
45
+ id: Id64String;
46
+ /** The ModelId of the element that was deleted. */
47
+ model: Id64String;
48
+ /** The federationGuid of the element that was deleted. Absent when the element had no federation GUID. */
49
+ federationGuid?: GuidString;
50
+ /** The Id of the sub-model that was deleted along with this element. Present only when this
51
+ * element was a sub-model root (i.e. modeled by a [[Model]] that is also being deleted).
52
+ * When set, [[Element.onSubModelDelete]] and [[Element.onSubModelDeleted]] are called for this entry. */
53
+ subModelId?: Id64String;
54
+ }
55
+ /**
56
+ * Batch argument for the [[Element.onBulkDeleted]] static method.
57
+ * @beta
58
+ */
59
+ export interface OnBulkDeletedBatchArg {
60
+ /** The iModelDb on which the bulk delete is being performed. */
61
+ iModel: IModelDb;
62
+ /** The elements that were deleted. */
63
+ elements: OnBulkDeleteArg[];
64
+ }
65
+ /**
66
+ * Per-element argument supplied to the [[Element.onBulkChildDeleted]] static method.
67
+ * Supplied once per deleted child whose parent element was *not* itself deleted in the same operation.
68
+ * @beta
69
+ */
70
+ export interface OnBulkChildDeleteArg {
71
+ /** The Id of the parent element whose child was deleted. */
72
+ parentId: Id64String;
73
+ /** The Id of the child element that was deleted. */
74
+ childId: Id64String;
75
+ }
76
+ /**
77
+ * Batch argument for the [[Element.onBulkChildDeleted]] static method.
78
+ * @beta
79
+ */
80
+ export interface OnBulkChildDeletedBatchArg {
81
+ /** The iModelDb on which the bulk delete is being performed. */
82
+ iModel: IModelDb;
83
+ /** The deleted child elements whose parent ECClass matches this class, grouped in this batch. */
84
+ elements: OnBulkChildDeleteArg[];
85
+ }
39
86
  /** Argument for the `Element.onChildXxx` static methods
40
87
  * @beta
41
88
  */
@@ -179,6 +226,28 @@ export declare class Element extends Entity {
179
226
  * @beta
180
227
  */
181
228
  protected static onDeleted(arg: OnElementIdArg): void;
229
+ /** Called after a batch of Elements of this class were deleted in a bulk delete operation.
230
+ *
231
+ * The default implementation fires all JS notifications that would normally be fired
232
+ * per-element in the single-element delete path:
233
+ * 1. **[[onDeleted]]** — for every element; preserves any user overrides.
234
+ * 2. **[[onSubModelDelete]] + [[onSubModelDeleted]]** — for sub-model root elements
235
+ * (`subModelId` is set), matching the order of the single-element path.
236
+ *
237
+ * @note If you override this method, you must call super.
238
+ * @note `this` is the class of the Elements that were deleted.
239
+ * @beta
240
+ */
241
+ protected static onBulkDeleted(arg: OnBulkDeletedBatchArg): void;
242
+ /** Called after a batch of child Elements of this class's instances were deleted in a bulk delete operation.
243
+ *
244
+ * The default implementation calls [[onChildDelete]] and [[onChildDeleted]] for every entry in the batch.
245
+ *
246
+ * @note If you override this method, you must call super.
247
+ * @note `this` is the class of the *parent* Element whose children were deleted.
248
+ * @beta
249
+ */
250
+ protected static onBulkChildDeleted(arg: OnBulkChildDeletedBatchArg): void;
182
251
  /** Called when an element with an instance of this class as its parent is about to be deleted.
183
252
  * @note throw an exception if the element should not be deleted
184
253
  * @note implementers should not presume that the element was deleted if this method does not throw,
@@ -1 +1 @@
1
- {"version":3,"file":"Element.d.ts","sourceRoot":"","sources":["../../src/Element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Element.d.ts","sourceRoot":"","sources":["../../src/Element.ts"],"names":[],"mappings":"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"}
@@ -174,6 +174,42 @@ export class Element extends Entity {
174
174
  arg.iModel.elements[_cache].delete(arg);
175
175
  arg.iModel.models[_cache].delete(arg.model);
176
176
  }
177
+ /** Called after a batch of Elements of this class were deleted in a bulk delete operation.
178
+ *
179
+ * The default implementation fires all JS notifications that would normally be fired
180
+ * per-element in the single-element delete path:
181
+ * 1. **[[onDeleted]]** — for every element; preserves any user overrides.
182
+ * 2. **[[onSubModelDelete]] + [[onSubModelDeleted]]** — for sub-model root elements
183
+ * (`subModelId` is set), matching the order of the single-element path.
184
+ *
185
+ * @note If you override this method, you must call super.
186
+ * @note `this` is the class of the Elements that were deleted.
187
+ * @beta
188
+ */
189
+ static onBulkDeleted(arg) {
190
+ for (const el of arg.elements) {
191
+ this.onDelete({ iModel: arg.iModel, id: el.id, model: el.model, federationGuid: el.federationGuid ?? "" });
192
+ this.onDeleted({ iModel: arg.iModel, id: el.id, model: el.model, federationGuid: el.federationGuid ?? "" });
193
+ if (el.subModelId !== undefined) {
194
+ this.onSubModelDelete({ iModel: arg.iModel, subModelId: el.subModelId });
195
+ this.onSubModelDeleted({ iModel: arg.iModel, subModelId: el.subModelId });
196
+ }
197
+ }
198
+ }
199
+ /** Called after a batch of child Elements of this class's instances were deleted in a bulk delete operation.
200
+ *
201
+ * The default implementation calls [[onChildDelete]] and [[onChildDeleted]] for every entry in the batch.
202
+ *
203
+ * @note If you override this method, you must call super.
204
+ * @note `this` is the class of the *parent* Element whose children were deleted.
205
+ * @beta
206
+ */
207
+ static onBulkChildDeleted(arg) {
208
+ for (const el of arg.elements) {
209
+ this.onChildDelete({ iModel: arg.iModel, parentId: el.parentId, childId: el.childId });
210
+ this.onChildDeleted({ iModel: arg.iModel, parentId: el.parentId, childId: el.childId });
211
+ }
212
+ }
177
213
  /** Called when an element with an instance of this class as its parent is about to be deleted.
178
214
  * @note throw an exception if the element should not be deleted
179
215
  * @note implementers should not presume that the element was deleted if this method does not throw,