@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
@@ -50,6 +50,7 @@ const IModelDbFontsImpl_1 = require("./internal/IModelDbFontsImpl");
50
50
  const Symbols_1 = require("./internal/Symbols");
51
51
  const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
52
52
  const Schema_1 = require("./Schema");
53
+ const ElementLRUCache_1 = require("./internal/ElementLRUCache");
53
54
  // spell:ignore fontid fontmap
54
55
  const loggerCategory = BackendLoggerCategory_1.BackendLoggerCategory.IModelDb;
55
56
  /** @internal */
@@ -579,6 +580,8 @@ class IModelDb extends core_common_1.IModel {
579
580
  this._jsClassMap = undefined;
580
581
  this._schemaMap = undefined;
581
582
  this._schemaContext = undefined;
583
+ this.elements[Symbols_1._cache].clear();
584
+ this.models[Symbols_1._cache].clear();
582
585
  }
583
586
  /** Update the project extents for this iModel.
584
587
  * <p><em>Example:</em>
@@ -979,6 +982,24 @@ class IModelDb extends core_common_1.IModel {
979
982
  return ClassRegistry_1.ClassRegistry.getClass(classFullName, this);
980
983
  }
981
984
  }
985
+ /** Constructs a ResolveInstanceKeyArgs from given parameters
986
+ * @throws [[IModelError]] if the combination of supplied parameters is invalid.
987
+ * @internal
988
+ */
989
+ getInstanceArgs(instanceId, baseClassName, federationGuid, code) {
990
+ if (instanceId && baseClassName) {
991
+ return { partialKey: { id: instanceId, baseClassName } };
992
+ }
993
+ else if (federationGuid) {
994
+ return { federationGuid };
995
+ }
996
+ else if (code) {
997
+ return { code };
998
+ }
999
+ else {
1000
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Either instanceId and baseClassName or federationGuid or code must be specified");
1001
+ }
1002
+ }
982
1003
  /** Get metadata for a class. This method will load the metadata from the iModel into the cache as a side-effect, if necessary.
983
1004
  * @throws [[IModelError]] if the metadata cannot be found nor loaded.
984
1005
  * @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
@@ -1461,6 +1482,9 @@ function processSchemaWriteStatus(status) {
1461
1482
  */
1462
1483
  class Models {
1463
1484
  _iModel;
1485
+ _modelCacheSize = 10;
1486
+ /** @internal */
1487
+ [Symbols_1._cache] = new core_bentley_1.LRUMap(this._modelCacheSize);
1464
1488
  /** @internal */
1465
1489
  constructor(_iModel) {
1466
1490
  this._iModel = _iModel;
@@ -1471,7 +1495,10 @@ function processSchemaWriteStatus(status) {
1471
1495
  * @see tryGetModelProps
1472
1496
  */
1473
1497
  getModelProps(id) {
1474
- return this.getModelJson({ id });
1498
+ const model = this.tryGetModelProps(id);
1499
+ if (undefined === model)
1500
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model=${id}`);
1501
+ return model;
1475
1502
  }
1476
1503
  /** Get the ModelProps with the specified identifier.
1477
1504
  * @param modelId The Model identifier.
@@ -1481,7 +1508,25 @@ function processSchemaWriteStatus(status) {
1481
1508
  * @see getModelProps
1482
1509
  */
1483
1510
  tryGetModelProps(id) {
1484
- return this.tryGetModelJson({ id });
1511
+ try {
1512
+ if (IModelHost_1.IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
1513
+ return this._iModel[Symbols_1._nativeDb].getModel({ id });
1514
+ }
1515
+ const cachedMdl = this[Symbols_1._cache].get(id);
1516
+ if (cachedMdl) {
1517
+ return cachedMdl;
1518
+ }
1519
+ const options = { useJsNames: true };
1520
+ const instanceKey = this.resolveModelKey({ id });
1521
+ const rawInstance = this._iModel[Symbols_1._nativeDb].readInstance(instanceKey, options);
1522
+ const classDef = this._iModel.getJsClass(rawInstance.classFullName);
1523
+ const modelProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel });
1524
+ this[Symbols_1._cache].set(id, modelProps);
1525
+ return modelProps;
1526
+ }
1527
+ catch {
1528
+ return undefined;
1529
+ }
1485
1530
  }
1486
1531
  /** Query for the last modified time for a [[Model]].
1487
1532
  * @param modelId The Id of the model.
@@ -1528,32 +1573,22 @@ function processSchemaWriteStatus(status) {
1528
1573
  return model; // modelClass was not specified, cannot call instanceof to validate
1529
1574
  return model instanceof modelClass ? model : undefined;
1530
1575
  }
1531
- /** Read the properties for a Model as a json string.
1532
- * @param modelIdArg a json string with the identity of the model to load. Must have either "id" or "code".
1533
- * @returns a json string with the properties of the model.
1534
- * @throws [[IModelError]] if the model is not found or cannot be loaded.
1535
- * @see tryGetModelJson
1536
- * @internal
1537
- */
1538
- getModelJson(modelIdArg) {
1539
- const modelJson = this.tryGetModelJson(modelIdArg);
1540
- if (undefined === modelJson) {
1541
- throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model=(id: ${modelIdArg.id}, code: ${modelIdArg.code})`);
1576
+ resolveModelKey(modelIdArg) {
1577
+ const baseClassName = "BisCore:Model";
1578
+ let args;
1579
+ if (modelIdArg.id) {
1580
+ args = { partialKey: { id: modelIdArg.id, baseClassName } };
1542
1581
  }
1543
- return modelJson;
1544
- }
1545
- /** Read the properties for a Model as a json string.
1546
- * @param modelIdArg a json string with the identity of the model to load. Must have either "id" or "code".
1547
- * @returns a json string with the properties of the model or `undefined` if the model is not found.
1548
- * @see getModelJson
1549
- */
1550
- tryGetModelJson(modelIdArg) {
1551
- try {
1552
- return this._iModel[Symbols_1._nativeDb].getModel(modelIdArg);
1582
+ else if (modelIdArg.code) {
1583
+ const modelId = this._iModel.elements.getElementProps({ code: modelIdArg.code }).id;
1584
+ if (!modelId)
1585
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model not found with code: [spec:${modelIdArg.code.spec}, scope:${modelIdArg.code.scope}, value:${modelIdArg.code.value}])`);
1586
+ args = { partialKey: { id: modelId, baseClassName } };
1553
1587
  }
1554
- catch {
1555
- return undefined;
1588
+ else {
1589
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
1556
1590
  }
1591
+ return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
1557
1592
  }
1558
1593
  /** Get the sub-model of the specified Element.
1559
1594
  * See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
@@ -1606,6 +1641,8 @@ function processSchemaWriteStatus(status) {
1606
1641
  */
1607
1642
  updateModel(props) {
1608
1643
  try {
1644
+ if (props.id)
1645
+ this[Symbols_1._cache].delete(props.id);
1609
1646
  this._iModel[Symbols_1._nativeDb].updateModel(props);
1610
1647
  }
1611
1648
  catch (err) {
@@ -1622,6 +1659,7 @@ function processSchemaWriteStatus(status) {
1622
1659
  * @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
1623
1660
  */
1624
1661
  updateGeometryGuid(modelId) {
1662
+ this._iModel.models[Symbols_1._cache].delete(modelId);
1625
1663
  const error = this._iModel[Symbols_1._nativeDb].updateModelGeometryGuid(modelId);
1626
1664
  if (error !== core_bentley_1.IModelStatus.Success)
1627
1665
  throw new core_common_1.IModelError(error, `updating geometry guid for model ${modelId}`);
@@ -1633,6 +1671,7 @@ function processSchemaWriteStatus(status) {
1633
1671
  deleteModel(ids) {
1634
1672
  core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
1635
1673
  try {
1674
+ this[Symbols_1._cache].delete(id);
1636
1675
  this._iModel[Symbols_1._nativeDb].deleteModel(id);
1637
1676
  }
1638
1677
  catch (err) {
@@ -1670,6 +1709,9 @@ function processSchemaWriteStatus(status) {
1670
1709
  */
1671
1710
  class Elements {
1672
1711
  _iModel;
1712
+ _elementCacheSize = 50;
1713
+ /** @internal */
1714
+ [Symbols_1._cache] = new ElementLRUCache_1.ElementLRUCache(this._elementCacheSize);
1673
1715
  /** @internal */
1674
1716
  constructor(_iModel) {
1675
1717
  this._iModel = _iModel;
@@ -1686,50 +1728,40 @@ function processSchemaWriteStatus(status) {
1686
1728
  return !stmt.nextRow() ? undefined : stmt.getValueId(0);
1687
1729
  }) : undefined;
1688
1730
  }
1689
- /** Read element data from the iModel as JSON
1690
- * @param elementIdArg a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
1691
- * @returns The JSON properties of the element.
1692
- * @throws [[IModelError]] if the element is not found or cannot be loaded.
1693
- * @see tryGetElementJson
1694
- * @internal
1695
- */
1696
- getElementJson(elementId) {
1697
- const elementProps = this.tryGetElementJson(elementId);
1698
- if (undefined === elementProps)
1699
- throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `reading element={id: ${elementId.id} federationGuid: ${elementId.federationGuid}, code: ${elementId.code}}`);
1700
- return elementProps;
1701
- }
1702
- /** Read element data from the iModel as JSON
1703
- * @param loadProps - a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
1704
- * @returns The JSON properties of the element or `undefined` if the element is not found.
1705
- * @throws [[IModelError]] if the element exists, but cannot be loaded.
1706
- * @see getElementJson
1707
- */
1708
- tryGetElementJson(loadProps) {
1709
- try {
1710
- return this._iModel[Symbols_1._nativeDb].getElement(loadProps);
1711
- }
1712
- catch {
1713
- return undefined;
1714
- }
1715
- }
1716
1731
  /** Get properties of an Element by Id, FederationGuid, or Code
1717
1732
  * @throws [[IModelError]] if the element is not found or cannot be loaded.
1718
1733
  * @see tryGetElementProps
1719
1734
  */
1720
1735
  getElementProps(props) {
1736
+ const elProp = this.tryGetElementProps(props);
1737
+ if (undefined === elProp)
1738
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `element not found`);
1739
+ return elProp;
1740
+ }
1741
+ resolveElementKey(props) {
1742
+ const baseClassName = "BisCore:Element";
1743
+ let args;
1721
1744
  if (typeof props === "string") {
1722
- props = core_bentley_1.Id64.isId64(props) ? { id: props } : { federationGuid: props };
1745
+ args = core_bentley_1.Id64.isId64(props) ? { partialKey: { id: props, baseClassName } } : { federationGuid: props };
1723
1746
  }
1724
1747
  else if (props instanceof core_common_1.Code) {
1725
- props = { code: props };
1748
+ args = { code: props };
1726
1749
  }
1727
- try {
1728
- return this._iModel[Symbols_1._nativeDb].getElement(props);
1729
- }
1730
- catch (err) {
1731
- throw new core_common_1.IModelError(err.errorNumber, err.message);
1750
+ else {
1751
+ if (props.id) {
1752
+ args = { partialKey: { id: props.id, baseClassName } };
1753
+ }
1754
+ else if (props.federationGuid) {
1755
+ args = { federationGuid: props.federationGuid };
1756
+ }
1757
+ else if (props.code) {
1758
+ args = { code: props.code };
1759
+ }
1760
+ else {
1761
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
1762
+ }
1732
1763
  }
1764
+ return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
1733
1765
  }
1734
1766
  /** Get properties of an Element by Id, FederationGuid, or Code
1735
1767
  * @returns The properties of the element or `undefined` if the element is not found.
@@ -1737,14 +1769,32 @@ function processSchemaWriteStatus(status) {
1737
1769
  * @note Useful for cases when an element may or may not exist and throwing an `Error` would be overkill.
1738
1770
  * @see getElementProps
1739
1771
  */
1740
- tryGetElementProps(elementId) {
1741
- if (typeof elementId === "string") {
1742
- elementId = core_bentley_1.Id64.isId64(elementId) ? { id: elementId } : { federationGuid: elementId };
1772
+ tryGetElementProps(props) {
1773
+ if (typeof props === "string") {
1774
+ props = core_bentley_1.Id64.isId64(props) ? { id: props } : { federationGuid: props };
1743
1775
  }
1744
- else if (elementId instanceof core_common_1.Code) {
1745
- elementId = { code: elementId };
1776
+ else if (props instanceof core_common_1.Code) {
1777
+ props = { code: props };
1778
+ }
1779
+ try {
1780
+ if (IModelHost_1.IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
1781
+ return this._iModel[Symbols_1._nativeDb].getElement(props);
1782
+ }
1783
+ const cachedElm = this[Symbols_1._cache].get(props);
1784
+ if (cachedElm) {
1785
+ return cachedElm.elProps;
1786
+ }
1787
+ const options = { ...props, useJsNames: true };
1788
+ const instanceKey = this.resolveElementKey(props);
1789
+ const rawInstance = this._iModel[Symbols_1._nativeDb].readInstance(instanceKey, options);
1790
+ const classDef = this._iModel.getJsClass(rawInstance.classFullName);
1791
+ const elementProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel, options: { element: props } });
1792
+ this[Symbols_1._cache].set({ elProps: elementProps, loadOptions: props });
1793
+ return elementProps;
1794
+ }
1795
+ catch {
1796
+ return undefined;
1746
1797
  }
1747
- return this.tryGetElementJson(elementId);
1748
1798
  }
1749
1799
  /** Get an element by Id, FederationGuid, or Code
1750
1800
  * @param elementId either the element's Id, Code, or FederationGuid, or an ElementLoadProps
@@ -1777,7 +1827,7 @@ function processSchemaWriteStatus(status) {
1777
1827
  elementId = { code: elementId };
1778
1828
  else
1779
1829
  elementId.onlyBaseProperties = false; // we must load all properties to construct the element.
1780
- const elementProps = this.tryGetElementJson(elementId);
1830
+ const elementProps = this.tryGetElementProps(elementId);
1781
1831
  if (undefined === elementProps)
1782
1832
  return undefined; // no Element with that elementId found
1783
1833
  const element = this._iModel.constructEntity(elementProps);
@@ -1841,6 +1891,11 @@ function processSchemaWriteStatus(status) {
1841
1891
  */
1842
1892
  insertElement(elProps, options) {
1843
1893
  try {
1894
+ this[Symbols_1._cache].delete({
1895
+ id: elProps.id,
1896
+ federationGuid: elProps.federationGuid,
1897
+ code: elProps.code,
1898
+ });
1844
1899
  return elProps.id = this._iModel[Symbols_1._nativeDb].insertElement(elProps, options);
1845
1900
  }
1846
1901
  catch (err) {
@@ -1862,6 +1917,11 @@ function processSchemaWriteStatus(status) {
1862
1917
  */
1863
1918
  updateElement(elProps) {
1864
1919
  try {
1920
+ this[Symbols_1._cache].delete({
1921
+ id: elProps.id,
1922
+ federationGuid: elProps.federationGuid,
1923
+ code: elProps.code,
1924
+ });
1865
1925
  this._iModel[Symbols_1._nativeDb].updateElement(elProps);
1866
1926
  }
1867
1927
  catch (err) {
@@ -1879,6 +1939,7 @@ function processSchemaWriteStatus(status) {
1879
1939
  const iModel = this._iModel;
1880
1940
  core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
1881
1941
  try {
1942
+ this[Symbols_1._cache].delete({ id });
1882
1943
  iModel[Symbols_1._nativeDb].deleteElement(id);
1883
1944
  }
1884
1945
  catch (err) {
@@ -2098,9 +2159,9 @@ function processSchemaWriteStatus(status) {
2098
2159
  */
2099
2160
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
2100
2161
  if (aspectClassFullName === undefined) {
2101
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2102
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2103
- UNION ALL
2162
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2163
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2164
+ UNION ALL
2104
2165
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2105
2166
  if (allAspects.length === 0)
2106
2167
  core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2120,7 +2181,7 @@ function processSchemaWriteStatus(status) {
2120
2181
  if (classIdList === undefined) {
2121
2182
  const classIds = [];
2122
2183
  // eslint-disable-next-line @typescript-eslint/no-deprecated
2123
- this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
2184
+ this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
2124
2185
  and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
2125
2186
  // eslint-disable-next-line @typescript-eslint/no-deprecated
2126
2187
  (statement) => {
@@ -2137,10 +2198,10 @@ function processSchemaWriteStatus(status) {
2137
2198
  return [];
2138
2199
  }
2139
2200
  // Execute an instance query to retrieve all aspects from all the derived classes
2140
- const aspects = this.runInstanceQuery(`SELECT $ FROM (
2141
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2142
- UNION ALL
2143
- SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2201
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
2202
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2203
+ UNION ALL
2204
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2144
2205
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
2145
2206
  if (aspects.length === 0)
2146
2207
  core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2381,9 +2442,9 @@ function processSchemaWriteStatus(status) {
2381
2442
  }
2382
2443
  IModelDb.Views = Views;
2383
2444
  /** Represents the current state of a pollable tile content request.
2384
- * Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
2385
- * @internal
2386
- */
2445
+ * Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
2446
+ * @internal
2447
+ */
2387
2448
  let TileContentState;
2388
2449
  (function (TileContentState) {
2389
2450
  TileContentState[TileContentState["New"] = 0] = "New";
@@ -2632,6 +2693,7 @@ class BriefcaseDb extends IModelDb {
2632
2693
  touch.sync(briefcaseDb.watchFilePathName);
2633
2694
  // Restart default txn to trigger events when watch file is changed by some other process.
2634
2695
  const watcher = fs.watch(briefcaseDb.watchFilePathName, { persistent: false }, () => {
2696
+ nativeDb.clearECDbCache();
2635
2697
  nativeDb.restartDefaultTxn();
2636
2698
  briefcaseDb.changeset = briefcaseDb[Symbols_1._nativeDb].getCurrentChangeset();
2637
2699
  });