@itwin/core-backend 5.1.0-dev.5 → 5.1.0-dev.51

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 (556) hide show
  1. package/CHANGELOG.md +122 -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/BackendLoggerCategory.js.map +1 -1
  6. package/lib/cjs/BisCoreSchema.js +1 -1
  7. package/lib/cjs/BisCoreSchema.js.map +1 -1
  8. package/lib/cjs/BlobContainerService.js.map +1 -1
  9. package/lib/cjs/BriefcaseManager.d.ts +10 -2
  10. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  11. package/lib/cjs/BriefcaseManager.js +16 -0
  12. package/lib/cjs/BriefcaseManager.js.map +1 -1
  13. package/lib/cjs/CatalogDb.js.map +1 -1
  14. package/lib/cjs/Category.d.ts +4 -4
  15. package/lib/cjs/Category.js +4 -4
  16. package/lib/cjs/Category.js.map +1 -1
  17. package/lib/cjs/ChangeSummaryManager.js +2 -2
  18. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  19. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  20. package/lib/cjs/ChangesetECAdaptor.d.ts +67 -8
  21. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  22. package/lib/cjs/ChangesetECAdaptor.js +490 -275
  23. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  24. package/lib/cjs/ChannelControl.js.map +1 -1
  25. package/lib/cjs/CheckpointManager.js.map +1 -1
  26. package/lib/cjs/ClassRegistry.d.ts +1 -1
  27. package/lib/cjs/ClassRegistry.js +6 -6
  28. package/lib/cjs/ClassRegistry.js.map +1 -1
  29. package/lib/cjs/CloudSqlite.js +1 -1
  30. package/lib/cjs/CloudSqlite.js.map +1 -1
  31. package/lib/cjs/CodeService.js.map +1 -1
  32. package/lib/cjs/CodeSpecs.d.ts +1 -1
  33. package/lib/cjs/CodeSpecs.js +1 -1
  34. package/lib/cjs/CodeSpecs.js.map +1 -1
  35. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  36. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  37. package/lib/cjs/DevTools.js.map +1 -1
  38. package/lib/cjs/DisplayStyle.d.ts +4 -4
  39. package/lib/cjs/DisplayStyle.js +3 -3
  40. package/lib/cjs/DisplayStyle.js.map +1 -1
  41. package/lib/cjs/ECDb.d.ts +4 -4
  42. package/lib/cjs/ECDb.d.ts.map +1 -1
  43. package/lib/cjs/ECDb.js +4 -4
  44. package/lib/cjs/ECDb.js.map +1 -1
  45. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  46. package/lib/cjs/ECSqlStatement.d.ts +15 -6
  47. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  48. package/lib/cjs/ECSqlStatement.js +18 -4
  49. package/lib/cjs/ECSqlStatement.js.map +1 -1
  50. package/lib/cjs/Element.d.ts +51 -51
  51. package/lib/cjs/Element.js +52 -52
  52. package/lib/cjs/Element.js.map +1 -1
  53. package/lib/cjs/ElementAspect.d.ts +8 -8
  54. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  55. package/lib/cjs/ElementAspect.js +8 -8
  56. package/lib/cjs/ElementAspect.js.map +1 -1
  57. package/lib/cjs/ElementGraphics.js.map +1 -1
  58. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  59. package/lib/cjs/Entity.d.ts +3 -3
  60. package/lib/cjs/Entity.js +2 -2
  61. package/lib/cjs/Entity.js.map +1 -1
  62. package/lib/cjs/EntityReferences.js.map +1 -1
  63. package/lib/cjs/ExportGraphics.d.ts +54 -8
  64. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  65. package/lib/cjs/ExportGraphics.js +158 -59
  66. package/lib/cjs/ExportGraphics.js.map +1 -1
  67. package/lib/cjs/ExternalSource.js.map +1 -1
  68. package/lib/cjs/FontFile.js.map +1 -1
  69. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  70. package/lib/cjs/GeographicCRSServices.d.ts +6 -2
  71. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  72. package/lib/cjs/GeographicCRSServices.js +1 -1
  73. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  74. package/lib/cjs/GeometrySummary.js +47 -47
  75. package/lib/cjs/GeometrySummary.js.map +1 -1
  76. package/lib/cjs/IModelDb.d.ts +29 -23
  77. package/lib/cjs/IModelDb.d.ts.map +1 -1
  78. package/lib/cjs/IModelDb.js +102 -49
  79. package/lib/cjs/IModelDb.js.map +1 -1
  80. package/lib/cjs/IModelDbFonts.js.map +1 -1
  81. package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
  82. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  83. package/lib/cjs/IModelElementCloneContext.js +1 -1
  84. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  85. package/lib/cjs/IModelHost.d.ts +2 -3
  86. package/lib/cjs/IModelHost.d.ts.map +1 -1
  87. package/lib/cjs/IModelHost.js +2 -3
  88. package/lib/cjs/IModelHost.js.map +1 -1
  89. package/lib/cjs/IModelJsFs.js.map +1 -1
  90. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  91. package/lib/cjs/IpcHost.js.map +1 -1
  92. package/lib/cjs/LineStyle.js.map +1 -1
  93. package/lib/cjs/LocalHub.js +1 -1
  94. package/lib/cjs/LocalHub.js.map +1 -1
  95. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  96. package/lib/cjs/LockControl.js.map +1 -1
  97. package/lib/cjs/Material.d.ts +1 -1
  98. package/lib/cjs/Material.js +1 -1
  99. package/lib/cjs/Material.js.map +1 -1
  100. package/lib/cjs/Model.d.ts +22 -22
  101. package/lib/cjs/Model.js +22 -22
  102. package/lib/cjs/Model.js.map +1 -1
  103. package/lib/cjs/NativeAppStorage.js.map +1 -1
  104. package/lib/cjs/NativeHost.js.map +1 -1
  105. package/lib/cjs/NavigationRelationship.js.map +1 -1
  106. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  107. package/lib/cjs/PropertyStore.js.map +1 -1
  108. package/lib/cjs/Relationship.js.map +1 -1
  109. package/lib/cjs/RpcBackend.js.map +1 -1
  110. package/lib/cjs/SQLiteDb.d.ts +1 -1
  111. package/lib/cjs/SQLiteDb.js +1 -1
  112. package/lib/cjs/SQLiteDb.js.map +1 -1
  113. package/lib/cjs/Schema.js.map +1 -1
  114. package/lib/cjs/SchemaSync.js.map +1 -1
  115. package/lib/cjs/SchemaUtils.js.map +1 -1
  116. package/lib/cjs/SheetIndex.js.map +1 -1
  117. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  118. package/lib/cjs/SqliteStatement.d.ts +1 -1
  119. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  120. package/lib/cjs/SqliteStatement.js +1 -1
  121. package/lib/cjs/SqliteStatement.js.map +1 -1
  122. package/lib/cjs/Texture.d.ts +1 -1
  123. package/lib/cjs/Texture.js +1 -1
  124. package/lib/cjs/Texture.js.map +1 -1
  125. package/lib/cjs/TileStorage.js.map +1 -1
  126. package/lib/cjs/TxnManager.d.ts +4 -4
  127. package/lib/cjs/TxnManager.js +1 -1
  128. package/lib/cjs/TxnManager.js.map +1 -1
  129. package/lib/cjs/ViewDefinition.d.ts +40 -14
  130. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  131. package/lib/cjs/ViewDefinition.js +42 -14
  132. package/lib/cjs/ViewDefinition.js.map +1 -1
  133. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  134. package/lib/cjs/ViewStore.js.map +1 -1
  135. package/lib/cjs/annotations/FrameGeometry.d.ts +52 -0
  136. package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
  137. package/lib/cjs/annotations/FrameGeometry.js +250 -0
  138. package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
  139. package/lib/cjs/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
  140. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
  141. package/lib/cjs/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +20 -26
  142. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
  143. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +31 -0
  144. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  145. package/lib/cjs/annotations/TextAnnotationGeometry.js +132 -0
  146. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
  147. package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
  148. package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
  149. package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +13 -69
  150. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
  151. package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +22 -8
  152. package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
  153. package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +51 -9
  154. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
  155. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  156. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  157. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  158. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  159. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  160. package/lib/cjs/core-backend.d.ts +5 -3
  161. package/lib/cjs/core-backend.d.ts.map +1 -1
  162. package/lib/cjs/core-backend.js +25 -6
  163. package/lib/cjs/core-backend.js.map +1 -1
  164. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  165. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  166. package/lib/cjs/domains/GenericElements.js.map +1 -1
  167. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  168. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  169. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  170. package/lib/cjs/internal/ElementLRUCache.d.ts +23 -0
  171. package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
  172. package/lib/cjs/internal/ElementLRUCache.js +167 -3
  173. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  174. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  175. package/lib/cjs/internal/HubMock.js.map +1 -1
  176. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  177. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  178. package/lib/cjs/internal/NoLocks.js.map +1 -1
  179. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  180. package/lib/cjs/internal/Symbols.d.ts +1 -0
  181. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  182. package/lib/cjs/internal/Symbols.js +2 -1
  183. package/lib/cjs/internal/Symbols.js.map +1 -1
  184. package/lib/cjs/internal/cross-package.js.map +1 -1
  185. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  186. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  187. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  188. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  189. package/lib/cjs/rpc/multipart.js.map +1 -1
  190. package/lib/cjs/rpc/tracing.js.map +1 -1
  191. package/lib/cjs/rpc/web/logging.js.map +1 -1
  192. package/lib/cjs/rpc/web/request.js.map +1 -1
  193. package/lib/cjs/rpc/web/response.js.map +1 -1
  194. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  195. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  196. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +1 -1
  197. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  198. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  199. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  200. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  201. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  202. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  203. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  204. package/lib/cjs/workspace/Settings.js.map +1 -1
  205. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  206. package/lib/cjs/workspace/Workspace.js.map +1 -1
  207. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  208. package/lib/esm/BackendHubAccess.d.ts +1 -1
  209. package/lib/esm/BackendHubAccess.js +1 -1
  210. package/lib/esm/BackendHubAccess.js.map +1 -1
  211. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  212. package/lib/esm/BisCoreSchema.js +1 -1
  213. package/lib/esm/BisCoreSchema.js.map +1 -1
  214. package/lib/esm/BlobContainerService.js.map +1 -1
  215. package/lib/esm/BriefcaseManager.d.ts +10 -2
  216. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  217. package/lib/esm/BriefcaseManager.js +17 -1
  218. package/lib/esm/BriefcaseManager.js.map +1 -1
  219. package/lib/esm/CatalogDb.js.map +1 -1
  220. package/lib/esm/Category.d.ts +4 -4
  221. package/lib/esm/Category.js +4 -4
  222. package/lib/esm/Category.js.map +1 -1
  223. package/lib/esm/ChangeSummaryManager.js +2 -2
  224. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  225. package/lib/esm/ChangedElementsDb.js.map +1 -1
  226. package/lib/esm/ChangesetECAdaptor.d.ts +67 -8
  227. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  228. package/lib/esm/ChangesetECAdaptor.js +490 -275
  229. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  230. package/lib/esm/ChannelControl.js.map +1 -1
  231. package/lib/esm/CheckpointManager.js.map +1 -1
  232. package/lib/esm/ClassRegistry.d.ts +1 -1
  233. package/lib/esm/ClassRegistry.js +6 -6
  234. package/lib/esm/ClassRegistry.js.map +1 -1
  235. package/lib/esm/CloudSqlite.js +1 -1
  236. package/lib/esm/CloudSqlite.js.map +1 -1
  237. package/lib/esm/CodeService.js.map +1 -1
  238. package/lib/esm/CodeSpecs.d.ts +1 -1
  239. package/lib/esm/CodeSpecs.js +1 -1
  240. package/lib/esm/CodeSpecs.js.map +1 -1
  241. package/lib/esm/ConcurrentQuery.js.map +1 -1
  242. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  243. package/lib/esm/DevTools.js.map +1 -1
  244. package/lib/esm/DisplayStyle.d.ts +4 -4
  245. package/lib/esm/DisplayStyle.js +3 -3
  246. package/lib/esm/DisplayStyle.js.map +1 -1
  247. package/lib/esm/ECDb.d.ts +4 -4
  248. package/lib/esm/ECDb.d.ts.map +1 -1
  249. package/lib/esm/ECDb.js +4 -4
  250. package/lib/esm/ECDb.js.map +1 -1
  251. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  252. package/lib/esm/ECSqlStatement.d.ts +15 -6
  253. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  254. package/lib/esm/ECSqlStatement.js +18 -4
  255. package/lib/esm/ECSqlStatement.js.map +1 -1
  256. package/lib/esm/Element.d.ts +51 -51
  257. package/lib/esm/Element.js +52 -52
  258. package/lib/esm/Element.js.map +1 -1
  259. package/lib/esm/ElementAspect.d.ts +8 -8
  260. package/lib/esm/ElementAspect.d.ts.map +1 -1
  261. package/lib/esm/ElementAspect.js +8 -8
  262. package/lib/esm/ElementAspect.js.map +1 -1
  263. package/lib/esm/ElementGraphics.js.map +1 -1
  264. package/lib/esm/ElementTreeWalker.js.map +1 -1
  265. package/lib/esm/Entity.d.ts +3 -3
  266. package/lib/esm/Entity.js +2 -2
  267. package/lib/esm/Entity.js.map +1 -1
  268. package/lib/esm/EntityReferences.js.map +1 -1
  269. package/lib/esm/ExportGraphics.d.ts +54 -8
  270. package/lib/esm/ExportGraphics.d.ts.map +1 -1
  271. package/lib/esm/ExportGraphics.js +156 -58
  272. package/lib/esm/ExportGraphics.js.map +1 -1
  273. package/lib/esm/ExternalSource.js.map +1 -1
  274. package/lib/esm/FontFile.js.map +1 -1
  275. package/lib/esm/GeoCoordConfig.js.map +1 -1
  276. package/lib/esm/GeographicCRSServices.d.ts +6 -2
  277. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  278. package/lib/esm/GeographicCRSServices.js +1 -1
  279. package/lib/esm/GeographicCRSServices.js.map +1 -1
  280. package/lib/esm/GeometrySummary.js +47 -47
  281. package/lib/esm/GeometrySummary.js.map +1 -1
  282. package/lib/esm/IModelDb.d.ts +29 -23
  283. package/lib/esm/IModelDb.d.ts.map +1 -1
  284. package/lib/esm/IModelDb.js +105 -52
  285. package/lib/esm/IModelDb.js.map +1 -1
  286. package/lib/esm/IModelDbFonts.js.map +1 -1
  287. package/lib/esm/IModelElementCloneContext.d.ts +1 -1
  288. package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
  289. package/lib/esm/IModelElementCloneContext.js +1 -1
  290. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  291. package/lib/esm/IModelHost.d.ts +2 -3
  292. package/lib/esm/IModelHost.d.ts.map +1 -1
  293. package/lib/esm/IModelHost.js +2 -3
  294. package/lib/esm/IModelHost.js.map +1 -1
  295. package/lib/esm/IModelJsFs.js.map +1 -1
  296. package/lib/esm/ImageSourceConversion.js.map +1 -1
  297. package/lib/esm/IpcHost.js.map +1 -1
  298. package/lib/esm/LineStyle.js.map +1 -1
  299. package/lib/esm/LocalHub.js +1 -1
  300. package/lib/esm/LocalHub.js.map +1 -1
  301. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  302. package/lib/esm/LockControl.js.map +1 -1
  303. package/lib/esm/Material.d.ts +1 -1
  304. package/lib/esm/Material.js +1 -1
  305. package/lib/esm/Material.js.map +1 -1
  306. package/lib/esm/Model.d.ts +22 -22
  307. package/lib/esm/Model.js +22 -22
  308. package/lib/esm/Model.js.map +1 -1
  309. package/lib/esm/NativeAppStorage.js.map +1 -1
  310. package/lib/esm/NativeHost.js.map +1 -1
  311. package/lib/esm/NavigationRelationship.js.map +1 -1
  312. package/lib/esm/PromiseMemoizer.js.map +1 -1
  313. package/lib/esm/PropertyStore.js.map +1 -1
  314. package/lib/esm/Relationship.js.map +1 -1
  315. package/lib/esm/RpcBackend.js.map +1 -1
  316. package/lib/esm/SQLiteDb.d.ts +1 -1
  317. package/lib/esm/SQLiteDb.js +1 -1
  318. package/lib/esm/SQLiteDb.js.map +1 -1
  319. package/lib/esm/Schema.js.map +1 -1
  320. package/lib/esm/SchemaSync.js.map +1 -1
  321. package/lib/esm/SchemaUtils.js.map +1 -1
  322. package/lib/esm/SheetIndex.js.map +1 -1
  323. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  324. package/lib/esm/SqliteStatement.d.ts +1 -1
  325. package/lib/esm/SqliteStatement.d.ts.map +1 -1
  326. package/lib/esm/SqliteStatement.js +1 -1
  327. package/lib/esm/SqliteStatement.js.map +1 -1
  328. package/lib/esm/Texture.d.ts +1 -1
  329. package/lib/esm/Texture.js +1 -1
  330. package/lib/esm/Texture.js.map +1 -1
  331. package/lib/esm/TileStorage.js.map +1 -1
  332. package/lib/esm/TxnManager.d.ts +4 -4
  333. package/lib/esm/TxnManager.js +1 -1
  334. package/lib/esm/TxnManager.js.map +1 -1
  335. package/lib/esm/ViewDefinition.d.ts +40 -14
  336. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  337. package/lib/esm/ViewDefinition.js +42 -14
  338. package/lib/esm/ViewDefinition.js.map +1 -1
  339. package/lib/esm/ViewStateHydrator.js.map +1 -1
  340. package/lib/esm/ViewStore.js.map +1 -1
  341. package/lib/esm/annotations/FrameGeometry.d.ts +52 -0
  342. package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
  343. package/lib/esm/annotations/FrameGeometry.js +245 -0
  344. package/lib/esm/annotations/FrameGeometry.js.map +1 -0
  345. package/lib/esm/{TextAnnotationElement.d.ts → annotations/TextAnnotationElement.d.ts} +6 -11
  346. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
  347. package/lib/esm/{TextAnnotationElement.js → annotations/TextAnnotationElement.js} +22 -28
  348. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
  349. package/lib/esm/annotations/TextAnnotationGeometry.d.ts +31 -0
  350. package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  351. package/lib/esm/annotations/TextAnnotationGeometry.js +129 -0
  352. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
  353. package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
  354. package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
  355. package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +13 -69
  356. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
  357. package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +22 -8
  358. package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
  359. package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +51 -9
  360. package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
  361. package/lib/esm/core-backend.d.ts +5 -3
  362. package/lib/esm/core-backend.d.ts.map +1 -1
  363. package/lib/esm/core-backend.js +25 -3
  364. package/lib/esm/core-backend.js.map +1 -1
  365. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  366. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  367. package/lib/esm/domains/GenericElements.js.map +1 -1
  368. package/lib/esm/domains/GenericSchema.js.map +1 -1
  369. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  370. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  371. package/lib/esm/internal/ElementLRUCache.d.ts +23 -0
  372. package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
  373. package/lib/esm/internal/ElementLRUCache.js +165 -2
  374. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  375. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  376. package/lib/esm/internal/HubMock.js.map +1 -1
  377. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  378. package/lib/esm/internal/NativePlatform.js.map +1 -1
  379. package/lib/esm/internal/NoLocks.js.map +1 -1
  380. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  381. package/lib/esm/internal/Symbols.d.ts +1 -0
  382. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  383. package/lib/esm/internal/Symbols.js +1 -0
  384. package/lib/esm/internal/Symbols.js.map +1 -1
  385. package/lib/esm/internal/cross-package.js.map +1 -1
  386. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  387. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  388. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  389. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  390. package/lib/esm/rpc/multipart.js.map +1 -1
  391. package/lib/esm/rpc/tracing.js.map +1 -1
  392. package/lib/esm/rpc/web/logging.js.map +1 -1
  393. package/lib/esm/rpc/web/request.js.map +1 -1
  394. package/lib/esm/rpc/web/response.js.map +1 -1
  395. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  396. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  397. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +1 -1
  398. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  399. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  400. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  401. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  402. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  403. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  404. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  405. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  406. package/lib/esm/test/AttachDb.test.js +11 -11
  407. package/lib/esm/test/AttachDb.test.js.map +1 -1
  408. package/lib/esm/test/ElementLRUCache.test.js +224 -1
  409. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  410. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  411. package/lib/esm/test/IModelHost.test.js.map +1 -1
  412. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  413. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  414. package/lib/esm/test/IpcHost.test.js.map +1 -1
  415. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  416. package/lib/esm/test/PrintElementTree.js.map +1 -1
  417. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  418. package/lib/esm/test/RevisionUtility.js.map +1 -1
  419. package/lib/esm/test/SchemaUtils.test.js +25 -25
  420. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  421. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  422. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  423. package/lib/esm/test/TestUtils.d.ts +1 -1
  424. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  425. package/lib/esm/test/TestUtils.js +1 -1
  426. package/lib/esm/test/TestUtils.js.map +1 -1
  427. package/lib/esm/test/annotations/TextAnnotation.test.js +190 -1025
  428. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  429. package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
  430. package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
  431. package/lib/esm/test/annotations/TextBlock.test.js +1105 -0
  432. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
  433. package/lib/esm/test/categories/Category.test.js.map +1 -1
  434. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  435. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  436. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  437. package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts +2 -0
  438. package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts.map +1 -0
  439. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +164 -0
  440. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -0
  441. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +35 -45
  442. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  443. package/lib/esm/test/ecdb/ECDb.test.js +86 -65
  444. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  445. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  446. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  447. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  448. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  449. package/lib/esm/test/ecdb/ECSqlQuery.test.js +0 -55
  450. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  451. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  452. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  453. package/lib/esm/test/ecdb/ECSqlStatement.test.js +484 -292
  454. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  455. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  456. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  457. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  458. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  459. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  460. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  461. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  462. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  463. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  464. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  465. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  466. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  467. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  468. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  469. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  470. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  471. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  472. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  473. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  474. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  475. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  476. package/lib/esm/test/imageData.js.map +1 -1
  477. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  478. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  479. package/lib/esm/test/imodel/IModel.test.js +228 -5
  480. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  481. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  482. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  483. package/lib/esm/test/index.js.map +1 -1
  484. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  485. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  486. package/lib/esm/test/misc/GeoServices.test.js +23 -9
  487. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  488. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  489. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  490. package/lib/esm/test/rpc/response.test.js.map +1 -1
  491. package/lib/esm/test/schema/ClassRegistry.test.js +71 -71
  492. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  493. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  494. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  495. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  496. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  497. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  498. package/lib/esm/test/standalone/ChangesetReader.test.js +479 -164
  499. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  500. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  501. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  502. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  503. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  504. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  505. package/lib/esm/test/standalone/ExportGraphics.test.js +67 -15
  506. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  507. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  508. package/lib/esm/test/standalone/GeometryStream.test.js +49 -1
  509. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  510. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  511. package/lib/esm/test/standalone/IModelLimits.test.d.ts +2 -0
  512. package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
  513. package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
  514. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
  515. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  516. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  517. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  518. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  519. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  520. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  521. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  522. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  523. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  524. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  525. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  526. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  527. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  528. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  529. package/lib/esm/test/standalone/SnapshotDb.test.js +19 -1
  530. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  531. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  532. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  533. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  534. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  535. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  536. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  537. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  538. package/lib/esm/workspace/Settings.js.map +1 -1
  539. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  540. package/lib/esm/workspace/Workspace.js.map +1 -1
  541. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  542. package/package.json +12 -12
  543. package/lib/cjs/TextAnnotationElement.d.ts.map +0 -1
  544. package/lib/cjs/TextAnnotationElement.js.map +0 -1
  545. package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
  546. package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
  547. package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
  548. package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
  549. package/lib/cjs/TextAnnotationLayout.js.map +0 -1
  550. package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
  551. package/lib/esm/TextAnnotationElement.js.map +0 -1
  552. package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
  553. package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
  554. package/lib/esm/TextAnnotationGeometry.js.map +0 -1
  555. package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
  556. package/lib/esm/TextAnnotationLayout.js.map +0 -1
@@ -9,7 +9,7 @@ import * as fs from "fs";
9
9
  import { join } from "path";
10
10
  import * as touch from "touch";
11
11
  import { assert, BeEvent, BentleyStatus, ChangeSetStatus, DbChangeStage, DbConflictCause, DbConflictResolution, DbResult, Guid, Id64, IModelStatus, JsonUtils, Logger, LogLevel, LRUMap, OpenMode } from "@itwin/core-bentley";
12
- import { BriefcaseIdValue, Code, DomainOptions, ECJsNames, ECSqlReader, EntityMetaData, FontMap, IModel, IModelError, IModelNotFoundResponse, ProfileOptions, QueryRowFormat, SchemaState, ViewStoreRpc } from "@itwin/core-common";
12
+ import { BriefcaseIdValue, Code, DomainOptions, ECJsNames, ECSqlReader, EntityMetaData, FontMap, IModel, IModelError, IModelNotFoundResponse, ProfileOptions, QueryRowFormat, SchemaState, ViewStoreError, ViewStoreRpc } from "@itwin/core-common";
13
13
  import { Range2d, Range3d } from "@itwin/core-geometry";
14
14
  import { BackendLoggerCategory } from "./BackendLoggerCategory";
15
15
  import { BriefcaseManager } from "./BriefcaseManager";
@@ -44,10 +44,10 @@ import { SettingsImpl } from "./internal/workspace/SettingsImpl";
44
44
  import { IModelNative } from "./internal/NativePlatform";
45
45
  import { createNoOpLockControl } from "./internal/NoLocks";
46
46
  import { createIModelDbFonts } from "./internal/IModelDbFontsImpl";
47
- import { _cache, _close, _hubAccess, _nativeDb, _releaseAllLocks } from "./internal/Symbols";
47
+ import { _cache, _close, _hubAccess, _instanceKeyCache, _nativeDb, _releaseAllLocks } from "./internal/Symbols";
48
48
  import { SchemaContext, SchemaJsonLocater } from "@itwin/ecschema-metadata";
49
49
  import { SchemaMap } from "./Schema";
50
- import { ElementLRUCache } from "./internal/ElementLRUCache";
50
+ import { ElementLRUCache, InstanceKeyLRUCache } from "./internal/ElementLRUCache";
51
51
  // spell:ignore fontid fontmap
52
52
  const loggerCategory = BackendLoggerCategory.IModelDb;
53
53
  /** @internal */
@@ -107,7 +107,7 @@ export class IModelDb extends IModel {
107
107
  _jsClassMap;
108
108
  _schemaMap;
109
109
  _schemaContext;
110
- /** @deprecated in 5.0.0. Use [[fonts]]. */
110
+ /** @deprecated in 5.0.0 - will not be removed until after 2026-06-13. Use [[fonts]]. */
111
111
  _fontMap; // eslint-disable-line @typescript-eslint/no-deprecated
112
112
  _fonts = createIModelDbFonts(this);
113
113
  _workspace;
@@ -163,7 +163,7 @@ export class IModelDb extends IModel {
163
163
  restartDefaultTxn() {
164
164
  this[_nativeDb].restartDefaultTxn();
165
165
  }
166
- /** @deprecated in 5.0.0. Use [[fonts]]. */
166
+ /** @deprecated in 5.0.0 - will not be removed until after 2026-06-13. Use [[fonts]]. */
167
167
  get fontMap() {
168
168
  return this._fontMap ?? (this._fontMap = new FontMap(this[_nativeDb].readFontMap())); // eslint-disable-line @typescript-eslint/no-deprecated
169
169
  }
@@ -340,7 +340,7 @@ export class IModelDb extends IModel {
340
340
  * @returns the value returned by `callback`.
341
341
  * @see [[withStatement]]
342
342
  * @public
343
- * @deprecated in 4.11. Use [[createQueryReader]] instead.
343
+ * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use [[createQueryReader]] instead.
344
344
  */
345
345
  // eslint-disable-next-line @typescript-eslint/no-deprecated
346
346
  withPreparedStatement(ecsql, callback, logErrors = true) {
@@ -372,7 +372,7 @@ export class IModelDb extends IModel {
372
372
  * @returns the value returned by `callback`.
373
373
  * @see [[withPreparedStatement]]
374
374
  * @public
375
- * @deprecated in 4.11. Use [[createQueryReader]] instead.
375
+ * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use [[createQueryReader]] instead.
376
376
  */
377
377
  // eslint-disable-next-line @typescript-eslint/no-deprecated
378
378
  withStatement(ecsql, callback, logErrors = true) {
@@ -579,6 +579,8 @@ export class IModelDb extends IModel {
579
579
  this._schemaContext = undefined;
580
580
  this.elements[_cache].clear();
581
581
  this.models[_cache].clear();
582
+ this.elements[_instanceKeyCache].clear();
583
+ this.models[_instanceKeyCache].clear();
582
584
  }
583
585
  /** Update the project extents for this iModel.
584
586
  * <p><em>Example:</em>
@@ -634,6 +636,7 @@ export class IModelDb extends IModel {
634
636
  * @note This will not delete Txns that have already been saved, even if they have not yet been pushed.
635
637
  */
636
638
  abandonChanges() {
639
+ this.clearCaches();
637
640
  this[_nativeDb].abandonChanges();
638
641
  }
639
642
  /**
@@ -647,11 +650,14 @@ export class IModelDb extends IModel {
647
650
  performCheckpoint() {
648
651
  if (!this.isReadonly) {
649
652
  this.saveChanges();
653
+ this.clearCaches();
654
+ this[_nativeDb].concurrentQueryShutdown();
655
+ this[_nativeDb].clearECDbCache();
650
656
  this[_nativeDb].performCheckpoint();
651
657
  }
652
658
  }
653
659
  /** @internal
654
- * @deprecated in 4.8. Use `txns.reverseTxns`.
660
+ * @deprecated in 4.8 - will not be removed until after 2026-06-13. Use `txns.reverseTxns`.
655
661
  */
656
662
  reverseTxns(numOperations) {
657
663
  return this[_nativeDb].reverseTxns(numOperations);
@@ -877,7 +883,7 @@ export class IModelDb extends IModel {
877
883
  }
878
884
  /** The registry of entity metadata for this iModel.
879
885
  * @internal
880
- * @deprecated in 5.0. Please use `schemaContext` from the `iModel` instead.
886
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `schemaContext` from the `iModel` instead.
881
887
  *
882
888
  * @example
883
889
  * ```typescript
@@ -937,7 +943,7 @@ export class IModelDb extends IModel {
937
943
  * @param sql The ECSQL statement to prepare
938
944
  * @param logErrors Determines if error will be logged if statement fail to prepare
939
945
  * @throws [[IModelError]] if there is a problem preparing the statement.
940
- * @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
946
+ * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
941
947
  */
942
948
  // eslint-disable-next-line @typescript-eslint/no-deprecated
943
949
  prepareStatement(sql, logErrors = true) {
@@ -949,7 +955,7 @@ export class IModelDb extends IModel {
949
955
  /** Prepare an ECSQL statement.
950
956
  * @param sql The ECSQL statement to prepare
951
957
  * @returns `undefined` if there is a problem preparing the statement.
952
- * @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
958
+ * @deprecated in 4.11 - will not be removed until after 2026-06-13. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
953
959
  */
954
960
  // eslint-disable-next-line @typescript-eslint/no-deprecated
955
961
  tryPrepareStatement(sql) {
@@ -999,7 +1005,7 @@ export class IModelDb extends IModel {
999
1005
  }
1000
1006
  /** Get metadata for a class. This method will load the metadata from the iModel into the cache as a side-effect, if necessary.
1001
1007
  * @throws [[IModelError]] if the metadata cannot be found nor loaded.
1002
- * @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
1008
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `getSchemaItem` from `SchemaContext` class instead.
1003
1009
  *
1004
1010
  * @example
1005
1011
  * * ```typescript
@@ -1025,7 +1031,7 @@ export class IModelDb extends IModel {
1025
1031
  return metadata;
1026
1032
  }
1027
1033
  /** Identical to [[getMetaData]], except it returns `undefined` instead of throwing an error if the metadata cannot be found nor loaded.
1028
- * @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
1034
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `getSchemaItem` from `SchemaContext` class instead.
1029
1035
  *
1030
1036
  * @example
1031
1037
  * * ```typescript
@@ -1053,7 +1059,7 @@ export class IModelDb extends IModel {
1053
1059
  * @param func The callback to be invoked on each property
1054
1060
  * @param includeCustom If true (default), include custom-handled properties in the iteration. Otherwise, skip custom-handled properties.
1055
1061
  * @note Custom-handled properties are core properties that have behavior enforced by C++ handlers.
1056
- * @deprecated in 5.0. Please use `forEachProperty` instead.
1062
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `forEachProperty` instead.
1057
1063
  *
1058
1064
  * @example
1059
1065
  * ```typescript
@@ -1079,7 +1085,7 @@ export class IModelDb extends IModel {
1079
1085
  * @param func The callback to be invoked on each property
1080
1086
  * @param includeCustom If true (default), include custom-handled properties in the iteration. Otherwise, skip custom-handled properties.
1081
1087
  * @note Custom-handled properties are core properties that have behavior enforced by C++ handlers.
1082
- * @deprecated in 5.0. Use `forEachProperty` from `SchemaContext` class instead.
1088
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Use `forEachProperty` from `SchemaContext` class instead.
1083
1089
  *
1084
1090
  * @example
1085
1091
  * ```typescript
@@ -1109,7 +1115,7 @@ export class IModelDb extends IModel {
1109
1115
  }
1110
1116
  /**
1111
1117
  * @internal
1112
- * @deprecated in 5.0. Please use `schemaContext` from `iModel` instead to get metadata.
1118
+ * @deprecated in 5.0 - will not be removed until after 2026-06-13. Please use `schemaContext` from `iModel` instead to get metadata.
1113
1119
  */
1114
1120
  loadMetaData(classFullName) {
1115
1121
  // eslint-disable-next-line @typescript-eslint/no-deprecated
@@ -1474,12 +1480,15 @@ function processSchemaWriteStatus(status) {
1474
1480
  /** @public */
1475
1481
  (function (IModelDb) {
1476
1482
  /** The collection of models in an [[IModelDb]].
1477
- * @public
1483
+ * @public @preview
1478
1484
  */
1479
1485
  class Models {
1480
1486
  _iModel;
1487
+ _modelCacheSize = 10;
1488
+ /** @internal */
1489
+ [_cache] = new LRUMap(this._modelCacheSize);
1481
1490
  /** @internal */
1482
- [_cache] = new LRUMap(500);
1491
+ [_instanceKeyCache] = new InstanceKeyLRUCache(this._modelCacheSize);
1483
1492
  /** @internal */
1484
1493
  constructor(_iModel) {
1485
1494
  this._iModel = _iModel;
@@ -1583,7 +1592,16 @@ function processSchemaWriteStatus(status) {
1583
1592
  else {
1584
1593
  throw new IModelError(IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
1585
1594
  }
1586
- return this._iModel[_nativeDb].resolveInstanceKey(args);
1595
+ // Check the cache to avoid unnecessary native calls
1596
+ const cachedResult = this[_instanceKeyCache].get(args);
1597
+ if (cachedResult) {
1598
+ return cachedResult;
1599
+ }
1600
+ else {
1601
+ const instanceKey = this._iModel[_nativeDb].resolveInstanceKey(args);
1602
+ this[_instanceKeyCache].set(args, instanceKey);
1603
+ return instanceKey;
1604
+ }
1587
1605
  }
1588
1606
  /** Get the sub-model of the specified Element.
1589
1607
  * See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
@@ -1627,7 +1645,9 @@ function processSchemaWriteStatus(status) {
1627
1645
  return props.id = this._iModel[_nativeDb].insertModel(props);
1628
1646
  }
1629
1647
  catch (err) {
1630
- throw new IModelError(err.errorNumber, `Error inserting model [${err.message}], class=${props.classFullName}`);
1648
+ const error = new IModelError(err.errorNumber, `Error inserting model [${err.message}], class=${props.classFullName}`);
1649
+ error.cause = err;
1650
+ throw error;
1631
1651
  }
1632
1652
  }
1633
1653
  /** Update an existing model.
@@ -1641,7 +1661,9 @@ function processSchemaWriteStatus(status) {
1641
1661
  this._iModel[_nativeDb].updateModel(props);
1642
1662
  }
1643
1663
  catch (err) {
1644
- throw new IModelError(err.errorNumber, `error updating model [${err.message}] id=${props.id}`);
1664
+ const error = new IModelError(err.errorNumber, `Error updating model [${err.message}], id: ${props.id}`);
1665
+ error.cause = err;
1666
+ throw error;
1645
1667
  }
1646
1668
  }
1647
1669
  /** Mark the geometry of [[GeometricModel]] as having changed, by recording an indirect change to its GeometryGuid property.
@@ -1657,7 +1679,7 @@ function processSchemaWriteStatus(status) {
1657
1679
  this._iModel.models[_cache].delete(modelId);
1658
1680
  const error = this._iModel[_nativeDb].updateModelGeometryGuid(modelId);
1659
1681
  if (error !== IModelStatus.Success)
1660
- throw new IModelError(error, `updating geometry guid for model ${modelId}`);
1682
+ throw new IModelError(error, `Error updating geometry guid for model ${modelId}`);
1661
1683
  }
1662
1684
  /** Delete one or more existing models.
1663
1685
  * @param ids The Ids of the models to be deleted
@@ -1667,10 +1689,13 @@ function processSchemaWriteStatus(status) {
1667
1689
  Id64.toIdSet(ids).forEach((id) => {
1668
1690
  try {
1669
1691
  this[_cache].delete(id);
1692
+ this[_instanceKeyCache].deleteById(id);
1670
1693
  this._iModel[_nativeDb].deleteModel(id);
1671
1694
  }
1672
1695
  catch (err) {
1673
- throw new IModelError(err.errorNumber, `error deleting model [${err.message}] id ${id}`);
1696
+ const error = new IModelError(err.errorNumber, `Error deleting model [${err.message}], id: ${id}`);
1697
+ error.cause = err;
1698
+ throw error;
1674
1699
  }
1675
1700
  });
1676
1701
  }
@@ -1700,12 +1725,15 @@ function processSchemaWriteStatus(status) {
1700
1725
  }
1701
1726
  IModelDb.Models = Models;
1702
1727
  /** The collection of elements in an [[IModelDb]].
1703
- * @public
1728
+ * @public @preview
1704
1729
  */
1705
1730
  class Elements {
1706
1731
  _iModel;
1732
+ _elementCacheSize = 50;
1733
+ /** @internal */
1734
+ [_cache] = new ElementLRUCache(this._elementCacheSize);
1707
1735
  /** @internal */
1708
- [_cache] = new ElementLRUCache();
1736
+ [_instanceKeyCache] = new InstanceKeyLRUCache(this._elementCacheSize);
1709
1737
  /** @internal */
1710
1738
  constructor(_iModel) {
1711
1739
  this._iModel = _iModel;
@@ -1755,7 +1783,16 @@ function processSchemaWriteStatus(status) {
1755
1783
  throw new IModelError(IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
1756
1784
  }
1757
1785
  }
1758
- return this._iModel[_nativeDb].resolveInstanceKey(args);
1786
+ // Check the cache to avoid unnecessary native calls
1787
+ const cachedResult = this[_instanceKeyCache].get(args);
1788
+ if (cachedResult) {
1789
+ return cachedResult;
1790
+ }
1791
+ else {
1792
+ const instanceKey = this._iModel[_nativeDb].resolveInstanceKey(args);
1793
+ this[_instanceKeyCache].set(args, instanceKey);
1794
+ return instanceKey;
1795
+ }
1759
1796
  }
1760
1797
  /** Get properties of an Element by Id, FederationGuid, or Code
1761
1798
  * @returns The properties of the element or `undefined` if the element is not found.
@@ -1845,15 +1882,16 @@ function processSchemaWriteStatus(status) {
1845
1882
  throw new IModelError(IModelStatus.InvalidCodeSpec, "Invalid CodeSpec");
1846
1883
  if (code.value === undefined)
1847
1884
  throw new IModelError(IModelStatus.InvalidCode, "Invalid Code");
1848
- // eslint-disable-next-line @typescript-eslint/no-deprecated
1849
- return this._iModel.withPreparedStatement("SELECT ECInstanceId FROM BisCore:Element WHERE CodeSpec.Id=? AND CodeScope.Id=? AND CodeValue=?", (stmt) => {
1850
- stmt.bindId(1, code.spec);
1851
- stmt.bindId(2, Id64.fromString(code.scope));
1852
- stmt.bindString(3, code.value);
1853
- if (DbResult.BE_SQLITE_ROW !== stmt.step())
1885
+ const codeToQuery = new Code(code);
1886
+ try {
1887
+ const elementKey = this.resolveElementKey(codeToQuery);
1888
+ return Id64.fromString(elementKey.id);
1889
+ }
1890
+ catch (err) {
1891
+ if (err.errorNumber === IModelStatus.NotFound)
1854
1892
  return undefined;
1855
- return stmt.getValue(0).getId();
1856
- });
1893
+ throw err;
1894
+ }
1857
1895
  }
1858
1896
  /** Query for an [[Element]]'s last modified time.
1859
1897
  * @param elementId The Id of the element.
@@ -1877,7 +1915,7 @@ function processSchemaWriteStatus(status) {
1877
1915
  /** Insert a new element into the iModel.
1878
1916
  * @param elProps The properties of the new element.
1879
1917
  * @returns The newly inserted element's Id.
1880
- * @throws [[IModelError]] if unable to insert the element.
1918
+ * @throws [[ITwinError]] if unable to insert the element.
1881
1919
  * @note For convenience, the value of `elProps.id` is updated to reflect the resultant element's id.
1882
1920
  * However when `elProps.federationGuid` is not present or undefined, a new Guid will be generated and stored on the resultant element. But
1883
1921
  * the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
@@ -1907,7 +1945,7 @@ function processSchemaWriteStatus(status) {
1907
1945
  * @param elProps the properties of the element to update.
1908
1946
  * @note The values of `classFullName` and `model` *may not be changed* by this method. Further, it will permute the `elProps` object by adding or
1909
1947
  * overwriting their values to the correct values.
1910
- * @throws [[IModelError]] if unable to update the element.
1948
+ * @throws [[ITwinError]] if unable to update the element.
1911
1949
  */
1912
1950
  updateElement(elProps) {
1913
1951
  try {
@@ -1926,7 +1964,7 @@ function processSchemaWriteStatus(status) {
1926
1964
  }
1927
1965
  /** Delete one or more elements from this iModel.
1928
1966
  * @param ids The set of Ids of the element(s) to be deleted
1929
- * @throws [[IModelError]]
1967
+ * @throws [[ITwinError]]
1930
1968
  * @see deleteDefinitionElements
1931
1969
  */
1932
1970
  deleteElement(ids) {
@@ -1934,6 +1972,7 @@ function processSchemaWriteStatus(status) {
1934
1972
  Id64.toIdSet(ids).forEach((id) => {
1935
1973
  try {
1936
1974
  this[_cache].delete({ id });
1975
+ this[_instanceKeyCache].deleteById(id);
1937
1976
  iModel[_nativeDb].deleteElement(id);
1938
1977
  }
1939
1978
  catch (err) {
@@ -2153,9 +2192,9 @@ function processSchemaWriteStatus(status) {
2153
2192
  */
2154
2193
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
2155
2194
  if (aspectClassFullName === undefined) {
2156
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2157
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2158
- UNION ALL
2195
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2196
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2197
+ UNION ALL
2159
2198
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2160
2199
  if (allAspects.length === 0)
2161
2200
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2175,7 +2214,7 @@ function processSchemaWriteStatus(status) {
2175
2214
  if (classIdList === undefined) {
2176
2215
  const classIds = [];
2177
2216
  // eslint-disable-next-line @typescript-eslint/no-deprecated
2178
- this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
2217
+ this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
2179
2218
  and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
2180
2219
  // eslint-disable-next-line @typescript-eslint/no-deprecated
2181
2220
  (statement) => {
@@ -2192,10 +2231,10 @@ function processSchemaWriteStatus(status) {
2192
2231
  return [];
2193
2232
  }
2194
2233
  // Execute an instance query to retrieve all aspects from all the derived classes
2195
- const aspects = this.runInstanceQuery(`SELECT $ FROM (
2196
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2197
- UNION ALL
2198
- SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2234
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
2235
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2236
+ UNION ALL
2237
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2199
2238
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2200
2239
  if (aspects.length === 0)
2201
2240
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2213,7 +2252,9 @@ function processSchemaWriteStatus(status) {
2213
2252
  return this._iModel[_nativeDb].insertElementAspect(aspectProps);
2214
2253
  }
2215
2254
  catch (err) {
2216
- throw new IModelError(err.errorNumber, `Error inserting ElementAspect [${err.message}], class: ${aspectProps.classFullName}`);
2255
+ const error = new IModelError(err.errorNumber, `Error inserting ElementAspect [${err.message}], class: ${aspectProps.classFullName}`, aspectProps);
2256
+ error.cause = err;
2257
+ throw error;
2217
2258
  }
2218
2259
  }
2219
2260
  /** Update an exist ElementAspect within the iModel.
@@ -2225,7 +2266,9 @@ function processSchemaWriteStatus(status) {
2225
2266
  this._iModel[_nativeDb].updateElementAspect(aspectProps);
2226
2267
  }
2227
2268
  catch (err) {
2228
- throw new IModelError(err.errorNumber, `Error updating ElementAspect [${err.message}], id: ${aspectProps.id}`);
2269
+ const error = new IModelError(err.errorNumber, `Error updating ElementAspect [${err.message}], id: ${aspectProps.id}`, aspectProps);
2270
+ error.cause = err;
2271
+ throw error;
2229
2272
  }
2230
2273
  }
2231
2274
  /** Delete one or more ElementAspects from this iModel.
@@ -2239,14 +2282,16 @@ function processSchemaWriteStatus(status) {
2239
2282
  iModel[_nativeDb].deleteElementAspect(aspectInstanceId);
2240
2283
  }
2241
2284
  catch (err) {
2242
- throw new IModelError(err.errorNumber, `Error deleting ElementAspect [${err.message}], id: ${aspectInstanceId}`);
2285
+ const error = new IModelError(err.errorNumber, `Error deleting ElementAspect [${err.message}], id: ${aspectInstanceId}`);
2286
+ error.cause = err;
2287
+ throw error;
2243
2288
  }
2244
2289
  });
2245
2290
  }
2246
2291
  }
2247
2292
  IModelDb.Elements = Elements;
2248
2293
  /** The collection of views in an [[IModelDb]].
2249
- * @public
2294
+ * @public @preview
2250
2295
  */
2251
2296
  class Views {
2252
2297
  _iModel;
@@ -2272,7 +2317,7 @@ function processSchemaWriteStatus(status) {
2272
2317
  if (undefined === props) {
2273
2318
  const propsString = this._iModel.queryFilePropertyString(Views.viewStoreProperty);
2274
2319
  if (!propsString)
2275
- throw new Error("iModel does not have a default ViewStore");
2320
+ ViewStoreError.throwError("no-viewstore", { message: "iModel does not have a default ViewStore" });
2276
2321
  props = JSON.parse(propsString);
2277
2322
  }
2278
2323
  const accessToken = await CloudSqlite.requestToken({
@@ -2393,7 +2438,7 @@ function processSchemaWriteStatus(status) {
2393
2438
  }
2394
2439
  getViewThumbnailArg(viewDefinitionId) {
2395
2440
  if (!Id64.isValid(viewDefinitionId))
2396
- throw new Error("illegal thumbnail id");
2441
+ throw new IModelError(IModelStatus.BadArg, "illegal thumbnail id");
2397
2442
  return { namespace: "dgn_View", name: "Thumbnail", id: viewDefinitionId };
2398
2443
  }
2399
2444
  /** Get the thumbnail for a view.
@@ -2422,7 +2467,7 @@ function processSchemaWriteStatus(status) {
2422
2467
  }
2423
2468
  /** Set the default view property the iModel.
2424
2469
  * @param viewId The Id of the ViewDefinition to use as the default
2425
- * @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
2470
+ * @deprecated in 4.2.x - 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
2426
2471
  * that might wish to view the contents of the iModel.
2427
2472
  */
2428
2473
  setDefaultViewId(viewId) {
@@ -3100,6 +3145,10 @@ export class SnapshotDb extends IModelDb {
3100
3145
  snapshotDb.channels.addAllowedChannel(ChannelControl.sharedChannelName);
3101
3146
  if (options.createClassViews)
3102
3147
  snapshotDb._createClassViewsOnClose = true; // save flag that will be checked when close() is called
3148
+ if (options.geographicCoordinateSystem)
3149
+ snapshotDb.setGeographicCoordinateSystem(options.geographicCoordinateSystem);
3150
+ if (options.ecefLocation)
3151
+ snapshotDb.setEcefLocation(options.ecefLocation);
3103
3152
  return snapshotDb;
3104
3153
  }
3105
3154
  /** Create a local [Snapshot]($docs/learning/backend/AccessingIModels.md#snapshot-imodels) iModel file, using this iModel as a *seed* or starting point.
@@ -3254,6 +3303,10 @@ export class StandaloneDb extends BriefcaseDb {
3254
3303
  nativeDb.resetBriefcaseId(BriefcaseIdValue.Unassigned);
3255
3304
  nativeDb.saveChanges();
3256
3305
  const db = new this({ nativeDb, key: Guid.createValue(), briefcaseId: BriefcaseIdValue.Unassigned, openMode: OpenMode.ReadWrite });
3306
+ if (args.geographicCoordinateSystem)
3307
+ db.setGeographicCoordinateSystem(args.geographicCoordinateSystem);
3308
+ if (args.ecefLocation)
3309
+ db.setEcefLocation(args.ecefLocation);
3257
3310
  db.channels.addAllowedChannel(ChannelControl.sharedChannelName);
3258
3311
  return db;
3259
3312
  }