@itwin/core-backend 5.1.0-dev.32 → 5.1.0-dev.36

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 (358) hide show
  1. package/CHANGELOG.md +6 -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.js.map +1 -1
  9. package/lib/cjs/ChangeSummaryManager.js +2 -2
  10. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  11. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  12. package/lib/cjs/ChangesetECAdaptor.d.ts +54 -8
  13. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  14. package/lib/cjs/ChangesetECAdaptor.js +477 -275
  15. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  16. package/lib/cjs/ChannelControl.js.map +1 -1
  17. package/lib/cjs/CheckpointManager.js.map +1 -1
  18. package/lib/cjs/ClassRegistry.js +5 -5
  19. package/lib/cjs/ClassRegistry.js.map +1 -1
  20. package/lib/cjs/CloudSqlite.js.map +1 -1
  21. package/lib/cjs/CodeService.js.map +1 -1
  22. package/lib/cjs/CodeSpecs.js.map +1 -1
  23. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  24. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  25. package/lib/cjs/DevTools.js.map +1 -1
  26. package/lib/cjs/DisplayStyle.js.map +1 -1
  27. package/lib/cjs/ECDb.js.map +1 -1
  28. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  29. package/lib/cjs/ECSqlStatement.js.map +1 -1
  30. package/lib/cjs/Element.js.map +1 -1
  31. package/lib/cjs/ElementAspect.js.map +1 -1
  32. package/lib/cjs/ElementGraphics.js.map +1 -1
  33. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  34. package/lib/cjs/Entity.js.map +1 -1
  35. package/lib/cjs/EntityReferences.js.map +1 -1
  36. package/lib/cjs/ExportGraphics.js.map +1 -1
  37. package/lib/cjs/ExternalSource.js.map +1 -1
  38. package/lib/cjs/FontFile.js.map +1 -1
  39. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  40. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  41. package/lib/cjs/GeometrySummary.js +47 -47
  42. package/lib/cjs/GeometrySummary.js.map +1 -1
  43. package/lib/cjs/IModelDb.d.ts.map +1 -1
  44. package/lib/cjs/IModelDb.js +9 -8
  45. package/lib/cjs/IModelDb.js.map +1 -1
  46. package/lib/cjs/IModelDbFonts.js.map +1 -1
  47. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  48. package/lib/cjs/IModelHost.js.map +1 -1
  49. package/lib/cjs/IModelJsFs.js.map +1 -1
  50. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  51. package/lib/cjs/IpcHost.js.map +1 -1
  52. package/lib/cjs/LineStyle.js.map +1 -1
  53. package/lib/cjs/LocalHub.js +1 -1
  54. package/lib/cjs/LocalHub.js.map +1 -1
  55. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  56. package/lib/cjs/LockControl.js.map +1 -1
  57. package/lib/cjs/Material.js.map +1 -1
  58. package/lib/cjs/Model.js.map +1 -1
  59. package/lib/cjs/NativeAppStorage.js.map +1 -1
  60. package/lib/cjs/NativeHost.js.map +1 -1
  61. package/lib/cjs/NavigationRelationship.js.map +1 -1
  62. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  63. package/lib/cjs/PropertyStore.js.map +1 -1
  64. package/lib/cjs/Relationship.js.map +1 -1
  65. package/lib/cjs/RpcBackend.js.map +1 -1
  66. package/lib/cjs/SQLiteDb.js.map +1 -1
  67. package/lib/cjs/Schema.js.map +1 -1
  68. package/lib/cjs/SchemaSync.js.map +1 -1
  69. package/lib/cjs/SchemaUtils.js.map +1 -1
  70. package/lib/cjs/SheetIndex.js.map +1 -1
  71. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  72. package/lib/cjs/SqliteStatement.js.map +1 -1
  73. package/lib/cjs/Texture.js.map +1 -1
  74. package/lib/cjs/TileStorage.js.map +1 -1
  75. package/lib/cjs/TxnManager.js.map +1 -1
  76. package/lib/cjs/ViewDefinition.js.map +1 -1
  77. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  78. package/lib/cjs/ViewStore.js.map +1 -1
  79. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  80. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  81. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  82. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  83. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  84. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  85. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  86. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  87. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  88. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  89. package/lib/cjs/core-backend.d.ts.map +1 -1
  90. package/lib/cjs/core-backend.js +20 -0
  91. package/lib/cjs/core-backend.js.map +1 -1
  92. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  93. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  94. package/lib/cjs/domains/GenericElements.js.map +1 -1
  95. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  96. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  97. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  98. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  99. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  100. package/lib/cjs/internal/HubMock.js.map +1 -1
  101. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  102. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  103. package/lib/cjs/internal/NoLocks.js.map +1 -1
  104. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  105. package/lib/cjs/internal/Symbols.js.map +1 -1
  106. package/lib/cjs/internal/cross-package.js.map +1 -1
  107. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  108. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  109. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  110. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  111. package/lib/cjs/rpc/multipart.js.map +1 -1
  112. package/lib/cjs/rpc/tracing.js.map +1 -1
  113. package/lib/cjs/rpc/web/logging.js.map +1 -1
  114. package/lib/cjs/rpc/web/request.js.map +1 -1
  115. package/lib/cjs/rpc/web/response.js.map +1 -1
  116. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  117. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  118. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  119. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  120. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  121. package/lib/cjs/workspace/Settings.js.map +1 -1
  122. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  123. package/lib/cjs/workspace/Workspace.js.map +1 -1
  124. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  125. package/lib/esm/BackendHubAccess.js.map +1 -1
  126. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  127. package/lib/esm/BisCoreSchema.js.map +1 -1
  128. package/lib/esm/BlobContainerService.js.map +1 -1
  129. package/lib/esm/BriefcaseManager.js.map +1 -1
  130. package/lib/esm/CatalogDb.js.map +1 -1
  131. package/lib/esm/Category.js.map +1 -1
  132. package/lib/esm/ChangeSummaryManager.js +2 -2
  133. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  134. package/lib/esm/ChangedElementsDb.js.map +1 -1
  135. package/lib/esm/ChangesetECAdaptor.d.ts +54 -8
  136. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  137. package/lib/esm/ChangesetECAdaptor.js +477 -275
  138. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  139. package/lib/esm/ChannelControl.js.map +1 -1
  140. package/lib/esm/CheckpointManager.js.map +1 -1
  141. package/lib/esm/ClassRegistry.js +5 -5
  142. package/lib/esm/ClassRegistry.js.map +1 -1
  143. package/lib/esm/CloudSqlite.js.map +1 -1
  144. package/lib/esm/CodeService.js.map +1 -1
  145. package/lib/esm/CodeSpecs.js.map +1 -1
  146. package/lib/esm/ConcurrentQuery.js.map +1 -1
  147. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  148. package/lib/esm/DevTools.js.map +1 -1
  149. package/lib/esm/DisplayStyle.js.map +1 -1
  150. package/lib/esm/ECDb.js.map +1 -1
  151. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  152. package/lib/esm/ECSqlStatement.js.map +1 -1
  153. package/lib/esm/Element.js.map +1 -1
  154. package/lib/esm/ElementAspect.js.map +1 -1
  155. package/lib/esm/ElementGraphics.js.map +1 -1
  156. package/lib/esm/ElementTreeWalker.js.map +1 -1
  157. package/lib/esm/Entity.js.map +1 -1
  158. package/lib/esm/EntityReferences.js.map +1 -1
  159. package/lib/esm/ExportGraphics.js.map +1 -1
  160. package/lib/esm/ExternalSource.js.map +1 -1
  161. package/lib/esm/FontFile.js.map +1 -1
  162. package/lib/esm/GeoCoordConfig.js.map +1 -1
  163. package/lib/esm/GeographicCRSServices.js.map +1 -1
  164. package/lib/esm/GeometrySummary.js +47 -47
  165. package/lib/esm/GeometrySummary.js.map +1 -1
  166. package/lib/esm/IModelDb.d.ts.map +1 -1
  167. package/lib/esm/IModelDb.js +9 -8
  168. package/lib/esm/IModelDb.js.map +1 -1
  169. package/lib/esm/IModelDbFonts.js.map +1 -1
  170. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  171. package/lib/esm/IModelHost.js.map +1 -1
  172. package/lib/esm/IModelJsFs.js.map +1 -1
  173. package/lib/esm/ImageSourceConversion.js.map +1 -1
  174. package/lib/esm/IpcHost.js.map +1 -1
  175. package/lib/esm/LineStyle.js.map +1 -1
  176. package/lib/esm/LocalHub.js +1 -1
  177. package/lib/esm/LocalHub.js.map +1 -1
  178. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  179. package/lib/esm/LockControl.js.map +1 -1
  180. package/lib/esm/Material.js.map +1 -1
  181. package/lib/esm/Model.js.map +1 -1
  182. package/lib/esm/NativeAppStorage.js.map +1 -1
  183. package/lib/esm/NativeHost.js.map +1 -1
  184. package/lib/esm/NavigationRelationship.js.map +1 -1
  185. package/lib/esm/PromiseMemoizer.js.map +1 -1
  186. package/lib/esm/PropertyStore.js.map +1 -1
  187. package/lib/esm/Relationship.js.map +1 -1
  188. package/lib/esm/RpcBackend.js.map +1 -1
  189. package/lib/esm/SQLiteDb.js.map +1 -1
  190. package/lib/esm/Schema.js.map +1 -1
  191. package/lib/esm/SchemaSync.js.map +1 -1
  192. package/lib/esm/SchemaUtils.js.map +1 -1
  193. package/lib/esm/SheetIndex.js.map +1 -1
  194. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  195. package/lib/esm/SqliteStatement.js.map +1 -1
  196. package/lib/esm/Texture.js.map +1 -1
  197. package/lib/esm/TileStorage.js.map +1 -1
  198. package/lib/esm/TxnManager.js.map +1 -1
  199. package/lib/esm/ViewDefinition.js.map +1 -1
  200. package/lib/esm/ViewStateHydrator.js.map +1 -1
  201. package/lib/esm/ViewStore.js.map +1 -1
  202. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  203. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  204. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  205. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  206. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  207. package/lib/esm/core-backend.d.ts.map +1 -1
  208. package/lib/esm/core-backend.js +20 -0
  209. package/lib/esm/core-backend.js.map +1 -1
  210. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  211. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  212. package/lib/esm/domains/GenericElements.js.map +1 -1
  213. package/lib/esm/domains/GenericSchema.js.map +1 -1
  214. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  215. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  216. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  217. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  218. package/lib/esm/internal/HubMock.js.map +1 -1
  219. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  220. package/lib/esm/internal/NativePlatform.js.map +1 -1
  221. package/lib/esm/internal/NoLocks.js.map +1 -1
  222. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  223. package/lib/esm/internal/Symbols.js.map +1 -1
  224. package/lib/esm/internal/cross-package.js.map +1 -1
  225. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  226. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  227. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  228. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  229. package/lib/esm/rpc/multipart.js.map +1 -1
  230. package/lib/esm/rpc/tracing.js.map +1 -1
  231. package/lib/esm/rpc/web/logging.js.map +1 -1
  232. package/lib/esm/rpc/web/request.js.map +1 -1
  233. package/lib/esm/rpc/web/response.js.map +1 -1
  234. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  235. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  236. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  237. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  238. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  239. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  240. package/lib/esm/test/AttachDb.test.js +11 -11
  241. package/lib/esm/test/AttachDb.test.js.map +1 -1
  242. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  243. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  244. package/lib/esm/test/IModelHost.test.js.map +1 -1
  245. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  246. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  247. package/lib/esm/test/IpcHost.test.js.map +1 -1
  248. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  249. package/lib/esm/test/PrintElementTree.js.map +1 -1
  250. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  251. package/lib/esm/test/RevisionUtility.js.map +1 -1
  252. package/lib/esm/test/SchemaUtils.test.js +25 -25
  253. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  254. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  255. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  256. package/lib/esm/test/TestUtils.js.map +1 -1
  257. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  258. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  259. package/lib/esm/test/categories/Category.test.js.map +1 -1
  260. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  261. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  262. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  263. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  264. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  265. package/lib/esm/test/ecdb/ECDb.test.js +57 -57
  266. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  267. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  268. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  269. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  270. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  271. package/lib/esm/test/ecdb/ECSqlQuery.test.js +7 -7
  272. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  273. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  274. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  275. package/lib/esm/test/ecdb/ECSqlStatement.test.js +292 -292
  276. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  277. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  278. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  279. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  280. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  281. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  282. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  283. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  284. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  285. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  286. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  287. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  288. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  289. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  290. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  291. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  292. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  293. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  294. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  295. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  296. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  297. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  298. package/lib/esm/test/imageData.js.map +1 -1
  299. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  300. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  301. package/lib/esm/test/imodel/IModel.test.js +27 -0
  302. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  303. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  304. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  305. package/lib/esm/test/index.js.map +1 -1
  306. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  307. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  308. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  309. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  310. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  311. package/lib/esm/test/rpc/response.test.js.map +1 -1
  312. package/lib/esm/test/schema/ClassRegistry.test.js +71 -71
  313. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  314. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  315. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  316. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  317. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  318. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  319. package/lib/esm/test/standalone/ChangesetReader.test.js +322 -164
  320. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  321. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  322. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  323. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  324. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  325. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  326. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  327. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  328. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  329. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  330. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  331. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  332. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  333. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  334. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  335. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  336. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  337. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  338. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  339. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  340. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  341. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  342. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  343. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  344. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  345. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  346. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  347. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  348. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  349. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  350. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  351. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  352. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  353. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  354. package/lib/esm/workspace/Settings.js.map +1 -1
  355. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  356. package/lib/esm/workspace/Workspace.js.map +1 -1
  357. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  358. package/package.json +13 -13
@@ -60,7 +60,7 @@ import { Arc3d, IModelJson, Point3d } from "@itwin/core-geometry";
60
60
  import { assert, expect } from "chai";
61
61
  import * as path from "node:path";
62
62
  import { DrawingCategory } from "../../Category";
63
- import { ChangesetECAdaptor as ECChangesetAdaptor, PartialECChangeUnifier } from "../../ChangesetECAdaptor";
63
+ import { ChangesetECAdaptor as ECChangesetAdaptor, ECChangeUnifierCache, PartialECChangeUnifier } from "../../ChangesetECAdaptor";
64
64
  import { HubMock } from "../../internal/HubMock";
65
65
  import { SnapshotDb } from "../../IModelDb";
66
66
  import { SqliteChangesetReader } from "../../SqliteChangesetReader";
@@ -92,13 +92,13 @@ describe("Changeset Reader API", async () => {
92
92
  assert.isNotEmpty(rwIModelId);
93
93
  const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
94
94
  // 1. Import schema with class that span overflow table.
95
- const schema = `<?xml version="1.0" encoding="UTF-8"?>
96
- <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
97
- <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
98
- <ECEntityClass typeName="Test2dElement">
99
- <BaseClass>bis:GraphicalElement2d</BaseClass>
100
- ${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i}" typeName="string"/>`).join("\n")}
101
- </ECEntityClass>
95
+ const schema = `<?xml version="1.0" encoding="UTF-8"?>
96
+ <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
97
+ <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
98
+ <ECEntityClass typeName="Test2dElement">
99
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
100
+ ${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i}" typeName="string"/>`).join("\n")}
101
+ </ECEntityClass>
102
102
  </ECSchema>`;
103
103
  await rwIModel.importSchemaStrings([schema]);
104
104
  rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);
@@ -215,13 +215,13 @@ describe("Changeset Reader API", async () => {
215
215
  const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: "TestSubject", accessToken: adminToken });
216
216
  assert.isNotEmpty(rwIModelId);
217
217
  const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
218
- const schema = `<?xml version="1.0" encoding="UTF-8"?>
219
- <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
220
- <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
221
- <ECEntityClass typeName="Test2dElement">
222
- <BaseClass>bis:GraphicalElement2d</BaseClass>
223
- <ECProperty propertyName="s" typeName="string"/>
224
- </ECEntityClass>
218
+ const schema = `<?xml version="1.0" encoding="UTF-8"?>
219
+ <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
220
+ <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
221
+ <ECEntityClass typeName="Test2dElement">
222
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
223
+ <ECProperty propertyName="s" typeName="string"/>
224
+ </ECEntityClass>
225
225
  </ECSchema>`;
226
226
  await rwIModel.importSchemaStrings([schema]);
227
227
  rwIModel.saveChanges("user 1: schema changeset");
@@ -292,32 +292,24 @@ describe("Changeset Reader API", async () => {
292
292
  };
293
293
  rwIModel.saveChanges("user 1: data");
294
294
  if (true || "test local changes") {
295
- const env_1 = { stack: [], error: void 0, hasError: false };
296
- try {
297
- const reader = SqliteChangesetReader.openLocalChanges({ db: rwIModel, disableSchemaCheck: true });
298
- const adaptor = __addDisposableResource(env_1, new ECChangesetAdaptor(reader), false);
299
- const cci = new PartialECChangeUnifier();
300
- while (adaptor.step()) {
301
- cci.appendFrom(adaptor);
302
- }
303
- const changes = Array.from(cci.instances);
295
+ const testChanges = (changes) => {
304
296
  assert.equal(changes.length, 3);
305
- assert.equal(changes[0].ECInstanceId, "0x20000000004");
306
- assert.equal(changes[0].$meta?.classFullName, "TestDomain:Test2dElement");
307
- assert.equal(changes[0].$meta?.op, "Inserted");
297
+ assert.equal(changes[0].ECInstanceId, "0x20000000001");
298
+ assert.equal(changes[0].$meta?.classFullName, "BisCore:DrawingModel");
299
+ assert.equal(changes[0].$meta?.op, "Updated");
308
300
  assert.equal(changes[0].$meta?.stage, "New");
301
+ assert.isNotNull(changes[0].LastMod);
302
+ assert.isNotNull(changes[0].GeometryGuid);
309
303
  assert.equal(changes[1].ECInstanceId, "0x20000000001");
310
304
  assert.equal(changes[1].$meta?.classFullName, "BisCore:DrawingModel");
311
305
  assert.equal(changes[1].$meta?.op, "Updated");
312
- assert.equal(changes[1].$meta?.stage, "New");
313
- assert.isNotNull(changes[1].LastMod);
314
- assert.isNotNull(changes[1].GeometryGuid);
315
- assert.equal(changes[2].ECInstanceId, "0x20000000001");
316
- assert.equal(changes[2].$meta?.classFullName, "BisCore:DrawingModel");
317
- assert.equal(changes[2].$meta?.op, "Updated");
318
- assert.equal(changes[2].$meta?.stage, "Old");
319
- assert.isNull(changes[2].LastMod);
320
- assert.isNull(changes[2].GeometryGuid);
306
+ assert.equal(changes[1].$meta?.stage, "Old");
307
+ assert.isNull(changes[1].LastMod);
308
+ assert.isNull(changes[1].GeometryGuid);
309
+ assert.equal(changes[2].ECInstanceId, "0x20000000004");
310
+ assert.equal(changes[2].$meta?.classFullName, "TestDomain:Test2dElement");
311
+ assert.equal(changes[2].$meta?.op, "Inserted");
312
+ assert.equal(changes[2].$meta?.stage, "New");
321
313
  const el = changes.filter((x) => x.ECInstanceId === "0x20000000004")[0];
322
314
  assert.equal(el.Rotation, 0);
323
315
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -357,15 +349,45 @@ describe("Changeset Reader API", async () => {
357
349
  1,
358
350
  ],
359
351
  stage: "New",
360
- fallbackClassId: undefined,
361
352
  });
353
+ };
354
+ if (true || "test with InMemoryInstanceCache") {
355
+ const env_1 = { stack: [], error: void 0, hasError: false };
356
+ try {
357
+ const reader = __addDisposableResource(env_1, SqliteChangesetReader.openLocalChanges({ db: rwIModel, disableSchemaCheck: true }), false);
358
+ const adaptor = __addDisposableResource(env_1, new ECChangesetAdaptor(reader), false);
359
+ const pcu = __addDisposableResource(env_1, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemory()), false);
360
+ while (adaptor.step()) {
361
+ pcu.appendFrom(adaptor);
362
+ }
363
+ testChanges(Array.from(pcu.instances));
364
+ }
365
+ catch (e_1) {
366
+ env_1.error = e_1;
367
+ env_1.hasError = true;
368
+ }
369
+ finally {
370
+ __disposeResources(env_1);
371
+ }
362
372
  }
363
- catch (e_1) {
364
- env_1.error = e_1;
365
- env_1.hasError = true;
366
- }
367
- finally {
368
- __disposeResources(env_1);
373
+ if (true || "test with SqliteBackedInstanceCache") {
374
+ const env_2 = { stack: [], error: void 0, hasError: false };
375
+ try {
376
+ const reader = __addDisposableResource(env_2, SqliteChangesetReader.openLocalChanges({ db: rwIModel, disableSchemaCheck: true }), false);
377
+ const adaptor = __addDisposableResource(env_2, new ECChangesetAdaptor(reader), false);
378
+ const pcu = __addDisposableResource(env_2, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBacked(rwIModel)), false);
379
+ while (adaptor.step()) {
380
+ pcu.appendFrom(adaptor);
381
+ }
382
+ testChanges(Array.from(pcu.instances));
383
+ }
384
+ catch (e_2) {
385
+ env_2.error = e_2;
386
+ env_2.hasError = true;
387
+ }
388
+ finally {
389
+ __disposeResources(env_2);
390
+ }
369
391
  }
370
392
  }
371
393
  const targetDir = path.join(KnownTestLocations.outputDir, rwIModelId, "changesets");
@@ -373,86 +395,144 @@ describe("Changeset Reader API", async () => {
373
395
  await updatedElements();
374
396
  const changesets = await HubMock.downloadChangesets({ iModelId: rwIModelId, targetDir });
375
397
  if (true || "updated element") {
376
- const reader = SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: rwIModel, disableSchemaCheck: true });
377
- const adaptor = new ECChangesetAdaptor(reader);
378
- const cci = new PartialECChangeUnifier();
379
- while (adaptor.step()) {
380
- cci.appendFrom(adaptor);
398
+ const testChanges = (changes) => {
399
+ assert.equal(changes.length, 4);
400
+ const classId = getClassIdByName(rwIModel, "Test2dElement");
401
+ // new value
402
+ assert.equal(changes[2].ECInstanceId, "0x20000000004");
403
+ assert.equal(changes[2].ECClassId, classId);
404
+ assert.equal(changes[2].s, "updated property");
405
+ assert.equal(changes[2].$meta?.classFullName, "TestDomain:Test2dElement");
406
+ assert.equal(changes[2].$meta?.op, "Updated");
407
+ assert.equal(changes[2].$meta?.stage, "New");
408
+ // old value
409
+ assert.equal(changes[3].ECInstanceId, "0x20000000004");
410
+ assert.equal(changes[3].ECClassId, classId);
411
+ assert.equal(changes[3].s, "xxxxxxxxx");
412
+ assert.equal(changes[3].$meta?.classFullName, "TestDomain:Test2dElement");
413
+ assert.equal(changes[3].$meta?.op, "Updated");
414
+ assert.equal(changes[3].$meta?.stage, "Old");
415
+ };
416
+ if (true || "test with InMemoryInstanceCache") {
417
+ const env_3 = { stack: [], error: void 0, hasError: false };
418
+ try {
419
+ const reader = __addDisposableResource(env_3, SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: rwIModel, disableSchemaCheck: true }), false);
420
+ const adaptor = __addDisposableResource(env_3, new ECChangesetAdaptor(reader), false);
421
+ const pcu = __addDisposableResource(env_3, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemory()), false);
422
+ while (adaptor.step()) {
423
+ pcu.appendFrom(adaptor);
424
+ }
425
+ testChanges(Array.from(pcu.instances));
426
+ }
427
+ catch (e_3) {
428
+ env_3.error = e_3;
429
+ env_3.hasError = true;
430
+ }
431
+ finally {
432
+ __disposeResources(env_3);
433
+ }
434
+ }
435
+ if (true || "test with SqliteBackedInstanceCache") {
436
+ const env_4 = { stack: [], error: void 0, hasError: false };
437
+ try {
438
+ const reader = __addDisposableResource(env_4, SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: rwIModel, disableSchemaCheck: true }), false);
439
+ const adaptor = __addDisposableResource(env_4, new ECChangesetAdaptor(reader), false);
440
+ const pcu = __addDisposableResource(env_4, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBacked(rwIModel)), false);
441
+ while (adaptor.step()) {
442
+ pcu.appendFrom(adaptor);
443
+ }
444
+ testChanges(Array.from(pcu.instances));
445
+ }
446
+ catch (e_4) {
447
+ env_4.error = e_4;
448
+ env_4.hasError = true;
449
+ }
450
+ finally {
451
+ __disposeResources(env_4);
452
+ }
381
453
  }
382
- const changes = Array.from(cci.instances);
383
- assert.equal(changes.length, 4);
384
- const classId = getClassIdByName(rwIModel, "Test2dElement");
385
- // new value
386
- assert.equal(changes[0].ECInstanceId, "0x20000000004");
387
- assert.equal(changes[0].ECClassId, classId);
388
- assert.equal(changes[0].s, "updated property");
389
- assert.equal(changes[0].$meta?.classFullName, "TestDomain:Test2dElement");
390
- assert.equal(changes[0].$meta?.op, "Updated");
391
- assert.equal(changes[0].$meta?.stage, "New");
392
- // old value
393
- assert.equal(changes[1].ECInstanceId, "0x20000000004");
394
- assert.equal(changes[1].ECClassId, classId);
395
- assert.equal(changes[1].s, "xxxxxxxxx");
396
- assert.equal(changes[1].$meta?.classFullName, "TestDomain:Test2dElement");
397
- assert.equal(changes[1].$meta?.op, "Updated");
398
- assert.equal(changes[1].$meta?.stage, "Old");
399
454
  }
400
455
  if (true || "updated element when no classId") {
401
456
  const otherDb = SnapshotDb.openFile(IModelTestUtils.resolveAssetFile("test.bim"));
402
- const reader = SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: otherDb, disableSchemaCheck: true });
403
- const adaptor = new ECChangesetAdaptor(reader);
404
- const cci = new PartialECChangeUnifier();
405
- while (adaptor.step()) {
406
- cci.appendFrom(adaptor);
457
+ const testChanges = (changes) => {
458
+ assert.equal(changes.length, 4);
459
+ // new value
460
+ assert.equal(changes[2].ECInstanceId, "0x20000000004");
461
+ assert.isUndefined(changes[2].ECClassId);
462
+ assert.isDefined(changes[2].$meta?.fallbackClassId);
463
+ assert.equal(changes[2].$meta?.fallbackClassId, "0x3d");
464
+ assert.isUndefined(changes[2].s);
465
+ assert.equal(changes[2].$meta?.classFullName, "BisCore:GeometricElement2d");
466
+ assert.equal(changes[2].$meta?.op, "Updated");
467
+ assert.equal(changes[2].$meta?.stage, "New");
468
+ // old value
469
+ assert.equal(changes[3].ECInstanceId, "0x20000000004");
470
+ assert.isUndefined(changes[3].ECClassId);
471
+ assert.isDefined(changes[3].$meta?.fallbackClassId);
472
+ assert.equal(changes[3].$meta?.fallbackClassId, "0x3d");
473
+ assert.isUndefined(changes[3].s);
474
+ assert.equal(changes[3].$meta?.classFullName, "BisCore:GeometricElement2d");
475
+ assert.equal(changes[3].$meta?.op, "Updated");
476
+ assert.equal(changes[3].$meta?.stage, "Old");
477
+ };
478
+ if (true || "test with InMemoryInstanceCache") {
479
+ const env_5 = { stack: [], error: void 0, hasError: false };
480
+ try {
481
+ const reader = __addDisposableResource(env_5, SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: otherDb, disableSchemaCheck: true }), false);
482
+ const adaptor = __addDisposableResource(env_5, new ECChangesetAdaptor(reader), false);
483
+ const pcu = __addDisposableResource(env_5, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemory()), false);
484
+ while (adaptor.step()) {
485
+ pcu.appendFrom(adaptor);
486
+ }
487
+ testChanges(Array.from(pcu.instances));
488
+ }
489
+ catch (e_5) {
490
+ env_5.error = e_5;
491
+ env_5.hasError = true;
492
+ }
493
+ finally {
494
+ __disposeResources(env_5);
495
+ }
496
+ }
497
+ if (true || "test with SqliteBackedInstanceCache") {
498
+ const env_6 = { stack: [], error: void 0, hasError: false };
499
+ try {
500
+ const reader = __addDisposableResource(env_6, SqliteChangesetReader.openFile({ fileName: changesets[3].pathname, db: otherDb, disableSchemaCheck: true }), false);
501
+ const adaptor = __addDisposableResource(env_6, new ECChangesetAdaptor(reader), false);
502
+ const pcu = __addDisposableResource(env_6, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBacked(rwIModel)), false);
503
+ while (adaptor.step()) {
504
+ pcu.appendFrom(adaptor);
505
+ }
506
+ testChanges(Array.from(pcu.instances));
507
+ }
508
+ catch (e_6) {
509
+ env_6.error = e_6;
510
+ env_6.hasError = true;
511
+ }
512
+ finally {
513
+ __disposeResources(env_6);
514
+ }
407
515
  }
408
- const changes = Array.from(cci.instances);
409
- assert.equal(changes.length, 4);
410
- // new value
411
- assert.equal(changes[0].ECInstanceId, "0x20000000004");
412
- assert.isUndefined(changes[0].ECClassId);
413
- assert.isDefined(changes[0].$meta?.fallbackClassId);
414
- assert.equal(changes[0].$meta?.fallbackClassId, "0x3d");
415
- assert.isUndefined(changes[0].s);
416
- assert.equal(changes[0].$meta?.classFullName, "BisCore:GeometricElement2d");
417
- assert.equal(changes[0].$meta?.op, "Updated");
418
- assert.equal(changes[0].$meta?.stage, "New");
419
- // old value
420
- assert.equal(changes[1].ECInstanceId, "0x20000000004");
421
- assert.isUndefined(changes[1].ECClassId);
422
- assert.isDefined(changes[1].$meta?.fallbackClassId);
423
- assert.equal(changes[1].$meta?.fallbackClassId, "0x3d");
424
- assert.isUndefined(changes[1].s);
425
- assert.equal(changes[1].$meta?.classFullName, "BisCore:GeometricElement2d");
426
- assert.equal(changes[1].$meta?.op, "Updated");
427
- assert.equal(changes[1].$meta?.stage, "Old");
428
516
  }
429
517
  if (true || "test changeset file") {
430
- const env_2 = { stack: [], error: void 0, hasError: false };
431
- try {
432
- const reader = SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true });
433
- const adaptor = __addDisposableResource(env_2, new ECChangesetAdaptor(reader), false);
434
- const cci = new PartialECChangeUnifier();
435
- while (adaptor.step()) {
436
- cci.appendFrom(adaptor);
437
- }
438
- const changes = Array.from(cci.instances);
518
+ const testChanges = (changes) => {
439
519
  assert.equal(changes.length, 3);
440
- assert.equal(changes[0].ECInstanceId, "0x20000000004");
441
- assert.equal(changes[0].$meta?.classFullName, "TestDomain:Test2dElement");
442
- assert.equal(changes[0].$meta?.op, "Inserted");
520
+ assert.equal(changes[0].ECInstanceId, "0x20000000001");
521
+ assert.equal(changes[0].$meta?.classFullName, "BisCore:DrawingModel");
522
+ assert.equal(changes[0].$meta?.op, "Updated");
443
523
  assert.equal(changes[0].$meta?.stage, "New");
524
+ assert.isNotNull(changes[0].LastMod);
525
+ assert.isNotNull(changes[0].GeometryGuid);
444
526
  assert.equal(changes[1].ECInstanceId, "0x20000000001");
445
527
  assert.equal(changes[1].$meta?.classFullName, "BisCore:DrawingModel");
446
528
  assert.equal(changes[1].$meta?.op, "Updated");
447
- assert.equal(changes[1].$meta?.stage, "New");
448
- assert.isNotNull(changes[1].LastMod);
449
- assert.isNotNull(changes[1].GeometryGuid);
450
- assert.equal(changes[2].ECInstanceId, "0x20000000001");
451
- assert.equal(changes[2].$meta?.classFullName, "BisCore:DrawingModel");
452
- assert.equal(changes[2].$meta?.op, "Updated");
453
- assert.equal(changes[2].$meta?.stage, "Old");
454
- assert.isNull(changes[2].LastMod);
455
- assert.isNull(changes[2].GeometryGuid);
529
+ assert.equal(changes[1].$meta?.stage, "Old");
530
+ assert.isNull(changes[1].LastMod);
531
+ assert.isNull(changes[1].GeometryGuid);
532
+ assert.equal(changes[2].ECInstanceId, "0x20000000004");
533
+ assert.equal(changes[2].$meta?.classFullName, "TestDomain:Test2dElement");
534
+ assert.equal(changes[2].$meta?.op, "Inserted");
535
+ assert.equal(changes[2].$meta?.stage, "New");
456
536
  const el = changes.filter((x) => x.ECInstanceId === "0x20000000004")[0];
457
537
  assert.equal(el.Rotation, 0);
458
538
  // eslint-disable-next-line @typescript-eslint/naming-convention
@@ -492,50 +572,95 @@ describe("Changeset Reader API", async () => {
492
572
  1,
493
573
  ],
494
574
  stage: "New",
495
- fallbackClassId: undefined,
496
575
  });
576
+ };
577
+ if (true || "test with InMemoryInstanceCache") {
578
+ const env_7 = { stack: [], error: void 0, hasError: false };
579
+ try {
580
+ const reader = __addDisposableResource(env_7, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
581
+ const adaptor = __addDisposableResource(env_7, new ECChangesetAdaptor(reader), false);
582
+ const pcu = __addDisposableResource(env_7, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemory()), false);
583
+ while (adaptor.step()) {
584
+ pcu.appendFrom(adaptor);
585
+ }
586
+ testChanges(Array.from(pcu.instances));
587
+ }
588
+ catch (e_7) {
589
+ env_7.error = e_7;
590
+ env_7.hasError = true;
591
+ }
592
+ finally {
593
+ __disposeResources(env_7);
594
+ }
497
595
  }
498
- catch (e_2) {
499
- env_2.error = e_2;
500
- env_2.hasError = true;
501
- }
502
- finally {
503
- __disposeResources(env_2);
596
+ if (true || "test with SqliteBackedInstanceCache") {
597
+ const env_8 = { stack: [], error: void 0, hasError: false };
598
+ try {
599
+ const reader = __addDisposableResource(env_8, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
600
+ const adaptor = __addDisposableResource(env_8, new ECChangesetAdaptor(reader), false);
601
+ const pcu = __addDisposableResource(env_8, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBacked(rwIModel)), false);
602
+ while (adaptor.step()) {
603
+ pcu.appendFrom(adaptor);
604
+ }
605
+ testChanges(Array.from(pcu.instances));
606
+ }
607
+ catch (e_8) {
608
+ env_8.error = e_8;
609
+ env_8.hasError = true;
610
+ }
611
+ finally {
612
+ __disposeResources(env_8);
613
+ }
504
614
  }
505
615
  }
506
616
  if (true || "test ChangesetAdaptor.acceptClass()") {
507
- const env_3 = { stack: [], error: void 0, hasError: false };
508
- try {
509
- const reader = SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true });
510
- const adaptor = __addDisposableResource(env_3, new ECChangesetAdaptor(reader), false);
511
- adaptor.acceptClass("TestDomain.Test2dElement");
512
- const cci = new PartialECChangeUnifier();
513
- while (adaptor.step()) {
514
- cci.appendFrom(adaptor);
515
- }
516
- const changes = Array.from(cci.instances);
617
+ const testChanges = (changes) => {
517
618
  assert.equal(changes.length, 1);
518
619
  assert.equal(changes[0].$meta?.classFullName, "TestDomain:Test2dElement");
620
+ };
621
+ if (true || "test with InMemoryInstanceCache") {
622
+ const env_9 = { stack: [], error: void 0, hasError: false };
623
+ try {
624
+ const reader = __addDisposableResource(env_9, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
625
+ const adaptor = __addDisposableResource(env_9, new ECChangesetAdaptor(reader), false);
626
+ adaptor.acceptClass("TestDomain.Test2dElement");
627
+ const pcu = __addDisposableResource(env_9, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemory()), false);
628
+ while (adaptor.step()) {
629
+ pcu.appendFrom(adaptor);
630
+ }
631
+ testChanges(Array.from(pcu.instances));
632
+ }
633
+ catch (e_9) {
634
+ env_9.error = e_9;
635
+ env_9.hasError = true;
636
+ }
637
+ finally {
638
+ __disposeResources(env_9);
639
+ }
519
640
  }
520
- catch (e_3) {
521
- env_3.error = e_3;
522
- env_3.hasError = true;
523
- }
524
- finally {
525
- __disposeResources(env_3);
641
+ if (true || "test with SqliteBackedInstanceCache") {
642
+ const env_10 = { stack: [], error: void 0, hasError: false };
643
+ try {
644
+ const reader = __addDisposableResource(env_10, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
645
+ const adaptor = __addDisposableResource(env_10, new ECChangesetAdaptor(reader), false);
646
+ adaptor.acceptClass("TestDomain.Test2dElement");
647
+ const pcu = __addDisposableResource(env_10, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBacked(rwIModel)), false);
648
+ while (adaptor.step()) {
649
+ pcu.appendFrom(adaptor);
650
+ }
651
+ testChanges(Array.from(pcu.instances));
652
+ }
653
+ catch (e_10) {
654
+ env_10.error = e_10;
655
+ env_10.hasError = true;
656
+ }
657
+ finally {
658
+ __disposeResources(env_10);
659
+ }
526
660
  }
527
661
  }
528
662
  if (true || "test ChangesetAdaptor.adaptor()") {
529
- const env_4 = { stack: [], error: void 0, hasError: false };
530
- try {
531
- const reader = SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true });
532
- const adaptor = __addDisposableResource(env_4, new ECChangesetAdaptor(reader), false);
533
- adaptor.acceptOp("Updated");
534
- const cci = new PartialECChangeUnifier();
535
- while (adaptor.step()) {
536
- cci.appendFrom(adaptor);
537
- }
538
- const changes = Array.from(cci.instances);
663
+ const testChanges = (changes) => {
539
664
  assert.equal(changes.length, 2);
540
665
  assert.equal(changes[0].ECInstanceId, "0x20000000001");
541
666
  assert.equal(changes[0].$meta?.classFullName, "BisCore:DrawingModel");
@@ -545,13 +670,46 @@ describe("Changeset Reader API", async () => {
545
670
  assert.equal(changes[1].$meta?.classFullName, "BisCore:DrawingModel");
546
671
  assert.equal(changes[1].$meta?.op, "Updated");
547
672
  assert.equal(changes[1].$meta?.stage, "Old");
673
+ };
674
+ if (true || "test with InMemoryInstanceCache") {
675
+ const env_11 = { stack: [], error: void 0, hasError: false };
676
+ try {
677
+ const reader = __addDisposableResource(env_11, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
678
+ const adaptor = __addDisposableResource(env_11, new ECChangesetAdaptor(reader), false);
679
+ adaptor.acceptOp("Updated");
680
+ const pcu = __addDisposableResource(env_11, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createInMemory()), false);
681
+ while (adaptor.step()) {
682
+ pcu.appendFrom(adaptor);
683
+ }
684
+ testChanges(Array.from(pcu.instances));
685
+ }
686
+ catch (e_11) {
687
+ env_11.error = e_11;
688
+ env_11.hasError = true;
689
+ }
690
+ finally {
691
+ __disposeResources(env_11);
692
+ }
548
693
  }
549
- catch (e_4) {
550
- env_4.error = e_4;
551
- env_4.hasError = true;
552
- }
553
- finally {
554
- __disposeResources(env_4);
694
+ if (true || "test with SqliteBackedInstanceCache") {
695
+ const env_12 = { stack: [], error: void 0, hasError: false };
696
+ try {
697
+ const reader = __addDisposableResource(env_12, SqliteChangesetReader.openFile({ fileName: changesets[2].pathname, db: rwIModel, disableSchemaCheck: true }), false);
698
+ const adaptor = __addDisposableResource(env_12, new ECChangesetAdaptor(reader), false);
699
+ adaptor.acceptOp("Updated");
700
+ const pcu = __addDisposableResource(env_12, new PartialECChangeUnifier(reader.db, ECChangeUnifierCache.createSqliteBacked(rwIModel)), false);
701
+ while (adaptor.step()) {
702
+ pcu.appendFrom(adaptor);
703
+ }
704
+ testChanges(Array.from(pcu.instances));
705
+ }
706
+ catch (e_12) {
707
+ env_12.error = e_12;
708
+ env_12.hasError = true;
709
+ }
710
+ finally {
711
+ __disposeResources(env_12);
712
+ }
555
713
  }
556
714
  }
557
715
  rwIModel.close();
@@ -567,13 +725,13 @@ describe("Changeset Reader API", async () => {
567
725
  const addPropertyAndImportSchema = async () => {
568
726
  await rwIModel.acquireSchemaLock();
569
727
  ++nProps;
570
- const schema = `<?xml version="1.0" encoding="UTF-8"?>
571
- <ECSchema schemaName="TestDomain" alias="ts" version="01.00.${nProps}" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
572
- <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
573
- <ECEntityClass typeName="Test2dElement">
574
- <BaseClass>bis:GraphicalElement2d</BaseClass>
575
- ${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i + 1}" typeName="string"/>`).join("\n")}
576
- </ECEntityClass>
728
+ const schema = `<?xml version="1.0" encoding="UTF-8"?>
729
+ <ECSchema schemaName="TestDomain" alias="ts" version="01.00.${nProps}" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
730
+ <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
731
+ <ECEntityClass typeName="Test2dElement">
732
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
733
+ ${Array(nProps).fill(undefined).map((_, i) => `<ECProperty propertyName="p${i + 1}" typeName="string"/>`).join("\n")}
734
+ </ECEntityClass>
577
735
  </ECSchema>`;
578
736
  await rwIModel.importSchemaStrings([schema]);
579
737
  };
@@ -710,13 +868,13 @@ describe("Changeset Reader API", async () => {
710
868
  assert.isNotEmpty(rwIModelId);
711
869
  const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });
712
870
  // 1. Import schema with class that span overflow table.
713
- const schema = `<?xml version="1.0" encoding="UTF-8"?>
714
- <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
715
- <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
716
- <ECEntityClass typeName="Test2dElement">
717
- <BaseClass>bis:GraphicalElement2d</BaseClass>
718
- <ECProperty propertyName="p1" typeName="string"/>
719
- </ECEntityClass>
871
+ const schema = `<?xml version="1.0" encoding="UTF-8"?>
872
+ <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
873
+ <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
874
+ <ECEntityClass typeName="Test2dElement">
875
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
876
+ <ECProperty propertyName="p1" typeName="string"/>
877
+ </ECEntityClass>
720
878
  </ECSchema>`;
721
879
  await rwIModel.importSchemaStrings([schema]);
722
880
  rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);