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

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 (654) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +11 -5
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.js.map +1 -1
  10. package/lib/cjs/Category.d.ts +4 -4
  11. package/lib/cjs/Category.js.map +1 -1
  12. package/lib/cjs/ChangeSummaryManager.js +2 -2
  13. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  14. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  15. package/lib/cjs/ChangesetECAdaptor.d.ts +5 -0
  16. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  17. package/lib/cjs/ChangesetECAdaptor.js +261 -251
  18. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  19. package/lib/cjs/ChangesetReader.js +3 -3
  20. package/lib/cjs/ChangesetReader.js.map +1 -1
  21. package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
  22. package/lib/cjs/ChannelControl.js.map +1 -1
  23. package/lib/cjs/CheckpointManager.d.ts +3 -0
  24. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  25. package/lib/cjs/CheckpointManager.js +8 -2
  26. package/lib/cjs/CheckpointManager.js.map +1 -1
  27. package/lib/cjs/ClassRegistry.js +10 -10
  28. package/lib/cjs/ClassRegistry.js.map +1 -1
  29. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  30. package/lib/cjs/CloudSqlite.js +28 -10
  31. package/lib/cjs/CloudSqlite.js.map +1 -1
  32. package/lib/cjs/CodeService.js.map +1 -1
  33. package/lib/cjs/CodeSpecs.d.ts +3 -3
  34. package/lib/cjs/CodeSpecs.js.map +1 -1
  35. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  36. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  37. package/lib/cjs/DevTools.js.map +1 -1
  38. package/lib/cjs/DisplayStyle.d.ts +2 -2
  39. package/lib/cjs/DisplayStyle.js.map +1 -1
  40. package/lib/cjs/ECDb.d.ts.map +1 -1
  41. package/lib/cjs/ECDb.js +1 -0
  42. package/lib/cjs/ECDb.js.map +1 -1
  43. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  44. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  45. package/lib/cjs/ECSqlStatement.js.map +1 -1
  46. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  47. package/lib/cjs/EditTxn.d.ts.map +1 -1
  48. package/lib/cjs/EditTxn.js +1 -0
  49. package/lib/cjs/EditTxn.js.map +1 -1
  50. package/lib/cjs/Element.d.ts +48 -12
  51. package/lib/cjs/Element.d.ts.map +1 -1
  52. package/lib/cjs/Element.js +120 -24
  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 +2 -2
  59. package/lib/cjs/EntityReferences.js.map +1 -1
  60. package/lib/cjs/ExportGraphics.js.map +1 -1
  61. package/lib/cjs/ExternalSource.js.map +1 -1
  62. package/lib/cjs/FontFile.js.map +1 -1
  63. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  64. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  65. package/lib/cjs/GeometrySummary.js +47 -47
  66. package/lib/cjs/GeometrySummary.js.map +1 -1
  67. package/lib/cjs/IModelDb.d.ts +118 -30
  68. package/lib/cjs/IModelDb.d.ts.map +1 -1
  69. package/lib/cjs/IModelDb.js +325 -115
  70. package/lib/cjs/IModelDb.js.map +1 -1
  71. package/lib/cjs/IModelDbFonts.js.map +1 -1
  72. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  73. package/lib/cjs/IModelHost.d.ts.map +1 -1
  74. package/lib/cjs/IModelHost.js +3 -0
  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.js.map +1 -1
  80. package/lib/cjs/LineStyle.js.map +1 -1
  81. package/lib/cjs/LocalHub.js +1 -1
  82. package/lib/cjs/LocalHub.js.map +1 -1
  83. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  84. package/lib/cjs/LockControl.js.map +1 -1
  85. package/lib/cjs/Material.js.map +1 -1
  86. package/lib/cjs/Model.d.ts +5 -5
  87. package/lib/cjs/Model.d.ts.map +1 -1
  88. package/lib/cjs/Model.js.map +1 -1
  89. package/lib/cjs/NativeAppStorage.js.map +1 -1
  90. package/lib/cjs/NativeHost.js.map +1 -1
  91. package/lib/cjs/NavigationRelationship.js.map +1 -1
  92. package/lib/cjs/PartialChangeUnifier.js +7 -7
  93. package/lib/cjs/PartialChangeUnifier.js.map +1 -1
  94. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  95. package/lib/cjs/PropertyStore.js +1 -1
  96. package/lib/cjs/PropertyStore.js.map +1 -1
  97. package/lib/cjs/Relationship.js.map +1 -1
  98. package/lib/cjs/RpcBackend.js.map +1 -1
  99. package/lib/cjs/SQLiteDb.js.map +1 -1
  100. package/lib/cjs/Schema.js.map +1 -1
  101. package/lib/cjs/SchemaSync.d.ts +158 -22
  102. package/lib/cjs/SchemaSync.d.ts.map +1 -1
  103. package/lib/cjs/SchemaSync.js +417 -76
  104. package/lib/cjs/SchemaSync.js.map +1 -1
  105. package/lib/cjs/SchemaUtils.js.map +1 -1
  106. package/lib/cjs/SheetIndex.js.map +1 -1
  107. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  108. package/lib/cjs/SqliteStatement.js.map +1 -1
  109. package/lib/cjs/StashManager.js.map +1 -1
  110. package/lib/cjs/SynchronousChannel.d.ts +62 -0
  111. package/lib/cjs/SynchronousChannel.d.ts.map +1 -0
  112. package/lib/cjs/SynchronousChannel.js +11 -0
  113. package/lib/cjs/SynchronousChannel.js.map +1 -0
  114. package/lib/cjs/Texture.d.ts +1 -1
  115. package/lib/cjs/Texture.js.map +1 -1
  116. package/lib/cjs/TileStorage.js.map +1 -1
  117. package/lib/cjs/TxnManager.d.ts +44 -4
  118. package/lib/cjs/TxnManager.d.ts.map +1 -1
  119. package/lib/cjs/TxnManager.js +74 -19
  120. package/lib/cjs/TxnManager.js.map +1 -1
  121. package/lib/cjs/ViewDefinition.d.ts +6 -6
  122. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  123. package/lib/cjs/ViewDefinition.js.map +1 -1
  124. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  125. package/lib/cjs/ViewStore.js.map +1 -1
  126. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  127. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  128. package/lib/cjs/annotations/LeaderGeometry.d.ts +22 -7
  129. package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -1
  130. package/lib/cjs/annotations/LeaderGeometry.js +104 -36
  131. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  132. package/lib/cjs/annotations/TextAnnotationElement.d.ts +1 -1
  133. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  134. package/lib/cjs/annotations/TextAnnotationElement.js +25 -10
  135. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  136. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  137. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  138. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  139. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  140. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +36 -36
  141. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +28 -28
  142. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  143. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  144. package/lib/cjs/core-backend.d.ts +1 -0
  145. package/lib/cjs/core-backend.d.ts.map +1 -1
  146. package/lib/cjs/core-backend.js +1 -0
  147. package/lib/cjs/core-backend.js.map +1 -1
  148. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  149. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  150. package/lib/cjs/domains/GenericElements.js.map +1 -1
  151. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  152. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  153. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  154. package/lib/cjs/internal/ECSqlInstanceReshaper.js.map +1 -1
  155. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  156. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  157. package/lib/cjs/internal/HubMock.js.map +1 -1
  158. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  159. package/lib/cjs/internal/IntegrityCheck.d.ts +22 -0
  160. package/lib/cjs/internal/IntegrityCheck.d.ts.map +1 -1
  161. package/lib/cjs/internal/IntegrityCheck.js +13 -0
  162. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  163. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  164. package/lib/cjs/internal/NoLocks.js.map +1 -1
  165. package/lib/cjs/internal/NoReservations.d.ts +6 -0
  166. package/lib/cjs/internal/NoReservations.d.ts.map +1 -0
  167. package/lib/cjs/internal/NoReservations.js +21 -0
  168. package/lib/cjs/internal/NoReservations.js.map +1 -0
  169. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  170. package/lib/cjs/internal/SchemaSyncReservations.d.ts +4 -0
  171. package/lib/cjs/internal/SchemaSyncReservations.d.ts.map +1 -0
  172. package/lib/cjs/internal/SchemaSyncReservations.js +128 -0
  173. package/lib/cjs/internal/SchemaSyncReservations.js.map +1 -0
  174. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  175. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  176. package/lib/cjs/internal/Symbols.d.ts +1 -0
  177. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  178. package/lib/cjs/internal/Symbols.js +2 -1
  179. package/lib/cjs/internal/Symbols.js.map +1 -1
  180. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  181. package/lib/cjs/internal/cross-package.js.map +1 -1
  182. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  183. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  184. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  185. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  186. package/lib/cjs/internal/workspace/WorkspaceImpl.js +7 -2
  187. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  188. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  189. package/lib/cjs/rpc/multipart.js.map +1 -1
  190. package/lib/cjs/rpc/tracing.js.map +1 -1
  191. package/lib/cjs/rpc/web/logging.js.map +1 -1
  192. package/lib/cjs/rpc/web/request.js.map +1 -1
  193. package/lib/cjs/rpc/web/response.js.map +1 -1
  194. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  195. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  196. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  197. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  198. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  199. package/lib/cjs/workspace/Settings.js.map +1 -1
  200. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  201. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  202. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  203. package/lib/cjs/workspace/Workspace.js.map +1 -1
  204. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  205. package/lib/esm/BackendHubAccess.js.map +1 -1
  206. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  207. package/lib/esm/BisCoreSchema.js.map +1 -1
  208. package/lib/esm/BlobContainerService.js.map +1 -1
  209. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  210. package/lib/esm/BriefcaseManager.js +11 -5
  211. package/lib/esm/BriefcaseManager.js.map +1 -1
  212. package/lib/esm/CatalogDb.js.map +1 -1
  213. package/lib/esm/Category.d.ts +4 -4
  214. package/lib/esm/Category.js.map +1 -1
  215. package/lib/esm/ChangeSummaryManager.js +2 -2
  216. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  217. package/lib/esm/ChangedElementsDb.js.map +1 -1
  218. package/lib/esm/ChangesetECAdaptor.d.ts +5 -0
  219. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  220. package/lib/esm/ChangesetECAdaptor.js +261 -251
  221. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  222. package/lib/esm/ChangesetReader.js +3 -3
  223. package/lib/esm/ChangesetReader.js.map +1 -1
  224. package/lib/esm/ChangesetReaderTypes.js.map +1 -1
  225. package/lib/esm/ChannelControl.js.map +1 -1
  226. package/lib/esm/CheckpointManager.d.ts +3 -0
  227. package/lib/esm/CheckpointManager.d.ts.map +1 -1
  228. package/lib/esm/CheckpointManager.js +8 -2
  229. package/lib/esm/CheckpointManager.js.map +1 -1
  230. package/lib/esm/ClassRegistry.js +6 -6
  231. package/lib/esm/ClassRegistry.js.map +1 -1
  232. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  233. package/lib/esm/CloudSqlite.js +29 -11
  234. package/lib/esm/CloudSqlite.js.map +1 -1
  235. package/lib/esm/CodeService.js.map +1 -1
  236. package/lib/esm/CodeSpecs.d.ts +3 -3
  237. package/lib/esm/CodeSpecs.js.map +1 -1
  238. package/lib/esm/ConcurrentQuery.js.map +1 -1
  239. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  240. package/lib/esm/DevTools.js.map +1 -1
  241. package/lib/esm/DisplayStyle.d.ts +2 -2
  242. package/lib/esm/DisplayStyle.js.map +1 -1
  243. package/lib/esm/ECDb.d.ts.map +1 -1
  244. package/lib/esm/ECDb.js +1 -0
  245. package/lib/esm/ECDb.js.map +1 -1
  246. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  247. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  248. package/lib/esm/ECSqlStatement.js.map +1 -1
  249. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  250. package/lib/esm/EditTxn.d.ts.map +1 -1
  251. package/lib/esm/EditTxn.js +1 -0
  252. package/lib/esm/EditTxn.js.map +1 -1
  253. package/lib/esm/Element.d.ts +48 -12
  254. package/lib/esm/Element.d.ts.map +1 -1
  255. package/lib/esm/Element.js +121 -25
  256. package/lib/esm/Element.js.map +1 -1
  257. package/lib/esm/ElementAspect.js.map +1 -1
  258. package/lib/esm/ElementGraphics.js.map +1 -1
  259. package/lib/esm/ElementTreeWalker.js.map +1 -1
  260. package/lib/esm/Entity.js.map +1 -1
  261. package/lib/esm/EntityReferences.js +1 -1
  262. package/lib/esm/EntityReferences.js.map +1 -1
  263. package/lib/esm/ExportGraphics.js.map +1 -1
  264. package/lib/esm/ExternalSource.js.map +1 -1
  265. package/lib/esm/FontFile.js.map +1 -1
  266. package/lib/esm/GeoCoordConfig.js.map +1 -1
  267. package/lib/esm/GeographicCRSServices.js.map +1 -1
  268. package/lib/esm/GeometrySummary.js +47 -47
  269. package/lib/esm/GeometrySummary.js.map +1 -1
  270. package/lib/esm/IModelDb.d.ts +118 -30
  271. package/lib/esm/IModelDb.d.ts.map +1 -1
  272. package/lib/esm/IModelDb.js +327 -117
  273. package/lib/esm/IModelDb.js.map +1 -1
  274. package/lib/esm/IModelDbFonts.js.map +1 -1
  275. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  276. package/lib/esm/IModelHost.d.ts.map +1 -1
  277. package/lib/esm/IModelHost.js +3 -0
  278. package/lib/esm/IModelHost.js.map +1 -1
  279. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  280. package/lib/esm/IModelJsFs.js.map +1 -1
  281. package/lib/esm/ImageSourceConversion.js.map +1 -1
  282. package/lib/esm/IpcHost.js.map +1 -1
  283. package/lib/esm/LineStyle.js.map +1 -1
  284. package/lib/esm/LocalHub.js +1 -1
  285. package/lib/esm/LocalHub.js.map +1 -1
  286. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  287. package/lib/esm/LockControl.js.map +1 -1
  288. package/lib/esm/Material.js.map +1 -1
  289. package/lib/esm/Model.d.ts +5 -5
  290. package/lib/esm/Model.d.ts.map +1 -1
  291. package/lib/esm/Model.js.map +1 -1
  292. package/lib/esm/NativeAppStorage.js.map +1 -1
  293. package/lib/esm/NativeHost.js.map +1 -1
  294. package/lib/esm/NavigationRelationship.js.map +1 -1
  295. package/lib/esm/PartialChangeUnifier.js +7 -7
  296. package/lib/esm/PartialChangeUnifier.js.map +1 -1
  297. package/lib/esm/PromiseMemoizer.js.map +1 -1
  298. package/lib/esm/PropertyStore.js +1 -1
  299. package/lib/esm/PropertyStore.js.map +1 -1
  300. package/lib/esm/Relationship.js.map +1 -1
  301. package/lib/esm/RpcBackend.js.map +1 -1
  302. package/lib/esm/SQLiteDb.js.map +1 -1
  303. package/lib/esm/Schema.js.map +1 -1
  304. package/lib/esm/SchemaSync.d.ts +158 -22
  305. package/lib/esm/SchemaSync.d.ts.map +1 -1
  306. package/lib/esm/SchemaSync.js +419 -78
  307. package/lib/esm/SchemaSync.js.map +1 -1
  308. package/lib/esm/SchemaUtils.js.map +1 -1
  309. package/lib/esm/SheetIndex.js.map +1 -1
  310. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  311. package/lib/esm/SqliteStatement.js.map +1 -1
  312. package/lib/esm/StashManager.js.map +1 -1
  313. package/lib/esm/SynchronousChannel.d.ts +62 -0
  314. package/lib/esm/SynchronousChannel.d.ts.map +1 -0
  315. package/lib/esm/SynchronousChannel.js +9 -0
  316. package/lib/esm/SynchronousChannel.js.map +1 -0
  317. package/lib/esm/Texture.d.ts +1 -1
  318. package/lib/esm/Texture.js.map +1 -1
  319. package/lib/esm/TileStorage.js.map +1 -1
  320. package/lib/esm/TxnManager.d.ts +44 -4
  321. package/lib/esm/TxnManager.d.ts.map +1 -1
  322. package/lib/esm/TxnManager.js +74 -19
  323. package/lib/esm/TxnManager.js.map +1 -1
  324. package/lib/esm/ViewDefinition.d.ts +6 -6
  325. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  326. package/lib/esm/ViewDefinition.js.map +1 -1
  327. package/lib/esm/ViewStateHydrator.js.map +1 -1
  328. package/lib/esm/ViewStore.js.map +1 -1
  329. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  330. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  331. package/lib/esm/annotations/LeaderGeometry.d.ts +22 -7
  332. package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -1
  333. package/lib/esm/annotations/LeaderGeometry.js +104 -36
  334. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  335. package/lib/esm/annotations/TextAnnotationElement.d.ts +1 -1
  336. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  337. package/lib/esm/annotations/TextAnnotationElement.js +25 -10
  338. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  339. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  340. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  341. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  342. package/lib/esm/core-backend.d.ts +1 -0
  343. package/lib/esm/core-backend.d.ts.map +1 -1
  344. package/lib/esm/core-backend.js +1 -0
  345. package/lib/esm/core-backend.js.map +1 -1
  346. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  347. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  348. package/lib/esm/domains/GenericElements.js.map +1 -1
  349. package/lib/esm/domains/GenericSchema.js.map +1 -1
  350. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  351. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  352. package/lib/esm/internal/ECSqlInstanceReshaper.js.map +1 -1
  353. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  354. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  355. package/lib/esm/internal/HubMock.js.map +1 -1
  356. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  357. package/lib/esm/internal/IntegrityCheck.d.ts +22 -0
  358. package/lib/esm/internal/IntegrityCheck.d.ts.map +1 -1
  359. package/lib/esm/internal/IntegrityCheck.js +13 -0
  360. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  361. package/lib/esm/internal/NativePlatform.js.map +1 -1
  362. package/lib/esm/internal/NoLocks.js.map +1 -1
  363. package/lib/esm/internal/NoReservations.d.ts +6 -0
  364. package/lib/esm/internal/NoReservations.d.ts.map +1 -0
  365. package/lib/esm/internal/NoReservations.js +18 -0
  366. package/lib/esm/internal/NoReservations.js.map +1 -0
  367. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  368. package/lib/esm/internal/SchemaSyncReservations.d.ts +4 -0
  369. package/lib/esm/internal/SchemaSyncReservations.d.ts.map +1 -0
  370. package/lib/esm/internal/SchemaSyncReservations.js +125 -0
  371. package/lib/esm/internal/SchemaSyncReservations.js.map +1 -0
  372. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  373. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  374. package/lib/esm/internal/Symbols.d.ts +1 -0
  375. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  376. package/lib/esm/internal/Symbols.js +1 -0
  377. package/lib/esm/internal/Symbols.js.map +1 -1
  378. package/lib/esm/internal/annotations/fields.js.map +1 -1
  379. package/lib/esm/internal/cross-package.js.map +1 -1
  380. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  381. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  382. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  383. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  384. package/lib/esm/internal/workspace/WorkspaceImpl.js +7 -2
  385. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  386. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  387. package/lib/esm/rpc/multipart.js.map +1 -1
  388. package/lib/esm/rpc/tracing.js.map +1 -1
  389. package/lib/esm/rpc/web/logging.js.map +1 -1
  390. package/lib/esm/rpc/web/request.js.map +1 -1
  391. package/lib/esm/rpc/web/response.js.map +1 -1
  392. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  393. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  394. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  395. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  396. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  397. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  398. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  399. package/lib/esm/test/AttachDb.test.js +11 -11
  400. package/lib/esm/test/AttachDb.test.js.map +1 -1
  401. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  402. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  403. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  404. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  405. package/lib/esm/test/IModelHost.test.js.map +1 -1
  406. package/lib/esm/test/IModelTestUtils.d.ts +1 -1
  407. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  408. package/lib/esm/test/IModelTestUtils.js +8 -3
  409. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  410. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  411. package/lib/esm/test/IpcHost.test.js.map +1 -1
  412. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  413. package/lib/esm/test/PrintElementTree.js.map +1 -1
  414. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  415. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +51 -51
  416. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -1
  417. package/lib/esm/test/SchemaUtils.test.js +25 -25
  418. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  419. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  420. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  421. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  422. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  423. package/lib/esm/test/TestEditTxn.js.map +1 -1
  424. package/lib/esm/test/TestUtils.js.map +1 -1
  425. package/lib/esm/test/annotations/Fields.test.js +53 -53
  426. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  427. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  428. package/lib/esm/test/annotations/LeaderGeometry.test.js +178 -2
  429. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  430. package/lib/esm/test/annotations/TextAnnotation.test.js +48 -18
  431. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  432. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  433. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  434. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  435. package/lib/esm/test/categories/Category.test.js.map +1 -1
  436. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  437. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  438. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  439. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  440. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  441. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  442. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  443. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  444. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  445. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  446. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  447. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  448. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  449. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  450. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  451. package/lib/esm/test/ecdb/ECSqlStatement.test.js +509 -332
  452. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  453. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +4 -4
  454. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  455. package/lib/esm/test/ecdb/QueryReaders.test.js +33 -47
  456. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  457. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  458. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  459. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  460. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  461. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  462. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +2 -2
  463. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  464. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  465. package/lib/esm/test/element/ElementAspect.test.js +176 -24
  466. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  467. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  468. package/lib/esm/test/element/ElementRoundTrip.test.js +224 -141
  469. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  470. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  471. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  472. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  473. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  474. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  475. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  476. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  477. package/lib/esm/test/example-code/EditTxn.test.d.ts +2 -0
  478. package/lib/esm/test/example-code/EditTxn.test.d.ts.map +1 -0
  479. package/lib/esm/test/example-code/EditTxn.test.js +47 -0
  480. package/lib/esm/test/example-code/EditTxn.test.js.map +1 -0
  481. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  482. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  483. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  484. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  485. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  486. package/lib/esm/test/hubaccess/CheckpointManager.test.js +43 -1
  487. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  488. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -1
  489. package/lib/esm/test/hubaccess/Rebase.test.js +59 -57
  490. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  491. package/lib/esm/test/hubaccess/SemanticRebase.test.js +374 -373
  492. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  493. package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.d.ts +3 -0
  494. package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.d.ts.map +1 -0
  495. package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.js +15 -0
  496. package/lib/esm/test/hubaccess/SemanticRebaseTestUtils.js.map +1 -0
  497. package/lib/esm/test/imageData.js.map +1 -1
  498. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  499. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  500. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  501. package/lib/esm/test/imodel/IModelECSql.test.d.ts +2 -0
  502. package/lib/esm/test/imodel/IModelECSql.test.d.ts.map +1 -0
  503. package/lib/esm/test/imodel/IModelECSql.test.js +367 -0
  504. package/lib/esm/test/imodel/IModelECSql.test.js.map +1 -0
  505. package/lib/esm/test/imodel/IModelElements.test.d.ts +2 -0
  506. package/lib/esm/test/imodel/IModelElements.test.d.ts.map +1 -0
  507. package/lib/esm/test/imodel/IModelElements.test.js +969 -0
  508. package/lib/esm/test/imodel/IModelElements.test.js.map +1 -0
  509. package/lib/esm/test/imodel/IModelGeolocation.test.d.ts +2 -0
  510. package/lib/esm/test/imodel/IModelGeolocation.test.d.ts.map +1 -0
  511. package/lib/esm/test/imodel/IModelGeolocation.test.js +539 -0
  512. package/lib/esm/test/imodel/IModelGeolocation.test.js.map +1 -0
  513. package/lib/esm/test/imodel/IModelLifecycle.test.d.ts +2 -0
  514. package/lib/esm/test/imodel/IModelLifecycle.test.d.ts.map +1 -0
  515. package/lib/esm/test/imodel/IModelLifecycle.test.js +499 -0
  516. package/lib/esm/test/imodel/IModelLifecycle.test.js.map +1 -0
  517. package/lib/esm/test/imodel/IModelMetadata.test.d.ts +2 -0
  518. package/lib/esm/test/imodel/IModelMetadata.test.d.ts.map +1 -0
  519. package/lib/esm/test/imodel/IModelMetadata.test.js +274 -0
  520. package/lib/esm/test/imodel/IModelMetadata.test.js.map +1 -0
  521. package/lib/esm/test/imodel/IModelModels.test.d.ts +2 -0
  522. package/lib/esm/test/imodel/IModelModels.test.d.ts.map +1 -0
  523. package/lib/esm/test/imodel/IModelModels.test.js +357 -0
  524. package/lib/esm/test/imodel/IModelModels.test.js.map +1 -0
  525. package/lib/esm/test/imodel/IModelRelationships.test.d.ts +2 -0
  526. package/lib/esm/test/imodel/IModelRelationships.test.d.ts.map +1 -0
  527. package/lib/esm/test/imodel/IModelRelationships.test.js +407 -0
  528. package/lib/esm/test/imodel/IModelRelationships.test.js.map +1 -0
  529. package/lib/esm/test/imodel/IModelTestFixtures.d.ts +53 -0
  530. package/lib/esm/test/imodel/IModelTestFixtures.d.ts.map +1 -0
  531. package/lib/esm/test/imodel/IModelTestFixtures.js +107 -0
  532. package/lib/esm/test/imodel/IModelTestFixtures.js.map +1 -0
  533. package/lib/esm/test/imodel/IModelViews.test.d.ts +2 -0
  534. package/lib/esm/test/imodel/IModelViews.test.d.ts.map +1 -0
  535. package/lib/esm/test/imodel/IModelViews.test.js +199 -0
  536. package/lib/esm/test/imodel/IModelViews.test.js.map +1 -0
  537. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  538. package/lib/esm/test/imodel/SchemaXmlImport.test.js +21 -21
  539. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  540. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  541. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  542. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  543. package/lib/esm/test/index.d.ts +0 -1
  544. package/lib/esm/test/index.d.ts.map +1 -1
  545. package/lib/esm/test/index.js +0 -1
  546. package/lib/esm/test/index.js.map +1 -1
  547. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js +32 -32
  548. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js.map +1 -1
  549. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  550. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  551. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  552. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  553. package/lib/esm/test/rpc/response.test.js.map +1 -1
  554. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  555. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  556. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  557. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  558. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  559. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  560. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  561. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  562. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js +21 -21
  563. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js.map +1 -1
  564. package/lib/esm/test/schema/SchemaViewHidden.test.js +109 -109
  565. package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -1
  566. package/lib/esm/test/schema/SchemaViewKoQ.test.js +13 -13
  567. package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
  568. package/lib/esm/test/schema/SchemaViewLifecycle.test.js +15 -15
  569. package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -1
  570. package/lib/esm/test/schema/SchemaViewValidation.test.js +8 -8
  571. package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -1
  572. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  573. package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -1
  574. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  575. package/lib/esm/test/standalone/ChangesetReader.test.js +321 -339
  576. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  577. package/lib/esm/test/standalone/CloudSqlite.test.js +73 -0
  578. package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -1
  579. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  580. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
  581. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts +2 -0
  582. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts.map +1 -0
  583. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js +263 -0
  584. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js.map +1 -0
  585. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  586. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  587. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  588. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  589. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  590. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  591. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  592. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  593. package/lib/esm/test/standalone/GeometryStream.test.js +1 -3
  594. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  595. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  596. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  597. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  598. package/lib/esm/test/standalone/IModelWrite.test.js +105 -28
  599. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  600. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  601. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  602. package/lib/esm/test/standalone/IntegrityCheck.test.js +29 -10
  603. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  604. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  605. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  606. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  607. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  608. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  609. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +158 -135
  610. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
  611. package/lib/esm/test/standalone/SchemaSyncDb.test.d.ts +2 -0
  612. package/lib/esm/test/standalone/SchemaSyncDb.test.d.ts.map +1 -0
  613. package/lib/esm/test/standalone/SchemaSyncDb.test.js +201 -0
  614. package/lib/esm/test/standalone/SchemaSyncDb.test.js.map +1 -0
  615. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.d.ts +2 -0
  616. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.d.ts.map +1 -0
  617. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js +460 -0
  618. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js.map +1 -0
  619. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  620. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  621. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  622. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  623. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  624. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  625. package/lib/esm/test/standalone/SnapshotDb.test.js +1 -0
  626. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  627. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  628. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  629. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  630. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  631. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  632. package/lib/esm/test/standalone/TxnManager.test.js +108 -8
  633. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  634. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  635. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  636. package/lib/esm/test/standalone/Workspace.test.js +52 -0
  637. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  638. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  639. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  640. package/lib/esm/workspace/Settings.js.map +1 -1
  641. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  642. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  643. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  644. package/lib/esm/workspace/Workspace.js.map +1 -1
  645. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  646. package/package.json +19 -23
  647. package/lib/esm/test/RevisionUtility.d.ts +0 -33
  648. package/lib/esm/test/RevisionUtility.d.ts.map +0 -1
  649. package/lib/esm/test/RevisionUtility.js +0 -52
  650. package/lib/esm/test/RevisionUtility.js.map +0 -1
  651. package/lib/esm/test/imodel/IModel.test.d.ts +0 -2
  652. package/lib/esm/test/imodel/IModel.test.d.ts.map +0 -1
  653. package/lib/esm/test/imodel/IModel.test.js +0 -3279
  654. package/lib/esm/test/imodel/IModel.test.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"GeometrySummary.js","sourceRoot":"","sources":["../../src/GeometrySummary.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\nimport { assert, BentleyError, Id64Array, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport {\n AkimaCurve3d, AnyGeometryQuery, Arc3d, BezierCurveBase, Box, BSplineCurve3d, Cone, CurveChainWithDistanceIndex, CurveCollection, CurvePrimitive, IModelJson,\n InterpolationCurve3d,\n LinearSweep, LineSegment3d, LineString3d, Loop, Path, Range3d, RotationalSweep, RuledSweep, SolidPrimitive, Sphere, TorusPipe, Transform,\n TransitionSpiral3d, UVSelect,\n} from \"@itwin/core-geometry\";\nimport {\n BRepEntity, GeometryParams, GeometryStreamIterator, GeometrySummaryRequestProps, GeometrySummaryVerbosity, ImagePrimitive,\n IModelError, TextStringPrimitive,\n} from \"@itwin/core-common\";\nimport { Element, GeometricElement, GeometryPart } from \"./Element\";\nimport { IModelDb } from \"./IModelDb\";\nimport { _nativeDb } from \"./internal/Symbols\";\n\ninterface ElementGeom {\n iterator: GeometryStreamIterator;\n geometricElement?: GeometricElement;\n}\n\n// cspell:ignore earlin\n\n/** Generates an array of GeometryStreamResponseProps. */\nclass ResponseGenerator {\n public verbosity = GeometrySummaryVerbosity.Basic;\n public includePlacement = false;\n public includePartReferences?: \"2d\" | \"3d\";\n public verboseSymbology = false;\n public elementIds: Id64Array;\n public iModel: IModelDb;\n\n public get wantSquish() { return GeometrySummaryVerbosity.Full !== this.verbosity; }\n\n public constructor(request: GeometrySummaryRequestProps, iModel: IModelDb) {\n this.elementIds = request.elementIds;\n this.iModel = iModel;\n const opts = request.options;\n if (undefined !== opts) {\n this.verbosity = undefined !== opts.geometryVerbosity ? opts.geometryVerbosity : GeometrySummaryVerbosity.Basic;\n this.includePlacement = true === opts.includePlacement;\n this.includePartReferences = opts.includePartReferences;\n this.verboseSymbology = true === opts.verboseSymbology;\n }\n }\n\n public generateSummaries(): string {\n const summaries: string[] = [];\n for (const elementId of this.elementIds)\n summaries.push(this.generateSummary(elementId));\n\n return summaries.join(\"\\n\");\n }\n\n public generateSummary(id: Id64String): string {\n let lines = [`[Geometry Summary for Element ${id}]`];\n try {\n const geom = this.getElementGeom(id);\n if (undefined === geom)\n throw new IModelError(IModelStatus.NoGeometry, \"Element is neither a geometric element nor a geometry part\");\n\n if (undefined !== geom.geometricElement)\n lines.push(this.summarizeElement(geom.geometricElement));\n else if (undefined !== this.includePartReferences)\n lines.push(this.summarizePartReferences(id, \"2d\" === this.includePartReferences)); // NB: Hideously inefficient if more than one element's summary was requested.\n\n let curGeomParams: GeometryParams | undefined;\n let curLocalRange: Range3d | undefined;\n for (const entry of geom.iterator) {\n if (this.verboseSymbology && (undefined === curGeomParams || !curGeomParams.isEquivalent(entry.geomParams))) {\n lines.push(`Symbology: ${this.stringify(entry.geomParams)}`);\n curGeomParams = entry.geomParams.clone();\n }\n\n if (undefined !== entry.localRange && (undefined === curLocalRange || !curLocalRange.isAlmostEqual(entry.localRange))) {\n lines.push(this.summarizeRange3d(entry.localRange));\n curLocalRange = entry.localRange;\n }\n\n const prim = entry.primitive;\n switch (prim.type) {\n case \"textString\":\n case \"image\":\n this.summarizePrimitive(lines, prim);\n break;\n case \"brep\":\n this.summarizeBRep(lines, prim.brep);\n break;\n case \"geometryQuery\":\n this.summarizeGeometryQuery(lines, prim.geometry);\n break;\n case \"partReference\":\n lines.push(this.summarizePartReference(prim.part.id, prim.part.toLocal));\n break;\n }\n }\n } catch (err) {\n lines = lines.slice(0, 1);\n lines.push(`ERROR: ${BentleyError.getErrorMessage(err)}`);\n }\n\n return lines.filter((line) => line !== \"\").join(\"\\n\");\n }\n\n public summarizeElement(elem: GeometricElement): string {\n const lines: string[] = [];\n lines.push(`(${elem.is2d() ? \"2D\" : \"3D\"}) Category: ${elem.category}`);\n lines.push(`Model: ${elem.model}`);\n if (this.includePlacement) {\n lines.push(`Range: ${this.stringify(elem.calculateRange3d())}`);\n lines.push(`Transform: ${this.stringify(elem.getPlacementTransform())}`);\n }\n\n return lines.join(\"\\n\");\n }\n\n public summarizePartReferences(id: Id64String, is2d: boolean): string {\n const refIds = this.iModel[_nativeDb].findGeometryPartReferences([id], is2d);\n return `Part references (${refIds.length}): ${refIds.join()}`;\n }\n\n public getElementGeom(id: Id64String): ElementGeom | undefined {\n const elem = this.iModel.elements.getElement<Element>({ id, wantGeometry: true });\n let iterator: GeometryStreamIterator | undefined;\n let geometricElement: GeometricElement | undefined;\n if (elem instanceof GeometricElement) {\n geometricElement = elem;\n if (geometricElement.is2d()) {\n iterator = GeometryStreamIterator.fromGeometricElement2d(geometricElement);\n } else {\n assert(geometricElement.is3d());\n iterator = GeometryStreamIterator.fromGeometricElement3d(geometricElement);\n }\n } else if (elem instanceof GeometryPart) {\n iterator = GeometryStreamIterator.fromGeometryPart(elem);\n }\n\n return undefined !== iterator ? { iterator, geometricElement } : undefined;\n }\n\n public summarizeRange3d(range: Range3d): string {\n return `SubGraphicRange: ${this.stringify(range)}`;\n }\n\n public summarizePrimitive(lines: string[], primitive: TextStringPrimitive | ImagePrimitive): void {\n const summary = primitive.type;\n if (GeometrySummaryVerbosity.Basic >= this.verbosity) {\n lines.push(summary);\n return;\n }\n\n const json = this.stringify(primitive.type === \"textString\" ? primitive.textString : primitive.image);\n if (GeometrySummaryVerbosity.Detailed >= this.verbosity) {\n lines.push(`${summary}: ${json}`);\n return;\n }\n\n lines.push(`${summary}:`);\n lines.push(json);\n }\n\n public summarizeBRep(lines: string[], brep: BRepEntity.DataProps): void {\n const summary = \"brep\";\n if (GeometrySummaryVerbosity.Basic >= this.verbosity) {\n lines.push(summary);\n return;\n }\n\n const json = this.stringify({ type: brep.type, transform: brep.transform, faceSymbology: brep.faceSymbology });\n if (GeometrySummaryVerbosity.Detailed >= this.verbosity) {\n lines.push(`${summary}: ${json}`);\n return;\n }\n\n lines.push(`${summary}:`);\n lines.push(json);\n }\n\n public summarizePartReference(partId: string, partToLocal?: Transform): string {\n let line = `part id: ${partId}`;\n if (undefined !== partToLocal)\n line = `${line} transform: ${this.stringify(partToLocal)}`;\n\n return line;\n }\n\n public summarizeGeometryQuery(lines: string[], query: AnyGeometryQuery): void {\n switch (this.verbosity) {\n case GeometrySummaryVerbosity.Detailed:\n lines.push(this.summarizeGeometryQueryDetailed(query));\n break;\n case GeometrySummaryVerbosity.Full:\n lines.push(this.summarizeGeometryQueryFull(query));\n break;\n default:\n lines.push(this.summarizeGeometryQueryBasic(query));\n break;\n }\n }\n\n public summarizeGeometryQueryBasic(query: AnyGeometryQuery): string {\n switch (query.geometryCategory) {\n case \"solid\":\n return query.solidPrimitiveType;\n case \"curvePrimitive\":\n return query.curvePrimitiveType;\n case \"curveCollection\":\n return query.curveCollectionType;\n default:\n return query.geometryCategory;\n }\n }\n\n public summarizeGeometryQueryFull(query: AnyGeometryQuery): string {\n return this.geometryQueryToJson(query);\n }\n\n public geometryQueryToJson(query: AnyGeometryQuery): string {\n try {\n const json = IModelJson.Writer.toIModelJson(query);\n const str = JSON.stringify(json);\n return this.wantSquish ? this.squish(str) : str;\n } catch (err) {\n return BentleyError.getErrorMessage(err);\n }\n }\n\n // Earlin likes to put tons of whitespace + newlines into his JSON. Remove it.\n public squish(str: string): string {\n return str.replace(/\\s+/g, \"\");\n }\n\n public stringify(obj: object): string {\n const json = JSON.stringify(obj);\n return this.wantSquish ? this.squish(json) : json;\n }\n\n public summarizeGeometryQueryDetailed(query: AnyGeometryQuery): string {\n let summary = `${this.summarizeGeometryQueryBasic(query)}: `;\n switch (query.geometryCategory) {\n case \"solid\":\n return summary + this.summarizeSolidPrimitive(query);\n case \"curvePrimitive\":\n return summary + this.summarizeCurvePrimitive(query);\n case \"curveCollection\":\n return summary + this.summarizeCurveCollection(query);\n case \"pointCollection\":\n return `${summary} numPoints: ${query.points.length}`;\n case \"bsurf\":\n return `${summary}'\n ' poleDimension: ${query.poleDimension}'\n ' numPolesTotal: ${query.numPolesTotal()}'\n ' degree[U,V]: ${JSON.stringify([query.degreeUV(UVSelect.uDirection), query.degreeUV(UVSelect.vDirection)])}'\n ' order[U,V]: ${JSON.stringify([query.orderUV(UVSelect.uDirection), query.orderUV(UVSelect.vDirection)])}'\n ' numSpan[U,V]: ${JSON.stringify([query.numSpanUV(UVSelect.uDirection), query.numSpanUV(UVSelect.vDirection)])}'\n ' numPoles[U,V]: ${JSON.stringify([query.numPolesUV(UVSelect.uDirection), query.numPolesUV(UVSelect.vDirection)])}'\n ' poleStep[U,V]: ${JSON.stringify([query.poleStepUV(UVSelect.uDirection), query.poleStepUV(UVSelect.vDirection)])}`;\n case \"polyface\": {\n const data = query.data;\n summary = `${summary} pointCount: ${data.point.length}'\n ' pointIndexCount: ${data.pointIndex.length}`;\n if (query.twoSided)\n summary = `${summary} (two-sided)`;\n if (undefined !== data.normal)\n summary = `${summary} normalCount: ${data.normal.length}`;\n if (undefined !== data.param)\n summary = `${summary} paramCount: ${data.param.length}`;\n if (undefined !== data.color)\n summary = `${summary} colorCount: ${data.color.length}`;\n\n return summary;\n }\n case \"point\":\n return summary + this.geometryQueryToJson(query);\n }\n }\n\n public summarizeSolidPrimitive(solid: SolidPrimitive): string {\n const summary: string = solid.capped ? \" capped\" : \" uncapped\";\n switch (solid.solidPrimitiveType) {\n case \"box\":\n const box: Box = (solid as Box);\n return `${summary}'\n ' origin: ${JSON.stringify(box.getBaseOrigin().toJSON())}'\n ' topOrigin: ${JSON.stringify(box.getTopOrigin().toJSON())}'\n ' baseX: ${box.getBaseX()}'\n ' baseY: ${box.getBaseY()}`;\n case \"cone\":\n const cone: Cone = solid as Cone;\n return `${summary}'\n ' baseCenterPoint: ${JSON.stringify(cone.getCenterA())}'\n ' topCenterPoint: ${JSON.stringify(cone.getCenterB())}'\n ' baseCenterRadius: ${JSON.stringify(cone.getRadiusA())}'\n ' topCenterRadius: ${JSON.stringify(cone.getRadiusB())}`;\n case \"sphere\":\n const sphere: Sphere = solid as Sphere;\n return `${summary}'\n ' centerPoint: ${JSON.stringify(sphere.cloneCenter().toJSON())}'\n ' radius: ${JSON.stringify(sphere.trueSphereRadius())}`;\n case \"linearSweep\":\n const linearSweep: LinearSweep = solid as LinearSweep;\n return `${summary}'\n ' vector: ${JSON.stringify(linearSweep.cloneSweepVector().toJSON())}'\n ' curves${this.summarizeCurveCollection(linearSweep.getCurvesRef())}`;\n case \"rotationalSweep\":\n const rotationalSweep: RotationalSweep = solid as RotationalSweep;\n const axis = rotationalSweep.cloneAxisRay();\n return `${summary}'\n ' center: ${JSON.stringify(axis.origin.toJSON())}'\n ' axis: ${JSON.stringify(axis.direction.toJSON())}'\n ' sweepAngle: ${rotationalSweep.getSweep().degrees}`;\n case \"ruledSweep\":\n const ruledSweep: RuledSweep = solid as RuledSweep;\n const summarizedCollection = ruledSweep.cloneContours().map((curveCollection) => this.summarizeCurveCollection(curveCollection));\n return `${summary}'\n ' isClosedVolume${ruledSweep.isClosedVolume}'\n ' contours: ${JSON.stringify(summarizedCollection)}`;\n case \"torusPipe\":\n const torusPipe: TorusPipe = solid as TorusPipe;\n const vectorX = torusPipe.cloneVectorX();\n const vectorY = torusPipe.cloneVectorY();\n const sweep = torusPipe.getSweepAngle();\n if (torusPipe.getIsReversed()) {\n vectorY.scaleInPlace(-1.0);\n sweep.setRadians(-sweep.radians);\n }\n return `${summary}'\n ' center: ${JSON.stringify(torusPipe.cloneCenter().toJSON())}'\n ' xyVectors: ${JSON.stringify([vectorX.toJSON(), vectorY.toJSON()])}'\n ' majorRadius: ${torusPipe.getMajorRadius()}'\n ' minorRadius: ${torusPipe.getMinorRadius()}'\n ' sweepAngle: ${sweep.degrees}`;\n }\n }\n\n public summarizeCurvePrimitive(curve: CurvePrimitive): string {\n let summary: string = \"\";\n const writer = new IModelJson.Writer();\n switch (curve.curvePrimitiveType) {\n case \"arc\":\n const arc: Arc3d = curve as Arc3d;\n summary = `${summary} center: ${JSON.stringify(arc.center.toJSON())}`;\n if (undefined !== arc.circularRadius)\n summary = `${summary} radius: ${arc.circularRadius()}`;\n summary = `${summary}'\n ' vectorX:${JSON.stringify(arc.vector0.toJSON())}'\n ' vectorY:${JSON.stringify(arc.vector90.toJSON())}'\n ' sweepStartEnd [${arc.sweep.startDegrees}, ${arc.sweep.endDegrees}]`\n + ` curveLength: ${curve.curveLength()}`;\n return summary;\n case \"lineSegment\":\n const lineSegment: LineSegment3d = curve as LineSegment3d;\n summary = `${summary} points: ${JSON.stringify(lineSegment.toJSON())}`;\n summary = `${summary} curveLength: ${curve.curveLength()}`;\n return summary;\n case \"lineString\":\n const lineString: LineString3d = curve as LineString3d;\n summary = `${summary} pointCount: ${lineString.numPoints()}'\n ' curveLength: ${curve.curveLength()}`;\n return summary;\n case \"bsplineCurve\":\n const bsplineCurve: BSplineCurve3d = curve as BSplineCurve3d;\n summary = `${summary}'\n ' curveOrder: ${bsplineCurve.order}'\n ' controlPointsCount: ${bsplineCurve.numPoles}'\n ' curveLength: ${curve.curveLength()}`;\n return summary;\n case \"interpolationCurve\":\n const interpolationCurve: InterpolationCurve3d = curve as InterpolationCurve3d;\n const interpolationProps = interpolationCurve.cloneProps();\n summary = `${summary}'\n ' curveOrder: ${interpolationProps.order}'\n ' controlPointsCount: ${interpolationProps.fitPoints.length}`;\n return summary;\n case \"akimaCurve\":\n const akimaCurve: AkimaCurve3d = curve as AkimaCurve3d;\n const akimaProps = akimaCurve.cloneProps();\n summary = `${summary}'\n ' controlPointsCount: ${akimaProps.fitPoints.length}`;\n return summary;\n case \"bezierCurve\":\n const bezierCurve: BezierCurveBase = curve as BezierCurveBase;\n summary = `${summary}'\n ' curveOrder: ${bezierCurve.order}'\n ' controlPointsCount: ${bezierCurve.numPoles}'\n ' curveLength: ${curve.curveLength()}`;\n return summary;\n case \"transitionSpiral\":\n const transitionSpiral: TransitionSpiral3d = curve as TransitionSpiral3d;\n const json = writer.handleTransitionSpiral(transitionSpiral);\n summary = summary + JSON.stringify(json);\n return summary;\n case \"curveChainWithDistanceIndex\":\n const curveChainWithDistanceIndex: CurveChainWithDistanceIndex = curve as CurveChainWithDistanceIndex;\n const path = curveChainWithDistanceIndex.path;\n summary = `${summary}'\n ' curveLength: ${curve.curveLength()}'\n ' isOpen: ${path.isOpenPath}`;\n return summary;\n }\n }\n\n public summarizeCurveCollection(curves: CurveCollection): string {\n let summary: string = \"\";\n switch (curves.curveCollectionType) {\n case \"loop\":\n const loop: Loop = curves as Loop;\n summary = `${summary} isInner: ${loop.isInner}`;\n break;\n case \"path\":\n const path: Path = curves as Path;\n summary = `${summary} isOpen: ${path.isOpenPath}`;\n break;\n }\n\n return `${summary}'\n ' numCurves: ${curves.collectCurvePrimitives().length}'\n ' boundary: ${curves.dgnBoundaryType()}`;\n }\n}\n\n/** @internal */\nexport function generateGeometrySummaries(request: GeometrySummaryRequestProps, iModel: IModelDb): string {\n const generator = new ResponseGenerator(request, iModel);\n return generator.generateSummaries();\n}\n"]}
1
+ {"version":3,"file":"GeometrySummary.js","sourceRoot":"","sources":["../../src/GeometrySummary.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\nimport { assert, BentleyError, Id64Array, Id64String, IModelStatus } from \"@itwin/core-bentley\";\r\nimport {\r\n AkimaCurve3d, AnyGeometryQuery, Arc3d, BezierCurveBase, Box, BSplineCurve3d, Cone, CurveChainWithDistanceIndex, CurveCollection, CurvePrimitive, IModelJson,\r\n InterpolationCurve3d,\r\n LinearSweep, LineSegment3d, LineString3d, Loop, Path, Range3d, RotationalSweep, RuledSweep, SolidPrimitive, Sphere, TorusPipe, Transform,\r\n TransitionSpiral3d, UVSelect,\r\n} from \"@itwin/core-geometry\";\r\nimport {\r\n BRepEntity, GeometryParams, GeometryStreamIterator, GeometrySummaryRequestProps, GeometrySummaryVerbosity, ImagePrimitive,\r\n IModelError, TextStringPrimitive,\r\n} from \"@itwin/core-common\";\r\nimport { Element, GeometricElement, GeometryPart } from \"./Element\";\r\nimport { IModelDb } from \"./IModelDb\";\r\nimport { _nativeDb } from \"./internal/Symbols\";\r\n\r\ninterface ElementGeom {\r\n iterator: GeometryStreamIterator;\r\n geometricElement?: GeometricElement;\r\n}\r\n\r\n// cspell:ignore earlin\r\n\r\n/** Generates an array of GeometryStreamResponseProps. */\r\nclass ResponseGenerator {\r\n public verbosity = GeometrySummaryVerbosity.Basic;\r\n public includePlacement = false;\r\n public includePartReferences?: \"2d\" | \"3d\";\r\n public verboseSymbology = false;\r\n public elementIds: Id64Array;\r\n public iModel: IModelDb;\r\n\r\n public get wantSquish() { return GeometrySummaryVerbosity.Full !== this.verbosity; }\r\n\r\n public constructor(request: GeometrySummaryRequestProps, iModel: IModelDb) {\r\n this.elementIds = request.elementIds;\r\n this.iModel = iModel;\r\n const opts = request.options;\r\n if (undefined !== opts) {\r\n this.verbosity = undefined !== opts.geometryVerbosity ? opts.geometryVerbosity : GeometrySummaryVerbosity.Basic;\r\n this.includePlacement = true === opts.includePlacement;\r\n this.includePartReferences = opts.includePartReferences;\r\n this.verboseSymbology = true === opts.verboseSymbology;\r\n }\r\n }\r\n\r\n public generateSummaries(): string {\r\n const summaries: string[] = [];\r\n for (const elementId of this.elementIds)\r\n summaries.push(this.generateSummary(elementId));\r\n\r\n return summaries.join(\"\\n\");\r\n }\r\n\r\n public generateSummary(id: Id64String): string {\r\n let lines = [`[Geometry Summary for Element ${id}]`];\r\n try {\r\n const geom = this.getElementGeom(id);\r\n if (undefined === geom)\r\n throw new IModelError(IModelStatus.NoGeometry, \"Element is neither a geometric element nor a geometry part\");\r\n\r\n if (undefined !== geom.geometricElement)\r\n lines.push(this.summarizeElement(geom.geometricElement));\r\n else if (undefined !== this.includePartReferences)\r\n lines.push(this.summarizePartReferences(id, \"2d\" === this.includePartReferences)); // NB: Hideously inefficient if more than one element's summary was requested.\r\n\r\n let curGeomParams: GeometryParams | undefined;\r\n let curLocalRange: Range3d | undefined;\r\n for (const entry of geom.iterator) {\r\n if (this.verboseSymbology && (undefined === curGeomParams || !curGeomParams.isEquivalent(entry.geomParams))) {\r\n lines.push(`Symbology: ${this.stringify(entry.geomParams)}`);\r\n curGeomParams = entry.geomParams.clone();\r\n }\r\n\r\n if (undefined !== entry.localRange && (undefined === curLocalRange || !curLocalRange.isAlmostEqual(entry.localRange))) {\r\n lines.push(this.summarizeRange3d(entry.localRange));\r\n curLocalRange = entry.localRange;\r\n }\r\n\r\n const prim = entry.primitive;\r\n switch (prim.type) {\r\n case \"textString\":\r\n case \"image\":\r\n this.summarizePrimitive(lines, prim);\r\n break;\r\n case \"brep\":\r\n this.summarizeBRep(lines, prim.brep);\r\n break;\r\n case \"geometryQuery\":\r\n this.summarizeGeometryQuery(lines, prim.geometry);\r\n break;\r\n case \"partReference\":\r\n lines.push(this.summarizePartReference(prim.part.id, prim.part.toLocal));\r\n break;\r\n }\r\n }\r\n } catch (err) {\r\n lines = lines.slice(0, 1);\r\n lines.push(`ERROR: ${BentleyError.getErrorMessage(err)}`);\r\n }\r\n\r\n return lines.filter((line) => line !== \"\").join(\"\\n\");\r\n }\r\n\r\n public summarizeElement(elem: GeometricElement): string {\r\n const lines: string[] = [];\r\n lines.push(`(${elem.is2d() ? \"2D\" : \"3D\"}) Category: ${elem.category}`);\r\n lines.push(`Model: ${elem.model}`);\r\n if (this.includePlacement) {\r\n lines.push(`Range: ${this.stringify(elem.calculateRange3d())}`);\r\n lines.push(`Transform: ${this.stringify(elem.getPlacementTransform())}`);\r\n }\r\n\r\n return lines.join(\"\\n\");\r\n }\r\n\r\n public summarizePartReferences(id: Id64String, is2d: boolean): string {\r\n const refIds = this.iModel[_nativeDb].findGeometryPartReferences([id], is2d);\r\n return `Part references (${refIds.length}): ${refIds.join()}`;\r\n }\r\n\r\n public getElementGeom(id: Id64String): ElementGeom | undefined {\r\n const elem = this.iModel.elements.getElement<Element>({ id, wantGeometry: true });\r\n let iterator: GeometryStreamIterator | undefined;\r\n let geometricElement: GeometricElement | undefined;\r\n if (elem instanceof GeometricElement) {\r\n geometricElement = elem;\r\n if (geometricElement.is2d()) {\r\n iterator = GeometryStreamIterator.fromGeometricElement2d(geometricElement);\r\n } else {\r\n assert(geometricElement.is3d());\r\n iterator = GeometryStreamIterator.fromGeometricElement3d(geometricElement);\r\n }\r\n } else if (elem instanceof GeometryPart) {\r\n iterator = GeometryStreamIterator.fromGeometryPart(elem);\r\n }\r\n\r\n return undefined !== iterator ? { iterator, geometricElement } : undefined;\r\n }\r\n\r\n public summarizeRange3d(range: Range3d): string {\r\n return `SubGraphicRange: ${this.stringify(range)}`;\r\n }\r\n\r\n public summarizePrimitive(lines: string[], primitive: TextStringPrimitive | ImagePrimitive): void {\r\n const summary = primitive.type;\r\n if (GeometrySummaryVerbosity.Basic >= this.verbosity) {\r\n lines.push(summary);\r\n return;\r\n }\r\n\r\n const json = this.stringify(primitive.type === \"textString\" ? primitive.textString : primitive.image);\r\n if (GeometrySummaryVerbosity.Detailed >= this.verbosity) {\r\n lines.push(`${summary}: ${json}`);\r\n return;\r\n }\r\n\r\n lines.push(`${summary}:`);\r\n lines.push(json);\r\n }\r\n\r\n public summarizeBRep(lines: string[], brep: BRepEntity.DataProps): void {\r\n const summary = \"brep\";\r\n if (GeometrySummaryVerbosity.Basic >= this.verbosity) {\r\n lines.push(summary);\r\n return;\r\n }\r\n\r\n const json = this.stringify({ type: brep.type, transform: brep.transform, faceSymbology: brep.faceSymbology });\r\n if (GeometrySummaryVerbosity.Detailed >= this.verbosity) {\r\n lines.push(`${summary}: ${json}`);\r\n return;\r\n }\r\n\r\n lines.push(`${summary}:`);\r\n lines.push(json);\r\n }\r\n\r\n public summarizePartReference(partId: string, partToLocal?: Transform): string {\r\n let line = `part id: ${partId}`;\r\n if (undefined !== partToLocal)\r\n line = `${line} transform: ${this.stringify(partToLocal)}`;\r\n\r\n return line;\r\n }\r\n\r\n public summarizeGeometryQuery(lines: string[], query: AnyGeometryQuery): void {\r\n switch (this.verbosity) {\r\n case GeometrySummaryVerbosity.Detailed:\r\n lines.push(this.summarizeGeometryQueryDetailed(query));\r\n break;\r\n case GeometrySummaryVerbosity.Full:\r\n lines.push(this.summarizeGeometryQueryFull(query));\r\n break;\r\n default:\r\n lines.push(this.summarizeGeometryQueryBasic(query));\r\n break;\r\n }\r\n }\r\n\r\n public summarizeGeometryQueryBasic(query: AnyGeometryQuery): string {\r\n switch (query.geometryCategory) {\r\n case \"solid\":\r\n return query.solidPrimitiveType;\r\n case \"curvePrimitive\":\r\n return query.curvePrimitiveType;\r\n case \"curveCollection\":\r\n return query.curveCollectionType;\r\n default:\r\n return query.geometryCategory;\r\n }\r\n }\r\n\r\n public summarizeGeometryQueryFull(query: AnyGeometryQuery): string {\r\n return this.geometryQueryToJson(query);\r\n }\r\n\r\n public geometryQueryToJson(query: AnyGeometryQuery): string {\r\n try {\r\n const json = IModelJson.Writer.toIModelJson(query);\r\n const str = JSON.stringify(json);\r\n return this.wantSquish ? this.squish(str) : str;\r\n } catch (err) {\r\n return BentleyError.getErrorMessage(err);\r\n }\r\n }\r\n\r\n // Earlin likes to put tons of whitespace + newlines into his JSON. Remove it.\r\n public squish(str: string): string {\r\n return str.replace(/\\s+/g, \"\");\r\n }\r\n\r\n public stringify(obj: object): string {\r\n const json = JSON.stringify(obj);\r\n return this.wantSquish ? this.squish(json) : json;\r\n }\r\n\r\n public summarizeGeometryQueryDetailed(query: AnyGeometryQuery): string {\r\n let summary = `${this.summarizeGeometryQueryBasic(query)}: `;\r\n switch (query.geometryCategory) {\r\n case \"solid\":\r\n return summary + this.summarizeSolidPrimitive(query);\r\n case \"curvePrimitive\":\r\n return summary + this.summarizeCurvePrimitive(query);\r\n case \"curveCollection\":\r\n return summary + this.summarizeCurveCollection(query);\r\n case \"pointCollection\":\r\n return `${summary} numPoints: ${query.points.length}`;\r\n case \"bsurf\":\r\n return `${summary}'\r\n ' poleDimension: ${query.poleDimension}'\r\n ' numPolesTotal: ${query.numPolesTotal()}'\r\n ' degree[U,V]: ${JSON.stringify([query.degreeUV(UVSelect.uDirection), query.degreeUV(UVSelect.vDirection)])}'\r\n ' order[U,V]: ${JSON.stringify([query.orderUV(UVSelect.uDirection), query.orderUV(UVSelect.vDirection)])}'\r\n ' numSpan[U,V]: ${JSON.stringify([query.numSpanUV(UVSelect.uDirection), query.numSpanUV(UVSelect.vDirection)])}'\r\n ' numPoles[U,V]: ${JSON.stringify([query.numPolesUV(UVSelect.uDirection), query.numPolesUV(UVSelect.vDirection)])}'\r\n ' poleStep[U,V]: ${JSON.stringify([query.poleStepUV(UVSelect.uDirection), query.poleStepUV(UVSelect.vDirection)])}`;\r\n case \"polyface\": {\r\n const data = query.data;\r\n summary = `${summary} pointCount: ${data.point.length}'\r\n ' pointIndexCount: ${data.pointIndex.length}`;\r\n if (query.twoSided)\r\n summary = `${summary} (two-sided)`;\r\n if (undefined !== data.normal)\r\n summary = `${summary} normalCount: ${data.normal.length}`;\r\n if (undefined !== data.param)\r\n summary = `${summary} paramCount: ${data.param.length}`;\r\n if (undefined !== data.color)\r\n summary = `${summary} colorCount: ${data.color.length}`;\r\n\r\n return summary;\r\n }\r\n case \"point\":\r\n return summary + this.geometryQueryToJson(query);\r\n }\r\n }\r\n\r\n public summarizeSolidPrimitive(solid: SolidPrimitive): string {\r\n const summary: string = solid.capped ? \" capped\" : \" uncapped\";\r\n switch (solid.solidPrimitiveType) {\r\n case \"box\":\r\n const box: Box = (solid as Box);\r\n return `${summary}'\r\n ' origin: ${JSON.stringify(box.getBaseOrigin().toJSON())}'\r\n ' topOrigin: ${JSON.stringify(box.getTopOrigin().toJSON())}'\r\n ' baseX: ${box.getBaseX()}'\r\n ' baseY: ${box.getBaseY()}`;\r\n case \"cone\":\r\n const cone: Cone = solid as Cone;\r\n return `${summary}'\r\n ' baseCenterPoint: ${JSON.stringify(cone.getCenterA())}'\r\n ' topCenterPoint: ${JSON.stringify(cone.getCenterB())}'\r\n ' baseCenterRadius: ${JSON.stringify(cone.getRadiusA())}'\r\n ' topCenterRadius: ${JSON.stringify(cone.getRadiusB())}`;\r\n case \"sphere\":\r\n const sphere: Sphere = solid as Sphere;\r\n return `${summary}'\r\n ' centerPoint: ${JSON.stringify(sphere.cloneCenter().toJSON())}'\r\n ' radius: ${JSON.stringify(sphere.trueSphereRadius())}`;\r\n case \"linearSweep\":\r\n const linearSweep: LinearSweep = solid as LinearSweep;\r\n return `${summary}'\r\n ' vector: ${JSON.stringify(linearSweep.cloneSweepVector().toJSON())}'\r\n ' curves${this.summarizeCurveCollection(linearSweep.getCurvesRef())}`;\r\n case \"rotationalSweep\":\r\n const rotationalSweep: RotationalSweep = solid as RotationalSweep;\r\n const axis = rotationalSweep.cloneAxisRay();\r\n return `${summary}'\r\n ' center: ${JSON.stringify(axis.origin.toJSON())}'\r\n ' axis: ${JSON.stringify(axis.direction.toJSON())}'\r\n ' sweepAngle: ${rotationalSweep.getSweep().degrees}`;\r\n case \"ruledSweep\":\r\n const ruledSweep: RuledSweep = solid as RuledSweep;\r\n const summarizedCollection = ruledSweep.cloneContours().map((curveCollection) => this.summarizeCurveCollection(curveCollection));\r\n return `${summary}'\r\n ' isClosedVolume${ruledSweep.isClosedVolume}'\r\n ' contours: ${JSON.stringify(summarizedCollection)}`;\r\n case \"torusPipe\":\r\n const torusPipe: TorusPipe = solid as TorusPipe;\r\n const vectorX = torusPipe.cloneVectorX();\r\n const vectorY = torusPipe.cloneVectorY();\r\n const sweep = torusPipe.getSweepAngle();\r\n if (torusPipe.getIsReversed()) {\r\n vectorY.scaleInPlace(-1.0);\r\n sweep.setRadians(-sweep.radians);\r\n }\r\n return `${summary}'\r\n ' center: ${JSON.stringify(torusPipe.cloneCenter().toJSON())}'\r\n ' xyVectors: ${JSON.stringify([vectorX.toJSON(), vectorY.toJSON()])}'\r\n ' majorRadius: ${torusPipe.getMajorRadius()}'\r\n ' minorRadius: ${torusPipe.getMinorRadius()}'\r\n ' sweepAngle: ${sweep.degrees}`;\r\n }\r\n }\r\n\r\n public summarizeCurvePrimitive(curve: CurvePrimitive): string {\r\n let summary: string = \"\";\r\n const writer = new IModelJson.Writer();\r\n switch (curve.curvePrimitiveType) {\r\n case \"arc\":\r\n const arc: Arc3d = curve as Arc3d;\r\n summary = `${summary} center: ${JSON.stringify(arc.center.toJSON())}`;\r\n if (undefined !== arc.circularRadius)\r\n summary = `${summary} radius: ${arc.circularRadius()}`;\r\n summary = `${summary}'\r\n ' vectorX:${JSON.stringify(arc.vector0.toJSON())}'\r\n ' vectorY:${JSON.stringify(arc.vector90.toJSON())}'\r\n ' sweepStartEnd [${arc.sweep.startDegrees}, ${arc.sweep.endDegrees}]`\r\n + ` curveLength: ${curve.curveLength()}`;\r\n return summary;\r\n case \"lineSegment\":\r\n const lineSegment: LineSegment3d = curve as LineSegment3d;\r\n summary = `${summary} points: ${JSON.stringify(lineSegment.toJSON())}`;\r\n summary = `${summary} curveLength: ${curve.curveLength()}`;\r\n return summary;\r\n case \"lineString\":\r\n const lineString: LineString3d = curve as LineString3d;\r\n summary = `${summary} pointCount: ${lineString.numPoints()}'\r\n ' curveLength: ${curve.curveLength()}`;\r\n return summary;\r\n case \"bsplineCurve\":\r\n const bsplineCurve: BSplineCurve3d = curve as BSplineCurve3d;\r\n summary = `${summary}'\r\n ' curveOrder: ${bsplineCurve.order}'\r\n ' controlPointsCount: ${bsplineCurve.numPoles}'\r\n ' curveLength: ${curve.curveLength()}`;\r\n return summary;\r\n case \"interpolationCurve\":\r\n const interpolationCurve: InterpolationCurve3d = curve as InterpolationCurve3d;\r\n const interpolationProps = interpolationCurve.cloneProps();\r\n summary = `${summary}'\r\n ' curveOrder: ${interpolationProps.order}'\r\n ' controlPointsCount: ${interpolationProps.fitPoints.length}`;\r\n return summary;\r\n case \"akimaCurve\":\r\n const akimaCurve: AkimaCurve3d = curve as AkimaCurve3d;\r\n const akimaProps = akimaCurve.cloneProps();\r\n summary = `${summary}'\r\n ' controlPointsCount: ${akimaProps.fitPoints.length}`;\r\n return summary;\r\n case \"bezierCurve\":\r\n const bezierCurve: BezierCurveBase = curve as BezierCurveBase;\r\n summary = `${summary}'\r\n ' curveOrder: ${bezierCurve.order}'\r\n ' controlPointsCount: ${bezierCurve.numPoles}'\r\n ' curveLength: ${curve.curveLength()}`;\r\n return summary;\r\n case \"transitionSpiral\":\r\n const transitionSpiral: TransitionSpiral3d = curve as TransitionSpiral3d;\r\n const json = writer.handleTransitionSpiral(transitionSpiral);\r\n summary = summary + JSON.stringify(json);\r\n return summary;\r\n case \"curveChainWithDistanceIndex\":\r\n const curveChainWithDistanceIndex: CurveChainWithDistanceIndex = curve as CurveChainWithDistanceIndex;\r\n const path = curveChainWithDistanceIndex.path;\r\n summary = `${summary}'\r\n ' curveLength: ${curve.curveLength()}'\r\n ' isOpen: ${path.isOpenPath}`;\r\n return summary;\r\n }\r\n }\r\n\r\n public summarizeCurveCollection(curves: CurveCollection): string {\r\n let summary: string = \"\";\r\n switch (curves.curveCollectionType) {\r\n case \"loop\":\r\n const loop: Loop = curves as Loop;\r\n summary = `${summary} isInner: ${loop.isInner}`;\r\n break;\r\n case \"path\":\r\n const path: Path = curves as Path;\r\n summary = `${summary} isOpen: ${path.isOpenPath}`;\r\n break;\r\n }\r\n\r\n return `${summary}'\r\n ' numCurves: ${curves.collectCurvePrimitives().length}'\r\n ' boundary: ${curves.dgnBoundaryType()}`;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport function generateGeometrySummaries(request: GeometrySummaryRequestProps, iModel: IModelDb): string {\r\n const generator = new ResponseGenerator(request, iModel);\r\n return generator.generateSummaries();\r\n}\r\n"]}
@@ -31,12 +31,13 @@ import { Workspace } from "./workspace/Workspace";
31
31
  import { LockControl } from "./LockControl";
32
32
  import type { BlobContainer } from "./BlobContainerService";
33
33
  import { IModelDbFonts } from "./IModelDbFonts";
34
- import { _activeTxn, _cache, _implicitTxn, _instanceKeyCache, _nativeDb, _resetIModelDb } from "./internal/Symbols";
34
+ import { _activeTxn, _cache, _close, _implicitTxn, _instanceKeyCache, _nativeDb, _resetIModelDb } from "./internal/Symbols";
35
35
  import { ECSpecVersion, ECVersion, type GetSchemaViewArgs, SchemaContext, SchemaView } from "@itwin/ecschema-metadata";
36
36
  import { SchemaMap } from "./Schema";
37
37
  import { ElementLRUCache, InstanceKeyLRUCache } from "./internal/ElementLRUCache";
38
38
  import { IntegrityCheckResult } from "./internal/IntegrityCheck";
39
39
  import { ECSqlSyncReader, SynchronousQueryOptions } from "./ECSqlSyncReader";
40
+ import { SynchronousChannel } from "./SynchronousChannel";
40
41
  /** Options for [[IModelDb.Models.updateModel]]
41
42
  * @note To mark *only* the geometry as changed, use [[IModelDb.Models.updateGeometryGuid]] instead.
42
43
  * @public
@@ -57,6 +58,12 @@ export interface InsertElementOptions {
57
58
  * @beta
58
59
  */
59
60
  forceUseId?: boolean;
61
+ /** If true, bypass the shared-element reservation check that otherwise requires an element inserted with an explicitly-set `federationGuid` to have been
62
+ * [reserved]($docs/learning/backend/ConcurrencyControl.md) first when SchemaSync is enabled. Intended only for trusted bulk inserters (e.g. the iModel transformer
63
+ * and connectors) that use other locking strategies to avoid conflicts.
64
+ * @internal
65
+ */
66
+ skipReservationCheck?: boolean;
60
67
  }
61
68
  /** Options for [[EditTxn.changeElementParent]].
62
69
  * Changes the parent of an element within its model. The new parent must be in the same model as the
@@ -84,6 +91,22 @@ export interface ChangeElementModelProps {
84
91
  /** The Id of the target model. The element becomes a root element (no parent) in this model. */
85
92
  modelId: Id64String;
86
93
  }
94
+ /** Options for streaming the aspects owned by a set of elements.
95
+ * @see [[IModelDb.Elements.queryAspects]]
96
+ * @beta
97
+ */
98
+ export interface QueryAspectOptions {
99
+ /** The elements whose aspects to return. Duplicate Ids are ignored. */
100
+ elementIds: Id64Arg;
101
+ /** Return only instances of this aspect class or its subclasses. */
102
+ aspectClassFullName?: string;
103
+ /** Omit instances of these exact aspect classes. Subclasses are not automatically omitted. */
104
+ excludedAspectClassFullNames?: ReadonlySet<string>;
105
+ /** If true, order the results so that aspects owned by the same element are contiguous. */
106
+ groupByOwner?: boolean;
107
+ /** If true, run the query on the primary connection so that uncommitted changes in an edit transaction are visible. */
108
+ usePrimaryConn?: boolean;
109
+ }
87
110
  /** Options supplied to [[IModelDb.clearCaches]].
88
111
  * @beta
89
112
  */
@@ -140,6 +163,8 @@ export interface IntegrityCheckOptions {
140
163
  checkSchemaLoad?: boolean;
141
164
  /** If true, checks if all child rows have a corresponding parent row. */
142
165
  checkMissingChildRows?: boolean;
166
+ /** If true, checks if a class maps every inherited property to the same column as each of its base classes. */
167
+ checkDivergedPropMaps?: boolean;
143
168
  };
144
169
  }
145
170
  /**
@@ -175,6 +200,16 @@ export interface SchemaImportOptions<T = any> {
175
200
  */
176
201
  data?: T;
177
202
  }
203
+ /** Arguments for [[BriefcaseDb.upgradeSchemas]] and [[BriefcaseDb.upgradeSchemaStrings]].
204
+ * @alpha
205
+ */
206
+ export interface UpgradeSchemasArgs extends PushChangesArgs {
207
+ /**
208
+ * An [[ECSchemaXmlContext]] to use instead of building a default one.
209
+ * @internal
210
+ */
211
+ ecSchemaXmlContext?: ECSchemaXmlContext;
212
+ }
178
213
  /** @internal */
179
214
  export declare enum BriefcaseLocalValue {
180
215
  StandaloneEdit = "StandaloneEdit",
@@ -342,6 +377,8 @@ export declare abstract class IModelDb extends IModel {
342
377
  /** @internal */
343
378
  protected _locks?: LockControl;
344
379
  /** @internal */
380
+ protected _reservations?: SynchronousChannel.Reservations;
381
+ /** @internal */
345
382
  protected _codeService?: CodeService;
346
383
  /**
347
384
  * The always-available implicit transaction for this iModel.
@@ -352,18 +389,26 @@ export declare abstract class IModelDb extends IModel {
352
389
  readonly [_implicitTxn]: EditTxn;
353
390
  /** @internal */
354
391
  [_activeTxn]: EditTxn | undefined;
355
- /** Returns the active [[EditTxn]] if one is current, otherwise the implicit transaction.
356
- * Use this inside element and relationship callbacks that may be invoked either during an explicit transaction or
357
- * during indirect change processing.
358
- * @note This method is a temporary workaround until [[OnElementArg]] (and related callback arg types) are updated
359
- * to carry the transaction directly in a future PR.
360
- * @internal
392
+ /** Returns the transaction to use for additional edits from an element, model, or aspect callback.
393
+ * In callbacks whose arguments provide an [[IModelDb]] but no transaction, obtain this transaction through
394
+ * `arg.iModel.getIndirectTxn()` and pass it to APIs that accept an [[EditTxn]].
395
+ *
396
+ * If an explicit transaction is active, this returns that transaction. Otherwise, it returns the implicit transaction
397
+ * used by legacy write paths. Callbacks that receive an `indirectEditTxn` argument should use that transaction directly.
398
+ *
399
+ * @note The operation that invoked the callback owns the transaction. Callback implementations must not invoke transaction
400
+ * lifecycle methods such as [[EditTxn.start]], [[EditTxn.end]], [[EditTxn.saveChanges]], [[EditTxn.abandonChanges]], or [[EditTxn.onClose]].
401
+ * @beta
361
402
  */
362
403
  getIndirectTxn(): EditTxn;
363
404
  /** @alpha */
364
405
  get codeService(): CodeService | undefined;
365
406
  /** The [[LockControl]] that orchestrates [concurrent editing]($docs/learning/backend/ConcurrencyControl.md) of this iModel. */
366
407
  get locks(): LockControl;
408
+ /** @beta The [[SynchronousChannel.Reservations]] that orchestrates [concurrent editing]($docs/learning/backend/ConcurrencyControl.md) of this iModel. */
409
+ get reservations(): SynchronousChannel.Reservations;
410
+ /** @internal */
411
+ initializeSharedElementReservations(): Promise<void>;
367
412
  /** Provides methods for interacting with [font-related information]($docs/learning/backend/Fonts.md) stored in this iModel.
368
413
  * @beta
369
414
  */
@@ -443,8 +488,16 @@ export declare abstract class IModelDb extends IModel {
443
488
  * @param options Options for closing the iModel.
444
489
  */
445
490
  close(options?: CloseIModelArgs): void;
446
- private saveSchemaChanges;
447
- private abandonSchemaChanges;
491
+ /**
492
+ * Save any unsaved schema changes in this iModel.
493
+ * @internal
494
+ */
495
+ protected saveSchemaChanges(args?: string): void;
496
+ /**
497
+ * Abandon any unsaved schema changes in this iModel.
498
+ * @internal
499
+ */
500
+ protected abandonSchemaChanges(): void;
448
501
  /** Optimize this iModel by vacuuming, and analyzing.
449
502
  *
450
503
  * @note This operation requires exclusive access to the database and may take some time on large files.
@@ -736,8 +789,15 @@ export declare abstract class IModelDb extends IModel {
736
789
  private cleanupSnapshot;
737
790
  private preSchemaImportCallback;
738
791
  private postSchemaImportCallback;
739
- /** Shared implementation for importing schemas from file or string. */
740
- private importSchemasInternal;
792
+ /** Refuse a schema import this briefcase is in no state to run. Shared by [[importSchemas]] and
793
+ * [[BriefcaseDb.upgradeSchemas]], which reach the native importer by different routes.
794
+ * @internal
795
+ */
796
+ protected assertCanImportSchemas(): void;
797
+ /** Shared implementation for importing schemas from file or string.
798
+ * @internal
799
+ */
800
+ protected importSchemasInternal<T extends LocalFileName[] | string[]>(schemas: T, options: SchemaImportOptions | undefined, nativeImportOp: (schemas: T, importOptions: IModelJsNative.SchemaImportOptions) => void): Promise<void>;
741
801
  /** Import ECSchema(s). On success, the schema definition is stored in the iModel.
742
802
  * This method is asynchronous (must be awaited) because, in the case where this IModelDb is a briefcase, this method first obtains the schema lock from the iModel server.
743
803
  * You must import a schema into an iModel before you can insert instances of the classes in that schema. See [[Element]]
@@ -1300,13 +1360,13 @@ export declare namespace IModelDb {
1300
1360
  * @param props The data for the new model.
1301
1361
  * @returns The newly inserted model's Id.
1302
1362
  * @throws [[IModelError]] if insertion fails.
1303
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1363
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1304
1364
  */
1305
1365
  insertModel(props: ModelProps): Id64String;
1306
1366
  /** Update an existing model.
1307
1367
  * @param props the properties of the model to change
1308
1368
  * @throws [[IModelError]] if update fails.
1309
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1369
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1310
1370
  */
1311
1371
  updateModel(props: UpdateModelOptions): void;
1312
1372
  /** Mark the geometry of [[GeometricModel]] as having changed, by recording an indirect change to its GeometryGuid property.
@@ -1316,14 +1376,14 @@ export declare namespace IModelDb {
1316
1376
  * Cached [Tile]($frontend)s are only invalidated after the geometry guid of the model changes.
1317
1377
  * @note This will throw IModelError with [IModelStatus.VersionTooOld]($core-bentley) if a version of the BisCore schema older than 1.0.11 is present in the iModel.
1318
1378
  * @throws [[IModelError]] if the update fails.
1319
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateGeometryGuid instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1379
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateGeometryGuid instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1320
1380
  * @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
1321
1381
  */
1322
1382
  updateGeometryGuid(modelId: Id64String): void;
1323
1383
  /** Delete one or more existing models.
1324
1384
  * @param ids The Ids of the models to be deleted
1325
1385
  * @throws [[IModelError]] if deletion fails.
1326
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1386
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1327
1387
  */
1328
1388
  deleteModel(ids: Id64Arg): void;
1329
1389
  /** For each specified [[GeometricModel]], attempts to obtain the union of the volumes of all geometric elements within that model.
@@ -1416,7 +1476,7 @@ export declare namespace IModelDb {
1416
1476
  * However when `elProps.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
1417
1477
  * the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
1418
1478
  * if you intend to continue working with it. That will ensure its values reflect the persistent state.
1419
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1479
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1420
1480
  */
1421
1481
  insertElement(elProps: ElementProps, options?: InsertElementOptions): Id64String;
1422
1482
  /**
@@ -1429,14 +1489,14 @@ export declare namespace IModelDb {
1429
1489
  * @note The values of `classFullName` and `model` *may not be changed* by this method. Further, it will permute the `elProps` object by adding or
1430
1490
  * overwriting their values to the correct values.
1431
1491
  * @throws [[ITwinError]] if update fails.
1432
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1492
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1433
1493
  */
1434
1494
  updateElement<T extends ElementProps>(elProps: Partial<T>): void;
1435
1495
  /** Delete one or more elements from this iModel.
1436
1496
  * @param ids The set of Ids of the element(s) to be deleted
1437
1497
  * @throws [[ITwinError]]
1438
1498
  * @see deleteDefinitionElements
1439
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1499
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1440
1500
  */
1441
1501
  deleteElement(ids: Id64Arg): void;
1442
1502
  /**
@@ -1445,7 +1505,7 @@ export declare namespace IModelDb {
1445
1505
  * @param deleteOptions Options for the delete operation.
1446
1506
  * @returns A result object containing information about the deletion operation success and the element ids that failed to delete (if any).
1447
1507
  * @throws [[ITwinError]] if any of the supplied ids are not well-formed/valid [[Id64String]]s.
1448
- * @deprecated in 5.1.9 - will not be removed until after 2026-08-15. Use EditTxn.deleteElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1508
+ * @deprecated in 5.1.9 - might be removed in next major version. Use EditTxn.deleteElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1449
1509
  * @beta
1450
1510
  */
1451
1511
  deleteElements(ids: Id64Array, deleteOptions?: BulkDeleteElementsArgs): BulkDeleteElementsResult;
@@ -1457,7 +1517,7 @@ export declare namespace IModelDb {
1457
1517
  * DefinitionElements rather than calling this method separately for each one. Ids that are not valid DefinitionElements will be ignored.
1458
1518
  * @returns An IdSet of the DefinitionElements that are used and were therefore not deleted.
1459
1519
  * @see deleteElement
1460
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteDefinitionElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1520
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteDefinitionElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1461
1521
  */
1462
1522
  deleteDefinitionElements(definitionElementIds: Id64Array): Id64Set;
1463
1523
  /** Query for the child elements of the specified element.
@@ -1492,6 +1552,7 @@ export declare namespace IModelDb {
1492
1552
  */
1493
1553
  getAspect(aspectInstanceId: Id64String): ElementAspect;
1494
1554
  private static classMap;
1555
+ private getAspectPropsFromInstanceQuery;
1495
1556
  private runInstanceQuery;
1496
1557
  /** Get the ElementAspect instances that are owned by the specified element.
1497
1558
  * @param elementId Get ElementAspects associated with this Element
@@ -1500,39 +1561,49 @@ export declare namespace IModelDb {
1500
1561
  * @throws [[IModelError]]
1501
1562
  */
1502
1563
  getAspects(elementId: Id64String, aspectClassFullName?: string, excludedClassFullNames?: Set<string>): ElementAspect[];
1564
+ /** Stream the [[ElementAspect]] instances owned by a set of elements.
1565
+ *
1566
+ * Use this method instead of calling [[getAspects]] repeatedly when reading aspects for multiple elements or when the result may be large. The query reads all requested owners together and yields each aspect without buffering the complete result set. For a single element with a small result, [[getAspects]] provides a simpler synchronous API.
1567
+ *
1568
+ * The order is unspecified unless [[QueryAspectOptions.groupByOwner]] is true.
1569
+ * @param options Defines the element Ids, class filters, result ordering, and query connection.
1570
+ * @returns An async iterator over the matching aspects.
1571
+ * @beta
1572
+ */
1573
+ queryAspects(options: QueryAspectOptions): AsyncIterableIterator<ElementAspect>;
1503
1574
  /** Insert a new ElementAspect into the iModel.
1504
1575
  * @param aspectProps The properties of the new ElementAspect.
1505
1576
  * @throws [[IModelError]] if unable to insert the ElementAspect.
1506
1577
  * @returns the id of the newly inserted aspect.
1507
1578
  * @note Aspect Ids may collide with element Ids, so don't put both in a container like Set or Map
1508
1579
  * use [EntityReference]($common) for that instead.
1509
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1580
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1510
1581
  */
1511
1582
  insertAspect(aspectProps: ElementAspectProps): Id64String;
1512
1583
  /** Update an exist ElementAspect within the iModel.
1513
1584
  * @param aspectProps The properties to use to update the ElementAspect.
1514
1585
  * @throws [[IModelError]] if unable to update the ElementAspect.
1515
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1586
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1516
1587
  */
1517
1588
  updateAspect(aspectProps: ElementAspectProps): void;
1518
1589
  /** Delete one or more ElementAspects from this iModel.
1519
1590
  * @param aspectInstanceIds The set of instance Ids of the ElementAspect(s) to be deleted
1520
1591
  * @throws [[IModelError]] if unable to delete the ElementAspect.
1521
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1592
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1522
1593
  */
1523
1594
  deleteAspect(aspectInstanceIds: Id64Arg): void;
1524
1595
  /** Change the parent of an element.
1525
1596
  * @param props The properties specifying the element to reparent and its new parent.
1526
1597
  * @throws [[ITwinError]] if the operation fails.
1527
1598
  * @beta
1528
- * @deprecated in 5.11.0 - will not be removed until after 2026-08-04. Use EditTxn.changeElementParent instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1599
+ * @deprecated in 5.11.0 - might be removed in next major version. Use EditTxn.changeElementParent instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1529
1600
  */
1530
1601
  changeElementParent(props: ChangeElementParentProps): void;
1531
1602
  /** Change the model of an element.
1532
1603
  * @param props The properties specifying the element to move and its new model.
1533
1604
  * @throws [[ITwinError]] if the operation fails.
1534
1605
  * @beta
1535
- * @deprecated in 5.11.0 - will not be removed until after 2026-08-04. Use EditTxn.changeElementModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1606
+ * @deprecated in 5.11.0 - might be removed in next major version. Use EditTxn.changeElementModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1536
1607
  */
1537
1608
  changeElementModel(props: ChangeElementModelProps): void;
1538
1609
  }
@@ -1546,16 +1617,23 @@ export declare namespace IModelDb {
1546
1617
  private static viewStoreProperty;
1547
1618
  private _viewStore?;
1548
1619
  get hasViewStore(): boolean;
1549
- /** @beta */
1620
+ /** The [[ViewStore.CloudAccess]] for this iModel.
1621
+ * @note The iModel owns its ViewStore (whether assigned via this setter or created by [[accessViewStore]]): it is closed when the iModel is closed.
1622
+ * @beta
1623
+ */
1550
1624
  get viewStore(): ViewStore.CloudAccess;
1551
1625
  set viewStore(viewStore: ViewStore.CloudAccess);
1626
+ /** Close the ViewStore for this iModel, if one is open. Called when the iModel is closed.
1627
+ * @internal
1628
+ */
1629
+ [_close](): void;
1552
1630
  /** @beta */
1553
1631
  accessViewStore(args: {
1554
1632
  props?: CloudSqlite.ContainerProps;
1555
1633
  accessLevel?: BlobContainer.RequestAccessLevel;
1556
1634
  }): Promise<ViewStore.CloudAccess>;
1557
1635
  /**
1558
- * @beta @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.saveDefaultViewStore instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1636
+ * @beta @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.saveDefaultViewStore instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
1559
1637
  */
1560
1638
  saveDefaultViewStore(arg: CloudSqlite.ContainerProps): void;
1561
1639
  /** Query for the array of ViewDefinitionProps of the specified class and matching the specified IsPrivate setting.
@@ -1652,9 +1730,6 @@ export declare class BriefcaseDb extends IModelDb {
1652
1730
  /** override superclass method */
1653
1731
  get isBriefcase(): boolean;
1654
1732
  readonly briefcaseId: BriefcaseId;
1655
- private _skipSyncSchemasOnPullAndPush?;
1656
- /** @internal */
1657
- get skipSyncSchemasOnPullAndPush(): boolean;
1658
1733
  /**
1659
1734
  * Event raised just before a BriefcaseDb is opened. Supplies the arguments that will be used to open the BriefcaseDb.
1660
1735
  * Throw an exception to stop the open.
@@ -1798,6 +1873,19 @@ export declare class BriefcaseDb extends IModelDb {
1798
1873
  * @note This method should not be called from {TxnManager.withIndirectTxnModeAsync} or {RebaseHandler.recompute}.
1799
1874
  */
1800
1875
  pushChanges(arg: PushChangesArgs): Promise<void>;
1876
+ /** Import schemas while allowing changes that move or delete data.
1877
+ *
1878
+ * Takes the exclusive schema lock, requires the briefcase to be at the timeline tip, imports, updates the sync db, and pushes the result.
1879
+ * @note The briefcase must have no local changes.
1880
+ * @see [[BriefcaseDb.upgradeSchemas]] (static) for upgrading the software's profile and domain schemas.
1881
+ * @alpha
1882
+ */
1883
+ upgradeSchemas(schemaFileNames: LocalFileName[], arg: UpgradeSchemasArgs): Promise<void>;
1884
+ /** The [[importSchemaStrings]] counterpart of [[upgradeSchemas]].
1885
+ * @alpha
1886
+ */
1887
+ upgradeSchemaStrings(serializedXmlSchemas: string[], arg: UpgradeSchemasArgs): Promise<void>;
1888
+ private upgradeSchemasInternal;
1801
1889
  close(options?: CloseIModelArgs): void;
1802
1890
  /** Convert this briefcase to a JSON representation. */
1803
1891
  toJSON(): BriefcaseConnectionProps;