@itwin/core-backend 5.0.0-dev.99 → 5.1.0-dev.0

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 (443) 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.d.ts +103 -0
  8. package/lib/cjs/CatalogDb.d.ts.map +1 -0
  9. package/lib/cjs/CatalogDb.js +271 -0
  10. package/lib/cjs/CatalogDb.js.map +1 -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.d.ts +12 -10
  19. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  20. package/lib/cjs/CheckpointManager.js +17 -41
  21. package/lib/cjs/CheckpointManager.js.map +1 -1
  22. package/lib/cjs/ClassRegistry.js +5 -5
  23. package/lib/cjs/ClassRegistry.js.map +1 -1
  24. package/lib/cjs/CloudSqlite.d.ts +104 -20
  25. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  26. package/lib/cjs/CloudSqlite.js +157 -46
  27. package/lib/cjs/CloudSqlite.js.map +1 -1
  28. package/lib/cjs/CodeService.js.map +1 -1
  29. package/lib/cjs/CodeSpecs.js.map +1 -1
  30. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  31. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  32. package/lib/cjs/DevTools.js.map +1 -1
  33. package/lib/cjs/DisplayStyle.js.map +1 -1
  34. package/lib/cjs/ECDb.js.map +1 -1
  35. package/lib/cjs/ECSchemaXmlContext.d.ts +1 -1
  36. package/lib/cjs/ECSchemaXmlContext.js +1 -1
  37. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  38. package/lib/cjs/ECSqlStatement.js.map +1 -1
  39. package/lib/cjs/Element.js.map +1 -1
  40. package/lib/cjs/ElementAspect.js.map +1 -1
  41. package/lib/cjs/ElementGraphics.js.map +1 -1
  42. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  43. package/lib/cjs/Entity.d.ts +8 -4
  44. package/lib/cjs/Entity.d.ts.map +1 -1
  45. package/lib/cjs/Entity.js +3 -3
  46. package/lib/cjs/Entity.js.map +1 -1
  47. package/lib/cjs/EntityReferences.js.map +1 -1
  48. package/lib/cjs/ExportGraphics.js.map +1 -1
  49. package/lib/cjs/ExternalSource.js.map +1 -1
  50. package/lib/cjs/FontFile.js.map +1 -1
  51. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  52. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  53. package/lib/cjs/GeometrySummary.js +47 -47
  54. package/lib/cjs/GeometrySummary.js.map +1 -1
  55. package/lib/cjs/IModelDb.d.ts +6 -1
  56. package/lib/cjs/IModelDb.d.ts.map +1 -1
  57. package/lib/cjs/IModelDb.js +22 -15
  58. package/lib/cjs/IModelDb.js.map +1 -1
  59. package/lib/cjs/IModelDbFonts.js.map +1 -1
  60. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  61. package/lib/cjs/IModelHost.d.ts +1 -1
  62. package/lib/cjs/IModelHost.js +1 -1
  63. package/lib/cjs/IModelHost.js.map +1 -1
  64. package/lib/cjs/IModelJsFs.js.map +1 -1
  65. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  66. package/lib/cjs/IpcHost.js.map +1 -1
  67. package/lib/cjs/LineStyle.js.map +1 -1
  68. package/lib/cjs/LocalHub.js +1 -1
  69. package/lib/cjs/LocalHub.js.map +1 -1
  70. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  71. package/lib/cjs/LockControl.js.map +1 -1
  72. package/lib/cjs/Material.js.map +1 -1
  73. package/lib/cjs/Model.js.map +1 -1
  74. package/lib/cjs/NativeAppStorage.js.map +1 -1
  75. package/lib/cjs/NativeHost.d.ts.map +1 -1
  76. package/lib/cjs/NativeHost.js +4 -1
  77. package/lib/cjs/NativeHost.js.map +1 -1
  78. package/lib/cjs/NavigationRelationship.js.map +1 -1
  79. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  80. package/lib/cjs/PropertyStore.js.map +1 -1
  81. package/lib/cjs/Relationship.js.map +1 -1
  82. package/lib/cjs/RpcBackend.js.map +1 -1
  83. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  84. package/lib/cjs/SQLiteDb.js +5 -4
  85. package/lib/cjs/SQLiteDb.js.map +1 -1
  86. package/lib/cjs/Schema.js.map +1 -1
  87. package/lib/cjs/SchemaSync.js.map +1 -1
  88. package/lib/cjs/SchemaUtils.js.map +1 -1
  89. package/lib/cjs/SheetIndex.js.map +1 -1
  90. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  91. package/lib/cjs/SqliteStatement.js.map +1 -1
  92. package/lib/cjs/TextAnnotationElement.js.map +1 -1
  93. package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
  94. package/lib/cjs/TextAnnotationLayout.js.map +1 -1
  95. package/lib/cjs/Texture.js.map +1 -1
  96. package/lib/cjs/TileStorage.js.map +1 -1
  97. package/lib/cjs/TxnManager.js.map +1 -1
  98. package/lib/cjs/ViewDefinition.js.map +1 -1
  99. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  100. package/lib/cjs/ViewStore.d.ts.map +1 -1
  101. package/lib/cjs/ViewStore.js +27 -27
  102. package/lib/cjs/ViewStore.js.map +1 -1
  103. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  104. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  105. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  106. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  107. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  108. package/lib/cjs/core-backend.d.ts +1 -1
  109. package/lib/cjs/core-backend.d.ts.map +1 -1
  110. package/lib/cjs/core-backend.js +1 -1
  111. package/lib/cjs/core-backend.js.map +1 -1
  112. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  113. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  114. package/lib/cjs/domains/GenericElements.js.map +1 -1
  115. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  116. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  117. package/lib/cjs/internal/ChannelAdmin.js +4 -4
  118. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  119. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  120. package/lib/cjs/{HubMock.d.ts → internal/HubMock.d.ts} +4 -5
  121. package/lib/cjs/internal/HubMock.d.ts.map +1 -0
  122. package/lib/cjs/{HubMock.js → internal/HubMock.js} +22 -11
  123. package/lib/cjs/internal/HubMock.js.map +1 -0
  124. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  125. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  126. package/lib/cjs/internal/NoLocks.js.map +1 -1
  127. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  128. package/lib/cjs/internal/Symbols.d.ts +1 -2
  129. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  130. package/lib/cjs/internal/Symbols.js +2 -3
  131. package/lib/cjs/internal/Symbols.js.map +1 -1
  132. package/lib/cjs/internal/cross-package.js.map +1 -1
  133. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  134. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  135. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts +2 -16
  136. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  137. package/lib/cjs/internal/workspace/WorkspaceImpl.js +35 -104
  138. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  139. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  140. package/lib/cjs/rpc/multipart.js.map +1 -1
  141. package/lib/cjs/rpc/tracing.js.map +1 -1
  142. package/lib/cjs/rpc/web/logging.js.map +1 -1
  143. package/lib/cjs/rpc/web/request.js.map +1 -1
  144. package/lib/cjs/rpc/web/response.js.map +1 -1
  145. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  146. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  147. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  148. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  149. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  150. package/lib/cjs/workspace/Settings.js.map +1 -1
  151. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  152. package/lib/cjs/workspace/Workspace.d.ts +6 -13
  153. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  154. package/lib/cjs/workspace/Workspace.js.map +1 -1
  155. package/lib/cjs/workspace/WorkspaceEditor.d.ts +2 -7
  156. package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
  157. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  158. package/lib/esm/BackendHubAccess.js.map +1 -1
  159. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  160. package/lib/esm/BisCoreSchema.js.map +1 -1
  161. package/lib/esm/BlobContainerService.js.map +1 -1
  162. package/lib/esm/BriefcaseManager.js.map +1 -1
  163. package/lib/esm/CatalogDb.d.ts +103 -0
  164. package/lib/esm/CatalogDb.d.ts.map +1 -0
  165. package/lib/esm/CatalogDb.js +267 -0
  166. package/lib/esm/CatalogDb.js.map +1 -0
  167. package/lib/esm/Category.js.map +1 -1
  168. package/lib/esm/ChangeSummaryManager.js +2 -2
  169. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  170. package/lib/esm/ChangedElementsDb.js.map +1 -1
  171. package/lib/esm/ChangesetECAdaptor.js +242 -242
  172. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  173. package/lib/esm/ChannelControl.js.map +1 -1
  174. package/lib/esm/CheckpointManager.d.ts +12 -10
  175. package/lib/esm/CheckpointManager.d.ts.map +1 -1
  176. package/lib/esm/CheckpointManager.js +18 -42
  177. package/lib/esm/CheckpointManager.js.map +1 -1
  178. package/lib/esm/ClassRegistry.js +5 -5
  179. package/lib/esm/ClassRegistry.js.map +1 -1
  180. package/lib/esm/CloudSqlite.d.ts +104 -20
  181. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  182. package/lib/esm/CloudSqlite.js +157 -46
  183. package/lib/esm/CloudSqlite.js.map +1 -1
  184. package/lib/esm/CodeService.js.map +1 -1
  185. package/lib/esm/CodeSpecs.js.map +1 -1
  186. package/lib/esm/ConcurrentQuery.js.map +1 -1
  187. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  188. package/lib/esm/DevTools.js.map +1 -1
  189. package/lib/esm/DisplayStyle.js.map +1 -1
  190. package/lib/esm/ECDb.js.map +1 -1
  191. package/lib/esm/ECSchemaXmlContext.d.ts +1 -1
  192. package/lib/esm/ECSchemaXmlContext.js +1 -1
  193. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  194. package/lib/esm/ECSqlStatement.js.map +1 -1
  195. package/lib/esm/Element.js.map +1 -1
  196. package/lib/esm/ElementAspect.js.map +1 -1
  197. package/lib/esm/ElementGraphics.js.map +1 -1
  198. package/lib/esm/ElementTreeWalker.js.map +1 -1
  199. package/lib/esm/Entity.d.ts +8 -4
  200. package/lib/esm/Entity.d.ts.map +1 -1
  201. package/lib/esm/Entity.js +3 -3
  202. package/lib/esm/Entity.js.map +1 -1
  203. package/lib/esm/EntityReferences.js.map +1 -1
  204. package/lib/esm/ExportGraphics.js.map +1 -1
  205. package/lib/esm/ExternalSource.js.map +1 -1
  206. package/lib/esm/FontFile.js.map +1 -1
  207. package/lib/esm/GeoCoordConfig.js.map +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 +6 -1
  212. package/lib/esm/IModelDb.d.ts.map +1 -1
  213. package/lib/esm/IModelDb.js +22 -15
  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 +1 -1
  218. package/lib/esm/IModelHost.js +1 -1
  219. package/lib/esm/IModelHost.js.map +1 -1
  220. package/lib/esm/IModelJsFs.js.map +1 -1
  221. package/lib/esm/ImageSourceConversion.js.map +1 -1
  222. package/lib/esm/IpcHost.js.map +1 -1
  223. package/lib/esm/LineStyle.js.map +1 -1
  224. package/lib/esm/LocalHub.js +1 -1
  225. package/lib/esm/LocalHub.js.map +1 -1
  226. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  227. package/lib/esm/LockControl.js.map +1 -1
  228. package/lib/esm/Material.js.map +1 -1
  229. package/lib/esm/Model.js.map +1 -1
  230. package/lib/esm/NativeAppStorage.js.map +1 -1
  231. package/lib/esm/NativeHost.d.ts.map +1 -1
  232. package/lib/esm/NativeHost.js +4 -1
  233. package/lib/esm/NativeHost.js.map +1 -1
  234. package/lib/esm/NavigationRelationship.js.map +1 -1
  235. package/lib/esm/PromiseMemoizer.js.map +1 -1
  236. package/lib/esm/PropertyStore.js.map +1 -1
  237. package/lib/esm/Relationship.js.map +1 -1
  238. package/lib/esm/RpcBackend.js.map +1 -1
  239. package/lib/esm/SQLiteDb.d.ts.map +1 -1
  240. package/lib/esm/SQLiteDb.js +5 -4
  241. package/lib/esm/SQLiteDb.js.map +1 -1
  242. package/lib/esm/Schema.js.map +1 -1
  243. package/lib/esm/SchemaSync.js.map +1 -1
  244. package/lib/esm/SchemaUtils.js.map +1 -1
  245. package/lib/esm/SheetIndex.js.map +1 -1
  246. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  247. package/lib/esm/SqliteStatement.js.map +1 -1
  248. package/lib/esm/TextAnnotationElement.js.map +1 -1
  249. package/lib/esm/TextAnnotationGeometry.js.map +1 -1
  250. package/lib/esm/TextAnnotationLayout.js.map +1 -1
  251. package/lib/esm/Texture.js.map +1 -1
  252. package/lib/esm/TileStorage.js.map +1 -1
  253. package/lib/esm/TxnManager.js.map +1 -1
  254. package/lib/esm/ViewDefinition.js.map +1 -1
  255. package/lib/esm/ViewStateHydrator.js.map +1 -1
  256. package/lib/esm/ViewStore.d.ts.map +1 -1
  257. package/lib/esm/ViewStore.js +28 -28
  258. package/lib/esm/ViewStore.js.map +1 -1
  259. package/lib/esm/core-backend.d.ts +1 -1
  260. package/lib/esm/core-backend.d.ts.map +1 -1
  261. package/lib/esm/core-backend.js +1 -1
  262. package/lib/esm/core-backend.js.map +1 -1
  263. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  264. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  265. package/lib/esm/domains/GenericElements.js.map +1 -1
  266. package/lib/esm/domains/GenericSchema.js.map +1 -1
  267. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  268. package/lib/esm/internal/ChannelAdmin.js +5 -5
  269. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  270. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  271. package/lib/esm/{HubMock.d.ts → internal/HubMock.d.ts} +4 -5
  272. package/lib/esm/internal/HubMock.d.ts.map +1 -0
  273. package/lib/esm/{HubMock.js → internal/HubMock.js} +22 -11
  274. package/lib/esm/internal/HubMock.js.map +1 -0
  275. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  276. package/lib/esm/internal/NativePlatform.js.map +1 -1
  277. package/lib/esm/internal/NoLocks.js.map +1 -1
  278. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  279. package/lib/esm/internal/Symbols.d.ts +1 -2
  280. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  281. package/lib/esm/internal/Symbols.js +1 -2
  282. package/lib/esm/internal/Symbols.js.map +1 -1
  283. package/lib/esm/internal/cross-package.js.map +1 -1
  284. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  285. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  286. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +2 -16
  287. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  288. package/lib/esm/internal/workspace/WorkspaceImpl.js +36 -100
  289. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  290. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  291. package/lib/esm/rpc/multipart.js.map +1 -1
  292. package/lib/esm/rpc/tracing.js.map +1 -1
  293. package/lib/esm/rpc/web/logging.js.map +1 -1
  294. package/lib/esm/rpc/web/request.js.map +1 -1
  295. package/lib/esm/rpc/web/response.js.map +1 -1
  296. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  297. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  298. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  299. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  300. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  301. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  302. package/lib/esm/test/AttachDb.test.js +11 -11
  303. package/lib/esm/test/AttachDb.test.js.map +1 -1
  304. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  305. package/lib/esm/test/IModelHost.test.js.map +1 -1
  306. package/lib/esm/test/IModelTestUtils.d.ts +6 -2
  307. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  308. package/lib/esm/test/IModelTestUtils.js +27 -6
  309. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  310. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  311. package/lib/esm/test/IpcHost.test.js.map +1 -1
  312. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  313. package/lib/esm/test/PrintElementTree.js.map +1 -1
  314. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  315. package/lib/esm/test/RevisionUtility.js.map +1 -1
  316. package/lib/esm/test/SchemaUtils.test.js +25 -25
  317. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  318. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  319. package/lib/esm/test/TestChangeSetUtility.js +1 -1
  320. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  321. package/lib/esm/test/TestUtils.js.map +1 -1
  322. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  323. package/lib/esm/test/categories/Category.test.js.map +1 -1
  324. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  325. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  326. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  327. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  328. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  329. package/lib/esm/test/ecdb/ECDb.test.js +57 -57
  330. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  331. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  332. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +4 -4
  333. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  334. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  335. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  336. package/lib/esm/test/ecdb/ECSqlQuery.test.js +7 -7
  337. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  338. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  339. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  340. package/lib/esm/test/ecdb/ECSqlStatement.test.js +292 -292
  341. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  342. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  343. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  344. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  345. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  346. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  347. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  348. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  349. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  350. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  351. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  352. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  353. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  354. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  355. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  356. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  357. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  358. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  359. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  360. package/lib/esm/test/font/IModelDbFonts.test.js +1 -1
  361. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  362. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +1 -1
  363. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  364. package/lib/esm/test/hubaccess/CheckpointManager.test.js +4 -3
  365. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  366. package/lib/esm/test/imageData.js.map +1 -1
  367. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  368. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  369. package/lib/esm/test/imodel/IModel.test.js +1 -1
  370. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  371. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  372. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  373. package/lib/esm/test/index.js.map +1 -1
  374. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  375. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  376. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  377. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  378. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  379. package/lib/esm/test/rpc/response.test.js.map +1 -1
  380. package/lib/esm/test/schema/ClassRegistry.test.js +71 -71
  381. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  382. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  383. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  384. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  385. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  386. package/lib/esm/test/standalone/ChangeMerge.test.js +1 -1
  387. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  388. package/lib/esm/test/standalone/ChangesetReader.test.js +29 -29
  389. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  390. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  391. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  392. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  393. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  394. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  395. package/lib/esm/test/standalone/ExportGraphics.test.js +19 -54
  396. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  397. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  398. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  399. package/lib/esm/test/standalone/HubMock.test.js +1 -1
  400. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  401. package/lib/esm/test/standalone/IModelWrite.test.js +28 -28
  402. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  403. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  404. package/lib/esm/test/standalone/MergeConflict.test.js +1 -1
  405. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  406. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  407. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  408. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  409. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  410. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  411. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  412. package/lib/esm/test/standalone/ServerBasedLocks.test.js +1 -1
  413. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  414. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  415. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  416. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  417. package/lib/esm/test/standalone/SnapshotDb.test.js +5 -4
  418. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  419. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  420. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  421. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  422. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  423. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  424. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  425. package/lib/esm/test/standalone/Workspace.test.js +4 -3
  426. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  427. package/lib/esm/workspace/Settings.js.map +1 -1
  428. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  429. package/lib/esm/workspace/Workspace.d.ts +6 -13
  430. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  431. package/lib/esm/workspace/Workspace.js.map +1 -1
  432. package/lib/esm/workspace/WorkspaceEditor.d.ts +2 -7
  433. package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -1
  434. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  435. package/package.json +13 -13
  436. package/lib/cjs/HubMock.d.ts.map +0 -1
  437. package/lib/cjs/HubMock.js.map +0 -1
  438. package/lib/esm/HubMock.d.ts.map +0 -1
  439. package/lib/esm/HubMock.js.map +0 -1
  440. package/lib/esm/test/CloudSqliteMock.d.ts +0 -37
  441. package/lib/esm/test/CloudSqliteMock.d.ts.map +0 -1
  442. package/lib/esm/test/CloudSqliteMock.js +0 -117
  443. package/lib/esm/test/CloudSqliteMock.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ChangedElementsDb.js","sourceRoot":"","sources":["../../src/ChangedElementsDb.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ChangedElementsDb\n */\n\nimport { AccessToken, DbResult, IModelStatus, OpenMode } from \"@itwin/core-bentley\";\nimport { ChangeData, ChangedElements, ChangedModels, IModelError } from \"@itwin/core-common\";\nimport { IModelJsNative } from \"@bentley/imodeljs-native\";\nimport { BriefcaseManager } from \"./BriefcaseManager\";\nimport { ECDbOpenMode } from \"./ECDb\";\nimport { IModelDb } from \"./IModelDb\";\nimport { IModelHost } from \"./IModelHost\";\nimport { IModelNative } from \"./internal/NativePlatform\";\nimport { _hubAccess, _nativeDb } from \"./internal/Symbols\";\n\n/**\n * Options for processChangesets function\n * @internal\n * */\nexport interface ProcessChangesetOptions {\n startChangesetId: string;\n endChangesetId: string;\n rulesetId: string;\n filterSpatial?: boolean;\n wantParents?: boolean;\n wantPropertyChecksums?: boolean;\n rulesetDir?: string;\n tempDir?: string;\n wantRelationshipCaching?: boolean;\n relationshipCacheSize?: number;\n wantChunkTraversal?: boolean;\n wantBoundingBoxes?: boolean;\n}\n\n/** An ChangedElementsDb file\n * @internal\n */\nexport class ChangedElementsDb implements Disposable {\n private _nativeDb: IModelJsNative.ChangedElementsECDb | undefined;\n\n constructor() {\n this._nativeDb = new IModelNative.platform.ChangedElementsECDb();\n }\n\n public [Symbol.dispose](): void {\n if (!this._nativeDb)\n return;\n\n this.closeDb();\n this._nativeDb.dispose();\n this._nativeDb = undefined;\n }\n\n /** Create a ChangedElementsDb\n * @param pathName The path to the ECDb file to create.\n * @throws [IModelError]($common) if the operation failed.\n */\n private _createDb(briefcase: IModelDb, pathName: string): void {\n const status: DbResult = this.nativeDb.createDb(briefcase[_nativeDb], pathName);\n if (status !== DbResult.BE_SQLITE_OK)\n throw new IModelError(status, \"Failed to created ECDb\");\n }\n\n /** Open the Changed Elements Db.\n * @param pathName The path to the ECDb file to open\n * @param openMode Open mode\n * @throws [IModelError]($common) if the operation failed.\n */\n private _openDb(pathName: string, openMode: ECDbOpenMode = ECDbOpenMode.Readonly): void {\n const nativeOpenMode = openMode === ECDbOpenMode.Readonly ? OpenMode.Readonly : OpenMode.ReadWrite;\n const tryUpgrade = openMode === ECDbOpenMode.FileUpgrade;\n const status = this.nativeDb.openDb(pathName, nativeOpenMode, tryUpgrade);\n if (status !== DbResult.BE_SQLITE_OK)\n throw new IModelError(status, \"Failed to open ECDb\");\n }\n\n /** Open the Changed Elements Db.\n * @param pathName The path to the ECDb file to open\n * @param openMode Open mode\n * @returns ChangedElementsDb\n */\n public static openDb(pathName: string, openMode: ECDbOpenMode = ECDbOpenMode.Readonly): ChangedElementsDb {\n const cacheDb = new ChangedElementsDb();\n cacheDb._openDb(pathName, openMode);\n return cacheDb;\n }\n\n /** Create the changed elements cache db\n * @param briefcase IModelDb to use\n * @param pathName The path to the ECDb file to create.\n * @returns The new cache db\n */\n public static createDb(briefcase: IModelDb, pathName: string): ChangedElementsDb {\n const cacheDb = new ChangedElementsDb();\n cacheDb._createDb(briefcase, pathName);\n return cacheDb;\n }\n\n /** Processes a range of changesets and adds it to the changed elements cache\n * @param briefcase iModel briefcase to use\n * @param options Options for processing\n */\n public async processChangesets(accessToken: AccessToken, briefcase: IModelDb, options: ProcessChangesetOptions): Promise<DbResult> {\n const iModelId = briefcase.iModelId;\n const first = (await IModelHost[_hubAccess].queryChangeset({ iModelId, changeset: { id: options.startChangesetId }, accessToken })).index;\n const end = (await IModelHost[_hubAccess].queryChangeset({ iModelId, changeset: { id: options.endChangesetId }, accessToken })).index;\n const changesets = await IModelHost[_hubAccess].downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: BriefcaseManager.getChangeSetsPath(iModelId) });\n\n // ChangeSets need to be processed from newest to oldest\n changesets.reverse();\n const status = this.nativeDb.processChangesets(\n briefcase[_nativeDb],\n changesets,\n options.rulesetId,\n options.filterSpatial,\n options.wantParents,\n options.wantPropertyChecksums,\n options.rulesetDir,\n options.tempDir,\n options.wantChunkTraversal,\n );\n if (status !== DbResult.BE_SQLITE_OK)\n throw new IModelError(status, \"Failed to process changesets\");\n return status;\n }\n\n /** Processes a range of changesets and adds it to the changed elements cache\n * This call will close the IModelDb object as it is required for processing and applying changesets\n * @param briefcase iModel briefcase to use\n * @param options options for processing\n */\n public async processChangesetsAndRoll(accessToken: AccessToken, briefcase: IModelDb, options: ProcessChangesetOptions): Promise<DbResult> {\n const iModelId = briefcase.iModelId;\n const first = (await IModelHost[_hubAccess].queryChangeset({ iModelId, changeset: { id: options.startChangesetId }, accessToken })).index;\n const end = (await IModelHost[_hubAccess].queryChangeset({ iModelId, changeset: { id: options.endChangesetId }, accessToken })).index;\n const changesets = await IModelHost[_hubAccess].downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: BriefcaseManager.getChangeSetsPath(iModelId) });\n\n // ChangeSets need to be processed from newest to oldest\n changesets.reverse();\n // Close briefcase before doing processing and rolling briefcase\n const dbFilename = briefcase.pathName;\n const dbGuid = briefcase.iModelId;\n briefcase.close();\n // Process changesets\n const status = this.nativeDb.processChangesetsAndRoll(\n dbFilename,\n dbGuid,\n changesets,\n options.rulesetId,\n options.filterSpatial,\n options.wantParents,\n options.wantPropertyChecksums,\n options.rulesetDir,\n options.tempDir,\n options.wantRelationshipCaching,\n options.relationshipCacheSize,\n options.wantChunkTraversal,\n options.wantBoundingBoxes,\n );\n if (status !== DbResult.BE_SQLITE_OK)\n throw new IModelError(status, \"Failed to process changesets\");\n return status;\n }\n\n /** Get changed elements between two changesets\n * @param startChangesetId Start Changeset Id\n * @param endChangesetId End Changeset Id\n * @returns Returns the changed elements between the changesets provided\n * @throws [IModelError]($common) if the operation failed.\n */\n public getChangedElements(startChangesetId: string, endChangesetId: string): ChangedElements | undefined {\n const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);\n if (result.error || !result.result)\n throw new IModelError(result.error ? result.error.status : -1, result.error ? result.error.message : \"Problem getting changed elements\");\n return (result.result.changedElements) as ChangedElements;\n }\n\n /** Get changed models between two changesets\n * @param startChangesetId Start Changeset Id\n * @param endChangesetId End Changeset Id\n * @returns Returns the changed models between the changesets provided\n * @throws [IModelError]($common) if the operation failed.\n */\n public getChangedModels(startChangesetId: string, endChangesetId: string): ChangedModels | undefined {\n const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);\n if (result.error || !result.result)\n throw new IModelError(result.error ? result.error.status : -1, result.error ? result.error.message : \"Problem getting changed models\");\n return (result.result.changedModels) as ChangedModels;\n }\n\n /** Get changed models between two changesets\n * @param startChangesetId Start Changeset Id\n * @param endChangesetId End Changeset Id\n * @returns Returns the changed models between the changesets provided\n * @throws [IModelError]($common) if the operation failed.\n */\n public getChangeData(startChangesetId: string, endChangesetId: string): ChangeData | undefined {\n const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);\n if (result.error)\n throw new IModelError(result.error.status, result.error.message);\n return result.result as ChangeData;\n }\n\n /** Returns true if the Changed Elements Db is open */\n public get isOpen(): boolean { return this.nativeDb.isOpen(); }\n\n /** Returns true if the cache already contains this changeset Id */\n public isProcessed(changesetId: string): boolean { return this.nativeDb.isProcessed(changesetId); }\n\n /** Close the Db after saving any uncommitted changes.\n * @throws [IModelError]($common) if the database is not open.\n */\n public closeDb(): void {\n this.nativeDb.closeDb();\n }\n\n public cleanCaches(): void {\n this.nativeDb.cleanCaches();\n }\n\n /** @internal */\n public get nativeDb(): IModelJsNative.ChangedElementsECDb {\n if (!this._nativeDb)\n throw new IModelError(IModelStatus.BadRequest, \"ChangedElementsDb object has already been disposed.\");\n\n return this._nativeDb;\n }\n}\n"]}
1
+ {"version":3,"file":"ChangedElementsDb.js","sourceRoot":"","sources":["../../src/ChangedElementsDb.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module ChangedElementsDb\r\n */\r\n\r\nimport { AccessToken, DbResult, IModelStatus, OpenMode } from \"@itwin/core-bentley\";\r\nimport { ChangeData, ChangedElements, ChangedModels, IModelError } from \"@itwin/core-common\";\r\nimport { IModelJsNative } from \"@bentley/imodeljs-native\";\r\nimport { BriefcaseManager } from \"./BriefcaseManager\";\r\nimport { ECDbOpenMode } from \"./ECDb\";\r\nimport { IModelDb } from \"./IModelDb\";\r\nimport { IModelHost } from \"./IModelHost\";\r\nimport { IModelNative } from \"./internal/NativePlatform\";\r\nimport { _hubAccess, _nativeDb } from \"./internal/Symbols\";\r\n\r\n/**\r\n * Options for processChangesets function\r\n * @internal\r\n * */\r\nexport interface ProcessChangesetOptions {\r\n startChangesetId: string;\r\n endChangesetId: string;\r\n rulesetId: string;\r\n filterSpatial?: boolean;\r\n wantParents?: boolean;\r\n wantPropertyChecksums?: boolean;\r\n rulesetDir?: string;\r\n tempDir?: string;\r\n wantRelationshipCaching?: boolean;\r\n relationshipCacheSize?: number;\r\n wantChunkTraversal?: boolean;\r\n wantBoundingBoxes?: boolean;\r\n}\r\n\r\n/** An ChangedElementsDb file\r\n * @internal\r\n */\r\nexport class ChangedElementsDb implements Disposable {\r\n private _nativeDb: IModelJsNative.ChangedElementsECDb | undefined;\r\n\r\n constructor() {\r\n this._nativeDb = new IModelNative.platform.ChangedElementsECDb();\r\n }\r\n\r\n public [Symbol.dispose](): void {\r\n if (!this._nativeDb)\r\n return;\r\n\r\n this.closeDb();\r\n this._nativeDb.dispose();\r\n this._nativeDb = undefined;\r\n }\r\n\r\n /** Create a ChangedElementsDb\r\n * @param pathName The path to the ECDb file to create.\r\n * @throws [IModelError]($common) if the operation failed.\r\n */\r\n private _createDb(briefcase: IModelDb, pathName: string): void {\r\n const status: DbResult = this.nativeDb.createDb(briefcase[_nativeDb], pathName);\r\n if (status !== DbResult.BE_SQLITE_OK)\r\n throw new IModelError(status, \"Failed to created ECDb\");\r\n }\r\n\r\n /** Open the Changed Elements Db.\r\n * @param pathName The path to the ECDb file to open\r\n * @param openMode Open mode\r\n * @throws [IModelError]($common) if the operation failed.\r\n */\r\n private _openDb(pathName: string, openMode: ECDbOpenMode = ECDbOpenMode.Readonly): void {\r\n const nativeOpenMode = openMode === ECDbOpenMode.Readonly ? OpenMode.Readonly : OpenMode.ReadWrite;\r\n const tryUpgrade = openMode === ECDbOpenMode.FileUpgrade;\r\n const status = this.nativeDb.openDb(pathName, nativeOpenMode, tryUpgrade);\r\n if (status !== DbResult.BE_SQLITE_OK)\r\n throw new IModelError(status, \"Failed to open ECDb\");\r\n }\r\n\r\n /** Open the Changed Elements Db.\r\n * @param pathName The path to the ECDb file to open\r\n * @param openMode Open mode\r\n * @returns ChangedElementsDb\r\n */\r\n public static openDb(pathName: string, openMode: ECDbOpenMode = ECDbOpenMode.Readonly): ChangedElementsDb {\r\n const cacheDb = new ChangedElementsDb();\r\n cacheDb._openDb(pathName, openMode);\r\n return cacheDb;\r\n }\r\n\r\n /** Create the changed elements cache db\r\n * @param briefcase IModelDb to use\r\n * @param pathName The path to the ECDb file to create.\r\n * @returns The new cache db\r\n */\r\n public static createDb(briefcase: IModelDb, pathName: string): ChangedElementsDb {\r\n const cacheDb = new ChangedElementsDb();\r\n cacheDb._createDb(briefcase, pathName);\r\n return cacheDb;\r\n }\r\n\r\n /** Processes a range of changesets and adds it to the changed elements cache\r\n * @param briefcase iModel briefcase to use\r\n * @param options Options for processing\r\n */\r\n public async processChangesets(accessToken: AccessToken, briefcase: IModelDb, options: ProcessChangesetOptions): Promise<DbResult> {\r\n const iModelId = briefcase.iModelId;\r\n const first = (await IModelHost[_hubAccess].queryChangeset({ iModelId, changeset: { id: options.startChangesetId }, accessToken })).index;\r\n const end = (await IModelHost[_hubAccess].queryChangeset({ iModelId, changeset: { id: options.endChangesetId }, accessToken })).index;\r\n const changesets = await IModelHost[_hubAccess].downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: BriefcaseManager.getChangeSetsPath(iModelId) });\r\n\r\n // ChangeSets need to be processed from newest to oldest\r\n changesets.reverse();\r\n const status = this.nativeDb.processChangesets(\r\n briefcase[_nativeDb],\r\n changesets,\r\n options.rulesetId,\r\n options.filterSpatial,\r\n options.wantParents,\r\n options.wantPropertyChecksums,\r\n options.rulesetDir,\r\n options.tempDir,\r\n options.wantChunkTraversal,\r\n );\r\n if (status !== DbResult.BE_SQLITE_OK)\r\n throw new IModelError(status, \"Failed to process changesets\");\r\n return status;\r\n }\r\n\r\n /** Processes a range of changesets and adds it to the changed elements cache\r\n * This call will close the IModelDb object as it is required for processing and applying changesets\r\n * @param briefcase iModel briefcase to use\r\n * @param options options for processing\r\n */\r\n public async processChangesetsAndRoll(accessToken: AccessToken, briefcase: IModelDb, options: ProcessChangesetOptions): Promise<DbResult> {\r\n const iModelId = briefcase.iModelId;\r\n const first = (await IModelHost[_hubAccess].queryChangeset({ iModelId, changeset: { id: options.startChangesetId }, accessToken })).index;\r\n const end = (await IModelHost[_hubAccess].queryChangeset({ iModelId, changeset: { id: options.endChangesetId }, accessToken })).index;\r\n const changesets = await IModelHost[_hubAccess].downloadChangesets({ accessToken, iModelId, range: { first, end }, targetDir: BriefcaseManager.getChangeSetsPath(iModelId) });\r\n\r\n // ChangeSets need to be processed from newest to oldest\r\n changesets.reverse();\r\n // Close briefcase before doing processing and rolling briefcase\r\n const dbFilename = briefcase.pathName;\r\n const dbGuid = briefcase.iModelId;\r\n briefcase.close();\r\n // Process changesets\r\n const status = this.nativeDb.processChangesetsAndRoll(\r\n dbFilename,\r\n dbGuid,\r\n changesets,\r\n options.rulesetId,\r\n options.filterSpatial,\r\n options.wantParents,\r\n options.wantPropertyChecksums,\r\n options.rulesetDir,\r\n options.tempDir,\r\n options.wantRelationshipCaching,\r\n options.relationshipCacheSize,\r\n options.wantChunkTraversal,\r\n options.wantBoundingBoxes,\r\n );\r\n if (status !== DbResult.BE_SQLITE_OK)\r\n throw new IModelError(status, \"Failed to process changesets\");\r\n return status;\r\n }\r\n\r\n /** Get changed elements between two changesets\r\n * @param startChangesetId Start Changeset Id\r\n * @param endChangesetId End Changeset Id\r\n * @returns Returns the changed elements between the changesets provided\r\n * @throws [IModelError]($common) if the operation failed.\r\n */\r\n public getChangedElements(startChangesetId: string, endChangesetId: string): ChangedElements | undefined {\r\n const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);\r\n if (result.error || !result.result)\r\n throw new IModelError(result.error ? result.error.status : -1, result.error ? result.error.message : \"Problem getting changed elements\");\r\n return (result.result.changedElements) as ChangedElements;\r\n }\r\n\r\n /** Get changed models between two changesets\r\n * @param startChangesetId Start Changeset Id\r\n * @param endChangesetId End Changeset Id\r\n * @returns Returns the changed models between the changesets provided\r\n * @throws [IModelError]($common) if the operation failed.\r\n */\r\n public getChangedModels(startChangesetId: string, endChangesetId: string): ChangedModels | undefined {\r\n const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);\r\n if (result.error || !result.result)\r\n throw new IModelError(result.error ? result.error.status : -1, result.error ? result.error.message : \"Problem getting changed models\");\r\n return (result.result.changedModels) as ChangedModels;\r\n }\r\n\r\n /** Get changed models between two changesets\r\n * @param startChangesetId Start Changeset Id\r\n * @param endChangesetId End Changeset Id\r\n * @returns Returns the changed models between the changesets provided\r\n * @throws [IModelError]($common) if the operation failed.\r\n */\r\n public getChangeData(startChangesetId: string, endChangesetId: string): ChangeData | undefined {\r\n const result = this.nativeDb.getChangedElements(startChangesetId, endChangesetId);\r\n if (result.error)\r\n throw new IModelError(result.error.status, result.error.message);\r\n return result.result as ChangeData;\r\n }\r\n\r\n /** Returns true if the Changed Elements Db is open */\r\n public get isOpen(): boolean { return this.nativeDb.isOpen(); }\r\n\r\n /** Returns true if the cache already contains this changeset Id */\r\n public isProcessed(changesetId: string): boolean { return this.nativeDb.isProcessed(changesetId); }\r\n\r\n /** Close the Db after saving any uncommitted changes.\r\n * @throws [IModelError]($common) if the database is not open.\r\n */\r\n public closeDb(): void {\r\n this.nativeDb.closeDb();\r\n }\r\n\r\n public cleanCaches(): void {\r\n this.nativeDb.cleanCaches();\r\n }\r\n\r\n /** @internal */\r\n public get nativeDb(): IModelJsNative.ChangedElementsECDb {\r\n if (!this._nativeDb)\r\n throw new IModelError(IModelStatus.BadRequest, \"ChangedElementsDb object has already been disposed.\");\r\n\r\n return this._nativeDb;\r\n }\r\n}\r\n"]}
@@ -17,14 +17,14 @@ class ECDbMap {
17
17
  this.db = db;
18
18
  }
19
19
  getAllDerivedClasses(classFullName) {
20
- const sql = `
21
- SELECT format('0x%x', ch.ClassId)
22
- FROM [ec_cache_ClassHierarchy] [ch]
23
- JOIN [ec_Class] [cs] ON [cs].[Id] = [ch].[BaseClassId]
24
- JOIN [ec_Schema] [sc] ON [sc].[Id] = [cs].[SchemaId]
25
- WHERE (([sc].[Alias] = :schemaNameOrAlias
26
- OR [sc].[Name] = :schemaNameOrAlias)
27
- AND ([cs].[Name] = :className))
20
+ const sql = `
21
+ SELECT format('0x%x', ch.ClassId)
22
+ FROM [ec_cache_ClassHierarchy] [ch]
23
+ JOIN [ec_Class] [cs] ON [cs].[Id] = [ch].[BaseClassId]
24
+ JOIN [ec_Schema] [sc] ON [sc].[Id] = [cs].[SchemaId]
25
+ WHERE (([sc].[Alias] = :schemaNameOrAlias
26
+ OR [sc].[Name] = :schemaNameOrAlias)
27
+ AND ([cs].[Name] = :className))
28
28
  `;
29
29
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
30
30
  const parts = classFullName.indexOf(".") !== -1 ? classFullName.split(".") : classFullName.split(":");
@@ -39,39 +39,39 @@ class ECDbMap {
39
39
  getTable(tableName) {
40
40
  if (this._cacheTables.has(tableName))
41
41
  return this._cacheTables.get(tableName);
42
- const sql = `
43
- SELECT
44
- JSON_OBJECT (
45
- 'id', FORMAT ('0x%x', [t].[id]),
46
- 'name', [t].[Name],
47
- 'type', (
48
- CASE
49
- [t].[type]
50
- WHEN 0 THEN 'Primary'
51
- WHEN 1 THEN 'Joined'
52
- WHEN 2 THEN 'Existing'
53
- WHEN 3 THEN 'Overflow'
54
- WHEN 4 THEN 'Virtual'
55
- END
56
- ),
57
- 'exclusiveRootClassId', FORMAT ('0x%x',
58
- COALESCE (
59
- [t].[ExclusiveRootClassId], (
60
- SELECT [parent].[ExclusiveRootClassId]
61
- FROM [ec_Table] [parent]
62
- WHERE [parent].[Id] = [t].[ParentTableId] AND [parent].[Type] = 1))),
63
- 'isClassIdVirtual', (
64
- SELECT
65
- [c].[IsVirtual]
66
- FROM
67
- [ec_Column] [c]
68
- WHERE
69
- [c].[Name] = 'ECClassId' AND [c].[TableId] = [t].[Id]
70
- )
71
- )
72
- FROM [ec_Table] [t]
73
- WHERE
74
- [t].[Name] = ?;
42
+ const sql = `
43
+ SELECT
44
+ JSON_OBJECT (
45
+ 'id', FORMAT ('0x%x', [t].[id]),
46
+ 'name', [t].[Name],
47
+ 'type', (
48
+ CASE
49
+ [t].[type]
50
+ WHEN 0 THEN 'Primary'
51
+ WHEN 1 THEN 'Joined'
52
+ WHEN 2 THEN 'Existing'
53
+ WHEN 3 THEN 'Overflow'
54
+ WHEN 4 THEN 'Virtual'
55
+ END
56
+ ),
57
+ 'exclusiveRootClassId', FORMAT ('0x%x',
58
+ COALESCE (
59
+ [t].[ExclusiveRootClassId], (
60
+ SELECT [parent].[ExclusiveRootClassId]
61
+ FROM [ec_Table] [parent]
62
+ WHERE [parent].[Id] = [t].[ParentTableId] AND [parent].[Type] = 1))),
63
+ 'isClassIdVirtual', (
64
+ SELECT
65
+ [c].[IsVirtual]
66
+ FROM
67
+ [ec_Column] [c]
68
+ WHERE
69
+ [c].[Name] = 'ECClassId' AND [c].[TableId] = [t].[Id]
70
+ )
71
+ )
72
+ FROM [ec_Table] [t]
73
+ WHERE
74
+ [t].[Name] = ?;
75
75
  `;
76
76
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
77
77
  stmt.bindString(1, tableName);
@@ -92,186 +92,186 @@ class ECDbMap {
92
92
  getClassMap(classId) {
93
93
  if (this._cachedClassMaps.has(classId))
94
94
  return this._cachedClassMaps.get(classId);
95
- const sql = `
96
- SELECT
97
- JSON_OBJECT(
98
- 'id', format('0x%x', cs.id),
99
- 'name', format('%s:%s', ss.Name, cs.Name),
100
- 'mapStrategy',
101
- (
102
- CASE cm.MapStrategy
103
- WHEN 0 THEN 'NotMapped'
104
- WHEN 1 THEN 'OwnTable'
105
- WHEN 2 THEN 'TablePerHierarchy'
106
- WHEN 3 THEN 'ExistingTable'
107
- WHEN 10 THEN 'ForeignKeyInTargetTable'
108
- WHEN 11 THEN 'ForeignKeyInSourceTable'
109
- END
110
- ),
111
- 'type',
112
- (
113
- CASE cs.Type
114
- WHEN 0 THEN 'Entity'
115
- WHEN 1 THEN 'Relationship'
116
- WHEN 2 THEN 'Struct'
117
- WHEN 3 THEN 'CustomAttribute'
118
- END
119
- ),
120
- 'modifier',
121
- (
122
- CASE cs.Modifier
123
- WHEN 0 THEN 'None'
124
- WHEN 1 THEN 'Abstract'
125
- WHEN 2 THEN 'Sealed'
126
- END
127
- ),
128
- 'properties',
129
- (
130
- SELECT
131
- JSON_GROUP_ARRAY(JSON(propJson))
132
- FROM
133
- (
134
- SELECT
135
- JSON_OBJECT(
136
- 'id', format('0x%x', pt.id),
137
- 'name', pt.Name,
138
- 'kind',
139
- (
140
- CASE pt.Kind
141
- WHEN 0 THEN 'Primitive'
142
- WHEN 1 THEN 'Struct'
143
- WHEN 2 THEN 'PrimitiveArray'
144
- WHEN 3 THEN 'StructArray'
145
- WHEN 4 THEN 'Navigation'
146
- END
147
- ),
148
- 'primitiveType',
149
- (
150
- CASE pt.PrimitiveType
151
- WHEN 0x101 THEN 'Binary'
152
- WHEN 0x201 THEN 'Boolean'
153
- WHEN 0x301 THEN 'DateTime'
154
- WHEN 0x401 THEN 'Double'
155
- WHEN 0x501 THEN 'Integer'
156
- WHEN 0x601 THEN 'Long'
157
- WHEN 0x701 THEN 'Point2d'
158
- WHEN 0x801 THEN 'Point3d'
159
- WHEN 0x901 THEN 'String'
160
- WHEN 0xa01 THEN 'IGeometry'
161
- END
162
- ),
163
- 'extendedTypeName', ExtendedTypeName,
164
- 'navigationRelationship',
165
- (
166
- SELECT
167
- JSON_OBJECT(
168
- 'classId', format('0x%x', nc.Id),
169
- 'classFullName', format('%s:%s', ns.Name, nc.Name)
170
- )
171
- FROM ec_Class nc
172
- JOIN ec_Schema ns ON ns.Id = nc.SchemaId
173
- WHERE
174
- nc.Id = pt.NavigationRelationshipClassId
175
- ),
176
- 'structClass',
177
- (
178
- SELECT
179
- JSON_OBJECT(
180
- 'classId', format('0x%x', nc.Id),
181
- 'classFullName', format('%s:%s', ns.Name, nc.Name)
182
- )
183
- FROM ec_Class nc
184
- JOIN ec_Schema ns ON ns.Id = nc.SchemaId
185
- WHERE
186
- nc.Id = pt.StructClassId
187
- ),
188
- 'dateTimeInfo', (
189
- SELECT
190
- JSON_OBJECT (
191
- 'dateTimeKind', (
192
- CASE
193
- WHEN [ca].[Instance] LIKE '%<DateTimeKind>Utc</DateTimeKind>%' COLLATE [NoCase] THEN 'Utc'
194
- WHEN [ca].[Instance] LIKE '%<DateTimeKind>Local</DateTimeKind>%' COLLATE [NoCase] THEN 'Local'
195
- ELSE 'Unspecified'
196
- END
197
- ),
198
- 'dateTimeComponent', (
199
- CASE
200
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>DateTime</DateTimeComponent>%' COLLATE [NoCase] THEN 'DateTime'
201
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>Date</DateTimeComponent>%' COLLATE [NoCase] THEN 'Date'
202
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>TimeOfDay</DateTimeComponent>%' COLLATE [NoCase] THEN 'TimeOfDay'
203
- ELSE 'DateTime'
204
- END
205
- )
206
- )
207
- FROM
208
- [ec_CustomAttribute] [ca]
209
- JOIN [ec_Class] [cl] ON [cl].[Id] = [ca].[ClassId]
210
- JOIN [ec_Schema] [sc] ON [sc].[Id] = [cl].[SchemaId]
211
- WHERE
212
- [ca].[ContainerType] = 992
213
- AND [cl].[Name] = 'DateTimeInfo'
214
- AND [sc].[Name] = 'CoreCustomAttributes'
215
- AND [ca].[ContainerId] = [pt].[Id]
216
- ),
217
- 'columns',
218
- (
219
- SELECT
220
- JSON_GROUP_ARRAY(JSON(columnJson))
221
- FROM
222
- (
223
- SELECT
224
- JSON_OBJECT(
225
- 'table', tb.Name,
226
- 'column', cc.Name,
227
- 'type',
228
- (
229
- CASE cc.Type
230
- WHEN 0 THEN 'Any'
231
- WHEN 1 THEN 'Boolean'
232
- WHEN 2 THEN 'Blob'
233
- WHEN 3 THEN 'Timestamp'
234
- WHEN 4 THEN 'Real'
235
- WHEN 5 THEN 'Integer'
236
- WHEN 6 THEN 'Text'
237
- END
238
- ),
239
- 'columnKind',
240
- (
241
- CASE cc.ColumnKind
242
- WHEN 0 THEN 'Default'
243
- WHEN 1 THEN 'Id'
244
- WHEN 2 THEN 'ClassId'
245
- WHEN 4 THEN 'SharedData'
246
- END
247
- ),
248
- 'accessString', pp0.AccessString,
249
- 'isVirtual', cc.IsVirtual OR tb.Type = 4
250
- ) columnJson
251
- FROM [ec_PropertyMap] [pm0]
252
- JOIN [ec_Column] [cc] ON [cc].[Id] = [pm0].[ColumnId]
253
- JOIN [ec_Table] [tb] ON [tb].[Id] = [cc].[TableId]
254
- JOIN [ec_PropertyPath] [pp0] ON [pp0].[Id] = [pm0].[PropertyPathId]
255
- WHERE
256
- [pp0].[RootPropertyId] = pt.Id AND pm0.ClassId = cs.Id
257
- )
258
- )
259
- ) propJson
260
- FROM [ec_PropertyMap] [pm]
261
- JOIN [ec_PropertyPath] [pp] ON [pp].[Id] = [pm].[PropertyPathId]
262
- JOIN [ec_Property] [pt] ON [pt].[Id] = [pp].[RootPropertyId]
263
- WHERE
264
- pm.ClassId = cs.Id
265
- GROUP BY
266
- pt.Id
267
- )
268
- )
269
- ) classDef
270
- FROM [ec_Class] [cs]
271
- JOIN [ec_ClassMap] [cm] ON [cm].[ClassId] = [cs].[Id]
272
- JOIN [ec_Schema] [ss] ON [ss].[Id] = [cs].[SchemaId]
273
- WHERE
274
- [cs].[Id] = ?
95
+ const sql = `
96
+ SELECT
97
+ JSON_OBJECT(
98
+ 'id', format('0x%x', cs.id),
99
+ 'name', format('%s:%s', ss.Name, cs.Name),
100
+ 'mapStrategy',
101
+ (
102
+ CASE cm.MapStrategy
103
+ WHEN 0 THEN 'NotMapped'
104
+ WHEN 1 THEN 'OwnTable'
105
+ WHEN 2 THEN 'TablePerHierarchy'
106
+ WHEN 3 THEN 'ExistingTable'
107
+ WHEN 10 THEN 'ForeignKeyInTargetTable'
108
+ WHEN 11 THEN 'ForeignKeyInSourceTable'
109
+ END
110
+ ),
111
+ 'type',
112
+ (
113
+ CASE cs.Type
114
+ WHEN 0 THEN 'Entity'
115
+ WHEN 1 THEN 'Relationship'
116
+ WHEN 2 THEN 'Struct'
117
+ WHEN 3 THEN 'CustomAttribute'
118
+ END
119
+ ),
120
+ 'modifier',
121
+ (
122
+ CASE cs.Modifier
123
+ WHEN 0 THEN 'None'
124
+ WHEN 1 THEN 'Abstract'
125
+ WHEN 2 THEN 'Sealed'
126
+ END
127
+ ),
128
+ 'properties',
129
+ (
130
+ SELECT
131
+ JSON_GROUP_ARRAY(JSON(propJson))
132
+ FROM
133
+ (
134
+ SELECT
135
+ JSON_OBJECT(
136
+ 'id', format('0x%x', pt.id),
137
+ 'name', pt.Name,
138
+ 'kind',
139
+ (
140
+ CASE pt.Kind
141
+ WHEN 0 THEN 'Primitive'
142
+ WHEN 1 THEN 'Struct'
143
+ WHEN 2 THEN 'PrimitiveArray'
144
+ WHEN 3 THEN 'StructArray'
145
+ WHEN 4 THEN 'Navigation'
146
+ END
147
+ ),
148
+ 'primitiveType',
149
+ (
150
+ CASE pt.PrimitiveType
151
+ WHEN 0x101 THEN 'Binary'
152
+ WHEN 0x201 THEN 'Boolean'
153
+ WHEN 0x301 THEN 'DateTime'
154
+ WHEN 0x401 THEN 'Double'
155
+ WHEN 0x501 THEN 'Integer'
156
+ WHEN 0x601 THEN 'Long'
157
+ WHEN 0x701 THEN 'Point2d'
158
+ WHEN 0x801 THEN 'Point3d'
159
+ WHEN 0x901 THEN 'String'
160
+ WHEN 0xa01 THEN 'IGeometry'
161
+ END
162
+ ),
163
+ 'extendedTypeName', ExtendedTypeName,
164
+ 'navigationRelationship',
165
+ (
166
+ SELECT
167
+ JSON_OBJECT(
168
+ 'classId', format('0x%x', nc.Id),
169
+ 'classFullName', format('%s:%s', ns.Name, nc.Name)
170
+ )
171
+ FROM ec_Class nc
172
+ JOIN ec_Schema ns ON ns.Id = nc.SchemaId
173
+ WHERE
174
+ nc.Id = pt.NavigationRelationshipClassId
175
+ ),
176
+ 'structClass',
177
+ (
178
+ SELECT
179
+ JSON_OBJECT(
180
+ 'classId', format('0x%x', nc.Id),
181
+ 'classFullName', format('%s:%s', ns.Name, nc.Name)
182
+ )
183
+ FROM ec_Class nc
184
+ JOIN ec_Schema ns ON ns.Id = nc.SchemaId
185
+ WHERE
186
+ nc.Id = pt.StructClassId
187
+ ),
188
+ 'dateTimeInfo', (
189
+ SELECT
190
+ JSON_OBJECT (
191
+ 'dateTimeKind', (
192
+ CASE
193
+ WHEN [ca].[Instance] LIKE '%<DateTimeKind>Utc</DateTimeKind>%' COLLATE [NoCase] THEN 'Utc'
194
+ WHEN [ca].[Instance] LIKE '%<DateTimeKind>Local</DateTimeKind>%' COLLATE [NoCase] THEN 'Local'
195
+ ELSE 'Unspecified'
196
+ END
197
+ ),
198
+ 'dateTimeComponent', (
199
+ CASE
200
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>DateTime</DateTimeComponent>%' COLLATE [NoCase] THEN 'DateTime'
201
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>Date</DateTimeComponent>%' COLLATE [NoCase] THEN 'Date'
202
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>TimeOfDay</DateTimeComponent>%' COLLATE [NoCase] THEN 'TimeOfDay'
203
+ ELSE 'DateTime'
204
+ END
205
+ )
206
+ )
207
+ FROM
208
+ [ec_CustomAttribute] [ca]
209
+ JOIN [ec_Class] [cl] ON [cl].[Id] = [ca].[ClassId]
210
+ JOIN [ec_Schema] [sc] ON [sc].[Id] = [cl].[SchemaId]
211
+ WHERE
212
+ [ca].[ContainerType] = 992
213
+ AND [cl].[Name] = 'DateTimeInfo'
214
+ AND [sc].[Name] = 'CoreCustomAttributes'
215
+ AND [ca].[ContainerId] = [pt].[Id]
216
+ ),
217
+ 'columns',
218
+ (
219
+ SELECT
220
+ JSON_GROUP_ARRAY(JSON(columnJson))
221
+ FROM
222
+ (
223
+ SELECT
224
+ JSON_OBJECT(
225
+ 'table', tb.Name,
226
+ 'column', cc.Name,
227
+ 'type',
228
+ (
229
+ CASE cc.Type
230
+ WHEN 0 THEN 'Any'
231
+ WHEN 1 THEN 'Boolean'
232
+ WHEN 2 THEN 'Blob'
233
+ WHEN 3 THEN 'Timestamp'
234
+ WHEN 4 THEN 'Real'
235
+ WHEN 5 THEN 'Integer'
236
+ WHEN 6 THEN 'Text'
237
+ END
238
+ ),
239
+ 'columnKind',
240
+ (
241
+ CASE cc.ColumnKind
242
+ WHEN 0 THEN 'Default'
243
+ WHEN 1 THEN 'Id'
244
+ WHEN 2 THEN 'ClassId'
245
+ WHEN 4 THEN 'SharedData'
246
+ END
247
+ ),
248
+ 'accessString', pp0.AccessString,
249
+ 'isVirtual', cc.IsVirtual OR tb.Type = 4
250
+ ) columnJson
251
+ FROM [ec_PropertyMap] [pm0]
252
+ JOIN [ec_Column] [cc] ON [cc].[Id] = [pm0].[ColumnId]
253
+ JOIN [ec_Table] [tb] ON [tb].[Id] = [cc].[TableId]
254
+ JOIN [ec_PropertyPath] [pp0] ON [pp0].[Id] = [pm0].[PropertyPathId]
255
+ WHERE
256
+ [pp0].[RootPropertyId] = pt.Id AND pm0.ClassId = cs.Id
257
+ )
258
+ )
259
+ ) propJson
260
+ FROM [ec_PropertyMap] [pm]
261
+ JOIN [ec_PropertyPath] [pp] ON [pp].[Id] = [pm].[PropertyPathId]
262
+ JOIN [ec_Property] [pt] ON [pt].[Id] = [pp].[RootPropertyId]
263
+ WHERE
264
+ pm.ClassId = cs.Id
265
+ GROUP BY
266
+ pt.Id
267
+ )
268
+ )
269
+ ) classDef
270
+ FROM [ec_Class] [cs]
271
+ JOIN [ec_ClassMap] [cm] ON [cm].[ClassId] = [cs].[Id]
272
+ JOIN [ec_Schema] [ss] ON [ss].[Id] = [cs].[SchemaId]
273
+ WHERE
274
+ [cs].[Id] = ?
275
275
  `;
276
276
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
277
277
  stmt.bindId(1, classId);
@@ -337,27 +337,27 @@ class PartialECChangeUnifier {
337
337
  * @returns return root class id
338
338
  */
339
339
  static getRootClassId(classId, db) {
340
- const sql = `
341
- WITH
342
- [base_class]([classId], [baseClassId], [Level]) AS(
343
- SELECT [ch].[ClassId], [ch].[BaseClassId], 0
344
- FROM [ec_ClassHasBaseClasses] [ch] WHERE [ch].[ClassId] = ?
345
- UNION ALL
346
- SELECT [ch].[ClassId], [ch].[BaseClassId], [Level] + 1
347
- FROM [ec_ClassHasBaseClasses] [ch], [base_class] [bc] WHERE [bc].[BaseClassId] = [ch].[ClassId]
348
-
349
- )
350
- SELECT FORMAT('0x%x', [bc].[BaseClassId]) rootClass
351
- FROM [base_class] [bc]
352
- WHERE [bc].[ClassId] <> [bc].[BaseClassId]
353
- AND [bc].[BaseClassId] NOT IN (SELECT [ca].[ContainerId]
354
- FROM [ec_CustomAttribute] [ca]
355
- WHERE [ca].[ContainerType] = 30
356
- AND [ca].[ClassId] IN (SELECT [cc].[Id]
357
- FROM [ec_Class] [cc]
358
- JOIN [ec_Schema] [ss] ON [ss].[Id] = [cc].[SchemaId]
359
- WHERE [cc].[Name] = 'IsMixIn'
360
- AND [ss].[Name] = 'CoreCustomAttributes'))
340
+ const sql = `
341
+ WITH
342
+ [base_class]([classId], [baseClassId], [Level]) AS(
343
+ SELECT [ch].[ClassId], [ch].[BaseClassId], 0
344
+ FROM [ec_ClassHasBaseClasses] [ch] WHERE [ch].[ClassId] = ?
345
+ UNION ALL
346
+ SELECT [ch].[ClassId], [ch].[BaseClassId], [Level] + 1
347
+ FROM [ec_ClassHasBaseClasses] [ch], [base_class] [bc] WHERE [bc].[BaseClassId] = [ch].[ClassId]
348
+
349
+ )
350
+ SELECT FORMAT('0x%x', [bc].[BaseClassId]) rootClass
351
+ FROM [base_class] [bc]
352
+ WHERE [bc].[ClassId] <> [bc].[BaseClassId]
353
+ AND [bc].[BaseClassId] NOT IN (SELECT [ca].[ContainerId]
354
+ FROM [ec_CustomAttribute] [ca]
355
+ WHERE [ca].[ContainerType] = 30
356
+ AND [ca].[ClassId] IN (SELECT [cc].[Id]
357
+ FROM [ec_Class] [cc]
358
+ JOIN [ec_Schema] [ss] ON [ss].[Id] = [cc].[SchemaId]
359
+ WHERE [cc].[Name] = 'IsMixIn'
360
+ AND [ss].[Name] = 'CoreCustomAttributes'))
361
361
  ORDER BY [Level] DESC`;
362
362
  return db.withSqliteStatement(sql, (stmt) => {
363
363
  stmt.bindId(1, classId);