@itwin/core-backend 5.1.0-dev.0 → 5.1.0-dev.10

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 (426) hide show
  1. package/CHANGELOG.md +21 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.d.ts +37 -0
  9. package/lib/cjs/Category.d.ts.map +1 -1
  10. package/lib/cjs/Category.js +73 -0
  11. package/lib/cjs/Category.js.map +1 -1
  12. package/lib/cjs/ChangeSummaryManager.js +2 -2
  13. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  14. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  15. package/lib/cjs/ChangesetECAdaptor.js +242 -242
  16. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  17. package/lib/cjs/ChannelControl.js.map +1 -1
  18. package/lib/cjs/CheckpointManager.js.map +1 -1
  19. package/lib/cjs/ClassRegistry.js +5 -5
  20. package/lib/cjs/ClassRegistry.js.map +1 -1
  21. package/lib/cjs/CloudSqlite.js.map +1 -1
  22. package/lib/cjs/CodeService.js.map +1 -1
  23. package/lib/cjs/CodeSpecs.js.map +1 -1
  24. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  25. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  26. package/lib/cjs/DevTools.js.map +1 -1
  27. package/lib/cjs/DisplayStyle.d.ts +5 -0
  28. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  29. package/lib/cjs/DisplayStyle.js +27 -0
  30. package/lib/cjs/DisplayStyle.js.map +1 -1
  31. package/lib/cjs/ECDb.js.map +1 -1
  32. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  33. package/lib/cjs/ECSqlStatement.js.map +1 -1
  34. package/lib/cjs/Element.d.ts +166 -10
  35. package/lib/cjs/Element.d.ts.map +1 -1
  36. package/lib/cjs/Element.js +510 -9
  37. package/lib/cjs/Element.js.map +1 -1
  38. package/lib/cjs/ElementAspect.js.map +1 -1
  39. package/lib/cjs/ElementGraphics.js.map +1 -1
  40. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  41. package/lib/cjs/Entity.d.ts +41 -1
  42. package/lib/cjs/Entity.d.ts.map +1 -1
  43. package/lib/cjs/Entity.js +58 -0
  44. package/lib/cjs/Entity.js.map +1 -1
  45. package/lib/cjs/EntityReferences.js.map +1 -1
  46. package/lib/cjs/ExportGraphics.js.map +1 -1
  47. package/lib/cjs/ExternalSource.js.map +1 -1
  48. package/lib/cjs/FontFile.js.map +1 -1
  49. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  50. package/lib/cjs/GeographicCRSServices.d.ts +6 -2
  51. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  52. package/lib/cjs/GeographicCRSServices.js +1 -1
  53. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  54. package/lib/cjs/GeometrySummary.js +47 -47
  55. package/lib/cjs/GeometrySummary.js.map +1 -1
  56. package/lib/cjs/IModelDb.d.ts +21 -36
  57. package/lib/cjs/IModelDb.d.ts.map +1 -1
  58. package/lib/cjs/IModelDb.js +139 -77
  59. package/lib/cjs/IModelDb.js.map +1 -1
  60. package/lib/cjs/IModelDbFonts.js.map +1 -1
  61. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  62. package/lib/cjs/IModelHost.d.ts +13 -0
  63. package/lib/cjs/IModelHost.d.ts.map +1 -1
  64. package/lib/cjs/IModelHost.js +6 -0
  65. package/lib/cjs/IModelHost.js.map +1 -1
  66. package/lib/cjs/IModelJsFs.js.map +1 -1
  67. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  68. package/lib/cjs/IpcHost.js.map +1 -1
  69. package/lib/cjs/LineStyle.js.map +1 -1
  70. package/lib/cjs/LocalHub.js +1 -1
  71. package/lib/cjs/LocalHub.js.map +1 -1
  72. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  73. package/lib/cjs/LockControl.js.map +1 -1
  74. package/lib/cjs/Material.d.ts +19 -0
  75. package/lib/cjs/Material.d.ts.map +1 -1
  76. package/lib/cjs/Material.js +29 -0
  77. package/lib/cjs/Material.js.map +1 -1
  78. package/lib/cjs/Model.d.ts +42 -6
  79. package/lib/cjs/Model.d.ts.map +1 -1
  80. package/lib/cjs/Model.js +93 -5
  81. package/lib/cjs/Model.js.map +1 -1
  82. package/lib/cjs/NativeAppStorage.js.map +1 -1
  83. package/lib/cjs/NativeHost.js.map +1 -1
  84. package/lib/cjs/NavigationRelationship.js.map +1 -1
  85. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  86. package/lib/cjs/PropertyStore.js.map +1 -1
  87. package/lib/cjs/Relationship.js.map +1 -1
  88. package/lib/cjs/RpcBackend.js.map +1 -1
  89. package/lib/cjs/SQLiteDb.js.map +1 -1
  90. package/lib/cjs/Schema.js.map +1 -1
  91. package/lib/cjs/SchemaSync.js.map +1 -1
  92. package/lib/cjs/SchemaUtils.js.map +1 -1
  93. package/lib/cjs/SheetIndex.js.map +1 -1
  94. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  95. package/lib/cjs/SqliteStatement.js.map +1 -1
  96. package/lib/cjs/TextAnnotationElement.js.map +1 -1
  97. package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
  98. package/lib/cjs/TextAnnotationLayout.js.map +1 -1
  99. package/lib/cjs/Texture.js.map +1 -1
  100. package/lib/cjs/TileStorage.js.map +1 -1
  101. package/lib/cjs/TxnManager.d.ts.map +1 -1
  102. package/lib/cjs/TxnManager.js +1 -0
  103. package/lib/cjs/TxnManager.js.map +1 -1
  104. package/lib/cjs/ViewDefinition.d.ts +100 -0
  105. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  106. package/lib/cjs/ViewDefinition.js +208 -0
  107. package/lib/cjs/ViewDefinition.js.map +1 -1
  108. package/lib/cjs/ViewStateHydrator.js +3 -3
  109. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  110. package/lib/cjs/ViewStore.js.map +1 -1
  111. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  112. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  113. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  114. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  115. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  116. package/lib/cjs/core-backend.js.map +1 -1
  117. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  118. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  119. package/lib/cjs/domains/GenericElements.js.map +1 -1
  120. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  121. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  122. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  123. package/lib/cjs/internal/ElementLRUCache.d.ts +28 -0
  124. package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -0
  125. package/lib/cjs/internal/ElementLRUCache.js +120 -0
  126. package/lib/cjs/internal/ElementLRUCache.js.map +1 -0
  127. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  128. package/lib/cjs/internal/HubMock.js.map +1 -1
  129. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  130. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  131. package/lib/cjs/internal/NoLocks.js.map +1 -1
  132. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  133. package/lib/cjs/internal/Symbols.d.ts +1 -0
  134. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  135. package/lib/cjs/internal/Symbols.js +2 -1
  136. package/lib/cjs/internal/Symbols.js.map +1 -1
  137. package/lib/cjs/internal/cross-package.js.map +1 -1
  138. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  139. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  140. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  141. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  142. package/lib/cjs/rpc/multipart.js.map +1 -1
  143. package/lib/cjs/rpc/tracing.js.map +1 -1
  144. package/lib/cjs/rpc/web/logging.js.map +1 -1
  145. package/lib/cjs/rpc/web/request.js.map +1 -1
  146. package/lib/cjs/rpc/web/response.js.map +1 -1
  147. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  148. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +2 -2
  149. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  150. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  151. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  152. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  153. package/lib/cjs/workspace/Settings.js.map +1 -1
  154. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  155. package/lib/cjs/workspace/Workspace.js.map +1 -1
  156. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  157. package/lib/esm/BackendHubAccess.js.map +1 -1
  158. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  159. package/lib/esm/BisCoreSchema.js.map +1 -1
  160. package/lib/esm/BlobContainerService.js.map +1 -1
  161. package/lib/esm/BriefcaseManager.js.map +1 -1
  162. package/lib/esm/CatalogDb.js.map +1 -1
  163. package/lib/esm/Category.d.ts +37 -0
  164. package/lib/esm/Category.d.ts.map +1 -1
  165. package/lib/esm/Category.js +73 -0
  166. package/lib/esm/Category.js.map +1 -1
  167. package/lib/esm/ChangeSummaryManager.js +2 -2
  168. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  169. package/lib/esm/ChangedElementsDb.js.map +1 -1
  170. package/lib/esm/ChangesetECAdaptor.js +242 -242
  171. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  172. package/lib/esm/ChannelControl.js.map +1 -1
  173. package/lib/esm/CheckpointManager.js.map +1 -1
  174. package/lib/esm/ClassRegistry.js +5 -5
  175. package/lib/esm/ClassRegistry.js.map +1 -1
  176. package/lib/esm/CloudSqlite.js.map +1 -1
  177. package/lib/esm/CodeService.js.map +1 -1
  178. package/lib/esm/CodeSpecs.js.map +1 -1
  179. package/lib/esm/ConcurrentQuery.js.map +1 -1
  180. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  181. package/lib/esm/DevTools.js.map +1 -1
  182. package/lib/esm/DisplayStyle.d.ts +5 -0
  183. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  184. package/lib/esm/DisplayStyle.js +27 -0
  185. package/lib/esm/DisplayStyle.js.map +1 -1
  186. package/lib/esm/ECDb.js.map +1 -1
  187. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  188. package/lib/esm/ECSqlStatement.js.map +1 -1
  189. package/lib/esm/Element.d.ts +166 -10
  190. package/lib/esm/Element.d.ts.map +1 -1
  191. package/lib/esm/Element.js +513 -12
  192. package/lib/esm/Element.js.map +1 -1
  193. package/lib/esm/ElementAspect.js.map +1 -1
  194. package/lib/esm/ElementGraphics.js.map +1 -1
  195. package/lib/esm/ElementTreeWalker.js.map +1 -1
  196. package/lib/esm/Entity.d.ts +41 -1
  197. package/lib/esm/Entity.d.ts.map +1 -1
  198. package/lib/esm/Entity.js +58 -0
  199. package/lib/esm/Entity.js.map +1 -1
  200. package/lib/esm/EntityReferences.js.map +1 -1
  201. package/lib/esm/ExportGraphics.js.map +1 -1
  202. package/lib/esm/ExternalSource.js.map +1 -1
  203. package/lib/esm/FontFile.js.map +1 -1
  204. package/lib/esm/GeoCoordConfig.js.map +1 -1
  205. package/lib/esm/GeographicCRSServices.d.ts +6 -2
  206. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  207. package/lib/esm/GeographicCRSServices.js +1 -1
  208. package/lib/esm/GeographicCRSServices.js.map +1 -1
  209. package/lib/esm/GeometrySummary.js +47 -47
  210. package/lib/esm/GeometrySummary.js.map +1 -1
  211. package/lib/esm/IModelDb.d.ts +21 -36
  212. package/lib/esm/IModelDb.d.ts.map +1 -1
  213. package/lib/esm/IModelDb.js +142 -80
  214. package/lib/esm/IModelDb.js.map +1 -1
  215. package/lib/esm/IModelDbFonts.js.map +1 -1
  216. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  217. package/lib/esm/IModelHost.d.ts +13 -0
  218. package/lib/esm/IModelHost.d.ts.map +1 -1
  219. package/lib/esm/IModelHost.js +6 -0
  220. package/lib/esm/IModelHost.js.map +1 -1
  221. package/lib/esm/IModelJsFs.js.map +1 -1
  222. package/lib/esm/ImageSourceConversion.js.map +1 -1
  223. package/lib/esm/IpcHost.js.map +1 -1
  224. package/lib/esm/LineStyle.js.map +1 -1
  225. package/lib/esm/LocalHub.js +1 -1
  226. package/lib/esm/LocalHub.js.map +1 -1
  227. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  228. package/lib/esm/LockControl.js.map +1 -1
  229. package/lib/esm/Material.d.ts +19 -0
  230. package/lib/esm/Material.d.ts.map +1 -1
  231. package/lib/esm/Material.js +30 -1
  232. package/lib/esm/Material.js.map +1 -1
  233. package/lib/esm/Model.d.ts +42 -6
  234. package/lib/esm/Model.d.ts.map +1 -1
  235. package/lib/esm/Model.js +94 -6
  236. package/lib/esm/Model.js.map +1 -1
  237. package/lib/esm/NativeAppStorage.js.map +1 -1
  238. package/lib/esm/NativeHost.js.map +1 -1
  239. package/lib/esm/NavigationRelationship.js.map +1 -1
  240. package/lib/esm/PromiseMemoizer.js.map +1 -1
  241. package/lib/esm/PropertyStore.js.map +1 -1
  242. package/lib/esm/Relationship.js.map +1 -1
  243. package/lib/esm/RpcBackend.js.map +1 -1
  244. package/lib/esm/SQLiteDb.js.map +1 -1
  245. package/lib/esm/Schema.js.map +1 -1
  246. package/lib/esm/SchemaSync.js.map +1 -1
  247. package/lib/esm/SchemaUtils.js.map +1 -1
  248. package/lib/esm/SheetIndex.js.map +1 -1
  249. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  250. package/lib/esm/SqliteStatement.js.map +1 -1
  251. package/lib/esm/TextAnnotationElement.js.map +1 -1
  252. package/lib/esm/TextAnnotationGeometry.js.map +1 -1
  253. package/lib/esm/TextAnnotationLayout.js.map +1 -1
  254. package/lib/esm/Texture.js.map +1 -1
  255. package/lib/esm/TileStorage.js.map +1 -1
  256. package/lib/esm/TxnManager.d.ts.map +1 -1
  257. package/lib/esm/TxnManager.js +1 -0
  258. package/lib/esm/TxnManager.js.map +1 -1
  259. package/lib/esm/ViewDefinition.d.ts +100 -0
  260. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  261. package/lib/esm/ViewDefinition.js +209 -1
  262. package/lib/esm/ViewDefinition.js.map +1 -1
  263. package/lib/esm/ViewStateHydrator.js +3 -3
  264. package/lib/esm/ViewStateHydrator.js.map +1 -1
  265. package/lib/esm/ViewStore.js.map +1 -1
  266. package/lib/esm/core-backend.js.map +1 -1
  267. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  268. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  269. package/lib/esm/domains/GenericElements.js.map +1 -1
  270. package/lib/esm/domains/GenericSchema.js.map +1 -1
  271. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  272. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  273. package/lib/esm/internal/ElementLRUCache.d.ts +28 -0
  274. package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -0
  275. package/lib/esm/internal/ElementLRUCache.js +116 -0
  276. package/lib/esm/internal/ElementLRUCache.js.map +1 -0
  277. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  278. package/lib/esm/internal/HubMock.js.map +1 -1
  279. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  280. package/lib/esm/internal/NativePlatform.js.map +1 -1
  281. package/lib/esm/internal/NoLocks.js.map +1 -1
  282. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  283. package/lib/esm/internal/Symbols.d.ts +1 -0
  284. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  285. package/lib/esm/internal/Symbols.js +1 -0
  286. package/lib/esm/internal/Symbols.js.map +1 -1
  287. package/lib/esm/internal/cross-package.js.map +1 -1
  288. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  289. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  290. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  291. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  292. package/lib/esm/rpc/multipart.js.map +1 -1
  293. package/lib/esm/rpc/tracing.js.map +1 -1
  294. package/lib/esm/rpc/web/logging.js.map +1 -1
  295. package/lib/esm/rpc/web/request.js.map +1 -1
  296. package/lib/esm/rpc/web/response.js.map +1 -1
  297. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  298. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +2 -2
  299. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  300. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  301. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  302. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  303. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  304. package/lib/esm/test/AttachDb.test.js +11 -11
  305. package/lib/esm/test/AttachDb.test.js.map +1 -1
  306. package/lib/esm/test/ElementLRUCache.test.d.ts +2 -0
  307. package/lib/esm/test/ElementLRUCache.test.d.ts.map +1 -0
  308. package/lib/esm/test/ElementLRUCache.test.js +212 -0
  309. package/lib/esm/test/ElementLRUCache.test.js.map +1 -0
  310. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  311. package/lib/esm/test/IModelHost.test.js.map +1 -1
  312. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  313. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  314. package/lib/esm/test/IpcHost.test.js.map +1 -1
  315. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  316. package/lib/esm/test/PrintElementTree.js.map +1 -1
  317. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  318. package/lib/esm/test/RevisionUtility.js.map +1 -1
  319. package/lib/esm/test/SchemaUtils.test.js +25 -25
  320. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  321. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  322. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  323. package/lib/esm/test/TestUtils.js.map +1 -1
  324. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  325. package/lib/esm/test/categories/Category.test.js.map +1 -1
  326. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  327. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  328. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  329. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  330. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  331. package/lib/esm/test/ecdb/ECDb.test.js +57 -57
  332. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  333. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  334. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  335. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  336. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  337. package/lib/esm/test/ecdb/ECSqlQuery.test.js +7 -30
  338. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  339. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  340. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  341. package/lib/esm/test/ecdb/ECSqlStatement.test.js +292 -292
  342. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  343. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  344. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  345. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  346. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  347. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  348. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  349. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  350. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  351. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  352. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  353. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  354. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  355. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  356. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  357. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  358. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  359. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  360. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  361. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  362. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  363. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  364. package/lib/esm/test/imageData.js.map +1 -1
  365. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  366. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  367. package/lib/esm/test/imodel/IModel.test.js +22 -11
  368. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  369. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  370. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  371. package/lib/esm/test/index.js.map +1 -1
  372. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  373. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  374. package/lib/esm/test/misc/GeoServices.test.js +23 -9
  375. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  376. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  377. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  378. package/lib/esm/test/rpc/response.test.js.map +1 -1
  379. package/lib/esm/test/schema/ClassRegistry.test.js +71 -71
  380. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  381. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  382. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  383. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  384. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  385. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  386. package/lib/esm/test/standalone/ChangesetReader.test.js +28 -28
  387. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  388. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  389. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  390. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  391. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  392. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  393. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  394. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  395. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  396. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  397. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  398. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  399. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  400. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  401. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  402. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  403. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  404. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  405. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  406. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  407. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  408. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  409. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  410. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  411. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  412. package/lib/esm/test/standalone/SnapshotDb.test.js +1 -0
  413. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  414. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  415. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  416. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  417. package/lib/esm/test/standalone/TxnManager.test.js +1 -1
  418. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  419. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  420. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  421. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  422. package/lib/esm/workspace/Settings.js.map +1 -1
  423. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  424. package/lib/esm/workspace/Workspace.js.map +1 -1
  425. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  426. package/package.json +12 -12
@@ -8,8 +8,8 @@
8
8
  import * as fs from "fs";
9
9
  import { join } from "path";
10
10
  import * as touch from "touch";
11
- import { assert, BeEvent, BentleyStatus, ChangeSetStatus, DbChangeStage, DbConflictCause, DbConflictResolution, DbResult, Guid, Id64, IModelStatus, JsonUtils, Logger, LogLevel, 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";
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";
13
13
  import { Range2d, Range3d } from "@itwin/core-geometry";
14
14
  import { BackendLoggerCategory } from "./BackendLoggerCategory";
15
15
  import { BriefcaseManager } from "./BriefcaseManager";
@@ -44,9 +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 { _close, _hubAccess, _nativeDb, _releaseAllLocks } from "./internal/Symbols";
47
+ import { _cache, _close, _hubAccess, _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
51
  // spell:ignore fontid fontmap
51
52
  const loggerCategory = BackendLoggerCategory.IModelDb;
52
53
  /** @internal */
@@ -576,6 +577,8 @@ export class IModelDb extends IModel {
576
577
  this._jsClassMap = undefined;
577
578
  this._schemaMap = undefined;
578
579
  this._schemaContext = undefined;
580
+ this.elements[_cache].clear();
581
+ this.models[_cache].clear();
579
582
  }
580
583
  /** Update the project extents for this iModel.
581
584
  * <p><em>Example:</em>
@@ -976,6 +979,24 @@ export class IModelDb extends IModel {
976
979
  return ClassRegistry.getClass(classFullName, this);
977
980
  }
978
981
  }
982
+ /** Constructs a ResolveInstanceKeyArgs from given parameters
983
+ * @throws [[IModelError]] if the combination of supplied parameters is invalid.
984
+ * @internal
985
+ */
986
+ getInstanceArgs(instanceId, baseClassName, federationGuid, code) {
987
+ if (instanceId && baseClassName) {
988
+ return { partialKey: { id: instanceId, baseClassName } };
989
+ }
990
+ else if (federationGuid) {
991
+ return { federationGuid };
992
+ }
993
+ else if (code) {
994
+ return { code };
995
+ }
996
+ else {
997
+ throw new IModelError(IModelStatus.InvalidId, "Either instanceId and baseClassName or federationGuid or code must be specified");
998
+ }
999
+ }
979
1000
  /** Get metadata for a class. This method will load the metadata from the iModel into the cache as a side-effect, if necessary.
980
1001
  * @throws [[IModelError]] if the metadata cannot be found nor loaded.
981
1002
  * @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
@@ -1457,6 +1478,9 @@ function processSchemaWriteStatus(status) {
1457
1478
  */
1458
1479
  class Models {
1459
1480
  _iModel;
1481
+ _modelCacheSize = 10;
1482
+ /** @internal */
1483
+ [_cache] = new LRUMap(this._modelCacheSize);
1460
1484
  /** @internal */
1461
1485
  constructor(_iModel) {
1462
1486
  this._iModel = _iModel;
@@ -1467,7 +1491,10 @@ function processSchemaWriteStatus(status) {
1467
1491
  * @see tryGetModelProps
1468
1492
  */
1469
1493
  getModelProps(id) {
1470
- return this.getModelJson({ id });
1494
+ const model = this.tryGetModelProps(id);
1495
+ if (undefined === model)
1496
+ throw new IModelError(IModelStatus.NotFound, `Model=${id}`);
1497
+ return model;
1471
1498
  }
1472
1499
  /** Get the ModelProps with the specified identifier.
1473
1500
  * @param modelId The Model identifier.
@@ -1477,7 +1504,25 @@ function processSchemaWriteStatus(status) {
1477
1504
  * @see getModelProps
1478
1505
  */
1479
1506
  tryGetModelProps(id) {
1480
- return this.tryGetModelJson({ id });
1507
+ try {
1508
+ if (IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
1509
+ return this._iModel[_nativeDb].getModel({ id });
1510
+ }
1511
+ const cachedMdl = this[_cache].get(id);
1512
+ if (cachedMdl) {
1513
+ return cachedMdl;
1514
+ }
1515
+ const options = { useJsNames: true };
1516
+ const instanceKey = this.resolveModelKey({ id });
1517
+ const rawInstance = this._iModel[_nativeDb].readInstance(instanceKey, options);
1518
+ const classDef = this._iModel.getJsClass(rawInstance.classFullName);
1519
+ const modelProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel });
1520
+ this[_cache].set(id, modelProps);
1521
+ return modelProps;
1522
+ }
1523
+ catch {
1524
+ return undefined;
1525
+ }
1481
1526
  }
1482
1527
  /** Query for the last modified time for a [[Model]].
1483
1528
  * @param modelId The Id of the model.
@@ -1524,32 +1569,22 @@ function processSchemaWriteStatus(status) {
1524
1569
  return model; // modelClass was not specified, cannot call instanceof to validate
1525
1570
  return model instanceof modelClass ? model : undefined;
1526
1571
  }
1527
- /** Read the properties for a Model as a json string.
1528
- * @param modelIdArg a json string with the identity of the model to load. Must have either "id" or "code".
1529
- * @returns a json string with the properties of the model.
1530
- * @throws [[IModelError]] if the model is not found or cannot be loaded.
1531
- * @see tryGetModelJson
1532
- * @internal
1533
- */
1534
- getModelJson(modelIdArg) {
1535
- const modelJson = this.tryGetModelJson(modelIdArg);
1536
- if (undefined === modelJson) {
1537
- throw new IModelError(IModelStatus.NotFound, `Model=(id: ${modelIdArg.id}, code: ${modelIdArg.code})`);
1572
+ resolveModelKey(modelIdArg) {
1573
+ const baseClassName = "BisCore:Model";
1574
+ let args;
1575
+ if (modelIdArg.id) {
1576
+ args = { partialKey: { id: modelIdArg.id, baseClassName } };
1538
1577
  }
1539
- return modelJson;
1540
- }
1541
- /** Read the properties for a Model as a json string.
1542
- * @param modelIdArg a json string with the identity of the model to load. Must have either "id" or "code".
1543
- * @returns a json string with the properties of the model or `undefined` if the model is not found.
1544
- * @see getModelJson
1545
- */
1546
- tryGetModelJson(modelIdArg) {
1547
- try {
1548
- return this._iModel[_nativeDb].getModel(modelIdArg);
1578
+ else if (modelIdArg.code) {
1579
+ const modelId = this._iModel.elements.getElementProps({ code: modelIdArg.code }).id;
1580
+ if (!modelId)
1581
+ throw new IModelError(IModelStatus.NotFound, `Model not found with code: [spec:${modelIdArg.code.spec}, scope:${modelIdArg.code.scope}, value:${modelIdArg.code.value}])`);
1582
+ args = { partialKey: { id: modelId, baseClassName } };
1549
1583
  }
1550
- catch {
1551
- return undefined;
1584
+ else {
1585
+ throw new IModelError(IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
1552
1586
  }
1587
+ return this._iModel[_nativeDb].resolveInstanceKey(args);
1553
1588
  }
1554
1589
  /** Get the sub-model of the specified Element.
1555
1590
  * See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
@@ -1602,6 +1637,8 @@ function processSchemaWriteStatus(status) {
1602
1637
  */
1603
1638
  updateModel(props) {
1604
1639
  try {
1640
+ if (props.id)
1641
+ this[_cache].delete(props.id);
1605
1642
  this._iModel[_nativeDb].updateModel(props);
1606
1643
  }
1607
1644
  catch (err) {
@@ -1618,6 +1655,7 @@ function processSchemaWriteStatus(status) {
1618
1655
  * @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
1619
1656
  */
1620
1657
  updateGeometryGuid(modelId) {
1658
+ this._iModel.models[_cache].delete(modelId);
1621
1659
  const error = this._iModel[_nativeDb].updateModelGeometryGuid(modelId);
1622
1660
  if (error !== IModelStatus.Success)
1623
1661
  throw new IModelError(error, `updating geometry guid for model ${modelId}`);
@@ -1629,6 +1667,7 @@ function processSchemaWriteStatus(status) {
1629
1667
  deleteModel(ids) {
1630
1668
  Id64.toIdSet(ids).forEach((id) => {
1631
1669
  try {
1670
+ this[_cache].delete(id);
1632
1671
  this._iModel[_nativeDb].deleteModel(id);
1633
1672
  }
1634
1673
  catch (err) {
@@ -1666,6 +1705,9 @@ function processSchemaWriteStatus(status) {
1666
1705
  */
1667
1706
  class Elements {
1668
1707
  _iModel;
1708
+ _elementCacheSize = 50;
1709
+ /** @internal */
1710
+ [_cache] = new ElementLRUCache(this._elementCacheSize);
1669
1711
  /** @internal */
1670
1712
  constructor(_iModel) {
1671
1713
  this._iModel = _iModel;
@@ -1682,50 +1724,40 @@ function processSchemaWriteStatus(status) {
1682
1724
  return !stmt.nextRow() ? undefined : stmt.getValueId(0);
1683
1725
  }) : undefined;
1684
1726
  }
1685
- /** Read element data from the iModel as JSON
1686
- * @param elementIdArg a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
1687
- * @returns The JSON properties of the element.
1688
- * @throws [[IModelError]] if the element is not found or cannot be loaded.
1689
- * @see tryGetElementJson
1690
- * @internal
1691
- */
1692
- getElementJson(elementId) {
1693
- const elementProps = this.tryGetElementJson(elementId);
1694
- if (undefined === elementProps)
1695
- throw new IModelError(IModelStatus.NotFound, `reading element={id: ${elementId.id} federationGuid: ${elementId.federationGuid}, code: ${elementId.code}}`);
1696
- return elementProps;
1697
- }
1698
- /** Read element data from the iModel as JSON
1699
- * @param loadProps - a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
1700
- * @returns The JSON properties of the element or `undefined` if the element is not found.
1701
- * @throws [[IModelError]] if the element exists, but cannot be loaded.
1702
- * @see getElementJson
1703
- */
1704
- tryGetElementJson(loadProps) {
1705
- try {
1706
- return this._iModel[_nativeDb].getElement(loadProps);
1707
- }
1708
- catch {
1709
- return undefined;
1710
- }
1711
- }
1712
1727
  /** Get properties of an Element by Id, FederationGuid, or Code
1713
1728
  * @throws [[IModelError]] if the element is not found or cannot be loaded.
1714
1729
  * @see tryGetElementProps
1715
1730
  */
1716
1731
  getElementProps(props) {
1732
+ const elProp = this.tryGetElementProps(props);
1733
+ if (undefined === elProp)
1734
+ throw new IModelError(IModelStatus.NotFound, `element not found`);
1735
+ return elProp;
1736
+ }
1737
+ resolveElementKey(props) {
1738
+ const baseClassName = "BisCore:Element";
1739
+ let args;
1717
1740
  if (typeof props === "string") {
1718
- props = Id64.isId64(props) ? { id: props } : { federationGuid: props };
1741
+ args = Id64.isId64(props) ? { partialKey: { id: props, baseClassName } } : { federationGuid: props };
1719
1742
  }
1720
1743
  else if (props instanceof Code) {
1721
- props = { code: props };
1744
+ args = { code: props };
1722
1745
  }
1723
- try {
1724
- return this._iModel[_nativeDb].getElement(props);
1725
- }
1726
- catch (err) {
1727
- throw new IModelError(err.errorNumber, err.message);
1746
+ else {
1747
+ if (props.id) {
1748
+ args = { partialKey: { id: props.id, baseClassName } };
1749
+ }
1750
+ else if (props.federationGuid) {
1751
+ args = { federationGuid: props.federationGuid };
1752
+ }
1753
+ else if (props.code) {
1754
+ args = { code: props.code };
1755
+ }
1756
+ else {
1757
+ throw new IModelError(IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
1758
+ }
1728
1759
  }
1760
+ return this._iModel[_nativeDb].resolveInstanceKey(args);
1729
1761
  }
1730
1762
  /** Get properties of an Element by Id, FederationGuid, or Code
1731
1763
  * @returns The properties of the element or `undefined` if the element is not found.
@@ -1733,14 +1765,32 @@ function processSchemaWriteStatus(status) {
1733
1765
  * @note Useful for cases when an element may or may not exist and throwing an `Error` would be overkill.
1734
1766
  * @see getElementProps
1735
1767
  */
1736
- tryGetElementProps(elementId) {
1737
- if (typeof elementId === "string") {
1738
- elementId = Id64.isId64(elementId) ? { id: elementId } : { federationGuid: elementId };
1768
+ tryGetElementProps(props) {
1769
+ if (typeof props === "string") {
1770
+ props = Id64.isId64(props) ? { id: props } : { federationGuid: props };
1739
1771
  }
1740
- else if (elementId instanceof Code) {
1741
- elementId = { code: elementId };
1772
+ else if (props instanceof Code) {
1773
+ props = { code: props };
1774
+ }
1775
+ try {
1776
+ if (IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
1777
+ return this._iModel[_nativeDb].getElement(props);
1778
+ }
1779
+ const cachedElm = this[_cache].get(props);
1780
+ if (cachedElm) {
1781
+ return cachedElm.elProps;
1782
+ }
1783
+ const options = { ...props, useJsNames: true };
1784
+ const instanceKey = this.resolveElementKey(props);
1785
+ const rawInstance = this._iModel[_nativeDb].readInstance(instanceKey, options);
1786
+ const classDef = this._iModel.getJsClass(rawInstance.classFullName);
1787
+ const elementProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel, options: { element: props } });
1788
+ this[_cache].set({ elProps: elementProps, loadOptions: props });
1789
+ return elementProps;
1790
+ }
1791
+ catch {
1792
+ return undefined;
1742
1793
  }
1743
- return this.tryGetElementJson(elementId);
1744
1794
  }
1745
1795
  /** Get an element by Id, FederationGuid, or Code
1746
1796
  * @param elementId either the element's Id, Code, or FederationGuid, or an ElementLoadProps
@@ -1773,7 +1823,7 @@ function processSchemaWriteStatus(status) {
1773
1823
  elementId = { code: elementId };
1774
1824
  else
1775
1825
  elementId.onlyBaseProperties = false; // we must load all properties to construct the element.
1776
- const elementProps = this.tryGetElementJson(elementId);
1826
+ const elementProps = this.tryGetElementProps(elementId);
1777
1827
  if (undefined === elementProps)
1778
1828
  return undefined; // no Element with that elementId found
1779
1829
  const element = this._iModel.constructEntity(elementProps);
@@ -1837,6 +1887,11 @@ function processSchemaWriteStatus(status) {
1837
1887
  */
1838
1888
  insertElement(elProps, options) {
1839
1889
  try {
1890
+ this[_cache].delete({
1891
+ id: elProps.id,
1892
+ federationGuid: elProps.federationGuid,
1893
+ code: elProps.code,
1894
+ });
1840
1895
  return elProps.id = this._iModel[_nativeDb].insertElement(elProps, options);
1841
1896
  }
1842
1897
  catch (err) {
@@ -1858,6 +1913,11 @@ function processSchemaWriteStatus(status) {
1858
1913
  */
1859
1914
  updateElement(elProps) {
1860
1915
  try {
1916
+ this[_cache].delete({
1917
+ id: elProps.id,
1918
+ federationGuid: elProps.federationGuid,
1919
+ code: elProps.code,
1920
+ });
1861
1921
  this._iModel[_nativeDb].updateElement(elProps);
1862
1922
  }
1863
1923
  catch (err) {
@@ -1875,6 +1935,7 @@ function processSchemaWriteStatus(status) {
1875
1935
  const iModel = this._iModel;
1876
1936
  Id64.toIdSet(ids).forEach((id) => {
1877
1937
  try {
1938
+ this[_cache].delete({ id });
1878
1939
  iModel[_nativeDb].deleteElement(id);
1879
1940
  }
1880
1941
  catch (err) {
@@ -2094,9 +2155,9 @@ function processSchemaWriteStatus(status) {
2094
2155
  */
2095
2156
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
2096
2157
  if (aspectClassFullName === undefined) {
2097
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2098
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2099
- UNION ALL
2158
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2159
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2160
+ UNION ALL
2100
2161
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2101
2162
  if (allAspects.length === 0)
2102
2163
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2116,7 +2177,7 @@ function processSchemaWriteStatus(status) {
2116
2177
  if (classIdList === undefined) {
2117
2178
  const classIds = [];
2118
2179
  // eslint-disable-next-line @typescript-eslint/no-deprecated
2119
- this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
2180
+ this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
2120
2181
  and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
2121
2182
  // eslint-disable-next-line @typescript-eslint/no-deprecated
2122
2183
  (statement) => {
@@ -2133,10 +2194,10 @@ function processSchemaWriteStatus(status) {
2133
2194
  return [];
2134
2195
  }
2135
2196
  // Execute an instance query to retrieve all aspects from all the derived classes
2136
- const aspects = this.runInstanceQuery(`SELECT $ FROM (
2137
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2138
- UNION ALL
2139
- SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2197
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
2198
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2199
+ UNION ALL
2200
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2140
2201
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2141
2202
  if (aspects.length === 0)
2142
2203
  Logger.logInfo(BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2377,9 +2438,9 @@ function processSchemaWriteStatus(status) {
2377
2438
  }
2378
2439
  IModelDb.Views = Views;
2379
2440
  /** Represents the current state of a pollable tile content request.
2380
- * Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
2381
- * @internal
2382
- */
2441
+ * Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
2442
+ * @internal
2443
+ */
2383
2444
  let TileContentState;
2384
2445
  (function (TileContentState) {
2385
2446
  TileContentState[TileContentState["New"] = 0] = "New";
@@ -2628,6 +2689,7 @@ export class BriefcaseDb extends IModelDb {
2628
2689
  touch.sync(briefcaseDb.watchFilePathName);
2629
2690
  // Restart default txn to trigger events when watch file is changed by some other process.
2630
2691
  const watcher = fs.watch(briefcaseDb.watchFilePathName, { persistent: false }, () => {
2692
+ nativeDb.clearECDbCache();
2631
2693
  nativeDb.restartDefaultTxn();
2632
2694
  briefcaseDb.changeset = briefcaseDb[_nativeDb].getCurrentChangeset();
2633
2695
  });