@itwin/core-backend 5.12.0 → 5.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (475) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.d.ts +4 -4
  9. package/lib/cjs/Category.js.map +1 -1
  10. package/lib/cjs/ChangeSummaryManager.js +2 -2
  11. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  12. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  13. package/lib/cjs/ChangesetECAdaptor.js +248 -248
  14. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  15. package/lib/cjs/ChangesetReader.js +3 -3
  16. package/lib/cjs/ChangesetReader.js.map +1 -1
  17. package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
  18. package/lib/cjs/ChannelControl.js.map +1 -1
  19. package/lib/cjs/CheckpointManager.js.map +1 -1
  20. package/lib/cjs/ClassRegistry.js +5 -5
  21. package/lib/cjs/ClassRegistry.js.map +1 -1
  22. package/lib/cjs/CloudSqlite.js.map +1 -1
  23. package/lib/cjs/CodeService.js.map +1 -1
  24. package/lib/cjs/CodeSpecs.d.ts +3 -3
  25. package/lib/cjs/CodeSpecs.js.map +1 -1
  26. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  27. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  28. package/lib/cjs/DevTools.js.map +1 -1
  29. package/lib/cjs/DisplayStyle.d.ts +2 -2
  30. package/lib/cjs/DisplayStyle.js.map +1 -1
  31. package/lib/cjs/ECDb.js.map +1 -1
  32. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  33. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  34. package/lib/cjs/ECSqlStatement.js.map +1 -1
  35. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  36. package/lib/cjs/EditTxn.js.map +1 -1
  37. package/lib/cjs/Element.d.ts +8 -8
  38. package/lib/cjs/Element.d.ts.map +1 -1
  39. package/lib/cjs/Element.js +2 -2
  40. package/lib/cjs/Element.js.map +1 -1
  41. package/lib/cjs/ElementAspect.js.map +1 -1
  42. package/lib/cjs/ElementGraphics.js.map +1 -1
  43. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  44. package/lib/cjs/Entity.js.map +1 -1
  45. package/lib/cjs/EntityReferences.js.map +1 -1
  46. package/lib/cjs/ExportGraphics.js.map +1 -1
  47. package/lib/cjs/ExternalSource.js.map +1 -1
  48. package/lib/cjs/FontFile.js.map +1 -1
  49. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  50. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  51. package/lib/cjs/GeometrySummary.js +47 -47
  52. package/lib/cjs/GeometrySummary.js.map +1 -1
  53. package/lib/cjs/IModelDb.d.ts +14 -14
  54. package/lib/cjs/IModelDb.js +22 -22
  55. package/lib/cjs/IModelDb.js.map +1 -1
  56. package/lib/cjs/IModelDbFonts.js.map +1 -1
  57. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  58. package/lib/cjs/IModelHost.js.map +1 -1
  59. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  60. package/lib/cjs/IModelJsFs.js.map +1 -1
  61. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  62. package/lib/cjs/IpcHost.js.map +1 -1
  63. package/lib/cjs/LineStyle.js.map +1 -1
  64. package/lib/cjs/LocalHub.js +1 -1
  65. package/lib/cjs/LocalHub.js.map +1 -1
  66. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  67. package/lib/cjs/LockControl.js.map +1 -1
  68. package/lib/cjs/Material.js.map +1 -1
  69. package/lib/cjs/Model.d.ts +5 -5
  70. package/lib/cjs/Model.d.ts.map +1 -1
  71. package/lib/cjs/Model.js.map +1 -1
  72. package/lib/cjs/NativeAppStorage.js.map +1 -1
  73. package/lib/cjs/NativeHost.js.map +1 -1
  74. package/lib/cjs/NavigationRelationship.js.map +1 -1
  75. package/lib/cjs/PartialChangeUnifier.js +7 -7
  76. package/lib/cjs/PartialChangeUnifier.js.map +1 -1
  77. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  78. package/lib/cjs/PropertyStore.js.map +1 -1
  79. package/lib/cjs/Relationship.js.map +1 -1
  80. package/lib/cjs/RpcBackend.js.map +1 -1
  81. package/lib/cjs/SQLiteDb.js.map +1 -1
  82. package/lib/cjs/Schema.js.map +1 -1
  83. package/lib/cjs/SchemaSync.js.map +1 -1
  84. package/lib/cjs/SchemaUtils.js.map +1 -1
  85. package/lib/cjs/SheetIndex.js.map +1 -1
  86. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  87. package/lib/cjs/SqliteStatement.js.map +1 -1
  88. package/lib/cjs/StashManager.js.map +1 -1
  89. package/lib/cjs/Texture.d.ts +1 -1
  90. package/lib/cjs/Texture.js.map +1 -1
  91. package/lib/cjs/TileStorage.js.map +1 -1
  92. package/lib/cjs/TxnManager.js.map +1 -1
  93. package/lib/cjs/ViewDefinition.d.ts +6 -6
  94. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  95. package/lib/cjs/ViewDefinition.js.map +1 -1
  96. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  97. package/lib/cjs/ViewStore.js.map +1 -1
  98. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  99. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  100. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  101. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  102. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  103. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  104. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  105. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  106. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +36 -36
  107. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +28 -28
  108. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  109. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  110. package/lib/cjs/core-backend.js.map +1 -1
  111. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  112. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  113. package/lib/cjs/domains/GenericElements.js.map +1 -1
  114. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  115. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  116. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  117. package/lib/cjs/internal/ECSqlInstanceReshaper.js.map +1 -1
  118. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  119. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  120. package/lib/cjs/internal/HubMock.js.map +1 -1
  121. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  122. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  123. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  124. package/lib/cjs/internal/NoLocks.js.map +1 -1
  125. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  126. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  127. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  128. package/lib/cjs/internal/Symbols.js.map +1 -1
  129. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  130. package/lib/cjs/internal/cross-package.js.map +1 -1
  131. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  132. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  133. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  134. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  135. package/lib/cjs/internal/workspace/WorkspaceImpl.js +7 -2
  136. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  137. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  138. package/lib/cjs/rpc/multipart.js.map +1 -1
  139. package/lib/cjs/rpc/tracing.js.map +1 -1
  140. package/lib/cjs/rpc/web/logging.js.map +1 -1
  141. package/lib/cjs/rpc/web/request.js.map +1 -1
  142. package/lib/cjs/rpc/web/response.js.map +1 -1
  143. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  144. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  145. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  146. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  147. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  148. package/lib/cjs/workspace/Settings.js.map +1 -1
  149. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  150. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  151. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  152. package/lib/cjs/workspace/Workspace.js.map +1 -1
  153. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  154. package/lib/esm/BackendHubAccess.js.map +1 -1
  155. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  156. package/lib/esm/BisCoreSchema.js.map +1 -1
  157. package/lib/esm/BlobContainerService.js.map +1 -1
  158. package/lib/esm/BriefcaseManager.js.map +1 -1
  159. package/lib/esm/CatalogDb.js.map +1 -1
  160. package/lib/esm/Category.d.ts +4 -4
  161. package/lib/esm/Category.js.map +1 -1
  162. package/lib/esm/ChangeSummaryManager.js +2 -2
  163. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  164. package/lib/esm/ChangedElementsDb.js.map +1 -1
  165. package/lib/esm/ChangesetECAdaptor.js +248 -248
  166. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  167. package/lib/esm/ChangesetReader.js +3 -3
  168. package/lib/esm/ChangesetReader.js.map +1 -1
  169. package/lib/esm/ChangesetReaderTypes.js.map +1 -1
  170. package/lib/esm/ChannelControl.js.map +1 -1
  171. package/lib/esm/CheckpointManager.js.map +1 -1
  172. package/lib/esm/ClassRegistry.js +5 -5
  173. package/lib/esm/ClassRegistry.js.map +1 -1
  174. package/lib/esm/CloudSqlite.js.map +1 -1
  175. package/lib/esm/CodeService.js.map +1 -1
  176. package/lib/esm/CodeSpecs.d.ts +3 -3
  177. package/lib/esm/CodeSpecs.js.map +1 -1
  178. package/lib/esm/ConcurrentQuery.js.map +1 -1
  179. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  180. package/lib/esm/DevTools.js.map +1 -1
  181. package/lib/esm/DisplayStyle.d.ts +2 -2
  182. package/lib/esm/DisplayStyle.js.map +1 -1
  183. package/lib/esm/ECDb.js.map +1 -1
  184. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  185. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  186. package/lib/esm/ECSqlStatement.js.map +1 -1
  187. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  188. package/lib/esm/EditTxn.js.map +1 -1
  189. package/lib/esm/Element.d.ts +8 -8
  190. package/lib/esm/Element.d.ts.map +1 -1
  191. package/lib/esm/Element.js +2 -2
  192. package/lib/esm/Element.js.map +1 -1
  193. package/lib/esm/ElementAspect.js.map +1 -1
  194. package/lib/esm/ElementGraphics.js.map +1 -1
  195. package/lib/esm/ElementTreeWalker.js.map +1 -1
  196. package/lib/esm/Entity.js.map +1 -1
  197. package/lib/esm/EntityReferences.js.map +1 -1
  198. package/lib/esm/ExportGraphics.js.map +1 -1
  199. package/lib/esm/ExternalSource.js.map +1 -1
  200. package/lib/esm/FontFile.js.map +1 -1
  201. package/lib/esm/GeoCoordConfig.js.map +1 -1
  202. package/lib/esm/GeographicCRSServices.js.map +1 -1
  203. package/lib/esm/GeometrySummary.js +47 -47
  204. package/lib/esm/GeometrySummary.js.map +1 -1
  205. package/lib/esm/IModelDb.d.ts +14 -14
  206. package/lib/esm/IModelDb.js +22 -22
  207. package/lib/esm/IModelDb.js.map +1 -1
  208. package/lib/esm/IModelDbFonts.js.map +1 -1
  209. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  210. package/lib/esm/IModelHost.js.map +1 -1
  211. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  212. package/lib/esm/IModelJsFs.js.map +1 -1
  213. package/lib/esm/ImageSourceConversion.js.map +1 -1
  214. package/lib/esm/IpcHost.js.map +1 -1
  215. package/lib/esm/LineStyle.js.map +1 -1
  216. package/lib/esm/LocalHub.js +1 -1
  217. package/lib/esm/LocalHub.js.map +1 -1
  218. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  219. package/lib/esm/LockControl.js.map +1 -1
  220. package/lib/esm/Material.js.map +1 -1
  221. package/lib/esm/Model.d.ts +5 -5
  222. package/lib/esm/Model.d.ts.map +1 -1
  223. package/lib/esm/Model.js.map +1 -1
  224. package/lib/esm/NativeAppStorage.js.map +1 -1
  225. package/lib/esm/NativeHost.js.map +1 -1
  226. package/lib/esm/NavigationRelationship.js.map +1 -1
  227. package/lib/esm/PartialChangeUnifier.js +7 -7
  228. package/lib/esm/PartialChangeUnifier.js.map +1 -1
  229. package/lib/esm/PromiseMemoizer.js.map +1 -1
  230. package/lib/esm/PropertyStore.js.map +1 -1
  231. package/lib/esm/Relationship.js.map +1 -1
  232. package/lib/esm/RpcBackend.js.map +1 -1
  233. package/lib/esm/SQLiteDb.js.map +1 -1
  234. package/lib/esm/Schema.js.map +1 -1
  235. package/lib/esm/SchemaSync.js.map +1 -1
  236. package/lib/esm/SchemaUtils.js.map +1 -1
  237. package/lib/esm/SheetIndex.js.map +1 -1
  238. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  239. package/lib/esm/SqliteStatement.js.map +1 -1
  240. package/lib/esm/StashManager.js.map +1 -1
  241. package/lib/esm/Texture.d.ts +1 -1
  242. package/lib/esm/Texture.js.map +1 -1
  243. package/lib/esm/TileStorage.js.map +1 -1
  244. package/lib/esm/TxnManager.js.map +1 -1
  245. package/lib/esm/ViewDefinition.d.ts +6 -6
  246. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  247. package/lib/esm/ViewDefinition.js.map +1 -1
  248. package/lib/esm/ViewStateHydrator.js.map +1 -1
  249. package/lib/esm/ViewStore.js.map +1 -1
  250. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  251. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  252. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  253. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  254. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  255. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  256. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  257. package/lib/esm/core-backend.js.map +1 -1
  258. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  259. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  260. package/lib/esm/domains/GenericElements.js.map +1 -1
  261. package/lib/esm/domains/GenericSchema.js.map +1 -1
  262. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  263. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  264. package/lib/esm/internal/ECSqlInstanceReshaper.js.map +1 -1
  265. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  266. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  267. package/lib/esm/internal/HubMock.js.map +1 -1
  268. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  269. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  270. package/lib/esm/internal/NativePlatform.js.map +1 -1
  271. package/lib/esm/internal/NoLocks.js.map +1 -1
  272. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  273. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  274. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  275. package/lib/esm/internal/Symbols.js.map +1 -1
  276. package/lib/esm/internal/annotations/fields.js.map +1 -1
  277. package/lib/esm/internal/cross-package.js.map +1 -1
  278. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  279. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  280. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  281. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  282. package/lib/esm/internal/workspace/WorkspaceImpl.js +7 -2
  283. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  284. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  285. package/lib/esm/rpc/multipart.js.map +1 -1
  286. package/lib/esm/rpc/tracing.js.map +1 -1
  287. package/lib/esm/rpc/web/logging.js.map +1 -1
  288. package/lib/esm/rpc/web/request.js.map +1 -1
  289. package/lib/esm/rpc/web/response.js.map +1 -1
  290. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  291. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  292. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  293. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  294. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  295. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  296. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  297. package/lib/esm/test/AttachDb.test.js +11 -11
  298. package/lib/esm/test/AttachDb.test.js.map +1 -1
  299. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  300. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  301. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  302. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  303. package/lib/esm/test/IModelHost.test.js.map +1 -1
  304. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  305. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  306. package/lib/esm/test/IpcHost.test.js.map +1 -1
  307. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  308. package/lib/esm/test/PrintElementTree.js.map +1 -1
  309. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  310. package/lib/esm/test/RevisionUtility.js.map +1 -1
  311. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +51 -51
  312. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -1
  313. package/lib/esm/test/SchemaUtils.test.js +25 -25
  314. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  315. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  316. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  317. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  318. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  319. package/lib/esm/test/TestEditTxn.js.map +1 -1
  320. package/lib/esm/test/TestUtils.js.map +1 -1
  321. package/lib/esm/test/annotations/Fields.test.js +53 -53
  322. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  323. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  324. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  325. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  326. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  327. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  328. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  329. package/lib/esm/test/categories/Category.test.js.map +1 -1
  330. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  331. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  332. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  333. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  334. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  335. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  336. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  337. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  338. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  339. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  340. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  341. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  342. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  343. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  344. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  345. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
  346. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  347. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +4 -4
  348. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  349. package/lib/esm/test/ecdb/QueryReaders.test.js +31 -31
  350. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  351. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  352. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  353. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  354. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  355. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  356. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  357. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  358. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  359. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  360. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  361. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  362. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  363. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  364. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  365. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  366. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  367. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  368. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  369. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  370. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  371. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  372. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  373. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  374. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  375. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  376. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -1
  377. package/lib/esm/test/hubaccess/Rebase.test.js +56 -56
  378. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  379. package/lib/esm/test/hubaccess/SemanticRebase.test.js +345 -345
  380. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  381. package/lib/esm/test/imageData.js.map +1 -1
  382. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  383. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  384. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  385. package/lib/esm/test/imodel/IModel.test.js +44 -44
  386. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  387. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  388. package/lib/esm/test/imodel/SchemaXmlImport.test.js +21 -21
  389. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  390. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  391. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  392. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  393. package/lib/esm/test/index.js.map +1 -1
  394. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js +32 -32
  395. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js.map +1 -1
  396. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  397. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  398. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  399. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  400. package/lib/esm/test/rpc/response.test.js.map +1 -1
  401. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  402. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  403. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  404. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  405. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  406. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  407. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  408. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  409. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js +21 -21
  410. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js.map +1 -1
  411. package/lib/esm/test/schema/SchemaViewHidden.test.js +109 -109
  412. package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -1
  413. package/lib/esm/test/schema/SchemaViewKoQ.test.js +13 -13
  414. package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
  415. package/lib/esm/test/schema/SchemaViewLifecycle.test.js +15 -15
  416. package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -1
  417. package/lib/esm/test/schema/SchemaViewValidation.test.js +8 -8
  418. package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -1
  419. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  420. package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -1
  421. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  422. package/lib/esm/test/standalone/ChangesetReader.test.js +313 -313
  423. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  424. package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -1
  425. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  426. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
  427. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  428. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  429. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  430. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  431. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  432. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  433. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  434. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  435. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  436. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  437. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  438. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  439. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  440. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  441. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  442. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  443. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  444. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  445. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  446. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  447. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  448. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +135 -135
  449. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
  450. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  451. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  452. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  453. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  454. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  455. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  456. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  457. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  458. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  459. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  460. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  461. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  462. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  463. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  464. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  465. package/lib/esm/test/standalone/Workspace.test.js +52 -0
  466. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  467. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  468. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  469. package/lib/esm/workspace/Settings.js.map +1 -1
  470. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  471. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  472. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  473. package/lib/esm/workspace/Workspace.js.map +1 -1
  474. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  475. package/package.json +12 -12
@@ -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"]}
@@ -1300,13 +1300,13 @@ export declare namespace IModelDb {
1300
1300
  * @param props The data for the new model.
1301
1301
  * @returns The newly inserted model's Id.
1302
1302
  * @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.
1303
+ * @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
1304
  */
1305
1305
  insertModel(props: ModelProps): Id64String;
1306
1306
  /** Update an existing model.
1307
1307
  * @param props the properties of the model to change
1308
1308
  * @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.
1309
+ * @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
1310
  */
1311
1311
  updateModel(props: UpdateModelOptions): void;
1312
1312
  /** Mark the geometry of [[GeometricModel]] as having changed, by recording an indirect change to its GeometryGuid property.
@@ -1316,14 +1316,14 @@ export declare namespace IModelDb {
1316
1316
  * Cached [Tile]($frontend)s are only invalidated after the geometry guid of the model changes.
1317
1317
  * @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
1318
  * @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.
1319
+ * @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
1320
  * @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
1321
1321
  */
1322
1322
  updateGeometryGuid(modelId: Id64String): void;
1323
1323
  /** Delete one or more existing models.
1324
1324
  * @param ids The Ids of the models to be deleted
1325
1325
  * @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.
1326
+ * @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
1327
  */
1328
1328
  deleteModel(ids: Id64Arg): void;
1329
1329
  /** For each specified [[GeometricModel]], attempts to obtain the union of the volumes of all geometric elements within that model.
@@ -1416,7 +1416,7 @@ export declare namespace IModelDb {
1416
1416
  * However when `elProps.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
1417
1417
  * the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
1418
1418
  * 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.
1419
+ * @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
1420
  */
1421
1421
  insertElement(elProps: ElementProps, options?: InsertElementOptions): Id64String;
1422
1422
  /**
@@ -1429,14 +1429,14 @@ export declare namespace IModelDb {
1429
1429
  * @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
1430
  * overwriting their values to the correct values.
1431
1431
  * @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.
1432
+ * @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
1433
  */
1434
1434
  updateElement<T extends ElementProps>(elProps: Partial<T>): void;
1435
1435
  /** Delete one or more elements from this iModel.
1436
1436
  * @param ids The set of Ids of the element(s) to be deleted
1437
1437
  * @throws [[ITwinError]]
1438
1438
  * @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.
1439
+ * @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
1440
  */
1441
1441
  deleteElement(ids: Id64Arg): void;
1442
1442
  /**
@@ -1457,7 +1457,7 @@ export declare namespace IModelDb {
1457
1457
  * DefinitionElements rather than calling this method separately for each one. Ids that are not valid DefinitionElements will be ignored.
1458
1458
  * @returns An IdSet of the DefinitionElements that are used and were therefore not deleted.
1459
1459
  * @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.
1460
+ * @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
1461
  */
1462
1462
  deleteDefinitionElements(definitionElementIds: Id64Array): Id64Set;
1463
1463
  /** Query for the child elements of the specified element.
@@ -1506,33 +1506,33 @@ export declare namespace IModelDb {
1506
1506
  * @returns the id of the newly inserted aspect.
1507
1507
  * @note Aspect Ids may collide with element Ids, so don't put both in a container like Set or Map
1508
1508
  * 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.
1509
+ * @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
1510
  */
1511
1511
  insertAspect(aspectProps: ElementAspectProps): Id64String;
1512
1512
  /** Update an exist ElementAspect within the iModel.
1513
1513
  * @param aspectProps The properties to use to update the ElementAspect.
1514
1514
  * @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.
1515
+ * @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
1516
  */
1517
1517
  updateAspect(aspectProps: ElementAspectProps): void;
1518
1518
  /** Delete one or more ElementAspects from this iModel.
1519
1519
  * @param aspectInstanceIds The set of instance Ids of the ElementAspect(s) to be deleted
1520
1520
  * @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.
1521
+ * @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
1522
  */
1523
1523
  deleteAspect(aspectInstanceIds: Id64Arg): void;
1524
1524
  /** Change the parent of an element.
1525
1525
  * @param props The properties specifying the element to reparent and its new parent.
1526
1526
  * @throws [[ITwinError]] if the operation fails.
1527
1527
  * @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.
1528
+ * @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
1529
  */
1530
1530
  changeElementParent(props: ChangeElementParentProps): void;
1531
1531
  /** Change the model of an element.
1532
1532
  * @param props The properties specifying the element to move and its new model.
1533
1533
  * @throws [[ITwinError]] if the operation fails.
1534
1534
  * @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.
1535
+ * @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
1536
  */
1537
1537
  changeElementModel(props: ChangeElementModelProps): void;
1538
1538
  }
@@ -1555,7 +1555,7 @@ export declare namespace IModelDb {
1555
1555
  accessLevel?: BlobContainer.RequestAccessLevel;
1556
1556
  }): Promise<ViewStore.CloudAccess>;
1557
1557
  /**
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.
1558
+ * @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
1559
  */
1560
1560
  saveDefaultViewStore(arg: CloudSqlite.ContainerProps): void;
1561
1561
  /** Query for the array of ViewDefinitionProps of the specified class and matching the specified IsPrivate setting.
@@ -2169,7 +2169,7 @@ function processSchemaWriteStatus(status) {
2169
2169
  * @param props The data for the new model.
2170
2170
  * @returns The newly inserted model's Id.
2171
2171
  * @throws [[IModelError]] if insertion fails.
2172
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2172
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2173
2173
  */
2174
2174
  insertModel(props) {
2175
2175
  return this._iModel[_implicitTxn].insertModel(props);
@@ -2177,7 +2177,7 @@ function processSchemaWriteStatus(status) {
2177
2177
  /** Update an existing model.
2178
2178
  * @param props the properties of the model to change
2179
2179
  * @throws [[IModelError]] if update fails.
2180
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2180
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2181
2181
  */
2182
2182
  updateModel(props) {
2183
2183
  this._iModel[_implicitTxn].updateModel(props);
@@ -2189,7 +2189,7 @@ function processSchemaWriteStatus(status) {
2189
2189
  * Cached [Tile]($frontend)s are only invalidated after the geometry guid of the model changes.
2190
2190
  * @note This will throw IModelError with [IModelStatus.VersionTooOld]($core-bentley) if a version of the BisCore schema older than 1.0.11 is present in the iModel.
2191
2191
  * @throws [[IModelError]] if the update fails.
2192
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateGeometryGuid instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2192
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateGeometryGuid instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2193
2193
  * @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
2194
2194
  */
2195
2195
  updateGeometryGuid(modelId) {
@@ -2198,7 +2198,7 @@ function processSchemaWriteStatus(status) {
2198
2198
  /** Delete one or more existing models.
2199
2199
  * @param ids The Ids of the models to be deleted
2200
2200
  * @throws [[IModelError]] if deletion fails.
2201
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2201
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2202
2202
  */
2203
2203
  deleteModel(ids) {
2204
2204
  this._iModel[_implicitTxn].deleteModel(ids);
@@ -2422,7 +2422,7 @@ function processSchemaWriteStatus(status) {
2422
2422
  * However when `elProps.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
2423
2423
  * the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
2424
2424
  * if you intend to continue working with it. That will ensure its values reflect the persistent state.
2425
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2425
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2426
2426
  */
2427
2427
  insertElement(elProps, options) {
2428
2428
  return this._iModel[_implicitTxn].insertElement(elProps, options);
@@ -2437,7 +2437,7 @@ function processSchemaWriteStatus(status) {
2437
2437
  * @note The values of `classFullName` and `model` *may not be changed* by this method. Further, it will permute the `elProps` object by adding or
2438
2438
  * overwriting their values to the correct values.
2439
2439
  * @throws [[ITwinError]] if update fails.
2440
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2440
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2441
2441
  */
2442
2442
  updateElement(elProps) {
2443
2443
  this._iModel[_implicitTxn].updateElement(elProps);
@@ -2446,7 +2446,7 @@ function processSchemaWriteStatus(status) {
2446
2446
  * @param ids The set of Ids of the element(s) to be deleted
2447
2447
  * @throws [[ITwinError]]
2448
2448
  * @see deleteDefinitionElements
2449
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2449
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteElement instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2450
2450
  */
2451
2451
  deleteElement(ids) {
2452
2452
  this._iModel[_implicitTxn].deleteElement(ids);
@@ -2471,7 +2471,7 @@ function processSchemaWriteStatus(status) {
2471
2471
  * DefinitionElements rather than calling this method separately for each one. Ids that are not valid DefinitionElements will be ignored.
2472
2472
  * @returns An IdSet of the DefinitionElements that are used and were therefore not deleted.
2473
2473
  * @see deleteElement
2474
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteDefinitionElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2474
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteDefinitionElements instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2475
2475
  */
2476
2476
  deleteDefinitionElements(definitionElementIds) {
2477
2477
  return this._iModel[_implicitTxn].deleteDefinitionElements(definitionElementIds);
@@ -2603,9 +2603,9 @@ function processSchemaWriteStatus(status) {
2603
2603
  */
2604
2604
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
2605
2605
  if (aspectClassFullName === undefined) {
2606
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2607
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2608
- UNION ALL
2606
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2607
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2608
+ UNION ALL
2609
2609
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2610
2610
  if (allAspects.length === 0)
2611
2611
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2624,7 +2624,7 @@ function processSchemaWriteStatus(status) {
2624
2624
  let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
2625
2625
  if (classIdList === undefined) {
2626
2626
  const classIds = [];
2627
- const sql = `select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name=:className
2627
+ const sql = `select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name=:className
2628
2628
  and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name=:schemaName)) and SourceECInstanceId != TargetECInstanceId`;
2629
2629
  this._iModel.withQueryReader(sql, (reader) => {
2630
2630
  for (const row of reader) {
@@ -2643,10 +2643,10 @@ function processSchemaWriteStatus(status) {
2643
2643
  return [];
2644
2644
  }
2645
2645
  // Execute an instance query to retrieve all aspects from all the derived classes
2646
- const aspects = this.runInstanceQuery(`SELECT $ FROM (
2647
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2648
- UNION ALL
2649
- SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2646
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
2647
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2648
+ UNION ALL
2649
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2650
2650
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2651
2651
  if (aspects.length === 0)
2652
2652
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2658,7 +2658,7 @@ function processSchemaWriteStatus(status) {
2658
2658
  * @returns the id of the newly inserted aspect.
2659
2659
  * @note Aspect Ids may collide with element Ids, so don't put both in a container like Set or Map
2660
2660
  * use [EntityReference]($common) for that instead.
2661
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.insertAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2661
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.insertAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2662
2662
  */
2663
2663
  insertAspect(aspectProps) {
2664
2664
  return this._iModel[_implicitTxn].insertAspect(aspectProps);
@@ -2666,7 +2666,7 @@ function processSchemaWriteStatus(status) {
2666
2666
  /** Update an exist ElementAspect within the iModel.
2667
2667
  * @param aspectProps The properties to use to update the ElementAspect.
2668
2668
  * @throws [[IModelError]] if unable to update the ElementAspect.
2669
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.updateAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2669
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.updateAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2670
2670
  */
2671
2671
  updateAspect(aspectProps) {
2672
2672
  this._iModel[_implicitTxn].updateAspect(aspectProps);
@@ -2674,7 +2674,7 @@ function processSchemaWriteStatus(status) {
2674
2674
  /** Delete one or more ElementAspects from this iModel.
2675
2675
  * @param aspectInstanceIds The set of instance Ids of the ElementAspect(s) to be deleted
2676
2676
  * @throws [[IModelError]] if unable to delete the ElementAspect.
2677
- * @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.deleteAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2677
+ * @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.deleteAspect instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2678
2678
  */
2679
2679
  deleteAspect(aspectInstanceIds) {
2680
2680
  this._iModel[_implicitTxn].deleteAspect(aspectInstanceIds);
@@ -2683,7 +2683,7 @@ function processSchemaWriteStatus(status) {
2683
2683
  * @param props The properties specifying the element to reparent and its new parent.
2684
2684
  * @throws [[ITwinError]] if the operation fails.
2685
2685
  * @beta
2686
- * @deprecated in 5.11.0 - will not be removed until after 2026-08-04. Use EditTxn.changeElementParent instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2686
+ * @deprecated in 5.11.0 - might be removed in next major version. Use EditTxn.changeElementParent instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2687
2687
  */
2688
2688
  changeElementParent(props) {
2689
2689
  this._iModel[_implicitTxn].changeElementParent(props);
@@ -2692,7 +2692,7 @@ function processSchemaWriteStatus(status) {
2692
2692
  * @param props The properties specifying the element to move and its new model.
2693
2693
  * @throws [[ITwinError]] if the operation fails.
2694
2694
  * @beta
2695
- * @deprecated in 5.11.0 - will not be removed until after 2026-08-04. Use EditTxn.changeElementModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2695
+ * @deprecated in 5.11.0 - might be removed in next major version. Use EditTxn.changeElementModel instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2696
2696
  */
2697
2697
  changeElementModel(props) {
2698
2698
  this._iModel[_implicitTxn].changeElementModel(props);
@@ -2739,7 +2739,7 @@ function processSchemaWriteStatus(status) {
2739
2739
  return this._viewStore;
2740
2740
  }
2741
2741
  /**
2742
- * @beta @deprecated in 5.9.0 - will not be removed until after 2026-08-04. Use EditTxn.saveDefaultViewStore instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2742
+ * @beta @deprecated in 5.9.0 - might be removed in next major version. Use EditTxn.saveDefaultViewStore instead, within an explicit EditTxn scope (or via withEditTxn). See EditTxn documentation for migration help.
2743
2743
  */
2744
2744
  saveDefaultViewStore(arg) {
2745
2745
  this._iModel[_implicitTxn].saveDefaultViewStore(arg);