@itwin/core-backend 5.9.0-dev.8 → 5.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (604) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +38 -0
  3. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  4. package/lib/cjs/BackendHubAccess.js.map +1 -1
  5. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  6. package/lib/cjs/BisCoreSchema.js.map +1 -1
  7. package/lib/cjs/BlobContainerService.js.map +1 -1
  8. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  9. package/lib/cjs/BriefcaseManager.js +6 -3
  10. package/lib/cjs/BriefcaseManager.js.map +1 -1
  11. package/lib/cjs/CatalogDb.js.map +1 -1
  12. package/lib/cjs/Category.d.ts +4 -4
  13. package/lib/cjs/Category.js.map +1 -1
  14. package/lib/cjs/ChangeSummaryManager.js +2 -2
  15. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  16. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  17. package/lib/cjs/ChangesetECAdaptor.d.ts +9 -1
  18. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  19. package/lib/cjs/ChangesetECAdaptor.js +255 -249
  20. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  21. package/lib/cjs/ChangesetReader.d.ts +186 -0
  22. package/lib/cjs/ChangesetReader.d.ts.map +1 -0
  23. package/lib/cjs/ChangesetReader.js +372 -0
  24. package/lib/cjs/ChangesetReader.js.map +1 -0
  25. package/lib/cjs/ChangesetReaderTypes.d.ts +120 -0
  26. package/lib/cjs/ChangesetReaderTypes.d.ts.map +1 -0
  27. package/lib/cjs/ChangesetReaderTypes.js +23 -0
  28. package/lib/cjs/ChangesetReaderTypes.js.map +1 -0
  29. package/lib/cjs/ChannelControl.js.map +1 -1
  30. package/lib/cjs/CheckpointManager.js.map +1 -1
  31. package/lib/cjs/ClassRegistry.js +5 -5
  32. package/lib/cjs/ClassRegistry.js.map +1 -1
  33. package/lib/cjs/CloudSqlite.d.ts +1 -1
  34. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  35. package/lib/cjs/CloudSqlite.js +68 -13
  36. package/lib/cjs/CloudSqlite.js.map +1 -1
  37. package/lib/cjs/CodeService.js.map +1 -1
  38. package/lib/cjs/CodeSpecs.d.ts +3 -3
  39. package/lib/cjs/CodeSpecs.js.map +1 -1
  40. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  41. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  42. package/lib/cjs/DevTools.js.map +1 -1
  43. package/lib/cjs/DisplayStyle.d.ts +2 -2
  44. package/lib/cjs/DisplayStyle.js.map +1 -1
  45. package/lib/cjs/ECDb.js.map +1 -1
  46. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  47. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  48. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  49. package/lib/cjs/ECSqlStatement.js.map +1 -1
  50. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  51. package/lib/cjs/EditTxn.d.ts +55 -1
  52. package/lib/cjs/EditTxn.d.ts.map +1 -1
  53. package/lib/cjs/EditTxn.js +43 -1
  54. package/lib/cjs/EditTxn.js.map +1 -1
  55. package/lib/cjs/Element.d.ts +79 -10
  56. package/lib/cjs/Element.d.ts.map +1 -1
  57. package/lib/cjs/Element.js +38 -2
  58. package/lib/cjs/Element.js.map +1 -1
  59. package/lib/cjs/ElementAspect.d.ts +1 -1
  60. package/lib/cjs/ElementAspect.js.map +1 -1
  61. package/lib/cjs/ElementGraphics.js.map +1 -1
  62. package/lib/cjs/ElementTreeWalker.d.ts +5 -5
  63. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  64. package/lib/cjs/Entity.js.map +1 -1
  65. package/lib/cjs/EntityReferences.js.map +1 -1
  66. package/lib/cjs/ExportGraphics.js.map +1 -1
  67. package/lib/cjs/ExternalSource.d.ts +2 -2
  68. package/lib/cjs/ExternalSource.d.ts.map +1 -1
  69. package/lib/cjs/ExternalSource.js.map +1 -1
  70. package/lib/cjs/FontFile.js.map +1 -1
  71. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  72. package/lib/cjs/GeographicCRSServices.d.ts +15 -0
  73. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  74. package/lib/cjs/GeographicCRSServices.js +13 -4
  75. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  76. package/lib/cjs/GeometrySummary.js +47 -47
  77. package/lib/cjs/GeometrySummary.js.map +1 -1
  78. package/lib/cjs/IModelDb.d.ts +31 -23
  79. package/lib/cjs/IModelDb.d.ts.map +1 -1
  80. package/lib/cjs/IModelDb.js +53 -34
  81. package/lib/cjs/IModelDb.js.map +1 -1
  82. package/lib/cjs/IModelDbFonts.js.map +1 -1
  83. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  84. package/lib/cjs/IModelHost.js.map +1 -1
  85. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  86. package/lib/cjs/IModelJsFs.js.map +1 -1
  87. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  88. package/lib/cjs/IpcHost.d.ts.map +1 -1
  89. package/lib/cjs/IpcHost.js +33 -13
  90. package/lib/cjs/IpcHost.js.map +1 -1
  91. package/lib/cjs/LineStyle.d.ts +6 -6
  92. package/lib/cjs/LineStyle.js.map +1 -1
  93. package/lib/cjs/LocalHub.js +1 -1
  94. package/lib/cjs/LocalHub.js.map +1 -1
  95. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  96. package/lib/cjs/LockControl.d.ts +85 -1
  97. package/lib/cjs/LockControl.d.ts.map +1 -1
  98. package/lib/cjs/LockControl.js.map +1 -1
  99. package/lib/cjs/Material.d.ts +1 -1
  100. package/lib/cjs/Material.js.map +1 -1
  101. package/lib/cjs/Model.d.ts +40 -6
  102. package/lib/cjs/Model.d.ts.map +1 -1
  103. package/lib/cjs/Model.js +24 -0
  104. package/lib/cjs/Model.js.map +1 -1
  105. package/lib/cjs/NativeAppStorage.js.map +1 -1
  106. package/lib/cjs/NativeHost.js.map +1 -1
  107. package/lib/cjs/NavigationRelationship.js.map +1 -1
  108. package/lib/cjs/PartialChangeUnifier.d.ts +77 -0
  109. package/lib/cjs/PartialChangeUnifier.d.ts.map +1 -0
  110. package/lib/cjs/PartialChangeUnifier.js +234 -0
  111. package/lib/cjs/PartialChangeUnifier.js.map +1 -0
  112. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  113. package/lib/cjs/PropertyStore.js.map +1 -1
  114. package/lib/cjs/Relationship.d.ts +10 -10
  115. package/lib/cjs/Relationship.js +6 -6
  116. package/lib/cjs/Relationship.js.map +1 -1
  117. package/lib/cjs/RpcBackend.js.map +1 -1
  118. package/lib/cjs/SQLiteDb.js.map +1 -1
  119. package/lib/cjs/Schema.js.map +1 -1
  120. package/lib/cjs/SchemaSync.js.map +1 -1
  121. package/lib/cjs/SchemaUtils.js.map +1 -1
  122. package/lib/cjs/SheetIndex.d.ts +4 -4
  123. package/lib/cjs/SheetIndex.d.ts.map +1 -1
  124. package/lib/cjs/SheetIndex.js.map +1 -1
  125. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  126. package/lib/cjs/SqliteChangesetReader.js +1 -1
  127. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  128. package/lib/cjs/SqliteStatement.js.map +1 -1
  129. package/lib/cjs/StashManager.js.map +1 -1
  130. package/lib/cjs/Texture.d.ts +1 -1
  131. package/lib/cjs/Texture.js.map +1 -1
  132. package/lib/cjs/TileStorage.js.map +1 -1
  133. package/lib/cjs/TxnManager.d.ts +114 -4
  134. package/lib/cjs/TxnManager.d.ts.map +1 -1
  135. package/lib/cjs/TxnManager.js +196 -8
  136. package/lib/cjs/TxnManager.js.map +1 -1
  137. package/lib/cjs/ViewDefinition.d.ts +25 -13
  138. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  139. package/lib/cjs/ViewDefinition.js +77 -25
  140. package/lib/cjs/ViewDefinition.js.map +1 -1
  141. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  142. package/lib/cjs/ViewStore.d.ts.map +1 -1
  143. package/lib/cjs/ViewStore.js +63 -21
  144. package/lib/cjs/ViewStore.js.map +1 -1
  145. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +1 -1
  146. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  147. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  148. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  149. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  150. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  151. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  152. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  153. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  154. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  155. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  156. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  157. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  158. package/lib/cjs/core-backend.d.ts +3 -0
  159. package/lib/cjs/core-backend.d.ts.map +1 -1
  160. package/lib/cjs/core-backend.js +3 -0
  161. package/lib/cjs/core-backend.js.map +1 -1
  162. package/lib/cjs/domains/FunctionalElements.d.ts +1 -1
  163. package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
  164. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  165. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  166. package/lib/cjs/domains/GenericElements.d.ts +2 -2
  167. package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
  168. package/lib/cjs/domains/GenericElements.js.map +1 -1
  169. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  170. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  171. package/lib/cjs/internal/ChannelAdmin.d.ts +2 -2
  172. package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
  173. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  174. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  175. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  176. package/lib/cjs/internal/HubMock.d.ts +2 -0
  177. package/lib/cjs/internal/HubMock.d.ts.map +1 -1
  178. package/lib/cjs/internal/HubMock.js +7 -0
  179. package/lib/cjs/internal/HubMock.js.map +1 -1
  180. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  181. package/lib/cjs/internal/IntegrityCheck.d.ts +10 -10
  182. package/lib/cjs/internal/IntegrityCheck.js +22 -22
  183. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  184. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  185. package/lib/cjs/internal/NoLocks.d.ts.map +1 -1
  186. package/lib/cjs/internal/NoLocks.js +6 -0
  187. package/lib/cjs/internal/NoLocks.js.map +1 -1
  188. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  189. package/lib/cjs/internal/ServerBasedLocks.d.ts +12 -0
  190. package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
  191. package/lib/cjs/internal/ServerBasedLocks.js +285 -4
  192. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  193. package/lib/cjs/internal/Symbols.js.map +1 -1
  194. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  195. package/lib/cjs/internal/cross-package.js.map +1 -1
  196. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  197. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  198. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  199. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  200. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  201. package/lib/cjs/rpc/multipart.js.map +1 -1
  202. package/lib/cjs/rpc/tracing.js.map +1 -1
  203. package/lib/cjs/rpc/web/logging.js.map +1 -1
  204. package/lib/cjs/rpc/web/request.js.map +1 -1
  205. package/lib/cjs/rpc/web/response.js.map +1 -1
  206. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  207. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  208. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  209. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  210. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  211. package/lib/cjs/workspace/Settings.d.ts +6 -4
  212. package/lib/cjs/workspace/Settings.d.ts.map +1 -1
  213. package/lib/cjs/workspace/Settings.js.map +1 -1
  214. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  215. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  216. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  217. package/lib/cjs/workspace/Workspace.js.map +1 -1
  218. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  219. package/lib/esm/BackendHubAccess.d.ts +38 -0
  220. package/lib/esm/BackendHubAccess.d.ts.map +1 -1
  221. package/lib/esm/BackendHubAccess.js.map +1 -1
  222. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  223. package/lib/esm/BisCoreSchema.js.map +1 -1
  224. package/lib/esm/BlobContainerService.js.map +1 -1
  225. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  226. package/lib/esm/BriefcaseManager.js +6 -3
  227. package/lib/esm/BriefcaseManager.js.map +1 -1
  228. package/lib/esm/CatalogDb.js.map +1 -1
  229. package/lib/esm/Category.d.ts +4 -4
  230. package/lib/esm/Category.js.map +1 -1
  231. package/lib/esm/ChangeSummaryManager.js +2 -2
  232. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  233. package/lib/esm/ChangedElementsDb.js.map +1 -1
  234. package/lib/esm/ChangesetECAdaptor.d.ts +9 -1
  235. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  236. package/lib/esm/ChangesetECAdaptor.js +255 -249
  237. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  238. package/lib/esm/ChangesetReader.d.ts +186 -0
  239. package/lib/esm/ChangesetReader.d.ts.map +1 -0
  240. package/lib/esm/ChangesetReader.js +368 -0
  241. package/lib/esm/ChangesetReader.js.map +1 -0
  242. package/lib/esm/ChangesetReaderTypes.d.ts +120 -0
  243. package/lib/esm/ChangesetReaderTypes.d.ts.map +1 -0
  244. package/lib/esm/ChangesetReaderTypes.js +20 -0
  245. package/lib/esm/ChangesetReaderTypes.js.map +1 -0
  246. package/lib/esm/ChannelControl.js.map +1 -1
  247. package/lib/esm/CheckpointManager.js.map +1 -1
  248. package/lib/esm/ClassRegistry.js +5 -5
  249. package/lib/esm/ClassRegistry.js.map +1 -1
  250. package/lib/esm/CloudSqlite.d.ts +1 -1
  251. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  252. package/lib/esm/CloudSqlite.js +69 -14
  253. package/lib/esm/CloudSqlite.js.map +1 -1
  254. package/lib/esm/CodeService.js.map +1 -1
  255. package/lib/esm/CodeSpecs.d.ts +3 -3
  256. package/lib/esm/CodeSpecs.js.map +1 -1
  257. package/lib/esm/ConcurrentQuery.js.map +1 -1
  258. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  259. package/lib/esm/DevTools.js.map +1 -1
  260. package/lib/esm/DisplayStyle.d.ts +2 -2
  261. package/lib/esm/DisplayStyle.js.map +1 -1
  262. package/lib/esm/ECDb.js.map +1 -1
  263. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  264. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  265. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  266. package/lib/esm/ECSqlStatement.js.map +1 -1
  267. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  268. package/lib/esm/EditTxn.d.ts +55 -1
  269. package/lib/esm/EditTxn.d.ts.map +1 -1
  270. package/lib/esm/EditTxn.js +43 -1
  271. package/lib/esm/EditTxn.js.map +1 -1
  272. package/lib/esm/Element.d.ts +79 -10
  273. package/lib/esm/Element.d.ts.map +1 -1
  274. package/lib/esm/Element.js +38 -2
  275. package/lib/esm/Element.js.map +1 -1
  276. package/lib/esm/ElementAspect.d.ts +1 -1
  277. package/lib/esm/ElementAspect.js.map +1 -1
  278. package/lib/esm/ElementGraphics.js.map +1 -1
  279. package/lib/esm/ElementTreeWalker.d.ts +5 -5
  280. package/lib/esm/ElementTreeWalker.js.map +1 -1
  281. package/lib/esm/Entity.js.map +1 -1
  282. package/lib/esm/EntityReferences.js.map +1 -1
  283. package/lib/esm/ExportGraphics.js.map +1 -1
  284. package/lib/esm/ExternalSource.d.ts +2 -2
  285. package/lib/esm/ExternalSource.d.ts.map +1 -1
  286. package/lib/esm/ExternalSource.js.map +1 -1
  287. package/lib/esm/FontFile.js.map +1 -1
  288. package/lib/esm/GeoCoordConfig.js.map +1 -1
  289. package/lib/esm/GeographicCRSServices.d.ts +15 -0
  290. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  291. package/lib/esm/GeographicCRSServices.js +12 -4
  292. package/lib/esm/GeographicCRSServices.js.map +1 -1
  293. package/lib/esm/GeometrySummary.js +47 -47
  294. package/lib/esm/GeometrySummary.js.map +1 -1
  295. package/lib/esm/IModelDb.d.ts +31 -23
  296. package/lib/esm/IModelDb.d.ts.map +1 -1
  297. package/lib/esm/IModelDb.js +54 -35
  298. package/lib/esm/IModelDb.js.map +1 -1
  299. package/lib/esm/IModelDbFonts.js.map +1 -1
  300. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  301. package/lib/esm/IModelHost.js.map +1 -1
  302. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  303. package/lib/esm/IModelJsFs.js.map +1 -1
  304. package/lib/esm/ImageSourceConversion.js.map +1 -1
  305. package/lib/esm/IpcHost.d.ts.map +1 -1
  306. package/lib/esm/IpcHost.js +33 -13
  307. package/lib/esm/IpcHost.js.map +1 -1
  308. package/lib/esm/LineStyle.d.ts +6 -6
  309. package/lib/esm/LineStyle.js.map +1 -1
  310. package/lib/esm/LocalHub.js +1 -1
  311. package/lib/esm/LocalHub.js.map +1 -1
  312. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  313. package/lib/esm/LockControl.d.ts +85 -1
  314. package/lib/esm/LockControl.d.ts.map +1 -1
  315. package/lib/esm/LockControl.js.map +1 -1
  316. package/lib/esm/Material.d.ts +1 -1
  317. package/lib/esm/Material.js.map +1 -1
  318. package/lib/esm/Model.d.ts +40 -6
  319. package/lib/esm/Model.d.ts.map +1 -1
  320. package/lib/esm/Model.js +24 -0
  321. package/lib/esm/Model.js.map +1 -1
  322. package/lib/esm/NativeAppStorage.js.map +1 -1
  323. package/lib/esm/NativeHost.js.map +1 -1
  324. package/lib/esm/NavigationRelationship.js.map +1 -1
  325. package/lib/esm/PartialChangeUnifier.d.ts +77 -0
  326. package/lib/esm/PartialChangeUnifier.d.ts.map +1 -0
  327. package/lib/esm/PartialChangeUnifier.js +230 -0
  328. package/lib/esm/PartialChangeUnifier.js.map +1 -0
  329. package/lib/esm/PromiseMemoizer.js.map +1 -1
  330. package/lib/esm/PropertyStore.js.map +1 -1
  331. package/lib/esm/Relationship.d.ts +10 -10
  332. package/lib/esm/Relationship.js +6 -6
  333. package/lib/esm/Relationship.js.map +1 -1
  334. package/lib/esm/RpcBackend.js.map +1 -1
  335. package/lib/esm/SQLiteDb.js.map +1 -1
  336. package/lib/esm/Schema.js.map +1 -1
  337. package/lib/esm/SchemaSync.js.map +1 -1
  338. package/lib/esm/SchemaUtils.js.map +1 -1
  339. package/lib/esm/SheetIndex.d.ts +4 -4
  340. package/lib/esm/SheetIndex.d.ts.map +1 -1
  341. package/lib/esm/SheetIndex.js.map +1 -1
  342. package/lib/esm/SqliteChangesetReader.d.ts.map +1 -1
  343. package/lib/esm/SqliteChangesetReader.js +1 -1
  344. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  345. package/lib/esm/SqliteStatement.js.map +1 -1
  346. package/lib/esm/StashManager.js.map +1 -1
  347. package/lib/esm/Texture.d.ts +1 -1
  348. package/lib/esm/Texture.js.map +1 -1
  349. package/lib/esm/TileStorage.js.map +1 -1
  350. package/lib/esm/TxnManager.d.ts +114 -4
  351. package/lib/esm/TxnManager.d.ts.map +1 -1
  352. package/lib/esm/TxnManager.js +196 -8
  353. package/lib/esm/TxnManager.js.map +1 -1
  354. package/lib/esm/ViewDefinition.d.ts +25 -13
  355. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  356. package/lib/esm/ViewDefinition.js +78 -26
  357. package/lib/esm/ViewDefinition.js.map +1 -1
  358. package/lib/esm/ViewStateHydrator.js.map +1 -1
  359. package/lib/esm/ViewStore.d.ts.map +1 -1
  360. package/lib/esm/ViewStore.js +64 -22
  361. package/lib/esm/ViewStore.js.map +1 -1
  362. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +1 -1
  363. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  364. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  365. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  366. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  367. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  368. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  369. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  370. package/lib/esm/core-backend.d.ts +3 -0
  371. package/lib/esm/core-backend.d.ts.map +1 -1
  372. package/lib/esm/core-backend.js +3 -0
  373. package/lib/esm/core-backend.js.map +1 -1
  374. package/lib/esm/domains/FunctionalElements.d.ts +1 -1
  375. package/lib/esm/domains/FunctionalElements.d.ts.map +1 -1
  376. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  377. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  378. package/lib/esm/domains/GenericElements.d.ts +2 -2
  379. package/lib/esm/domains/GenericElements.d.ts.map +1 -1
  380. package/lib/esm/domains/GenericElements.js.map +1 -1
  381. package/lib/esm/domains/GenericSchema.js.map +1 -1
  382. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  383. package/lib/esm/internal/ChannelAdmin.d.ts +2 -2
  384. package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
  385. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  386. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  387. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  388. package/lib/esm/internal/HubMock.d.ts +2 -0
  389. package/lib/esm/internal/HubMock.d.ts.map +1 -1
  390. package/lib/esm/internal/HubMock.js +7 -0
  391. package/lib/esm/internal/HubMock.js.map +1 -1
  392. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  393. package/lib/esm/internal/IntegrityCheck.d.ts +10 -10
  394. package/lib/esm/internal/IntegrityCheck.js +22 -22
  395. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  396. package/lib/esm/internal/NativePlatform.js.map +1 -1
  397. package/lib/esm/internal/NoLocks.d.ts.map +1 -1
  398. package/lib/esm/internal/NoLocks.js +6 -0
  399. package/lib/esm/internal/NoLocks.js.map +1 -1
  400. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  401. package/lib/esm/internal/ServerBasedLocks.d.ts +12 -0
  402. package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -1
  403. package/lib/esm/internal/ServerBasedLocks.js +286 -5
  404. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  405. package/lib/esm/internal/Symbols.js.map +1 -1
  406. package/lib/esm/internal/annotations/fields.js.map +1 -1
  407. package/lib/esm/internal/cross-package.js.map +1 -1
  408. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  409. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  410. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  411. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  412. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  413. package/lib/esm/rpc/multipart.js.map +1 -1
  414. package/lib/esm/rpc/tracing.js.map +1 -1
  415. package/lib/esm/rpc/web/logging.js.map +1 -1
  416. package/lib/esm/rpc/web/request.js.map +1 -1
  417. package/lib/esm/rpc/web/response.js.map +1 -1
  418. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  419. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  420. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  421. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  422. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  423. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  424. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  425. package/lib/esm/test/AttachDb.test.js +11 -11
  426. package/lib/esm/test/AttachDb.test.js.map +1 -1
  427. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  428. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  429. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  430. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  431. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  432. package/lib/esm/test/IModelHost.test.js.map +1 -1
  433. package/lib/esm/test/IModelTestUtils.d.ts +1 -0
  434. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  435. package/lib/esm/test/IModelTestUtils.js +5 -0
  436. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  437. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  438. package/lib/esm/test/IpcHost.test.js +112 -0
  439. package/lib/esm/test/IpcHost.test.js.map +1 -1
  440. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  441. package/lib/esm/test/PrintElementTree.js.map +1 -1
  442. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  443. package/lib/esm/test/RevisionUtility.js.map +1 -1
  444. package/lib/esm/test/SchemaUtils.test.js +25 -25
  445. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  446. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  447. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  448. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  449. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  450. package/lib/esm/test/TestEditTxn.js.map +1 -1
  451. package/lib/esm/test/TestUtils.js.map +1 -1
  452. package/lib/esm/test/annotations/Fields.test.js +53 -53
  453. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  454. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  455. package/lib/esm/test/annotations/LeaderGeometry.test.js +0 -1
  456. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  457. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  458. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  459. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  460. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  461. package/lib/esm/test/categories/Category.test.js.map +1 -1
  462. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  463. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  464. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  465. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  466. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  467. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  468. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  469. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  470. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  471. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  472. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  473. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  474. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  475. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  476. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  477. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
  478. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  479. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  480. package/lib/esm/test/ecdb/QueryReaders.test.js +31 -31
  481. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  482. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  483. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  484. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  485. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  486. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  487. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  488. package/lib/esm/test/element/DeleteDefinitionElements.test.js +819 -26
  489. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  490. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  491. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  492. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  493. package/lib/esm/test/element/ElementRoundTrip.test.js +283 -142
  494. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  495. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  496. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  497. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  498. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  499. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  500. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  501. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  502. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  503. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  504. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  505. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  506. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  507. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  508. package/lib/esm/test/hubaccess/Rebase.test.js +57 -57
  509. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  510. package/lib/esm/test/hubaccess/SemanticRebase.test.js +145 -145
  511. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  512. package/lib/esm/test/imageData.js.map +1 -1
  513. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  514. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  515. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  516. package/lib/esm/test/imodel/IModel.test.js +45 -45
  517. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  518. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  519. package/lib/esm/test/imodel/SchemaXmlImport.test.js +77 -13
  520. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  521. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  522. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  523. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  524. package/lib/esm/test/index.js.map +1 -1
  525. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  526. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  527. package/lib/esm/test/misc/GeoServices.test.js +43 -1
  528. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  529. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  530. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  531. package/lib/esm/test/rpc/response.test.js.map +1 -1
  532. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  533. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  534. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  535. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  536. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  537. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  538. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  539. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  540. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  541. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  542. package/lib/esm/test/standalone/ChangesetReader.test.js +4201 -1671
  543. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  544. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  545. package/lib/esm/test/standalone/DeleteElements.test.d.ts +2 -0
  546. package/lib/esm/test/standalone/DeleteElements.test.d.ts.map +1 -0
  547. package/lib/esm/test/standalone/DeleteElements.test.js +625 -0
  548. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -0
  549. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  550. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  551. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  552. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  553. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  554. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  555. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  556. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  557. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  558. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  559. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  560. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  561. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  562. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  563. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  564. package/lib/esm/test/standalone/IntegrityCheck.test.js +214 -5
  565. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  566. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  567. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  568. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  569. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  570. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  571. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts +2 -0
  572. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts.map +1 -0
  573. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +1862 -0
  574. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -0
  575. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  576. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  577. package/lib/esm/test/standalone/ServerBasedLocks.test.js +907 -3
  578. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  579. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  580. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  581. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  582. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  583. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  584. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  585. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  586. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  587. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  588. package/lib/esm/test/standalone/TxnManager.test.js +90 -0
  589. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  590. package/lib/esm/test/standalone/ViewDefinition.test.js +18 -7
  591. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  592. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  593. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  594. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  595. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  596. package/lib/esm/workspace/Settings.d.ts +6 -4
  597. package/lib/esm/workspace/Settings.d.ts.map +1 -1
  598. package/lib/esm/workspace/Settings.js.map +1 -1
  599. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  600. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  601. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  602. package/lib/esm/workspace/Workspace.js.map +1 -1
  603. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  604. package/package.json +15 -15
@@ -2,7 +2,7 @@
2
2
  * @module iModels
3
3
  */
4
4
  import { BeEvent, DbConflictResolution, DbResult, Id64String, IModelStatus } from "@itwin/core-bentley";
5
- import { ChangesetIdWithIndex, ChangesetIndexAndId, ChangesetProps, EntityIdAndClassIdIterable, ModelGeometryChangesProps, ModelIdAndGeometryGuid, TxnProps } from "@itwin/core-common";
5
+ import { ChangesetIdWithIndex, ChangesetIndexAndId, ChangesetProps, EntityIdAndClassIdIterable, ModelGeometryChangesProps, ModelIdAndGeometryGuid, ReinstateTxnArgs, ReverseTxnArgs, TxnProps } from "@itwin/core-common";
6
6
  import { BriefcaseDb } from "./IModelDb";
7
7
  import { RelationshipProps } from "./Relationship";
8
8
  import { DbRebaseChangesetConflictArgs, RebaseChangesetConflictArgs } from "./internal/ChangesetConflictArgs";
@@ -84,6 +84,7 @@ export declare class RebaseManager {
84
84
  private _conflictHandlers?;
85
85
  private _customHandler?;
86
86
  private _aborting;
87
+ private _disposed;
87
88
  /** Event raised before pull merge process begins.
88
89
  * @alpha
89
90
  */
@@ -157,6 +158,12 @@ export declare class RebaseManager {
157
158
  /** @internal */
158
159
  notifyRebaseTxnEnd(txnProps: TxnProps): void;
159
160
  constructor(_iModel: BriefcaseDb);
161
+ /** Disposes of this RebaseManager, clearing all event listeners.
162
+ * Also calls [[RebaseHandler.dispose]] on the registered custom handler, if any.
163
+ * Subsequent calls are ignored.
164
+ * @alpha
165
+ */
166
+ dispose(): void;
160
167
  /**
161
168
  * Resumes the rebase process for the current iModel, applying any pending local changes
162
169
  * on top of the latest pulled changes from the remote source.
@@ -482,6 +489,7 @@ export declare class TxnManager {
482
489
  /** Return the depth of the multi-Txn stack. Generally for diagnostic use only. */
483
490
  getMultiTxnOperationDepth(): number;
484
491
  /** Reverse (undo) the most recent operation(s) to this IModelDb.
492
+ * @note Consider using [[reverseTxnsAsync]] instead.
485
493
  * @param numOperations the number of operations to reverse. If this is greater than 1, the entire set of operations will
486
494
  * be reinstated together when/if ReinstateTxn is called.
487
495
  * @note If there are any outstanding uncommitted changes, they are reversed.
@@ -490,27 +498,122 @@ export declare class TxnManager {
490
498
  * @note If numOperations is too large only the operations are reversible are reversed.
491
499
  */
492
500
  reverseTxns(numOperations: number): IModelStatus;
493
- /** Reverse the most recent operation. */
501
+ /** Reverse the most recent operation.
502
+ * @note Consider using [[reverseSingleTxnAsync]] instead.
503
+ */
494
504
  reverseSingleTxn(): IModelStatus;
495
- /** Reverse all changes back to the beginning of the session. */
505
+ /** Reverse all changes back to the beginning of the session.
506
+ * @note Consider using [[reverseAllTxnsAsync]] instead.
507
+ */
496
508
  reverseAll(): IModelStatus;
497
509
  /** Reverse all changes back to a previously saved TxnId.
510
+ * @note Consider using [[reverseToTxnAsync]] instead.
498
511
  * @param txnId a TxnId obtained from a previous call to GetCurrentTxnId.
499
512
  * @returns Success if the transactions were reversed, error status otherwise.
500
513
  * @see [[getCurrentTxnId]] [[cancelTo]]
501
514
  */
502
515
  reverseTo(txnId: TxnIdString): IModelStatus;
503
516
  /** Reverse and then cancel (make non-reinstatable) all changes back to a previous TxnId.
517
+ * @note Consider using [[cancelToTxnAsync]] instead.
504
518
  * @param txnId a TxnId obtained from a previous call to [[getCurrentTxnId]]
505
519
  * @returns Success if the transactions were reversed and cleared, error status otherwise.
506
520
  */
507
521
  cancelTo(txnId: TxnIdString): IModelStatus;
522
+ /** Reverse (undo) the most recent operation(s) to this IModelDb. By default, this method also
523
+ * abandons the locks that were acquired for those operations.
524
+ * @beta
525
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
526
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
527
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
528
+ * with _both_ Txn 1 and Txn 2.
529
+ * @note If you do not want to abandon any locks, set [ReverseTxnArgs.retainLocks]($common) to true.
530
+ * @note If there are any outstanding uncommitted changes, they are reversed.
531
+ * @note The term "operation" is used rather than Txn, since multiple Txns can be grouped together via [[beginMultiTxnOperation]]. So,
532
+ * even if numOperations is 1, multiple Txns may be reversed if they were grouped together when they were made.
533
+ * @note If numOperations is too large only the operations are reversible are reversed.
534
+ * @param numOperations the number of operations to reverse. If this is greater than 1, the entire set of operations will
535
+ * be reinstated together when/if ReinstateTxn is called.
536
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to retain locks.
537
+ * @returns A Promise that resolves to success if the transactions were reversed, or rejects with an IModelError otherwise.
538
+ */
539
+ reverseTxnsAsync(numOperations: number, args?: ReverseTxnArgs): Promise<void>;
540
+ /** Reverse (undo) the most recent operation to this IModelDb. By default, this method also
541
+ * abandons the locks that were acquired for that operation.
542
+ * @beta
543
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
544
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
545
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
546
+ * with _both_ Txn 1 and Txn 2.
547
+ * @note If there are any outstanding uncommitted changes, they are reversed.
548
+ * @note The term "operation" is used rather than Txn, since multiple Txns can be grouped together via [[beginMultiTxnOperation]]. So,
549
+ * even though this method reverses only one operation, multiple Txns may be reversed if they were grouped together when they were made.
550
+ * @note If there are no reversible operations, this method does nothing and returns Success.
551
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to retain locks.
552
+ * @returns A Promise that resolves to success if the transactions were reversed, or rejects with an IModelError otherwise.
553
+ */
554
+ reverseSingleTxnAsync(args?: ReverseTxnArgs): Promise<void>;
555
+ /** Reverse (undo) all operations back to the beginning of the session. By default, this method also
556
+ * abandons the locks that were acquired for those operations.
557
+ * @beta
558
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
559
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
560
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
561
+ * with _both_ Txn 1 and Txn 2.
562
+ * @note If there are any outstanding uncommitted changes, they are reversed.
563
+ * @note If there are no reversible operations, this method does nothing and returns Success.
564
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to retain locks.
565
+ * @returns A Promise that resolves to success if the transactions were reversed, or rejects with an IModelError otherwise.
566
+ */
567
+ reverseAllTxnsAsync(args?: ReverseTxnArgs): Promise<void>;
568
+ /** Reverse (undo) all operations back to a previously saved TxnId. By default, this method also
569
+ * abandons the locks that were acquired for those operations.
570
+ * @beta
571
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
572
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
573
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
574
+ * with _both_ Txn 1 and Txn 2.
575
+ * @note If there are any outstanding uncommitted changes, they are reversed.
576
+ * @param txnId a TxnId obtained from a previous call to GetCurrentTxnId.
577
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to abandon locks.
578
+ * @returns A Promise that resolves to success if the transactions were reversed, or rejects with an IModelError otherwise.
579
+ * @see [[getCurrentTxnId]] [[cancelTo]]
580
+ */
581
+ reverseToTxnAsync(txnId: TxnIdString, args?: ReverseTxnArgs): Promise<void>;
582
+ /** Reverse and then cancel (make non-reinstatable) all operations back to a previous TxnId. By default, this
583
+ * method also abandons the locks that were acquired for those operations.
584
+ * @beta
585
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
586
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
587
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
588
+ * with _both_ Txn 1 and Txn 2.
589
+ * @note If there are any outstanding uncommitted changes, they are reversed.
590
+ * @param txnId a TxnId obtained from a previous call to [[getCurrentTxnId]]
591
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to abandon locks.
592
+ * @returns A promise that resolves to success if the transactions were reversed and cleared, or rejects with an IModelError otherwise.
593
+ */
594
+ cancelToTxnAsync(txnId: TxnIdString, args?: ReverseTxnArgs): Promise<void>;
595
+ private withLockAbandonment;
508
596
  /** Reinstate the most recently reversed transaction. Since at any time multiple transactions can be reversed, it
509
597
  * may take multiple calls to this method to reinstate all reversed operations.
510
598
  * @returns Success if a reversed transaction was reinstated, error status otherwise.
511
599
  * @note If there are any outstanding uncommitted changes, they are canceled before the Txn is reinstated.
600
+ * @note This method will return [[IModelStatus.LockNotHeld]] and will not reinstate the Txn if the locks
601
+ * originally acquired by the Txn have been abandoned. Use [[reinstateTxnAsync]] to re-acquire the locks
602
+ * and reinstate the Txn in a single operation.
512
603
  */
513
604
  reinstateTxn(): IModelStatus;
605
+ /** Reinstate the most recently reversed transaction. This method will first attempt
606
+ * to re-acquire the required locks, if they were abandoned after the operation was reversed.
607
+ * Since at any time multiple transactions can be reversed, it may take multiple calls to this
608
+ * method to reinstate all reversed operations.
609
+ * @beta
610
+ * @note If there are any outstanding unsaved changes, they are canceled before the Txn is reinstated. Unless
611
+ * [ReinstateTxnArgs.retainLocks]($common) is true, the locks associated with the unsaved changes are also abandoned.
612
+ * @param args Optional arguments to control the behavior of the reinstate operation, such as whether to retain
613
+ * locks when abandoning unsaved changes.
614
+ * @returns A Promise that resolves to success if a reversed transaction was reinstated, or rejects with an IModelError otherwise.
615
+ */
616
+ reinstateTxnAsync(args?: ReinstateTxnArgs): Promise<void>;
514
617
  /** Get the Id of the first transaction, if any.
515
618
  */
516
619
  queryFirstTxnId(): TxnIdString;
@@ -551,7 +654,7 @@ export declare class TxnManager {
551
654
  get hasLocalChanges(): boolean;
552
655
  /** Destroy the record of all local changes that have yet to be saved and/or pushed.
553
656
  * This permanently eradicates your changes - use with caution!
554
- * Typically, callers will want to subsequently use [[LockControl.releaseAllLocks]].
657
+ * Typically, callers will want to subsequently use [[LockControl.abandonAllLocks]].
555
658
  * After calling this function, [[hasLocalChanges]], [[hasPendingTxns]], and [[hasUnsavedChanges]] will all be `false`.
556
659
  */
557
660
  deleteAllTxns(): void;
@@ -601,5 +704,12 @@ export interface RebaseHandler {
601
704
  * @alpha
602
705
  */
603
706
  recompute(txn: TxnProps): Promise<void>;
707
+ /**
708
+ * Called when the owning [[RebaseManager]] is disposed (e.g. when the iModel is closed).
709
+ * Override this method to unsubscribe from events or release resources held by this handler.
710
+ *
711
+ * @alpha
712
+ */
713
+ dispose?(): void;
604
714
  }
605
715
  //# sourceMappingURL=TxnManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TxnManager.d.ts","sourceRoot":"","sources":["../../src/TxnManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TxnManager.d.ts","sourceRoot":"","sources":["../../src/TxnManager.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EACG,OAAO,EAAmD,oBAAoB,EAAE,QAAQ,EAAa,UAAU,EAAE,YAAY,EACtI,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,cAAc,EAAE,0BAA0B,EAAe,yBAAyB,EAAE,sBAAsB,EAA4D,gBAAgB,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEjS,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzC,OAAO,EAAgB,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AAI9G;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AAEjC;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,+BAA+B;IAC/B,KAAK,EAAE,OAAO,CAAC;IACf,yBAAyB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;IAC7C,4IAA4I;IAC5I,QAAQ,CAAC,OAAO,EAAE,0BAA0B,CAAC;CAC9C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,8IAA8I;IAC9I,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IACpC,+DAA+D;IAC/D,QAAQ,CAAC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAC1C;AAED;;;EAGE;AACF,MAAM,WAAW,iBAAiB;IAChC,oCAAoC;IACpC,EAAE,EAAE,UAAU,CAAC;IACf,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CAChD;AAID,oCAAoC;AACpC,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAI1D;AAsND;;;GAGG;AACH,MAAM,MAAM,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,aAAa;IA8HL,OAAO,CAAC,OAAO;IA7HlC,OAAO,CAAC,iBAAiB,CAAC,CAAmB;IAC7C,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,SAAS,CAAkB;IACnC,OAAO,CAAC,SAAS,CAAkB;IAEnC;;OAEG;IACH,SAAgB,gBAAgB,sBAA2B,oBAAoB,KAAK,IAAI,EAAI;IAE5F;;OAEG;IACH,SAAgB,aAAa,iBAAsB,QAAQ,EAAE,KAAK,IAAI,EAAI;IAE1E;;OAEG;IACH,SAAgB,gBAAgB,qBAA0B,QAAQ,KAAK,IAAI,EAAI;IAC/E;;OAEG;IACH,SAAgB,cAAc,qBAA0B,QAAQ,KAAK,IAAI,EAAI;IAE7E;;OAEG;IACH,SAAgB,WAAW,iBAAsB,QAAQ,EAAE,KAAK,IAAI,EAAI;IACxE;;OAEG;IACH,SAAgB,cAAc,sBAA2B,oBAAoB,KAAK,IAAI,EAAI;IAE1F;;OAEG;IACH,SAAgB,2BAA2B,uBAA4B,cAAc,EAAE,KAAK,IAAI,EAAI;IAEpG;;OAEG;IACH,SAAgB,yBAAyB,oBAAyB,cAAc,EAAE,KAAK,IAAI,EAAI;IAE/F;;OAEG;IACH,SAAgB,0BAA0B,gBAAqB,IAAI,EAAI;IAEvE;;OAEG;IACH,SAAgB,wBAAwB,iBAAsB,QAAQ,EAAE,KAAK,IAAI,EAAI;IAErF;;OAEG;IACH,SAAgB,yBAAyB,gBAAqB,IAAI,EAAI;IAEtE;;OAEG;IACH,SAAgB,uBAAuB,gBAAqB,IAAI,EAAI;IAGpE,gBAAgB;IACT,oBAAoB,CAAC,SAAS,EAAE,oBAAoB;IAI3D,gBAAgB;IACT,kBAAkB,CAAC,SAAS,EAAE,oBAAoB;IAIzD,gBAAgB;IACT,+BAA+B,CAAC,OAAO,EAAE,cAAc,EAAE;IAIhE,gBAAgB;IACT,6BAA6B,CAAC,OAAO,EAAE,cAAc,EAAE;IAI9D,gBAAgB;IACT,8BAA8B;IAIrC,gBAAgB;IACT,4BAA4B,CAAC,IAAI,EAAE,QAAQ,EAAE;IAIpD,gBAAgB;IACT,6BAA6B;IAIpC,gBAAgB;IACT,2BAA2B;IAIlC,gBAAgB;IACT,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE;IAIzC,gBAAgB;IACT,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE;IAIvC,gBAAgB;IACT,oBAAoB,CAAC,QAAQ,EAAE,QAAQ;IAI9C,gBAAgB;IACT,kBAAkB,CAAC,QAAQ,EAAE,QAAQ;gBAKjB,OAAO,EAAE,WAAW;IAE/C;;;;OAIG;IACI,OAAO,IAAI,IAAI;IAmBtB;;;;;;;;;;;;;;;;;;OAkBG;IACU,MAAM;IA8CnB;;;;;;;;;;;;;;;;;;OAkBG;IAEU,cAAc;IAmD3B;;;;OAIG;IACH,OAAO,CAAC,oCAAoC;IAQ5C;;;;;OAKG;YACW,0BAA0B;IA0CxC;;;;OAIG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;;;;OAOG;IACI,QAAQ;IAIf;;;;;;;;;;OAUG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBnC;;;;OAIG;IACI,gBAAgB,CAAC,OAAO,EAAE,aAAa;IAO9C;;;OAGG;IACI,UAAU;IAIjB;;;;OAIG;IACH,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED;;;;;;OAMG;IACH,IAAW,UAAU,YAEpB;IAED;;;;OAIG;IACH,IAAW,SAAS,YAEnB;IAED;;;;;;;;;OASG;IACI,UAAU,CAAC,IAAI,EAAE,2BAA2B,GAAG,oBAAoB,GAAG,SAAS;IAatF;;;;;;;;;;;OAWG;IACI,kBAAkB,CAAC,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,CAAC,IAAI,EAAE,2BAA2B,KAAK,oBAAoB,GAAG,SAAS,CAAA;KAAE;IAehI;;;;;;;OAOG;IACI,qBAAqB,CAAC,EAAE,EAAE,MAAM;CAoBxC;AAED;;GAEG;AACH,qBAAa,UAAU;IAcT,OAAO,CAAC,OAAO;IAb3B,gBAAgB;IAChB,OAAO,CAAC,WAAW,CAAS;IAC5B,gBAAgB;IAChB,OAAO,CAAC,6BAA6B,CAAK;IAC1C,gBAAgB;IAChB,IAAW,UAAU,IAAI,OAAO,CAE/B;IAED,gBAAgB;IAChB,SAAgB,OAAO,EAAE,aAAa,CAAC;IAEvC,gBAAgB;gBACI,OAAO,EAAE,WAAW;IAQxC,kDAAkD;IAClD,SAAgB,gBAAgB,EAAE,eAAe,EAAE,CAAM;IAEzD,OAAO,KAAK,SAAS,GAAsC;IAC3D,OAAO,CAAC,gBAAgB;IAGxB,OAAO,CAAC,qBAAqB;IAI7B;;;OAGG;IACI,cAAc,IAAI,IAAI;IAM7B,gBAAgB;IAChB,SAAS,CAAC,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAO9E,gBAAgB;IAChB,SAAS,CAAC,mBAAmB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,IAAI;IAO1E,gBAAgB;IAChB,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAMxD,gBAAgB;IAChB,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAM9D,gBAAgB;IAChB,SAAS,CAAC,gBAAgB;IAE1B;;OAEG;IACH,SAAS,CAAC,cAAc;IAMxB,gBAAgB;IAChB,SAAS,CAAC,kBAAkB,CAAC,UAAU,EAAE,yBAAyB,EAAE;IAKpE,gBAAgB;IAChB,SAAS,CAAC,uBAAuB,CAAC,OAAO,EAAE,sBAAsB,EAAE,GAAG,IAAI;IAK1E,gBAAgB;IAChB,SAAS,CAAC,SAAS;IAKnB,gBAAgB;IAChB,SAAS,CAAC,YAAY;IAMtB,gBAAgB;IAChB,SAAS,CAAC,qBAAqB;IAK/B,gBAAgB;IAChB,SAAS,CAAC,uBAAuB;IAKjC,gBAAgB;IAChB,SAAS,CAAC,iBAAiB;IAQ3B,gBAAgB;IAChB,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,OAAO;IAK3C,gBAAgB;IAChB,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,OAAO;IAM1C,gBAAgB;IAET,gBAAgB,CAAC,SAAS,EAAE,mBAAmB;IAMtD,gBAAgB;IAET,gBAAgB,CAAC,SAAS,EAAE,mBAAmB;IAMtD,OAAO,CAAC,yBAAyB;IA8EjC;;;;;;OAMG;IACI,WAAW,CAAC,EAAE,EAAE,WAAW,GAAG,QAAQ,GAAG,SAAS;IAIzD;;;;;OAKG;IACK,SAAS,IAAI,SAAS,CAAC,QAAQ,CAAC;IAQxC;;;;;OAKG;IACI,oBAAoB,IAAI,QAAQ,GAAG,SAAS;IAInD;;OAEG;IACI,WAAW,CAAC,KAAK,EAAE,eAAe;IAKzC,kGAAkG;IAClG,IAAW,aAAa,IAAI,OAAO,CAA8C;IAEjF,gBAAgB;IAChB,SAAgB,eAAe,gBAAqB,IAAI,EAAI;IAE5D;;;OAGG;IACH,SAAgB,iBAAiB,oBAAyB,kBAAkB,KAAK,IAAI,EAAI;IAEzF;;;OAGG;IACH,SAAgB,eAAe,oBAAyB,kBAAkB,KAAK,IAAI,EAAI;IAEvF;;;;;OAKG;IACH,SAAgB,sBAAsB,oBAAyB,aAAa,CAAC,sBAAsB,CAAC,KAAK,IAAI,EAAI;IAEjH,SAAgB,iBAAiB,mBAAwB,yBAAyB,EAAE,KAAK,IAAI,EAAI;IACjG,iJAAiJ;IACjJ,SAAgB,QAAQ,gBAAqB,IAAI,EAAI;IACrD,wJAAwJ;IACxJ,SAAgB,WAAW,gBAAqB,IAAI,EAAI;IACxD,wEAAwE;IACxE,SAAgB,gBAAgB,gBAAqB,IAAI,EAAI;IAC7D,+DAA+D;IAC/D,SAAgB,gBAAgB,mBAAwB,OAAO,KAAK,IAAI,EAAI;IAC5E;;OAEG;IACH,SAAgB,eAAe,mBAAwB,OAAO,KAAK,IAAI,EAAI;IAC3E;;OAEG;IACH,SAAgB,oBAAoB,gBAAqB,IAAI,EAAI;IACjE;;OAEG;IACH,SAAgB,sBAAsB,gBAAqB,IAAI,EAAI;IAEnE;;OAEG;IACH,SAAgB,eAAe,4BAAiC,mBAAmB,KAAK,IAAI,EAAI;IAEhG;;OAEG;IACH,SAAgB,eAAe,4BAAiC,mBAAmB,KAAK,IAAI,EAAI;IAEhG;;;SAGK;IACE,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,6BAA6B,KAAK,oBAAoB,GAAG,SAAS,CAAC;IAE5G;;;;;;OAMG;IACI,cAAc;IAIrB,4EAA4E;IAC5E,IAAW,iBAAiB,IAAI,OAAO,CAAyC;IAEhF,oGAAoG;IACpG,IAAW,cAAc,IAAI,OAAO,CAA4C;IAEhF,2EAA2E;IAC3E,IAAW,cAAc,IAAI,OAAO,CAA4C;IAEhF;;OAEG;IACI,aAAa,IAAI,MAAM;IAE9B;;OAEG;IACI,aAAa,IAAI,MAAM;IAE9B;;;;;OAKG;IACI,sBAAsB,IAAI,QAAQ;IAEzC,gCAAgC;IACzB,oBAAoB,IAAI,QAAQ;IAEvC,kFAAkF;IAC3E,yBAAyB,IAAI,MAAM;IAE1C;;;;;;;;OAQG;IACI,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,YAAY;IAMvD;;OAEG;IACI,gBAAgB,IAAI,YAAY;IAIvC;;OAEG;IACI,UAAU,IAAI,YAAY;IAIjC;;;;;OAKG;IACI,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY;IAIlD;;;;OAIG;IACI,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,YAAY;IAIjD;;;;;;;;;;;;;;;;OAgBG;IACU,gBAAgB,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAI1F;;;;;;;;;;;;;OAaG;IACU,qBAAqB,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE;;;;;;;;;;;OAWG;IACU,mBAAmB,CAAC,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAItE;;;;;;;;;;;;OAYG;IACU,iBAAiB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxF;;;;;;;;;;;OAWG;IACU,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;YAYzE,mBAAmB;IAYjC;;;;;;;OAOG;IACI,YAAY,IAAI,YAAY;IAenC;;;;;;;;;;OAUG;IACU,iBAAiB,CAAC,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BtE;OACG;IACI,eAAe,IAAI,WAAW;IAErC,+CAA+C;IACxC,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAEtD,iDAAiD;IAC1C,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAE1D,oDAAoD;IAC7C,eAAe,IAAI,WAAW;IAErC;;;OAGG;IACI,mBAAmB,IAAI,MAAM;IAEpC,sFAAsF;IAC/E,iBAAiB,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM;IAEpD,+BAA+B;IACxB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO;IAEhD;;OAEG;IACH,IAAW,cAAc,IAAI,OAAO,CAA4C;IAEhF;;;OAGG;IACH,IAAW,iBAAiB,IAAI,OAAO,CAA+C;IAEtF;;;OAGG;IACH,IAAW,uBAAuB,IAAI,OAAO,CAAqD;IAElG;;;;OAIG;IACH,IAAW,eAAe,IAAI,OAAO,CAA0D;IAE/F;;;;OAIG;IACI,aAAa,IAAI,IAAI;IAI5B;;MAEE;IACK,iBAAiB,CAAC,IAAI,CAAC,EAAE,qBAAqB,GAAG,QAAQ,CAAC,iBAAiB,CAAC;IAOnF;;OAEG;IACI,2BAA2B,IAAI,MAAM;IAI5C;;;;OAIG;IACI,OAAO,IAAI,OAAO;IAIzB;;;;OAIG;IACI,mBAAmB,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAetD;;;;OAIG;IACU,wBAAwB,CAAC,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;CAcpF;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC;IACxC;;;;;OAKG;IACH,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxC;;;;;OAKG;IACH,OAAO,CAAC,IAAI,IAAI,CAAC;CAClB"}
@@ -215,6 +215,7 @@ export class RebaseManager {
215
215
  _conflictHandlers;
216
216
  _customHandler;
217
217
  _aborting = false;
218
+ _disposed = false;
218
219
  /** Event raised before pull merge process begins.
219
220
  * @alpha
220
221
  */
@@ -326,6 +327,29 @@ export class RebaseManager {
326
327
  constructor(_iModel) {
327
328
  this._iModel = _iModel;
328
329
  }
330
+ /** Disposes of this RebaseManager, clearing all event listeners.
331
+ * Also calls [[RebaseHandler.dispose]] on the registered custom handler, if any.
332
+ * Subsequent calls are ignored.
333
+ * @alpha
334
+ */
335
+ dispose() {
336
+ if (this._disposed)
337
+ return;
338
+ this._disposed = true;
339
+ this._customHandler?.dispose?.();
340
+ this.onPullMergeBegin.clear();
341
+ this.onRebaseBegin.clear();
342
+ this.onRebaseTxnBegin.clear();
343
+ this.onRebaseTxnEnd.clear();
344
+ this.onRebaseEnd.clear();
345
+ this.onPullMergeEnd.clear();
346
+ this.onApplyIncomingChangesBegin.clear();
347
+ this.onApplyIncomingChangesEnd.clear();
348
+ this.onReverseLocalChangesBegin.clear();
349
+ this.onReverseLocalChangesEnd.clear();
350
+ this.onDownloadChangesetsBegin.clear();
351
+ this.onDownloadChangesetsEnd.clear();
352
+ }
329
353
  /**
330
354
  * Resumes the rebase process for the current iModel, applying any pending local changes
331
355
  * on top of the latest pulled changes from the remote source.
@@ -715,6 +739,7 @@ export class TxnManager {
715
739
  this.rebaser = new RebaseManager(_iModel);
716
740
  _iModel.onBeforeClose.addOnce(() => {
717
741
  this._isDisposed = true;
742
+ this.rebaser.dispose();
718
743
  });
719
744
  }
720
745
  /** Array of errors from dependency propagation */
@@ -1036,6 +1061,7 @@ export class TxnManager {
1036
1061
  /** Return the depth of the multi-Txn stack. Generally for diagnostic use only. */
1037
1062
  getMultiTxnOperationDepth() { return this._nativeDb.getMultiTxnOperationDepth(); }
1038
1063
  /** Reverse (undo) the most recent operation(s) to this IModelDb.
1064
+ * @note Consider using [[reverseTxnsAsync]] instead.
1039
1065
  * @param numOperations the number of operations to reverse. If this is greater than 1, the entire set of operations will
1040
1066
  * be reinstated together when/if ReinstateTxn is called.
1041
1067
  * @note If there are any outstanding uncommitted changes, they are reversed.
@@ -1048,27 +1074,189 @@ export class TxnManager {
1048
1074
  this._nativeDb.abandonChanges();
1049
1075
  return this._nativeDb.reverseTxns(numOperations);
1050
1076
  }
1051
- /** Reverse the most recent operation. */
1052
- reverseSingleTxn() { return this.reverseTxns(1); }
1053
- /** Reverse all changes back to the beginning of the session. */
1054
- reverseAll() { return this._nativeDb.reverseAll(); }
1077
+ /** Reverse the most recent operation.
1078
+ * @note Consider using [[reverseSingleTxnAsync]] instead.
1079
+ */
1080
+ reverseSingleTxn() {
1081
+ return this.reverseTxns(1);
1082
+ }
1083
+ /** Reverse all changes back to the beginning of the session.
1084
+ * @note Consider using [[reverseAllTxnsAsync]] instead.
1085
+ */
1086
+ reverseAll() {
1087
+ return this._nativeDb.reverseAll();
1088
+ }
1055
1089
  /** Reverse all changes back to a previously saved TxnId.
1090
+ * @note Consider using [[reverseToTxnAsync]] instead.
1056
1091
  * @param txnId a TxnId obtained from a previous call to GetCurrentTxnId.
1057
1092
  * @returns Success if the transactions were reversed, error status otherwise.
1058
1093
  * @see [[getCurrentTxnId]] [[cancelTo]]
1059
1094
  */
1060
- reverseTo(txnId) { return this._nativeDb.reverseTo(txnId); }
1095
+ reverseTo(txnId) {
1096
+ return this._nativeDb.reverseTo(txnId);
1097
+ }
1061
1098
  /** Reverse and then cancel (make non-reinstatable) all changes back to a previous TxnId.
1099
+ * @note Consider using [[cancelToTxnAsync]] instead.
1062
1100
  * @param txnId a TxnId obtained from a previous call to [[getCurrentTxnId]]
1063
1101
  * @returns Success if the transactions were reversed and cleared, error status otherwise.
1064
1102
  */
1065
- cancelTo(txnId) { return this._nativeDb.cancelTo(txnId); }
1103
+ cancelTo(txnId) {
1104
+ return this._nativeDb.cancelTo(txnId);
1105
+ }
1106
+ /** Reverse (undo) the most recent operation(s) to this IModelDb. By default, this method also
1107
+ * abandons the locks that were acquired for those operations.
1108
+ * @beta
1109
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
1110
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
1111
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
1112
+ * with _both_ Txn 1 and Txn 2.
1113
+ * @note If you do not want to abandon any locks, set [ReverseTxnArgs.retainLocks]($common) to true.
1114
+ * @note If there are any outstanding uncommitted changes, they are reversed.
1115
+ * @note The term "operation" is used rather than Txn, since multiple Txns can be grouped together via [[beginMultiTxnOperation]]. So,
1116
+ * even if numOperations is 1, multiple Txns may be reversed if they were grouped together when they were made.
1117
+ * @note If numOperations is too large only the operations are reversible are reversed.
1118
+ * @param numOperations the number of operations to reverse. If this is greater than 1, the entire set of operations will
1119
+ * be reinstated together when/if ReinstateTxn is called.
1120
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to retain locks.
1121
+ * @returns A Promise that resolves to success if the transactions were reversed, or rejects with an IModelError otherwise.
1122
+ */
1123
+ async reverseTxnsAsync(numOperations, args) {
1124
+ await this.withLockAbandonment(args, () => this._nativeDb.reverseTxns(numOperations));
1125
+ }
1126
+ /** Reverse (undo) the most recent operation to this IModelDb. By default, this method also
1127
+ * abandons the locks that were acquired for that operation.
1128
+ * @beta
1129
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
1130
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
1131
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
1132
+ * with _both_ Txn 1 and Txn 2.
1133
+ * @note If there are any outstanding uncommitted changes, they are reversed.
1134
+ * @note The term "operation" is used rather than Txn, since multiple Txns can be grouped together via [[beginMultiTxnOperation]]. So,
1135
+ * even though this method reverses only one operation, multiple Txns may be reversed if they were grouped together when they were made.
1136
+ * @note If there are no reversible operations, this method does nothing and returns Success.
1137
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to retain locks.
1138
+ * @returns A Promise that resolves to success if the transactions were reversed, or rejects with an IModelError otherwise.
1139
+ */
1140
+ async reverseSingleTxnAsync(args) {
1141
+ await this.reverseTxnsAsync(1, args);
1142
+ }
1143
+ /** Reverse (undo) all operations back to the beginning of the session. By default, this method also
1144
+ * abandons the locks that were acquired for those operations.
1145
+ * @beta
1146
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
1147
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
1148
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
1149
+ * with _both_ Txn 1 and Txn 2.
1150
+ * @note If there are any outstanding uncommitted changes, they are reversed.
1151
+ * @note If there are no reversible operations, this method does nothing and returns Success.
1152
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to retain locks.
1153
+ * @returns A Promise that resolves to success if the transactions were reversed, or rejects with an IModelError otherwise.
1154
+ */
1155
+ async reverseAllTxnsAsync(args) {
1156
+ await this.withLockAbandonment(args, () => this._nativeDb.reverseAll());
1157
+ }
1158
+ /** Reverse (undo) all operations back to a previously saved TxnId. By default, this method also
1159
+ * abandons the locks that were acquired for those operations.
1160
+ * @beta
1161
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
1162
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
1163
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
1164
+ * with _both_ Txn 1 and Txn 2.
1165
+ * @note If there are any outstanding uncommitted changes, they are reversed.
1166
+ * @param txnId a TxnId obtained from a previous call to GetCurrentTxnId.
1167
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to abandon locks.
1168
+ * @returns A Promise that resolves to success if the transactions were reversed, or rejects with an IModelError otherwise.
1169
+ * @see [[getCurrentTxnId]] [[cancelTo]]
1170
+ */
1171
+ async reverseToTxnAsync(txnId, args) {
1172
+ await this.withLockAbandonment(args, () => this._nativeDb.reverseTo(txnId));
1173
+ }
1174
+ /** Reverse and then cancel (make non-reinstatable) all operations back to a previous TxnId. By default, this
1175
+ * method also abandons the locks that were acquired for those operations.
1176
+ * @beta
1177
+ * @note This method will also abandon locks associated with any later, reversed Txns, if they have not
1178
+ * already been abandoned. For example, if a call to [[reverseTxns]] reverses Txn 2 without abandoning
1179
+ * its locks, and then this method is called to reverse Txn 1, it will abandon the locks associated
1180
+ * with _both_ Txn 1 and Txn 2.
1181
+ * @note If there are any outstanding uncommitted changes, they are reversed.
1182
+ * @param txnId a TxnId obtained from a previous call to [[getCurrentTxnId]]
1183
+ * @param args Optional arguments to control the behavior of the reverse operation, such as whether to abandon locks.
1184
+ * @returns A promise that resolves to success if the transactions were reversed and cleared, or rejects with an IModelError otherwise.
1185
+ */
1186
+ async cancelToTxnAsync(txnId, args) {
1187
+ // First reverse and abandon locks. Only cancel if that succeeds.
1188
+ // This is important because the locks would become unabandonable if we canceled first and
1189
+ // _then_ the abandonment failed. We expect the call to cancelTo to return "NothingToUndo",
1190
+ // but that's ok - it will still clear the already-reversed txns.
1191
+ await this.withLockAbandonment(args, () => this._nativeDb.reverseTo(txnId));
1192
+ const status = this._nativeDb.cancelTo(txnId);
1193
+ if (status !== IModelStatus.Success && status !== IModelStatus.NothingToUndo)
1194
+ throw new IModelError(status, IModelError.getErrorKey(status));
1195
+ this._iModel.locks.clearTxnLockRecords(txnId);
1196
+ }
1197
+ async withLockAbandonment(args, doReverseCallback) {
1198
+ const result = doReverseCallback();
1199
+ if (result === IModelStatus.Success) {
1200
+ if (!args?.retainLocks) {
1201
+ // Abandon locks for the earliest txn, which abandons locks for the later ones, too.
1202
+ await this._iModel.locks.abandonLocksForReversedTxn(this.getCurrentTxnId());
1203
+ }
1204
+ }
1205
+ else {
1206
+ throw new IModelError(result, IModelError.getErrorKey(result));
1207
+ }
1208
+ }
1066
1209
  /** Reinstate the most recently reversed transaction. Since at any time multiple transactions can be reversed, it
1067
1210
  * may take multiple calls to this method to reinstate all reversed operations.
1068
1211
  * @returns Success if a reversed transaction was reinstated, error status otherwise.
1069
1212
  * @note If there are any outstanding uncommitted changes, they are canceled before the Txn is reinstated.
1213
+ * @note This method will return [[IModelStatus.LockNotHeld]] and will not reinstate the Txn if the locks
1214
+ * originally acquired by the Txn have been abandoned. Use [[reinstateTxnAsync]] to re-acquire the locks
1215
+ * and reinstate the Txn in a single operation.
1070
1216
  */
1071
- reinstateTxn() { return this._iModel.reinstateTxn(); }
1217
+ reinstateTxn() {
1218
+ // Verify that the locks required by this txn have not been abandoned.
1219
+ // If so, this method has no way to re-acquire them because it is synchronous. This
1220
+ // is basically a developer error, mixing reverseTxnAsync with reinstateTxn (non-Async).
1221
+ const reinstateRange = this._nativeDb.getNextReinstateTxnRange();
1222
+ if (this.isTxnIdValid(reinstateRange.firstTxnId) &&
1223
+ !this._iModel.locks.holdsNecessaryLocksForReinstatingTxn(this.queryPreviousTxnId(reinstateRange.lastTxnId))) {
1224
+ return IModelStatus.LockNotHeld;
1225
+ }
1226
+ return this._iModel.reinstateTxn();
1227
+ }
1228
+ /** Reinstate the most recently reversed transaction. This method will first attempt
1229
+ * to re-acquire the required locks, if they were abandoned after the operation was reversed.
1230
+ * Since at any time multiple transactions can be reversed, it may take multiple calls to this
1231
+ * method to reinstate all reversed operations.
1232
+ * @beta
1233
+ * @note If there are any outstanding unsaved changes, they are canceled before the Txn is reinstated. Unless
1234
+ * [ReinstateTxnArgs.retainLocks]($common) is true, the locks associated with the unsaved changes are also abandoned.
1235
+ * @param args Optional arguments to control the behavior of the reinstate operation, such as whether to retain
1236
+ * locks when abandoning unsaved changes.
1237
+ * @returns A Promise that resolves to success if a reversed transaction was reinstated, or rejects with an IModelError otherwise.
1238
+ */
1239
+ async reinstateTxnAsync(args) {
1240
+ // We must abandon any unsaved changes here because it will be too late
1241
+ // when reinstateTxn does it.
1242
+ if (this.hasUnsavedChanges) {
1243
+ this._iModel.clearCaches({ instanceCachesOnly: true });
1244
+ this._iModel[_nativeDb].abandonChanges();
1245
+ }
1246
+ if (!args?.retainLocks) {
1247
+ await this._iModel.locks.abandonLocksForCurrentUnsavedTxn();
1248
+ }
1249
+ const reinstateRange = this._nativeDb.getNextReinstateTxnRange();
1250
+ if (!this.isTxnIdValid(reinstateRange.firstTxnId)) {
1251
+ throw new IModelError(IModelStatus.NothingToRedo, IModelError.getErrorKey(IModelStatus.NothingToRedo));
1252
+ }
1253
+ // Reacquire locks for the latest txn in the range, which will reacquire locks for all earlier txns, too.
1254
+ await this._iModel.locks.acquireLocksForReinstatingTxn(this.queryPreviousTxnId(reinstateRange.lastTxnId));
1255
+ const status = this.reinstateTxn();
1256
+ if (status !== IModelStatus.Success) {
1257
+ throw new IModelError(status, IModelError.getErrorKey(status));
1258
+ }
1259
+ }
1072
1260
  /** Get the Id of the first transaction, if any.
1073
1261
  */
1074
1262
  queryFirstTxnId() { return this._nativeDb.queryFirstTxnId(); }
@@ -1109,7 +1297,7 @@ export class TxnManager {
1109
1297
  get hasLocalChanges() { return this.hasUnsavedChanges || this.hasPendingTxns; }
1110
1298
  /** Destroy the record of all local changes that have yet to be saved and/or pushed.
1111
1299
  * This permanently eradicates your changes - use with caution!
1112
- * Typically, callers will want to subsequently use [[LockControl.releaseAllLocks]].
1300
+ * Typically, callers will want to subsequently use [[LockControl.abandonAllLocks]].
1113
1301
  * After calling this function, [[hasLocalChanges]], [[hasPendingTxns]], and [[hasUnsavedChanges]] will all be `false`.
1114
1302
  */
1115
1303
  deleteAllTxns() {