@itwin/core-backend 5.1.0-dev.9 → 5.2.0-dev.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (441) hide show
  1. package/CHANGELOG.md +112 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +1 -1
  3. package/lib/cjs/BackendHubAccess.js +1 -1
  4. package/lib/cjs/BackendHubAccess.js.map +1 -1
  5. package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
  6. package/lib/cjs/BisCoreSchema.js +4 -2
  7. package/lib/cjs/BisCoreSchema.js.map +1 -1
  8. package/lib/cjs/BriefcaseManager.d.ts +10 -2
  9. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  10. package/lib/cjs/BriefcaseManager.js +16 -0
  11. package/lib/cjs/BriefcaseManager.js.map +1 -1
  12. package/lib/cjs/Category.d.ts +4 -4
  13. package/lib/cjs/Category.js +4 -4
  14. package/lib/cjs/Category.js.map +1 -1
  15. package/lib/cjs/ChangesetECAdaptor.d.ts +67 -8
  16. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  17. package/lib/cjs/ChangesetECAdaptor.js +248 -33
  18. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  19. package/lib/cjs/ClassRegistry.d.ts +9 -1
  20. package/lib/cjs/ClassRegistry.d.ts.map +1 -1
  21. package/lib/cjs/ClassRegistry.js +9 -1
  22. package/lib/cjs/ClassRegistry.js.map +1 -1
  23. package/lib/cjs/CloudSqlite.js +1 -1
  24. package/lib/cjs/CloudSqlite.js.map +1 -1
  25. package/lib/cjs/CodeSpecs.d.ts +1 -1
  26. package/lib/cjs/CodeSpecs.js +1 -1
  27. package/lib/cjs/CodeSpecs.js.map +1 -1
  28. package/lib/cjs/DisplayStyle.d.ts +4 -4
  29. package/lib/cjs/DisplayStyle.js +3 -3
  30. package/lib/cjs/DisplayStyle.js.map +1 -1
  31. package/lib/cjs/ECDb.d.ts +4 -4
  32. package/lib/cjs/ECDb.d.ts.map +1 -1
  33. package/lib/cjs/ECDb.js +4 -4
  34. package/lib/cjs/ECDb.js.map +1 -1
  35. package/lib/cjs/ECSqlStatement.d.ts +15 -6
  36. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  37. package/lib/cjs/ECSqlStatement.js +19 -4
  38. package/lib/cjs/ECSqlStatement.js.map +1 -1
  39. package/lib/cjs/Element.d.ts +54 -51
  40. package/lib/cjs/Element.d.ts.map +1 -1
  41. package/lib/cjs/Element.js +67 -52
  42. package/lib/cjs/Element.js.map +1 -1
  43. package/lib/cjs/ElementAspect.d.ts +8 -8
  44. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  45. package/lib/cjs/ElementAspect.js +8 -8
  46. package/lib/cjs/ElementAspect.js.map +1 -1
  47. package/lib/cjs/Entity.d.ts +10 -7
  48. package/lib/cjs/Entity.d.ts.map +1 -1
  49. package/lib/cjs/Entity.js +35 -13
  50. package/lib/cjs/Entity.js.map +1 -1
  51. package/lib/cjs/ExportGraphics.d.ts +54 -8
  52. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  53. package/lib/cjs/ExportGraphics.js +158 -59
  54. package/lib/cjs/ExportGraphics.js.map +1 -1
  55. package/lib/cjs/GeographicCRSServices.d.ts +6 -2
  56. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  57. package/lib/cjs/GeographicCRSServices.js +1 -1
  58. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  59. package/lib/cjs/IModelDb.d.ts +37 -26
  60. package/lib/cjs/IModelDb.d.ts.map +1 -1
  61. package/lib/cjs/IModelDb.js +124 -47
  62. package/lib/cjs/IModelDb.js.map +1 -1
  63. package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
  64. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  65. package/lib/cjs/IModelElementCloneContext.js +1 -1
  66. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  67. package/lib/cjs/IModelHost.d.ts +2 -3
  68. package/lib/cjs/IModelHost.d.ts.map +1 -1
  69. package/lib/cjs/IModelHost.js +2 -3
  70. package/lib/cjs/IModelHost.js.map +1 -1
  71. package/lib/cjs/IModelIncrementalSchemaLocater.d.ts +36 -0
  72. package/lib/cjs/IModelIncrementalSchemaLocater.d.ts.map +1 -0
  73. package/lib/cjs/IModelIncrementalSchemaLocater.js +69 -0
  74. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -0
  75. package/lib/cjs/LocalHub.d.ts.map +1 -1
  76. package/lib/cjs/LocalHub.js +6 -4
  77. package/lib/cjs/LocalHub.js.map +1 -1
  78. package/lib/cjs/Material.d.ts +4 -3
  79. package/lib/cjs/Material.d.ts.map +1 -1
  80. package/lib/cjs/Material.js +5 -5
  81. package/lib/cjs/Material.js.map +1 -1
  82. package/lib/cjs/Model.d.ts +22 -22
  83. package/lib/cjs/Model.js +22 -22
  84. package/lib/cjs/Model.js.map +1 -1
  85. package/lib/cjs/Relationship.d.ts +3 -0
  86. package/lib/cjs/Relationship.d.ts.map +1 -1
  87. package/lib/cjs/Relationship.js +15 -0
  88. package/lib/cjs/Relationship.js.map +1 -1
  89. package/lib/cjs/SQLiteDb.d.ts +1 -1
  90. package/lib/cjs/SQLiteDb.js +1 -1
  91. package/lib/cjs/SQLiteDb.js.map +1 -1
  92. package/lib/cjs/Schema.d.ts +25 -0
  93. package/lib/cjs/Schema.d.ts.map +1 -1
  94. package/lib/cjs/Schema.js +25 -0
  95. package/lib/cjs/Schema.js.map +1 -1
  96. package/lib/cjs/SqliteStatement.d.ts +1 -1
  97. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  98. package/lib/cjs/SqliteStatement.js +1 -1
  99. package/lib/cjs/SqliteStatement.js.map +1 -1
  100. package/lib/cjs/Texture.d.ts +1 -1
  101. package/lib/cjs/Texture.js +1 -1
  102. package/lib/cjs/Texture.js.map +1 -1
  103. package/lib/cjs/TxnManager.d.ts +4 -4
  104. package/lib/cjs/TxnManager.js +1 -1
  105. package/lib/cjs/TxnManager.js.map +1 -1
  106. package/lib/cjs/ViewDefinition.d.ts +40 -14
  107. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  108. package/lib/cjs/ViewDefinition.js +42 -14
  109. package/lib/cjs/ViewDefinition.js.map +1 -1
  110. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
  111. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
  112. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +110 -0
  113. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -0
  114. package/lib/cjs/annotations/FrameGeometry.d.ts +51 -0
  115. package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
  116. package/lib/cjs/annotations/FrameGeometry.js +249 -0
  117. package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
  118. package/lib/cjs/annotations/LeaderGeometry.d.ts +53 -0
  119. package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -0
  120. package/lib/cjs/annotations/LeaderGeometry.js +184 -0
  121. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -0
  122. package/lib/cjs/annotations/TextAnnotationElement.d.ts +204 -0
  123. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
  124. package/lib/cjs/annotations/TextAnnotationElement.js +411 -0
  125. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
  126. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +33 -0
  127. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  128. package/lib/cjs/annotations/TextAnnotationGeometry.js +137 -0
  129. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
  130. package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
  131. package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
  132. package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
  133. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
  134. package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
  135. package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
  136. package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +174 -49
  137. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
  138. package/lib/cjs/core-backend.d.ts +7 -3
  139. package/lib/cjs/core-backend.d.ts.map +1 -1
  140. package/lib/cjs/core-backend.js +27 -6
  141. package/lib/cjs/core-backend.js.map +1 -1
  142. package/lib/cjs/internal/ElementLRUCache.d.ts +23 -0
  143. package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
  144. package/lib/cjs/internal/ElementLRUCache.js +167 -3
  145. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  146. package/lib/cjs/internal/Symbols.d.ts +1 -0
  147. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  148. package/lib/cjs/internal/Symbols.js +2 -1
  149. package/lib/cjs/internal/Symbols.js.map +1 -1
  150. package/lib/cjs/internal/annotations/fields.d.ts +22 -0
  151. package/lib/cjs/internal/annotations/fields.d.ts.map +1 -0
  152. package/lib/cjs/internal/annotations/fields.js +237 -0
  153. package/lib/cjs/internal/annotations/fields.js.map +1 -0
  154. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  155. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +1 -1
  156. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  157. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  158. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  159. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  160. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  161. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  162. package/lib/cjs/workspace/Workspace.d.ts +0 -1
  163. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  164. package/lib/cjs/workspace/Workspace.js.map +1 -1
  165. package/lib/esm/BackendHubAccess.d.ts +1 -1
  166. package/lib/esm/BackendHubAccess.js +1 -1
  167. package/lib/esm/BackendHubAccess.js.map +1 -1
  168. package/lib/esm/BisCoreSchema.d.ts.map +1 -1
  169. package/lib/esm/BisCoreSchema.js +4 -2
  170. package/lib/esm/BisCoreSchema.js.map +1 -1
  171. package/lib/esm/BriefcaseManager.d.ts +10 -2
  172. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  173. package/lib/esm/BriefcaseManager.js +17 -1
  174. package/lib/esm/BriefcaseManager.js.map +1 -1
  175. package/lib/esm/Category.d.ts +4 -4
  176. package/lib/esm/Category.js +4 -4
  177. package/lib/esm/Category.js.map +1 -1
  178. package/lib/esm/ChangesetECAdaptor.d.ts +67 -8
  179. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  180. package/lib/esm/ChangesetECAdaptor.js +248 -33
  181. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  182. package/lib/esm/ClassRegistry.d.ts +9 -1
  183. package/lib/esm/ClassRegistry.d.ts.map +1 -1
  184. package/lib/esm/ClassRegistry.js +9 -1
  185. package/lib/esm/ClassRegistry.js.map +1 -1
  186. package/lib/esm/CloudSqlite.js +1 -1
  187. package/lib/esm/CloudSqlite.js.map +1 -1
  188. package/lib/esm/CodeSpecs.d.ts +1 -1
  189. package/lib/esm/CodeSpecs.js +1 -1
  190. package/lib/esm/CodeSpecs.js.map +1 -1
  191. package/lib/esm/DisplayStyle.d.ts +4 -4
  192. package/lib/esm/DisplayStyle.js +3 -3
  193. package/lib/esm/DisplayStyle.js.map +1 -1
  194. package/lib/esm/ECDb.d.ts +4 -4
  195. package/lib/esm/ECDb.d.ts.map +1 -1
  196. package/lib/esm/ECDb.js +4 -4
  197. package/lib/esm/ECDb.js.map +1 -1
  198. package/lib/esm/ECSqlStatement.d.ts +15 -6
  199. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  200. package/lib/esm/ECSqlStatement.js +19 -4
  201. package/lib/esm/ECSqlStatement.js.map +1 -1
  202. package/lib/esm/Element.d.ts +54 -51
  203. package/lib/esm/Element.d.ts.map +1 -1
  204. package/lib/esm/Element.js +67 -52
  205. package/lib/esm/Element.js.map +1 -1
  206. package/lib/esm/ElementAspect.d.ts +8 -8
  207. package/lib/esm/ElementAspect.d.ts.map +1 -1
  208. package/lib/esm/ElementAspect.js +8 -8
  209. package/lib/esm/ElementAspect.js.map +1 -1
  210. package/lib/esm/Entity.d.ts +10 -7
  211. package/lib/esm/Entity.d.ts.map +1 -1
  212. package/lib/esm/Entity.js +36 -14
  213. package/lib/esm/Entity.js.map +1 -1
  214. package/lib/esm/ExportGraphics.d.ts +54 -8
  215. package/lib/esm/ExportGraphics.d.ts.map +1 -1
  216. package/lib/esm/ExportGraphics.js +156 -58
  217. package/lib/esm/ExportGraphics.js.map +1 -1
  218. package/lib/esm/GeographicCRSServices.d.ts +6 -2
  219. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  220. package/lib/esm/GeographicCRSServices.js +1 -1
  221. package/lib/esm/GeographicCRSServices.js.map +1 -1
  222. package/lib/esm/IModelDb.d.ts +37 -26
  223. package/lib/esm/IModelDb.d.ts.map +1 -1
  224. package/lib/esm/IModelDb.js +128 -51
  225. package/lib/esm/IModelDb.js.map +1 -1
  226. package/lib/esm/IModelElementCloneContext.d.ts +1 -1
  227. package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
  228. package/lib/esm/IModelElementCloneContext.js +1 -1
  229. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  230. package/lib/esm/IModelHost.d.ts +2 -3
  231. package/lib/esm/IModelHost.d.ts.map +1 -1
  232. package/lib/esm/IModelHost.js +2 -3
  233. package/lib/esm/IModelHost.js.map +1 -1
  234. package/lib/esm/IModelIncrementalSchemaLocater.d.ts +36 -0
  235. package/lib/esm/IModelIncrementalSchemaLocater.d.ts.map +1 -0
  236. package/lib/esm/IModelIncrementalSchemaLocater.js +65 -0
  237. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -0
  238. package/lib/esm/LocalHub.d.ts.map +1 -1
  239. package/lib/esm/LocalHub.js +6 -4
  240. package/lib/esm/LocalHub.js.map +1 -1
  241. package/lib/esm/Material.d.ts +4 -3
  242. package/lib/esm/Material.d.ts.map +1 -1
  243. package/lib/esm/Material.js +5 -5
  244. package/lib/esm/Material.js.map +1 -1
  245. package/lib/esm/Model.d.ts +22 -22
  246. package/lib/esm/Model.js +22 -22
  247. package/lib/esm/Model.js.map +1 -1
  248. package/lib/esm/Relationship.d.ts +3 -0
  249. package/lib/esm/Relationship.d.ts.map +1 -1
  250. package/lib/esm/Relationship.js +15 -0
  251. package/lib/esm/Relationship.js.map +1 -1
  252. package/lib/esm/SQLiteDb.d.ts +1 -1
  253. package/lib/esm/SQLiteDb.js +1 -1
  254. package/lib/esm/SQLiteDb.js.map +1 -1
  255. package/lib/esm/Schema.d.ts +25 -0
  256. package/lib/esm/Schema.d.ts.map +1 -1
  257. package/lib/esm/Schema.js +25 -0
  258. package/lib/esm/Schema.js.map +1 -1
  259. package/lib/esm/SqliteStatement.d.ts +1 -1
  260. package/lib/esm/SqliteStatement.d.ts.map +1 -1
  261. package/lib/esm/SqliteStatement.js +1 -1
  262. package/lib/esm/SqliteStatement.js.map +1 -1
  263. package/lib/esm/Texture.d.ts +1 -1
  264. package/lib/esm/Texture.js +1 -1
  265. package/lib/esm/Texture.js.map +1 -1
  266. package/lib/esm/TxnManager.d.ts +4 -4
  267. package/lib/esm/TxnManager.js +1 -1
  268. package/lib/esm/TxnManager.js.map +1 -1
  269. package/lib/esm/ViewDefinition.d.ts +40 -14
  270. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  271. package/lib/esm/ViewDefinition.js +42 -14
  272. package/lib/esm/ViewDefinition.js.map +1 -1
  273. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
  274. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
  275. package/lib/esm/annotations/ElementDrivesTextAnnotation.js +105 -0
  276. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -0
  277. package/lib/esm/annotations/FrameGeometry.d.ts +51 -0
  278. package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
  279. package/lib/esm/annotations/FrameGeometry.js +244 -0
  280. package/lib/esm/annotations/FrameGeometry.js.map +1 -0
  281. package/lib/esm/annotations/LeaderGeometry.d.ts +53 -0
  282. package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -0
  283. package/lib/esm/annotations/LeaderGeometry.js +179 -0
  284. package/lib/esm/annotations/LeaderGeometry.js.map +1 -0
  285. package/lib/esm/annotations/TextAnnotationElement.d.ts +204 -0
  286. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
  287. package/lib/esm/annotations/TextAnnotationElement.js +405 -0
  288. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
  289. package/lib/esm/annotations/TextAnnotationGeometry.d.ts +33 -0
  290. package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  291. package/lib/esm/annotations/TextAnnotationGeometry.js +134 -0
  292. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
  293. package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
  294. package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
  295. package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
  296. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
  297. package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
  298. package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
  299. package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +172 -48
  300. package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
  301. package/lib/esm/core-backend.d.ts +7 -3
  302. package/lib/esm/core-backend.d.ts.map +1 -1
  303. package/lib/esm/core-backend.js +27 -3
  304. package/lib/esm/core-backend.js.map +1 -1
  305. package/lib/esm/internal/ElementLRUCache.d.ts +23 -0
  306. package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
  307. package/lib/esm/internal/ElementLRUCache.js +165 -2
  308. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  309. package/lib/esm/internal/Symbols.d.ts +1 -0
  310. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  311. package/lib/esm/internal/Symbols.js +1 -0
  312. package/lib/esm/internal/Symbols.js.map +1 -1
  313. package/lib/esm/internal/annotations/fields.d.ts +22 -0
  314. package/lib/esm/internal/annotations/fields.d.ts.map +1 -0
  315. package/lib/esm/internal/annotations/fields.js +231 -0
  316. package/lib/esm/internal/annotations/fields.js.map +1 -0
  317. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  318. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +1 -1
  319. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  320. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  321. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  322. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  323. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  324. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  325. package/lib/esm/test/AnnotationTestUtils.d.ts +15 -0
  326. package/lib/esm/test/AnnotationTestUtils.d.ts.map +1 -0
  327. package/lib/esm/test/AnnotationTestUtils.js +41 -0
  328. package/lib/esm/test/AnnotationTestUtils.js.map +1 -0
  329. package/lib/esm/test/ElementLRUCache.test.js +224 -1
  330. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  331. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  332. package/lib/esm/test/IModelTestUtils.js +1 -0
  333. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  334. package/lib/esm/test/TestUtils.d.ts +1 -1
  335. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  336. package/lib/esm/test/TestUtils.js +1 -1
  337. package/lib/esm/test/TestUtils.js.map +1 -1
  338. package/lib/esm/test/annotations/Fields.test.d.ts +2 -0
  339. package/lib/esm/test/annotations/Fields.test.d.ts.map +1 -0
  340. package/lib/esm/test/annotations/Fields.test.js +576 -0
  341. package/lib/esm/test/annotations/Fields.test.js.map +1 -0
  342. package/lib/esm/test/annotations/FrameGeometry.test.d.ts +2 -0
  343. package/lib/esm/test/annotations/FrameGeometry.test.d.ts.map +1 -0
  344. package/lib/esm/test/annotations/FrameGeometry.test.js +86 -0
  345. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -0
  346. package/lib/esm/test/annotations/LeaderGeometry.test.d.ts +2 -0
  347. package/lib/esm/test/annotations/LeaderGeometry.test.d.ts.map +1 -0
  348. package/lib/esm/test/annotations/LeaderGeometry.test.js +256 -0
  349. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -0
  350. package/lib/esm/test/annotations/TextAnnotation.test.js +269 -1047
  351. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  352. package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
  353. package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
  354. package/lib/esm/test/annotations/TextBlock.test.js +1199 -0
  355. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
  356. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts +60 -0
  357. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts.map +1 -0
  358. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js +69 -0
  359. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -0
  360. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts +1442 -0
  361. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts.map +1 -0
  362. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js +817 -0
  363. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -0
  364. package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts +2 -0
  365. package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts.map +1 -0
  366. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +164 -0
  367. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -0
  368. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +22 -32
  369. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  370. package/lib/esm/test/ecdb/ECDb.test.js +29 -8
  371. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  372. package/lib/esm/test/ecdb/ECSqlQuery.test.js +0 -55
  373. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  374. package/lib/esm/test/ecdb/ECSqlStatement.test.js +192 -0
  375. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  376. package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts +2 -0
  377. package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts.map +1 -0
  378. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +86 -0
  379. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -0
  380. package/lib/esm/test/imodel/IModel.test.js +313 -5
  381. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  382. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts +2 -0
  383. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts.map +1 -0
  384. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js +343 -0
  385. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -0
  386. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts +2 -0
  387. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts.map +1 -0
  388. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +207 -0
  389. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -0
  390. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts +11 -0
  391. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts.map +1 -0
  392. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js +36 -0
  393. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -0
  394. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +17 -0
  395. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +1 -0
  396. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +116 -0
  397. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -0
  398. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts +9 -0
  399. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts.map +1 -0
  400. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js +20 -0
  401. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -0
  402. package/lib/esm/test/misc/GeoServices.test.js +36 -10
  403. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  404. package/lib/esm/test/schema/ClassRegistry.test.js +104 -2
  405. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  406. package/lib/esm/test/standalone/ChangesetReader.test.js +547 -136
  407. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  408. package/lib/esm/test/standalone/ExportGraphics.test.js +53 -1
  409. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  410. package/lib/esm/test/standalone/GeometryStream.test.js +49 -1
  411. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  412. package/lib/esm/test/standalone/IModelLimits.test.d.ts +2 -0
  413. package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
  414. package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
  415. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
  416. package/lib/esm/test/standalone/RenderMaterialElement.test.js +24 -1
  417. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  418. package/lib/esm/test/standalone/SnapshotDb.test.js +19 -1
  419. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  420. package/lib/esm/workspace/Workspace.d.ts +0 -1
  421. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  422. package/lib/esm/workspace/Workspace.js.map +1 -1
  423. package/package.json +21 -15
  424. package/lib/cjs/TextAnnotationElement.d.ts +0 -54
  425. package/lib/cjs/TextAnnotationElement.d.ts.map +0 -1
  426. package/lib/cjs/TextAnnotationElement.js +0 -94
  427. package/lib/cjs/TextAnnotationElement.js.map +0 -1
  428. package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
  429. package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
  430. package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
  431. package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
  432. package/lib/cjs/TextAnnotationLayout.js.map +0 -1
  433. package/lib/esm/TextAnnotationElement.d.ts +0 -54
  434. package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
  435. package/lib/esm/TextAnnotationElement.js +0 -89
  436. package/lib/esm/TextAnnotationElement.js.map +0 -1
  437. package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
  438. package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
  439. package/lib/esm/TextAnnotationGeometry.js.map +0 -1
  440. package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
  441. package/lib/esm/TextAnnotationLayout.js.map +0 -1
@@ -110,7 +110,7 @@ class IModelDb extends core_common_1.IModel {
110
110
  _jsClassMap;
111
111
  _schemaMap;
112
112
  _schemaContext;
113
- /** @deprecated in 5.0.0. Use [[fonts]]. */
113
+ /** @deprecated in 5.0.0 - will not be removed until after 2026-06-13. Use [[fonts]]. */
114
114
  _fontMap; // eslint-disable-line @typescript-eslint/no-deprecated
115
115
  _fonts = (0, IModelDbFontsImpl_1.createIModelDbFonts)(this);
116
116
  _workspace;
@@ -166,7 +166,7 @@ class IModelDb extends core_common_1.IModel {
166
166
  restartDefaultTxn() {
167
167
  this[Symbols_1._nativeDb].restartDefaultTxn();
168
168
  }
169
- /** @deprecated in 5.0.0. Use [[fonts]]. */
169
+ /** @deprecated in 5.0.0 - will not be removed until after 2026-06-13. Use [[fonts]]. */
170
170
  get fontMap() {
171
171
  return this._fontMap ?? (this._fontMap = new core_common_1.FontMap(this[Symbols_1._nativeDb].readFontMap())); // eslint-disable-line @typescript-eslint/no-deprecated
172
172
  }
@@ -343,7 +343,7 @@ class IModelDb extends core_common_1.IModel {
343
343
  * @returns the value returned by `callback`.
344
344
  * @see [[withStatement]]
345
345
  * @public
346
- * @deprecated in 4.11. Use [[createQueryReader]] instead.
346
+ * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use [[createQueryReader]] instead.
347
347
  */
348
348
  // eslint-disable-next-line @typescript-eslint/no-deprecated
349
349
  withPreparedStatement(ecsql, callback, logErrors = true) {
@@ -375,7 +375,7 @@ class IModelDb extends core_common_1.IModel {
375
375
  * @returns the value returned by `callback`.
376
376
  * @see [[withPreparedStatement]]
377
377
  * @public
378
- * @deprecated in 4.11. Use [[createQueryReader]] instead.
378
+ * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use [[createQueryReader]] instead.
379
379
  */
380
380
  // eslint-disable-next-line @typescript-eslint/no-deprecated
381
381
  withStatement(ecsql, callback, logErrors = true) {
@@ -582,6 +582,8 @@ class IModelDb extends core_common_1.IModel {
582
582
  this._schemaContext = undefined;
583
583
  this.elements[Symbols_1._cache].clear();
584
584
  this.models[Symbols_1._cache].clear();
585
+ this.elements[Symbols_1._instanceKeyCache].clear();
586
+ this.models[Symbols_1._instanceKeyCache].clear();
585
587
  }
586
588
  /** Update the project extents for this iModel.
587
589
  * <p><em>Example:</em>
@@ -637,6 +639,7 @@ class IModelDb extends core_common_1.IModel {
637
639
  * @note This will not delete Txns that have already been saved, even if they have not yet been pushed.
638
640
  */
639
641
  abandonChanges() {
642
+ this.clearCaches();
640
643
  this[Symbols_1._nativeDb].abandonChanges();
641
644
  }
642
645
  /**
@@ -650,11 +653,14 @@ class IModelDb extends core_common_1.IModel {
650
653
  performCheckpoint() {
651
654
  if (!this.isReadonly) {
652
655
  this.saveChanges();
656
+ this.clearCaches();
657
+ this[Symbols_1._nativeDb].concurrentQueryShutdown();
658
+ this[Symbols_1._nativeDb].clearECDbCache();
653
659
  this[Symbols_1._nativeDb].performCheckpoint();
654
660
  }
655
661
  }
656
662
  /** @internal
657
- * @deprecated in 4.8. Use `txns.reverseTxns`.
663
+ * @deprecated in 4.8 - will not be removed until after 2026-06-13. Use `txns.reverseTxns`.
658
664
  */
659
665
  reverseTxns(numOperations) {
660
666
  return this[Symbols_1._nativeDb].reverseTxns(numOperations);
@@ -880,7 +886,7 @@ class IModelDb extends core_common_1.IModel {
880
886
  }
881
887
  /** The registry of entity metadata for this iModel.
882
888
  * @internal
883
- * @deprecated in 5.0. Please use `schemaContext` from the `iModel` instead.
889
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `schemaContext` from the `iModel` instead.
884
890
  *
885
891
  * @example
886
892
  * ```typescript
@@ -940,7 +946,7 @@ class IModelDb extends core_common_1.IModel {
940
946
  * @param sql The ECSQL statement to prepare
941
947
  * @param logErrors Determines if error will be logged if statement fail to prepare
942
948
  * @throws [[IModelError]] if there is a problem preparing the statement.
943
- * @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
949
+ * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
944
950
  */
945
951
  // eslint-disable-next-line @typescript-eslint/no-deprecated
946
952
  prepareStatement(sql, logErrors = true) {
@@ -952,7 +958,7 @@ class IModelDb extends core_common_1.IModel {
952
958
  /** Prepare an ECSQL statement.
953
959
  * @param sql The ECSQL statement to prepare
954
960
  * @returns `undefined` if there is a problem preparing the statement.
955
- * @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
961
+ * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
956
962
  */
957
963
  // eslint-disable-next-line @typescript-eslint/no-deprecated
958
964
  tryPrepareStatement(sql) {
@@ -1002,7 +1008,7 @@ class IModelDb extends core_common_1.IModel {
1002
1008
  }
1003
1009
  /** Get metadata for a class. This method will load the metadata from the iModel into the cache as a side-effect, if necessary.
1004
1010
  * @throws [[IModelError]] if the metadata cannot be found nor loaded.
1005
- * @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
1011
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `getSchemaItem` from `SchemaContext` class instead.
1006
1012
  *
1007
1013
  * @example
1008
1014
  * * ```typescript
@@ -1028,7 +1034,7 @@ class IModelDb extends core_common_1.IModel {
1028
1034
  return metadata;
1029
1035
  }
1030
1036
  /** Identical to [[getMetaData]], except it returns `undefined` instead of throwing an error if the metadata cannot be found nor loaded.
1031
- * @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
1037
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `getSchemaItem` from `SchemaContext` class instead.
1032
1038
  *
1033
1039
  * @example
1034
1040
  * * ```typescript
@@ -1056,7 +1062,7 @@ class IModelDb extends core_common_1.IModel {
1056
1062
  * @param func The callback to be invoked on each property
1057
1063
  * @param includeCustom If true (default), include custom-handled properties in the iteration. Otherwise, skip custom-handled properties.
1058
1064
  * @note Custom-handled properties are core properties that have behavior enforced by C++ handlers.
1059
- * @deprecated in 5.0. Please use `forEachProperty` instead.
1065
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `forEachProperty` instead.
1060
1066
  *
1061
1067
  * @example
1062
1068
  * ```typescript
@@ -1082,7 +1088,7 @@ class IModelDb extends core_common_1.IModel {
1082
1088
  * @param func The callback to be invoked on each property
1083
1089
  * @param includeCustom If true (default), include custom-handled properties in the iteration. Otherwise, skip custom-handled properties.
1084
1090
  * @note Custom-handled properties are core properties that have behavior enforced by C++ handlers.
1085
- * @deprecated in 5.0. Use `forEachProperty` from `SchemaContext` class instead.
1091
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `forEachProperty` from `SchemaContext` class instead.
1086
1092
  *
1087
1093
  * @example
1088
1094
  * ```typescript
@@ -1112,7 +1118,7 @@ class IModelDb extends core_common_1.IModel {
1112
1118
  }
1113
1119
  /**
1114
1120
  * @internal
1115
- * @deprecated in 5.0. Please use `schemaContext` from `iModel` instead to get metadata.
1121
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `schemaContext` from `iModel` instead to get metadata.
1116
1122
  */
1117
1123
  loadMetaData(classFullName) {
1118
1124
  // eslint-disable-next-line @typescript-eslint/no-deprecated
@@ -1152,19 +1158,26 @@ class IModelDb extends core_common_1.IModel {
1152
1158
  const classNameParts = classFullName.replace(".", ":").split(":");
1153
1159
  return classNameParts.length === 2 && this[Symbols_1._nativeDb].getECClassMetaData(classNameParts[0], classNameParts[1]).error === undefined;
1154
1160
  }
1155
- /** Query for a schema of the specified name in this iModel.
1161
+ /** Query the version of a schema of the specified name in this iModel.
1156
1162
  * @returns The schema version as a semver-compatible string or `undefined` if the schema has not been imported.
1157
1163
  */
1158
1164
  querySchemaVersion(schemaName) {
1165
+ const version = this.querySchemaVersionNumbers(schemaName);
1166
+ return version?.toString(false);
1167
+ }
1168
+ /** Query the version of a schema of the specified name in this iModel.
1169
+ * @returns the version numbers, or `undefined` if the schema has not been imported.
1170
+ */
1171
+ querySchemaVersionNumbers(schemaName) {
1159
1172
  const sql = `SELECT VersionMajor,VersionWrite,VersionMinor FROM ECDbMeta.ECSchemaDef WHERE Name=:schemaName LIMIT 1`;
1160
1173
  // eslint-disable-next-line @typescript-eslint/no-deprecated
1161
1174
  return this.withPreparedStatement(sql, (statement) => {
1162
1175
  statement.bindString("schemaName", schemaName);
1163
1176
  if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
1164
- const versionMajor = statement.getValue(0).getInteger(); // ECSchemaDef.VersionMajor --> semver.major
1165
- const versionWrite = statement.getValue(1).getInteger(); // ECSchemaDef.VersionWrite --> semver.minor
1166
- const versionMinor = statement.getValue(2).getInteger(); // ECSchemaDef.VersionMinor --> semver.patch
1167
- return `${versionMajor}.${versionWrite}.${versionMinor}`;
1177
+ const read = statement.getValue(0).getInteger(); // ECSchemaDef.VersionMajor --> semver.major
1178
+ const write = statement.getValue(1).getInteger(); // ECSchemaDef.VersionWrite --> semver.minor
1179
+ const minor = statement.getValue(2).getInteger(); // ECSchemaDef.VersionMinor --> semver.patch
1180
+ return new ecschema_metadata_1.ECVersion(read, write, minor);
1168
1181
  }
1169
1182
  return undefined;
1170
1183
  });
@@ -1243,11 +1256,21 @@ class IModelDb extends core_common_1.IModel {
1243
1256
  }
1244
1257
  /** Get the IModel coordinate corresponding to each GeoCoordinate point in the input */
1245
1258
  async getIModelCoordinatesFromGeoCoordinates(props) {
1246
- return this[Symbols_1._nativeDb].getIModelCoordinatesFromGeoCoordinates(props);
1259
+ const response = this[Symbols_1._nativeDb].getIModelCoordinatesFromGeoCoordinates(props);
1260
+ // fromCache is only meaningful on the front-end; provide it for compatibility with return type.
1261
+ response.fromCache = 0;
1262
+ // Native omits the array if the input was empty.
1263
+ response.iModelCoords = response.iModelCoords ?? [];
1264
+ return response;
1247
1265
  }
1248
1266
  /** Get the GeoCoordinate (longitude, latitude, elevation) corresponding to each IModel Coordinate point in the input */
1249
1267
  async getGeoCoordinatesFromIModelCoordinates(props) {
1250
- return this[Symbols_1._nativeDb].getGeoCoordinatesFromIModelCoordinates(props);
1268
+ const response = this[Symbols_1._nativeDb].getGeoCoordinatesFromIModelCoordinates(props);
1269
+ // fromCache is only meaningful on the front-end; provide it for compatibility with return type.
1270
+ response.fromCache = 0;
1271
+ // Native omits the array if the input was empty.
1272
+ response.geoCoords = response.geoCoords ?? [];
1273
+ return response;
1251
1274
  }
1252
1275
  /** Export meshes suitable for graphics APIs from arbitrary geometry in elements in this IModelDb.
1253
1276
  * * Requests can be slow when processing many elements so it is expected that this function be used on a dedicated backend,
@@ -1478,7 +1501,7 @@ function processSchemaWriteStatus(status) {
1478
1501
  /** @public */
1479
1502
  (function (IModelDb) {
1480
1503
  /** The collection of models in an [[IModelDb]].
1481
- * @public
1504
+ * @public @preview
1482
1505
  */
1483
1506
  class Models {
1484
1507
  _iModel;
@@ -1486,6 +1509,8 @@ function processSchemaWriteStatus(status) {
1486
1509
  /** @internal */
1487
1510
  [Symbols_1._cache] = new core_bentley_1.LRUMap(this._modelCacheSize);
1488
1511
  /** @internal */
1512
+ [Symbols_1._instanceKeyCache] = new ElementLRUCache_1.InstanceKeyLRUCache(this._modelCacheSize);
1513
+ /** @internal */
1489
1514
  constructor(_iModel) {
1490
1515
  this._iModel = _iModel;
1491
1516
  }
@@ -1588,7 +1613,16 @@ function processSchemaWriteStatus(status) {
1588
1613
  else {
1589
1614
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
1590
1615
  }
1591
- return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
1616
+ // Check the cache to avoid unnecessary native calls
1617
+ const cachedResult = this[Symbols_1._instanceKeyCache].get(args);
1618
+ if (cachedResult) {
1619
+ return cachedResult;
1620
+ }
1621
+ else {
1622
+ const instanceKey = this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
1623
+ this[Symbols_1._instanceKeyCache].set(args, instanceKey);
1624
+ return instanceKey;
1625
+ }
1592
1626
  }
1593
1627
  /** Get the sub-model of the specified Element.
1594
1628
  * See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
@@ -1632,7 +1666,9 @@ function processSchemaWriteStatus(status) {
1632
1666
  return props.id = this._iModel[Symbols_1._nativeDb].insertModel(props);
1633
1667
  }
1634
1668
  catch (err) {
1635
- throw new core_common_1.IModelError(err.errorNumber, `Error inserting model [${err.message}], class=${props.classFullName}`);
1669
+ const error = new core_common_1.IModelError(err.errorNumber, `Error inserting model [${err.message}], class=${props.classFullName}`);
1670
+ error.cause = err;
1671
+ throw error;
1636
1672
  }
1637
1673
  }
1638
1674
  /** Update an existing model.
@@ -1646,7 +1682,9 @@ function processSchemaWriteStatus(status) {
1646
1682
  this._iModel[Symbols_1._nativeDb].updateModel(props);
1647
1683
  }
1648
1684
  catch (err) {
1649
- throw new core_common_1.IModelError(err.errorNumber, `error updating model [${err.message}] id=${props.id}`);
1685
+ const error = new core_common_1.IModelError(err.errorNumber, `Error updating model [${err.message}], id: ${props.id}`);
1686
+ error.cause = err;
1687
+ throw error;
1650
1688
  }
1651
1689
  }
1652
1690
  /** Mark the geometry of [[GeometricModel]] as having changed, by recording an indirect change to its GeometryGuid property.
@@ -1662,7 +1700,7 @@ function processSchemaWriteStatus(status) {
1662
1700
  this._iModel.models[Symbols_1._cache].delete(modelId);
1663
1701
  const error = this._iModel[Symbols_1._nativeDb].updateModelGeometryGuid(modelId);
1664
1702
  if (error !== core_bentley_1.IModelStatus.Success)
1665
- throw new core_common_1.IModelError(error, `updating geometry guid for model ${modelId}`);
1703
+ throw new core_common_1.IModelError(error, `Error updating geometry guid for model ${modelId}`);
1666
1704
  }
1667
1705
  /** Delete one or more existing models.
1668
1706
  * @param ids The Ids of the models to be deleted
@@ -1672,10 +1710,13 @@ function processSchemaWriteStatus(status) {
1672
1710
  core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
1673
1711
  try {
1674
1712
  this[Symbols_1._cache].delete(id);
1713
+ this[Symbols_1._instanceKeyCache].deleteById(id);
1675
1714
  this._iModel[Symbols_1._nativeDb].deleteModel(id);
1676
1715
  }
1677
1716
  catch (err) {
1678
- throw new core_common_1.IModelError(err.errorNumber, `error deleting model [${err.message}] id ${id}`);
1717
+ const error = new core_common_1.IModelError(err.errorNumber, `Error deleting model [${err.message}], id: ${id}`);
1718
+ error.cause = err;
1719
+ throw error;
1679
1720
  }
1680
1721
  });
1681
1722
  }
@@ -1705,7 +1746,7 @@ function processSchemaWriteStatus(status) {
1705
1746
  }
1706
1747
  IModelDb.Models = Models;
1707
1748
  /** The collection of elements in an [[IModelDb]].
1708
- * @public
1749
+ * @public @preview
1709
1750
  */
1710
1751
  class Elements {
1711
1752
  _iModel;
@@ -1713,6 +1754,8 @@ function processSchemaWriteStatus(status) {
1713
1754
  /** @internal */
1714
1755
  [Symbols_1._cache] = new ElementLRUCache_1.ElementLRUCache(this._elementCacheSize);
1715
1756
  /** @internal */
1757
+ [Symbols_1._instanceKeyCache] = new ElementLRUCache_1.InstanceKeyLRUCache(this._elementCacheSize);
1758
+ /** @internal */
1716
1759
  constructor(_iModel) {
1717
1760
  this._iModel = _iModel;
1718
1761
  }
@@ -1761,7 +1804,16 @@ function processSchemaWriteStatus(status) {
1761
1804
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
1762
1805
  }
1763
1806
  }
1764
- return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
1807
+ // Check the cache to avoid unnecessary native calls
1808
+ const cachedResult = this[Symbols_1._instanceKeyCache].get(args);
1809
+ if (cachedResult) {
1810
+ return cachedResult;
1811
+ }
1812
+ else {
1813
+ const instanceKey = this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
1814
+ this[Symbols_1._instanceKeyCache].set(args, instanceKey);
1815
+ return instanceKey;
1816
+ }
1765
1817
  }
1766
1818
  /** Get properties of an Element by Id, FederationGuid, or Code
1767
1819
  * @returns The properties of the element or `undefined` if the element is not found.
@@ -1808,7 +1860,7 @@ function processSchemaWriteStatus(status) {
1808
1860
  if (typeof elementId === "string" || elementId instanceof core_common_1.Code)
1809
1861
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Element=${elementId}`);
1810
1862
  else
1811
- throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Element={id: ${elementId.id} federationGuid: ${elementId.federationGuid}, code: ${elementId.code}}`);
1863
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Element={id: ${elementId.id} federationGuid: ${elementId.federationGuid}, code={spec: ${elementId.code?.spec}, scope: ${elementId.code?.scope}, value: ${elementId.code?.value}}}`);
1812
1864
  }
1813
1865
  return element;
1814
1866
  }
@@ -1851,15 +1903,16 @@ function processSchemaWriteStatus(status) {
1851
1903
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidCodeSpec, "Invalid CodeSpec");
1852
1904
  if (code.value === undefined)
1853
1905
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidCode, "Invalid Code");
1854
- // eslint-disable-next-line @typescript-eslint/no-deprecated
1855
- return this._iModel.withPreparedStatement("SELECT ECInstanceId FROM BisCore:Element WHERE CodeSpec.Id=? AND CodeScope.Id=? AND CodeValue=?", (stmt) => {
1856
- stmt.bindId(1, code.spec);
1857
- stmt.bindId(2, core_bentley_1.Id64.fromString(code.scope));
1858
- stmt.bindString(3, code.value);
1859
- if (core_bentley_1.DbResult.BE_SQLITE_ROW !== stmt.step())
1906
+ const codeToQuery = new core_common_1.Code(code);
1907
+ try {
1908
+ const elementKey = this.resolveElementKey(codeToQuery);
1909
+ return core_bentley_1.Id64.fromString(elementKey.id);
1910
+ }
1911
+ catch (err) {
1912
+ if (err.errorNumber === core_bentley_1.IModelStatus.NotFound)
1860
1913
  return undefined;
1861
- return stmt.getValue(0).getId();
1862
- });
1914
+ throw err;
1915
+ }
1863
1916
  }
1864
1917
  /** Query for an [[Element]]'s last modified time.
1865
1918
  * @param elementId The Id of the element.
@@ -1883,7 +1936,7 @@ function processSchemaWriteStatus(status) {
1883
1936
  /** Insert a new element into the iModel.
1884
1937
  * @param elProps The properties of the new element.
1885
1938
  * @returns The newly inserted element's Id.
1886
- * @throws [[IModelError]] if unable to insert the element.
1939
+ * @throws [[ITwinError]] if unable to insert the element.
1887
1940
  * @note For convenience, the value of `elProps.id` is updated to reflect the resultant element's id.
1888
1941
  * However when `elProps.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
1889
1942
  * the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
@@ -1913,7 +1966,7 @@ function processSchemaWriteStatus(status) {
1913
1966
  * @param elProps the properties of the element to update.
1914
1967
  * @note The values of `classFullName` and `model` *may not be changed* by this method. Further, it will permute the `elProps` object by adding or
1915
1968
  * overwriting their values to the correct values.
1916
- * @throws [[IModelError]] if unable to update the element.
1969
+ * @throws [[ITwinError]] if unable to update the element.
1917
1970
  */
1918
1971
  updateElement(elProps) {
1919
1972
  try {
@@ -1932,7 +1985,7 @@ function processSchemaWriteStatus(status) {
1932
1985
  }
1933
1986
  /** Delete one or more elements from this iModel.
1934
1987
  * @param ids The set of Ids of the element(s) to be deleted
1935
- * @throws [[IModelError]]
1988
+ * @throws [[ITwinError]]
1936
1989
  * @see deleteDefinitionElements
1937
1990
  */
1938
1991
  deleteElement(ids) {
@@ -1940,6 +1993,7 @@ function processSchemaWriteStatus(status) {
1940
1993
  core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
1941
1994
  try {
1942
1995
  this[Symbols_1._cache].delete({ id });
1996
+ this[Symbols_1._instanceKeyCache].deleteById(id);
1943
1997
  iModel[Symbols_1._nativeDb].deleteElement(id);
1944
1998
  }
1945
1999
  catch (err) {
@@ -2219,7 +2273,9 @@ function processSchemaWriteStatus(status) {
2219
2273
  return this._iModel[Symbols_1._nativeDb].insertElementAspect(aspectProps);
2220
2274
  }
2221
2275
  catch (err) {
2222
- throw new core_common_1.IModelError(err.errorNumber, `Error inserting ElementAspect [${err.message}], class: ${aspectProps.classFullName}`);
2276
+ const error = new core_common_1.IModelError(err.errorNumber, `Error inserting ElementAspect [${err.message}], class: ${aspectProps.classFullName}`, aspectProps);
2277
+ error.cause = err;
2278
+ throw error;
2223
2279
  }
2224
2280
  }
2225
2281
  /** Update an exist ElementAspect within the iModel.
@@ -2231,7 +2287,9 @@ function processSchemaWriteStatus(status) {
2231
2287
  this._iModel[Symbols_1._nativeDb].updateElementAspect(aspectProps);
2232
2288
  }
2233
2289
  catch (err) {
2234
- throw new core_common_1.IModelError(err.errorNumber, `Error updating ElementAspect [${err.message}], id: ${aspectProps.id}`);
2290
+ const error = new core_common_1.IModelError(err.errorNumber, `Error updating ElementAspect [${err.message}], id: ${aspectProps.id}`, aspectProps);
2291
+ error.cause = err;
2292
+ throw error;
2235
2293
  }
2236
2294
  }
2237
2295
  /** Delete one or more ElementAspects from this iModel.
@@ -2245,14 +2303,16 @@ function processSchemaWriteStatus(status) {
2245
2303
  iModel[Symbols_1._nativeDb].deleteElementAspect(aspectInstanceId);
2246
2304
  }
2247
2305
  catch (err) {
2248
- throw new core_common_1.IModelError(err.errorNumber, `Error deleting ElementAspect [${err.message}], id: ${aspectInstanceId}`);
2306
+ const error = new core_common_1.IModelError(err.errorNumber, `Error deleting ElementAspect [${err.message}], id: ${aspectInstanceId}`);
2307
+ error.cause = err;
2308
+ throw error;
2249
2309
  }
2250
2310
  });
2251
2311
  }
2252
2312
  }
2253
2313
  IModelDb.Elements = Elements;
2254
2314
  /** The collection of views in an [[IModelDb]].
2255
- * @public
2315
+ * @public @preview
2256
2316
  */
2257
2317
  class Views {
2258
2318
  _iModel;
@@ -2278,7 +2338,7 @@ function processSchemaWriteStatus(status) {
2278
2338
  if (undefined === props) {
2279
2339
  const propsString = this._iModel.queryFilePropertyString(Views.viewStoreProperty);
2280
2340
  if (!propsString)
2281
- throw new Error("iModel does not have a default ViewStore");
2341
+ core_common_1.ViewStoreError.throwError("no-viewstore", { message: "iModel does not have a default ViewStore" });
2282
2342
  props = JSON.parse(propsString);
2283
2343
  }
2284
2344
  const accessToken = await CloudSqlite_1.CloudSqlite.requestToken({
@@ -2399,7 +2459,7 @@ function processSchemaWriteStatus(status) {
2399
2459
  }
2400
2460
  getViewThumbnailArg(viewDefinitionId) {
2401
2461
  if (!core_bentley_1.Id64.isValid(viewDefinitionId))
2402
- throw new Error("illegal thumbnail id");
2462
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.BadArg, "illegal thumbnail id");
2403
2463
  return { namespace: "dgn_View", name: "Thumbnail", id: viewDefinitionId };
2404
2464
  }
2405
2465
  /** Get the thumbnail for a view.
@@ -2428,7 +2488,7 @@ function processSchemaWriteStatus(status) {
2428
2488
  }
2429
2489
  /** Set the default view property the iModel.
2430
2490
  * @param viewId The Id of the ViewDefinition to use as the default
2431
- * @deprecated in 4.2.x. Avoid setting this property - it is not practical for one single view to serve the needs of the many applications
2491
+ * @deprecated in 4.2.0 - will not be removed until after 2026-06-13. Avoid setting this property - it is not practical for one single view to serve the needs of the many applications
2432
2492
  * that might wish to view the contents of the iModel.
2433
2493
  */
2434
2494
  setDefaultViewId(viewId) {
@@ -2922,6 +2982,15 @@ class BriefcaseDb extends IModelDb {
2922
2982
  IpcHost_1.IpcHost.notifyTxns(this, "notifyPulledChanges", this.changeset);
2923
2983
  this.txns.touchWatchFile();
2924
2984
  }
2985
+ async enableChangesetStatTracking() {
2986
+ this[Symbols_1._nativeDb].enableChangesetStatsTracking();
2987
+ }
2988
+ async disableChangesetStatTracking() {
2989
+ this[Symbols_1._nativeDb].disableChangesetStatsTracking();
2990
+ }
2991
+ async getAllChangesetHealthData() {
2992
+ return this[Symbols_1._nativeDb].getAllChangesetHealthData();
2993
+ }
2925
2994
  /** Revert timeline changes and then push resulting changeset */
2926
2995
  async revertAndPushChanges(arg) {
2927
2996
  const nativeDb = this[Symbols_1._nativeDb];
@@ -3107,6 +3176,10 @@ class SnapshotDb extends IModelDb {
3107
3176
  snapshotDb.channels.addAllowedChannel(ChannelControl_1.ChannelControl.sharedChannelName);
3108
3177
  if (options.createClassViews)
3109
3178
  snapshotDb._createClassViewsOnClose = true; // save flag that will be checked when close() is called
3179
+ if (options.geographicCoordinateSystem)
3180
+ snapshotDb.setGeographicCoordinateSystem(options.geographicCoordinateSystem);
3181
+ if (options.ecefLocation)
3182
+ snapshotDb.setEcefLocation(options.ecefLocation);
3110
3183
  return snapshotDb;
3111
3184
  }
3112
3185
  /** Create a local [Snapshot]($docs/learning/backend/AccessingIModels.md#snapshot-imodels) iModel file, using this iModel as a *seed* or starting point.
@@ -3262,6 +3335,10 @@ class StandaloneDb extends BriefcaseDb {
3262
3335
  nativeDb.resetBriefcaseId(core_common_1.BriefcaseIdValue.Unassigned);
3263
3336
  nativeDb.saveChanges();
3264
3337
  const db = new this({ nativeDb, key: core_bentley_1.Guid.createValue(), briefcaseId: core_common_1.BriefcaseIdValue.Unassigned, openMode: core_bentley_1.OpenMode.ReadWrite });
3338
+ if (args.geographicCoordinateSystem)
3339
+ db.setGeographicCoordinateSystem(args.geographicCoordinateSystem);
3340
+ if (args.ecefLocation)
3341
+ db.setEcefLocation(args.ecefLocation);
3265
3342
  db.channels.addAllowedChannel(ChannelControl_1.ChannelControl.sharedChannelName);
3266
3343
  return db;
3267
3344
  }