@itwin/core-backend 5.9.0-dev.4 → 5.9.0-dev.6

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 (658) hide show
  1. package/lib/cjs/BackendHubAccess.js.map +1 -1
  2. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  3. package/lib/cjs/BisCoreSchema.js.map +1 -1
  4. package/lib/cjs/BlobContainerService.js.map +1 -1
  5. package/lib/cjs/BriefcaseManager.js +3 -3
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.d.ts +37 -7
  9. package/lib/cjs/Category.d.ts.map +1 -1
  10. package/lib/cjs/Category.js +33 -42
  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.d.ts.map +1 -1
  16. package/lib/cjs/ChangesetECAdaptor.js +253 -250
  17. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  18. package/lib/cjs/ChannelControl.d.ts +29 -0
  19. package/lib/cjs/ChannelControl.d.ts.map +1 -1
  20. package/lib/cjs/ChannelControl.js.map +1 -1
  21. package/lib/cjs/CheckpointManager.js +1 -1
  22. package/lib/cjs/CheckpointManager.js.map +1 -1
  23. package/lib/cjs/ClassRegistry.js +5 -5
  24. package/lib/cjs/ClassRegistry.js.map +1 -1
  25. package/lib/cjs/CloudSqlite.js.map +1 -1
  26. package/lib/cjs/CodeService.js.map +1 -1
  27. package/lib/cjs/CodeSpecs.d.ts +32 -3
  28. package/lib/cjs/CodeSpecs.d.ts.map +1 -1
  29. package/lib/cjs/CodeSpecs.js +48 -20
  30. package/lib/cjs/CodeSpecs.js.map +1 -1
  31. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  32. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  33. package/lib/cjs/DevTools.js.map +1 -1
  34. package/lib/cjs/DisplayStyle.d.ts +18 -3
  35. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  36. package/lib/cjs/DisplayStyle.js +10 -21
  37. package/lib/cjs/DisplayStyle.js.map +1 -1
  38. package/lib/cjs/ECDb.js.map +1 -1
  39. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  40. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  41. package/lib/cjs/ECSqlStatement.js.map +1 -1
  42. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  43. package/lib/cjs/EditTxn.d.ts +262 -0
  44. package/lib/cjs/EditTxn.d.ts.map +1 -0
  45. package/lib/cjs/EditTxn.js +548 -0
  46. package/lib/cjs/EditTxn.js.map +1 -0
  47. package/lib/cjs/Element.d.ts +74 -5
  48. package/lib/cjs/Element.d.ts.map +1 -1
  49. package/lib/cjs/Element.js +63 -75
  50. package/lib/cjs/Element.js.map +1 -1
  51. package/lib/cjs/ElementAspect.d.ts +10 -0
  52. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  53. package/lib/cjs/ElementAspect.js +21 -12
  54. package/lib/cjs/ElementAspect.js.map +1 -1
  55. package/lib/cjs/ElementGraphics.js.map +1 -1
  56. package/lib/cjs/ElementTreeWalker.d.ts +56 -3
  57. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  58. package/lib/cjs/ElementTreeWalker.js +53 -40
  59. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  60. package/lib/cjs/Entity.js.map +1 -1
  61. package/lib/cjs/EntityReferences.js.map +1 -1
  62. package/lib/cjs/ExportGraphics.js.map +1 -1
  63. package/lib/cjs/ExternalSource.d.ts +11 -2
  64. package/lib/cjs/ExternalSource.d.ts.map +1 -1
  65. package/lib/cjs/ExternalSource.js +10 -8
  66. package/lib/cjs/ExternalSource.js.map +1 -1
  67. package/lib/cjs/FontFile.js.map +1 -1
  68. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  69. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  70. package/lib/cjs/GeometrySummary.js +47 -47
  71. package/lib/cjs/GeometrySummary.js.map +1 -1
  72. package/lib/cjs/IModelDb.d.ts +66 -22
  73. package/lib/cjs/IModelDb.d.ts.map +1 -1
  74. package/lib/cjs/IModelDb.js +182 -296
  75. package/lib/cjs/IModelDb.js.map +1 -1
  76. package/lib/cjs/IModelDbFonts.js.map +1 -1
  77. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  78. package/lib/cjs/IModelHost.d.ts +22 -0
  79. package/lib/cjs/IModelHost.d.ts.map +1 -1
  80. package/lib/cjs/IModelHost.js +9 -0
  81. package/lib/cjs/IModelHost.js.map +1 -1
  82. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  83. package/lib/cjs/IModelJsFs.js.map +1 -1
  84. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  85. package/lib/cjs/IpcHost.js +2 -2
  86. package/lib/cjs/IpcHost.js.map +1 -1
  87. package/lib/cjs/LineStyle.d.ts +47 -7
  88. package/lib/cjs/LineStyle.d.ts.map +1 -1
  89. package/lib/cjs/LineStyle.js +38 -33
  90. package/lib/cjs/LineStyle.js.map +1 -1
  91. package/lib/cjs/LocalHub.js +1 -1
  92. package/lib/cjs/LocalHub.js.map +1 -1
  93. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  94. package/lib/cjs/LockControl.js.map +1 -1
  95. package/lib/cjs/Material.d.ts +8 -1
  96. package/lib/cjs/Material.d.ts.map +1 -1
  97. package/lib/cjs/Material.js +6 -12
  98. package/lib/cjs/Material.js.map +1 -1
  99. package/lib/cjs/Model.d.ts +59 -20
  100. package/lib/cjs/Model.d.ts.map +1 -1
  101. package/lib/cjs/Model.js +38 -80
  102. package/lib/cjs/Model.js.map +1 -1
  103. package/lib/cjs/NativeAppStorage.js.map +1 -1
  104. package/lib/cjs/NativeHost.js.map +1 -1
  105. package/lib/cjs/NavigationRelationship.js.map +1 -1
  106. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  107. package/lib/cjs/PropertyStore.js.map +1 -1
  108. package/lib/cjs/Relationship.d.ts +72 -7
  109. package/lib/cjs/Relationship.d.ts.map +1 -1
  110. package/lib/cjs/Relationship.js +39 -21
  111. package/lib/cjs/Relationship.js.map +1 -1
  112. package/lib/cjs/RpcBackend.js.map +1 -1
  113. package/lib/cjs/SQLiteDb.js.map +1 -1
  114. package/lib/cjs/Schema.js.map +1 -1
  115. package/lib/cjs/SchemaSync.js +4 -4
  116. package/lib/cjs/SchemaSync.js.map +1 -1
  117. package/lib/cjs/SchemaUtils.js.map +1 -1
  118. package/lib/cjs/SheetIndex.d.ts +9 -0
  119. package/lib/cjs/SheetIndex.d.ts.map +1 -1
  120. package/lib/cjs/SheetIndex.js +38 -35
  121. package/lib/cjs/SheetIndex.js.map +1 -1
  122. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  123. package/lib/cjs/SqliteStatement.js.map +1 -1
  124. package/lib/cjs/StashManager.js +1 -1
  125. package/lib/cjs/StashManager.js.map +1 -1
  126. package/lib/cjs/Texture.d.ts +6 -0
  127. package/lib/cjs/Texture.d.ts.map +1 -1
  128. package/lib/cjs/Texture.js +6 -14
  129. package/lib/cjs/Texture.js.map +1 -1
  130. package/lib/cjs/TileStorage.js.map +1 -1
  131. package/lib/cjs/TxnManager.d.ts +5 -5
  132. package/lib/cjs/TxnManager.d.ts.map +1 -1
  133. package/lib/cjs/TxnManager.js +23 -7
  134. package/lib/cjs/TxnManager.js.map +1 -1
  135. package/lib/cjs/ViewDefinition.d.ts +21 -1
  136. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  137. package/lib/cjs/ViewDefinition.js +27 -66
  138. package/lib/cjs/ViewDefinition.js.map +1 -1
  139. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  140. package/lib/cjs/ViewStore.js.map +1 -1
  141. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
  142. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
  143. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +33 -27
  144. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  145. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  146. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  147. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  148. package/lib/cjs/annotations/TextAnnotationElement.js +6 -5
  149. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  150. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  151. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  152. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  153. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  154. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  155. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  156. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  157. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  158. package/lib/cjs/core-backend.d.ts +1 -0
  159. package/lib/cjs/core-backend.d.ts.map +1 -1
  160. package/lib/cjs/core-backend.js +1 -0
  161. package/lib/cjs/core-backend.js.map +1 -1
  162. package/lib/cjs/domains/FunctionalElements.d.ts +6 -2
  163. package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
  164. package/lib/cjs/domains/FunctionalElements.js +8 -13
  165. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  166. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  167. package/lib/cjs/domains/GenericElements.d.ts +11 -4
  168. package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
  169. package/lib/cjs/domains/GenericElements.js +13 -24
  170. package/lib/cjs/domains/GenericElements.js.map +1 -1
  171. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  172. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  173. package/lib/cjs/internal/ChannelAdmin.d.ts +15 -0
  174. package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
  175. package/lib/cjs/internal/ChannelAdmin.js +5 -3
  176. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  177. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  178. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  179. package/lib/cjs/internal/HubMock.js.map +1 -1
  180. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  181. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  182. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  183. package/lib/cjs/internal/NoLocks.js.map +1 -1
  184. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  185. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  186. package/lib/cjs/internal/Symbols.d.ts +4 -0
  187. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  188. package/lib/cjs/internal/Symbols.js +5 -1
  189. package/lib/cjs/internal/Symbols.js.map +1 -1
  190. package/lib/cjs/internal/annotations/fields.d.ts +3 -2
  191. package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
  192. package/lib/cjs/internal/annotations/fields.js +7 -6
  193. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  194. package/lib/cjs/internal/cross-package.js.map +1 -1
  195. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  196. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  197. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  198. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  199. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  200. package/lib/cjs/rpc/multipart.js.map +1 -1
  201. package/lib/cjs/rpc/tracing.js.map +1 -1
  202. package/lib/cjs/rpc/web/logging.js.map +1 -1
  203. package/lib/cjs/rpc/web/request.js.map +1 -1
  204. package/lib/cjs/rpc/web/response.js.map +1 -1
  205. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  206. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  207. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  208. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  209. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  210. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  211. package/lib/cjs/workspace/Settings.js.map +1 -1
  212. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  213. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  214. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  215. package/lib/cjs/workspace/Workspace.js.map +1 -1
  216. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  217. package/lib/esm/BackendHubAccess.js.map +1 -1
  218. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  219. package/lib/esm/BisCoreSchema.js.map +1 -1
  220. package/lib/esm/BlobContainerService.js.map +1 -1
  221. package/lib/esm/BriefcaseManager.js +3 -3
  222. package/lib/esm/BriefcaseManager.js.map +1 -1
  223. package/lib/esm/CatalogDb.js.map +1 -1
  224. package/lib/esm/Category.d.ts +37 -7
  225. package/lib/esm/Category.d.ts.map +1 -1
  226. package/lib/esm/Category.js +33 -42
  227. package/lib/esm/Category.js.map +1 -1
  228. package/lib/esm/ChangeSummaryManager.js +2 -2
  229. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  230. package/lib/esm/ChangedElementsDb.js.map +1 -1
  231. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  232. package/lib/esm/ChangesetECAdaptor.js +253 -250
  233. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  234. package/lib/esm/ChannelControl.d.ts +29 -0
  235. package/lib/esm/ChannelControl.d.ts.map +1 -1
  236. package/lib/esm/ChannelControl.js.map +1 -1
  237. package/lib/esm/CheckpointManager.js +1 -1
  238. package/lib/esm/CheckpointManager.js.map +1 -1
  239. package/lib/esm/ClassRegistry.js +5 -5
  240. package/lib/esm/ClassRegistry.js.map +1 -1
  241. package/lib/esm/CloudSqlite.js.map +1 -1
  242. package/lib/esm/CodeService.js.map +1 -1
  243. package/lib/esm/CodeSpecs.d.ts +32 -3
  244. package/lib/esm/CodeSpecs.d.ts.map +1 -1
  245. package/lib/esm/CodeSpecs.js +49 -21
  246. package/lib/esm/CodeSpecs.js.map +1 -1
  247. package/lib/esm/ConcurrentQuery.js.map +1 -1
  248. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  249. package/lib/esm/DevTools.js.map +1 -1
  250. package/lib/esm/DisplayStyle.d.ts +18 -3
  251. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  252. package/lib/esm/DisplayStyle.js +10 -21
  253. package/lib/esm/DisplayStyle.js.map +1 -1
  254. package/lib/esm/ECDb.js.map +1 -1
  255. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  256. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  257. package/lib/esm/ECSqlStatement.js.map +1 -1
  258. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  259. package/lib/esm/EditTxn.d.ts +262 -0
  260. package/lib/esm/EditTxn.d.ts.map +1 -0
  261. package/lib/esm/EditTxn.js +543 -0
  262. package/lib/esm/EditTxn.js.map +1 -0
  263. package/lib/esm/Element.d.ts +74 -5
  264. package/lib/esm/Element.d.ts.map +1 -1
  265. package/lib/esm/Element.js +64 -76
  266. package/lib/esm/Element.js.map +1 -1
  267. package/lib/esm/ElementAspect.d.ts +10 -0
  268. package/lib/esm/ElementAspect.d.ts.map +1 -1
  269. package/lib/esm/ElementAspect.js +22 -13
  270. package/lib/esm/ElementAspect.js.map +1 -1
  271. package/lib/esm/ElementGraphics.js.map +1 -1
  272. package/lib/esm/ElementTreeWalker.d.ts +56 -3
  273. package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
  274. package/lib/esm/ElementTreeWalker.js +53 -40
  275. package/lib/esm/ElementTreeWalker.js.map +1 -1
  276. package/lib/esm/Entity.js.map +1 -1
  277. package/lib/esm/EntityReferences.js.map +1 -1
  278. package/lib/esm/ExportGraphics.js.map +1 -1
  279. package/lib/esm/ExternalSource.d.ts +11 -2
  280. package/lib/esm/ExternalSource.d.ts.map +1 -1
  281. package/lib/esm/ExternalSource.js +10 -8
  282. package/lib/esm/ExternalSource.js.map +1 -1
  283. package/lib/esm/FontFile.js.map +1 -1
  284. package/lib/esm/GeoCoordConfig.js.map +1 -1
  285. package/lib/esm/GeographicCRSServices.js.map +1 -1
  286. package/lib/esm/GeometrySummary.js +47 -47
  287. package/lib/esm/GeometrySummary.js.map +1 -1
  288. package/lib/esm/IModelDb.d.ts +66 -22
  289. package/lib/esm/IModelDb.d.ts.map +1 -1
  290. package/lib/esm/IModelDb.js +184 -298
  291. package/lib/esm/IModelDb.js.map +1 -1
  292. package/lib/esm/IModelDbFonts.js.map +1 -1
  293. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  294. package/lib/esm/IModelHost.d.ts +22 -0
  295. package/lib/esm/IModelHost.d.ts.map +1 -1
  296. package/lib/esm/IModelHost.js +9 -0
  297. package/lib/esm/IModelHost.js.map +1 -1
  298. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  299. package/lib/esm/IModelJsFs.js.map +1 -1
  300. package/lib/esm/ImageSourceConversion.js.map +1 -1
  301. package/lib/esm/IpcHost.js +3 -3
  302. package/lib/esm/IpcHost.js.map +1 -1
  303. package/lib/esm/LineStyle.d.ts +47 -7
  304. package/lib/esm/LineStyle.d.ts.map +1 -1
  305. package/lib/esm/LineStyle.js +38 -33
  306. package/lib/esm/LineStyle.js.map +1 -1
  307. package/lib/esm/LocalHub.js +1 -1
  308. package/lib/esm/LocalHub.js.map +1 -1
  309. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  310. package/lib/esm/LockControl.js.map +1 -1
  311. package/lib/esm/Material.d.ts +8 -1
  312. package/lib/esm/Material.d.ts.map +1 -1
  313. package/lib/esm/Material.js +6 -12
  314. package/lib/esm/Material.js.map +1 -1
  315. package/lib/esm/Model.d.ts +59 -20
  316. package/lib/esm/Model.d.ts.map +1 -1
  317. package/lib/esm/Model.js +39 -81
  318. package/lib/esm/Model.js.map +1 -1
  319. package/lib/esm/NativeAppStorage.js.map +1 -1
  320. package/lib/esm/NativeHost.js.map +1 -1
  321. package/lib/esm/NavigationRelationship.js.map +1 -1
  322. package/lib/esm/PromiseMemoizer.js.map +1 -1
  323. package/lib/esm/PropertyStore.js.map +1 -1
  324. package/lib/esm/Relationship.d.ts +72 -7
  325. package/lib/esm/Relationship.d.ts.map +1 -1
  326. package/lib/esm/Relationship.js +40 -22
  327. package/lib/esm/Relationship.js.map +1 -1
  328. package/lib/esm/RpcBackend.js.map +1 -1
  329. package/lib/esm/SQLiteDb.js.map +1 -1
  330. package/lib/esm/Schema.js.map +1 -1
  331. package/lib/esm/SchemaSync.js +5 -5
  332. package/lib/esm/SchemaSync.js.map +1 -1
  333. package/lib/esm/SchemaUtils.js.map +1 -1
  334. package/lib/esm/SheetIndex.d.ts +9 -0
  335. package/lib/esm/SheetIndex.d.ts.map +1 -1
  336. package/lib/esm/SheetIndex.js +38 -35
  337. package/lib/esm/SheetIndex.js.map +1 -1
  338. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  339. package/lib/esm/SqliteStatement.js.map +1 -1
  340. package/lib/esm/StashManager.js +1 -1
  341. package/lib/esm/StashManager.js.map +1 -1
  342. package/lib/esm/Texture.d.ts +6 -0
  343. package/lib/esm/Texture.d.ts.map +1 -1
  344. package/lib/esm/Texture.js +6 -14
  345. package/lib/esm/Texture.js.map +1 -1
  346. package/lib/esm/TileStorage.js.map +1 -1
  347. package/lib/esm/TxnManager.d.ts +5 -5
  348. package/lib/esm/TxnManager.d.ts.map +1 -1
  349. package/lib/esm/TxnManager.js +23 -7
  350. package/lib/esm/TxnManager.js.map +1 -1
  351. package/lib/esm/ViewDefinition.d.ts +21 -1
  352. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  353. package/lib/esm/ViewDefinition.js +27 -66
  354. package/lib/esm/ViewDefinition.js.map +1 -1
  355. package/lib/esm/ViewStateHydrator.js.map +1 -1
  356. package/lib/esm/ViewStore.js.map +1 -1
  357. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
  358. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
  359. package/lib/esm/annotations/ElementDrivesTextAnnotation.js +33 -27
  360. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  361. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  362. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  363. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  364. package/lib/esm/annotations/TextAnnotationElement.js +6 -5
  365. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  366. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  367. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  368. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  369. package/lib/esm/core-backend.d.ts +1 -0
  370. package/lib/esm/core-backend.d.ts.map +1 -1
  371. package/lib/esm/core-backend.js +1 -0
  372. package/lib/esm/core-backend.js.map +1 -1
  373. package/lib/esm/domains/FunctionalElements.d.ts +6 -2
  374. package/lib/esm/domains/FunctionalElements.d.ts.map +1 -1
  375. package/lib/esm/domains/FunctionalElements.js +8 -13
  376. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  377. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  378. package/lib/esm/domains/GenericElements.d.ts +11 -4
  379. package/lib/esm/domains/GenericElements.d.ts.map +1 -1
  380. package/lib/esm/domains/GenericElements.js +13 -24
  381. package/lib/esm/domains/GenericElements.js.map +1 -1
  382. package/lib/esm/domains/GenericSchema.js.map +1 -1
  383. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  384. package/lib/esm/internal/ChannelAdmin.d.ts +15 -0
  385. package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
  386. package/lib/esm/internal/ChannelAdmin.js +6 -4
  387. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  388. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  389. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  390. package/lib/esm/internal/HubMock.js.map +1 -1
  391. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  392. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  393. package/lib/esm/internal/NativePlatform.js.map +1 -1
  394. package/lib/esm/internal/NoLocks.js.map +1 -1
  395. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  396. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  397. package/lib/esm/internal/Symbols.d.ts +4 -0
  398. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  399. package/lib/esm/internal/Symbols.js +4 -0
  400. package/lib/esm/internal/Symbols.js.map +1 -1
  401. package/lib/esm/internal/annotations/fields.d.ts +3 -2
  402. package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
  403. package/lib/esm/internal/annotations/fields.js +7 -6
  404. package/lib/esm/internal/annotations/fields.js.map +1 -1
  405. package/lib/esm/internal/cross-package.js.map +1 -1
  406. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  407. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  408. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  409. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  410. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  411. package/lib/esm/rpc/multipart.js.map +1 -1
  412. package/lib/esm/rpc/tracing.js.map +1 -1
  413. package/lib/esm/rpc/web/logging.js.map +1 -1
  414. package/lib/esm/rpc/web/request.js.map +1 -1
  415. package/lib/esm/rpc/web/response.js.map +1 -1
  416. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  417. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  418. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  419. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  420. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  421. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  422. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  423. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  424. package/lib/esm/test/AttachDb.test.js +11 -11
  425. package/lib/esm/test/AttachDb.test.js.map +1 -1
  426. package/lib/esm/test/ElementDrivesElement.test.d.ts +20 -19
  427. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  428. package/lib/esm/test/ElementDrivesElement.test.js +134 -119
  429. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  430. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  431. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  432. package/lib/esm/test/IModelHost.test.js +56 -2
  433. package/lib/esm/test/IModelHost.test.js.map +1 -1
  434. package/lib/esm/test/IModelTestUtils.d.ts +23 -23
  435. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  436. package/lib/esm/test/IModelTestUtils.js +466 -449
  437. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  438. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  439. package/lib/esm/test/IpcHost.test.js.map +1 -1
  440. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  441. package/lib/esm/test/PrintElementTree.js.map +1 -1
  442. package/lib/esm/test/PropertyDb.test.js +2 -2
  443. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  444. package/lib/esm/test/RevisionUtility.js.map +1 -1
  445. package/lib/esm/test/SchemaUtils.test.js +25 -25
  446. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  447. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  448. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +156 -147
  449. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  450. package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -1
  451. package/lib/esm/test/TestChangeSetUtility.js +11 -7
  452. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  453. package/lib/esm/test/TestEditTxn.d.ts +8 -0
  454. package/lib/esm/test/TestEditTxn.d.ts.map +1 -0
  455. package/lib/esm/test/TestEditTxn.js +34 -0
  456. package/lib/esm/test/TestEditTxn.js.map +1 -0
  457. package/lib/esm/test/TestUtils.d.ts +1 -0
  458. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  459. package/lib/esm/test/TestUtils.js +8 -1
  460. package/lib/esm/test/TestUtils.js.map +1 -1
  461. package/lib/esm/test/annotations/Fields.test.js +135 -143
  462. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  463. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  464. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  465. package/lib/esm/test/annotations/TextAnnotation.test.js +156 -99
  466. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  467. package/lib/esm/test/annotations/TextBlock.test.js +5 -3
  468. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  469. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  470. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  471. package/lib/esm/test/categories/Category.test.js +63 -3
  472. package/lib/esm/test/categories/Category.test.js.map +1 -1
  473. package/lib/esm/test/codespec/CodeSpec.test.js +88 -5
  474. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  475. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  476. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  477. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  478. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  479. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  480. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  481. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  482. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  483. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  484. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  485. package/lib/esm/test/ecdb/ECSqlAst.test.js +68 -67
  486. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  487. package/lib/esm/test/ecdb/ECSqlQuery.test.js +6 -6
  488. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  489. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -333
  490. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  491. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  492. package/lib/esm/test/ecdb/QueryReaders.test.js +47 -44
  493. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  494. package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -2
  495. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  496. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -1
  497. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +30 -28
  498. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  499. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  500. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  501. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  502. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  503. package/lib/esm/test/element/DeleteDefinitionElements.test.js +159 -143
  504. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  505. package/lib/esm/test/element/ElementAspect.test.js +90 -82
  506. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  507. package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -1
  508. package/lib/esm/test/element/ElementDependencyGraph.test.js +51 -43
  509. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  510. package/lib/esm/test/element/ElementRoundTrip.test.js +176 -177
  511. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  512. package/lib/esm/test/element/ExcludedElements.test.js +2 -2
  513. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  514. package/lib/esm/test/element/ExternalSource.test.js +40 -38
  515. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  516. package/lib/esm/test/element/NullStructArray.test.js +23 -22
  517. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  518. package/lib/esm/test/element/ProjectInformationRecord.test.js +5 -2
  519. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  520. package/lib/esm/test/element/SheetInformationAspect.test.js +43 -11
  521. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  522. package/lib/esm/test/element/UrlLink.test.js +2 -2
  523. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  524. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  525. package/lib/esm/test/font/IModelDbFonts.test.js +87 -73
  526. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  527. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +194 -155
  528. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  529. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +2 -4
  530. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  531. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  532. package/lib/esm/test/hubaccess/Rebase.test.js +369 -303
  533. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  534. package/lib/esm/test/hubaccess/SemanticRebase.test.js +467 -392
  535. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  536. package/lib/esm/test/imageData.js.map +1 -1
  537. package/lib/esm/test/imodel/Code.test.js +31 -31
  538. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  539. package/lib/esm/test/imodel/ElementTreeWalker.test.js +57 -48
  540. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  541. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  542. package/lib/esm/test/imodel/IModel.test.js +463 -388
  543. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  544. package/lib/esm/test/imodel/ProjectExtents.test.js +2 -2
  545. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  546. package/lib/esm/test/imodel/SchemaXmlImport.test.js +13 -13
  547. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  548. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  549. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  550. package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -1
  551. package/lib/esm/test/incrementalSchemaLocater/TestContext.js +2 -2
  552. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  553. package/lib/esm/test/index.d.ts +1 -0
  554. package/lib/esm/test/index.d.ts.map +1 -1
  555. package/lib/esm/test/index.js +1 -0
  556. package/lib/esm/test/index.js.map +1 -1
  557. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  558. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  559. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  560. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  561. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  562. package/lib/esm/test/rpc/response.test.js.map +1 -1
  563. package/lib/esm/test/schema/ClassRegistry.test.js +122 -121
  564. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  565. package/lib/esm/test/schema/FunctionalDomain.test.js +36 -34
  566. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  567. package/lib/esm/test/schema/GenericDomain.test.js +114 -94
  568. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  569. package/lib/esm/test/schema/IModelSchemaContext.test.js +11 -10
  570. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  571. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +226 -211
  572. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  573. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +1 -3
  574. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -1
  575. package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -247
  576. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  577. package/lib/esm/test/standalone/ChangeMerge.test.js +101 -82
  578. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  579. package/lib/esm/test/standalone/ChangesetReader.test.js +242 -213
  580. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  581. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  582. package/lib/esm/test/standalone/DisplayStyle.test.js +43 -40
  583. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  584. package/lib/esm/test/standalone/Drawing.test.js +4 -3
  585. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  586. package/lib/esm/test/standalone/EditTxn.test.d.ts +2 -0
  587. package/lib/esm/test/standalone/EditTxn.test.d.ts.map +1 -0
  588. package/lib/esm/test/standalone/EditTxn.test.js +219 -0
  589. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -0
  590. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  591. package/lib/esm/test/standalone/ElementMesh.test.js +16 -13
  592. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  593. package/lib/esm/test/standalone/ExportGraphics.test.js +40 -34
  594. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  595. package/lib/esm/test/standalone/GeometryChangeEvents.test.js +11 -15
  596. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  597. package/lib/esm/test/standalone/GeometryStream.test.js +212 -165
  598. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  599. package/lib/esm/test/standalone/HubMock.test.js +31 -25
  600. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  601. package/lib/esm/test/standalone/IModelLimits.test.js +11 -8
  602. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  603. package/lib/esm/test/standalone/IModelWrite.test.d.ts +2 -2
  604. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  605. package/lib/esm/test/standalone/IModelWrite.test.js +211 -169
  606. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  607. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  608. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +25 -22
  609. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  610. package/lib/esm/test/standalone/IntegrityCheck.test.js +20 -18
  611. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  612. package/lib/esm/test/standalone/MergeConflict.test.d.ts +2 -2
  613. package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -1
  614. package/lib/esm/test/standalone/MergeConflict.test.js +49 -33
  615. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  616. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  617. package/lib/esm/test/standalone/RenderMaterialElement.test.js +5 -5
  618. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  619. package/lib/esm/test/standalone/RenderTimeline.test.js +3 -2
  620. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  621. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  622. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  623. package/lib/esm/test/standalone/SectionDrawing.test.js +7 -7
  624. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  625. package/lib/esm/test/standalone/ServerBasedLocks.test.js +21 -19
  626. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  627. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  628. package/lib/esm/test/standalone/Settings.test.js +7 -4
  629. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  630. package/lib/esm/test/standalone/SettingsSchemas.test.js +2 -1
  631. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  632. package/lib/esm/test/standalone/SnapshotDb.test.js +3 -1
  633. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  634. package/lib/esm/test/standalone/StandaloneDb.test.js +27 -26
  635. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  636. package/lib/esm/test/standalone/Texture.test.js +5 -4
  637. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  638. package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -1
  639. package/lib/esm/test/standalone/TileCache.test.js +5 -3
  640. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  641. package/lib/esm/test/standalone/TileTree.test.js +35 -31
  642. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  643. package/lib/esm/test/standalone/TxnManager.test.js +700 -653
  644. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  645. package/lib/esm/test/standalone/ViewDefinition.test.js +295 -229
  646. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  647. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  648. package/lib/esm/test/standalone/Workspace.test.js +25 -23
  649. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  650. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  651. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  652. package/lib/esm/workspace/Settings.js.map +1 -1
  653. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  654. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  655. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  656. package/lib/esm/workspace/Workspace.js.map +1 -1
  657. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  658. package/package.json +13 -13
@@ -5,180 +5,219 @@
5
5
  import * as chai from "chai";
6
6
  import * as chaiAsPromised from "chai-as-promised";
7
7
  import { HubWrappers, IModelTestUtils, KnownTestLocations } from "..";
8
- import { BriefcaseDb, BriefcaseManager, ChannelControl, IModelHost, Subject, SubjectOwnsSubjects } from "../../core-backend";
8
+ import { BriefcaseDb, BriefcaseManager, ChannelControl, Subject, SubjectOwnsSubjects } from "../../core-backend";
9
+ import { withEditTxn } from "../../EditTxn";
9
10
  import { HubMock } from "../../internal/HubMock";
10
11
  import { IModel, SchemaState } from "@itwin/core-common";
11
12
  import { Guid } from "@itwin/core-bentley";
13
+ import { TestUtils } from "../TestUtils";
12
14
  chai.use(chaiAsPromised);
13
15
  describe("apply changesets", function () {
14
16
  before(async () => {
15
- await IModelHost.startup();
17
+ await TestUtils.startBackend();
16
18
  });
17
19
  it("Apply changeset with no local changes, should not create new local changes", async () => {
18
20
  HubMock.startup("PullMergeMethod", KnownTestLocations.outputDir);
19
- const iModelId = await HubMock.createNewIModel({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelName: "Test", description: "TestSubject" });
20
- const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
21
- b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);
22
- b1.saveChanges();
23
- const b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
24
- b2.channels.addAllowedChannel(ChannelControl.sharedChannelName);
25
- b2.saveChanges();
26
- const b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
27
- b3.channels.addAllowedChannel(ChannelControl.sharedChannelName);
28
- b3.saveChanges();
29
- const schema1 = `<?xml version="1.0" encoding="UTF-8"?>
30
- <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
31
- <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
32
- <ECEntityClass typeName="a1">
33
- <BaseClass>bis:GraphicalElement2d</BaseClass>
34
- </ECEntityClass>
35
- <ECEntityClass typeName="b1"> <BaseClass>a1</BaseClass> </ECEntityClass>
36
- <ECEntityClass typeName="b2"> <BaseClass>a1</BaseClass> </ECEntityClass>
37
- <ECEntityClass typeName="c1"> <BaseClass>b1</BaseClass> </ECEntityClass>
38
- <ECEntityClass typeName="c2"> <BaseClass>b1</BaseClass> </ECEntityClass>
39
- <ECEntityClass typeName="d1"> <BaseClass>b2</BaseClass> </ECEntityClass>
40
- <ECEntityClass typeName="d2"> <BaseClass>b2</BaseClass> </ECEntityClass>
41
- <ECEntityClass typeName="f1"> <BaseClass>d1</BaseClass> </ECEntityClass>
42
- <ECEntityClass typeName="f2"> <BaseClass>d1</BaseClass> </ECEntityClass>
43
- <ECEntityClass typeName="e1"> <BaseClass>d2</BaseClass> </ECEntityClass>
44
- <ECEntityClass typeName="e2"> <BaseClass>d2</BaseClass> </ECEntityClass>
21
+ let b1;
22
+ let b2;
23
+ let b3;
24
+ let iModelId;
25
+ try {
26
+ iModelId = await HubMock.createNewIModel({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelName: "Test", description: "TestSubject" });
27
+ b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
28
+ const b1Db = b1;
29
+ withEditTxn(b1Db, "apply changeset b1", () => {
30
+ b1Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);
31
+ });
32
+ b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
33
+ const b2Db = b2;
34
+ withEditTxn(b2Db, "apply changeset b2", () => {
35
+ b2Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);
36
+ });
37
+ b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId, noLock: true });
38
+ const b3Db = b3;
39
+ withEditTxn(b3Db, "apply changeset b3", () => {
40
+ b3Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);
41
+ });
42
+ const schema1 = `<?xml version="1.0" encoding="UTF-8"?>
43
+ <ECSchema schemaName="TestDomain" alias="ts" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
44
+ <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
45
+ <ECEntityClass typeName="a1">
46
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
47
+ </ECEntityClass>
48
+ <ECEntityClass typeName="b1"> <BaseClass>a1</BaseClass> </ECEntityClass>
49
+ <ECEntityClass typeName="b2"> <BaseClass>a1</BaseClass> </ECEntityClass>
50
+ <ECEntityClass typeName="c1"> <BaseClass>b1</BaseClass> </ECEntityClass>
51
+ <ECEntityClass typeName="c2"> <BaseClass>b1</BaseClass> </ECEntityClass>
52
+ <ECEntityClass typeName="d1"> <BaseClass>b2</BaseClass> </ECEntityClass>
53
+ <ECEntityClass typeName="d2"> <BaseClass>b2</BaseClass> </ECEntityClass>
54
+ <ECEntityClass typeName="f1"> <BaseClass>d1</BaseClass> </ECEntityClass>
55
+ <ECEntityClass typeName="f2"> <BaseClass>d1</BaseClass> </ECEntityClass>
56
+ <ECEntityClass typeName="e1"> <BaseClass>d2</BaseClass> </ECEntityClass>
57
+ <ECEntityClass typeName="e2"> <BaseClass>d2</BaseClass> </ECEntityClass>
45
58
  </ECSchema>`;
46
- await b1.importSchemaStrings([schema1]);
47
- b1.saveChanges("schema1");
48
- chai.expect(b1.txns.hasPendingTxns).to.be.true;
49
- await b1.pushChanges({ description: "schema1" });
50
- chai.expect(b1.txns.hasPendingTxns).to.be.false;
51
- chai.expect(b2.txns.hasPendingTxns).to.be.false;
52
- await b2.pullChanges();
53
- chai.expect(b2.txns.hasPendingTxns).to.be.false;
54
- const schema2 = `<?xml version="1.0" encoding="UTF-8"?>
55
- <ECSchema schemaName="TestDomain2" alias="ts1" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
56
- <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
57
- <ECEntityClass typeName="a1">
58
- <BaseClass>bis:GraphicalElement2d</BaseClass>
59
- </ECEntityClass>
60
- <ECEntityClass typeName="b1"> <BaseClass>a1</BaseClass> </ECEntityClass>
61
- <ECEntityClass typeName="b2"> <BaseClass>a1</BaseClass> </ECEntityClass>
62
- <ECEntityClass typeName="c1"> <BaseClass>b1</BaseClass> </ECEntityClass>
63
- <ECEntityClass typeName="c2"> <BaseClass>b1</BaseClass> </ECEntityClass>
64
- <ECEntityClass typeName="d1"> <BaseClass>b2</BaseClass> </ECEntityClass>
65
- <ECEntityClass typeName="d2"> <BaseClass>b2</BaseClass> </ECEntityClass>
66
- <ECEntityClass typeName="f1"> <BaseClass>d1</BaseClass> </ECEntityClass>
67
- <ECEntityClass typeName="f2"> <BaseClass>d1</BaseClass> </ECEntityClass>
68
- <ECEntityClass typeName="e1"> <BaseClass>d2</BaseClass> </ECEntityClass>
69
- <ECEntityClass typeName="e2"> <BaseClass>d2</BaseClass> </ECEntityClass>
59
+ await b1.importSchemaStrings([schema1]);
60
+ chai.expect(b1.txns.hasPendingTxns).to.be.true;
61
+ await b1.pushChanges({ description: "schema1" });
62
+ chai.expect(b1.txns.hasPendingTxns).to.be.false;
63
+ chai.expect(b2.txns.hasPendingTxns).to.be.false;
64
+ await b2.pullChanges();
65
+ chai.expect(b2.txns.hasPendingTxns).to.be.false;
66
+ const schema2 = `<?xml version="1.0" encoding="UTF-8"?>
67
+ <ECSchema schemaName="TestDomain2" alias="ts1" version="01.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.1">
68
+ <ECSchemaReference name="BisCore" version="01.00" alias="bis"/>
69
+ <ECEntityClass typeName="a1">
70
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
71
+ </ECEntityClass>
72
+ <ECEntityClass typeName="b1"> <BaseClass>a1</BaseClass> </ECEntityClass>
73
+ <ECEntityClass typeName="b2"> <BaseClass>a1</BaseClass> </ECEntityClass>
74
+ <ECEntityClass typeName="c1"> <BaseClass>b1</BaseClass> </ECEntityClass>
75
+ <ECEntityClass typeName="c2"> <BaseClass>b1</BaseClass> </ECEntityClass>
76
+ <ECEntityClass typeName="d1"> <BaseClass>b2</BaseClass> </ECEntityClass>
77
+ <ECEntityClass typeName="d2"> <BaseClass>b2</BaseClass> </ECEntityClass>
78
+ <ECEntityClass typeName="f1"> <BaseClass>d1</BaseClass> </ECEntityClass>
79
+ <ECEntityClass typeName="f2"> <BaseClass>d1</BaseClass> </ECEntityClass>
80
+ <ECEntityClass typeName="e1"> <BaseClass>d2</BaseClass> </ECEntityClass>
81
+ <ECEntityClass typeName="e2"> <BaseClass>d2</BaseClass> </ECEntityClass>
70
82
  </ECSchema>`;
71
- await b1.importSchemaStrings([schema2]);
72
- b1.saveChanges("schema2");
73
- chai.expect(b1.txns.hasPendingTxns).to.be.true;
74
- await b1.pushChanges({ description: "schema2" });
75
- chai.expect(b1.txns.hasPendingTxns).to.be.false;
76
- chai.expect(b2.txns.hasPendingTxns).to.be.false;
77
- await b2.pullChanges();
78
- chai.expect(b2.txns.hasPendingTxns).to.be.false;
79
- chai.expect(b3.txns.hasPendingTxns).to.be.false;
80
- await b3.pullChanges();
81
- chai.expect(b3.txns.hasPendingTxns).to.be.false;
82
- b1.close();
83
- b2.close();
84
- b3.close();
85
- HubMock.shutdown();
83
+ await b1.importSchemaStrings([schema2]);
84
+ chai.expect(b1.txns.hasPendingTxns).to.be.true;
85
+ await b1.pushChanges({ description: "schema2" });
86
+ chai.expect(b1.txns.hasPendingTxns).to.be.false;
87
+ chai.expect(b2.txns.hasPendingTxns).to.be.false;
88
+ await b2.pullChanges();
89
+ chai.expect(b2.txns.hasPendingTxns).to.be.false;
90
+ chai.expect(b3.txns.hasPendingTxns).to.be.false;
91
+ await b3.pullChanges();
92
+ chai.expect(b3.txns.hasPendingTxns).to.be.false;
93
+ }
94
+ finally {
95
+ b1?.close();
96
+ b2?.close();
97
+ b3?.close();
98
+ if (iModelId)
99
+ await HubMock.deleteIModel({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });
100
+ HubMock.shutdown();
101
+ }
86
102
  });
87
103
  it("Pulling profile upgrade before inserting element should pass", async () => {
88
104
  // startup
89
105
  HubMock.startup("ProfileUpgradeBeforeInsertElement", KnownTestLocations.outputDir);
90
- const pathname = IModelTestUtils.resolveAssetFile("CompatibilityTestSeed.bim");
91
- const iModelId = await HubWrappers.pushIModel("user1", HubMock.iTwinId, pathname, "Test", true);
92
- // inserting and updating elements in one briefcase
93
- const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId });
94
- b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);
95
- b1.saveChanges();
96
- // upgrading schemas in second briefcase
97
- const props = await BriefcaseManager.downloadBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId });
98
- const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);
99
- chai.assert(schemaState === SchemaState.UpgradeRecommended);
100
- await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });
101
- await b1.pullChanges();
102
- await b1.locks.acquireLocks({
103
- shared: IModel.repositoryModelId,
104
- });
105
- const subjectProps = {
106
- classFullName: Subject.classFullName,
107
- code: Subject.createCode(b1, IModel.rootSubjectId, "code value 1"),
108
- federationGuid: Guid.createValue(),
109
- model: IModel.repositoryModelId,
110
- parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
111
- };
112
- const subjectId = b1.elements.insertElement(subjectProps);
113
- b1.saveChanges();
114
- await b1.pushChanges({ description: "Inserted Subject", retainLocks: true });
115
- const existingCode = b1.elements.getElementProps(subjectId).code;
116
- b1.elements.updateElement({
117
- id: subjectId,
118
- code: { ...existingCode, value: "code value 2" },
119
- });
120
- b1.saveChanges();
121
- await b1.pushChanges({ description: "Updated Subject" });
122
- await b1.locks.releaseAllLocks();
123
- //cleanup
124
- b1.close();
125
- await HubMock.deleteIModel({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId });
126
- HubMock.shutdown();
106
+ let b1;
107
+ let iModelId;
108
+ try {
109
+ const pathname = IModelTestUtils.resolveAssetFile("CompatibilityTestSeed.bim");
110
+ iModelId = await HubWrappers.pushIModel("user1", HubMock.iTwinId, pathname, "Test", true);
111
+ // inserting and updating elements in one briefcase
112
+ b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId });
113
+ const briefcase = b1;
114
+ withEditTxn(briefcase, "profile upgrade before insert", () => {
115
+ briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);
116
+ });
117
+ // upgrading schemas in second briefcase
118
+ const props = await BriefcaseManager.downloadBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId });
119
+ const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);
120
+ chai.assert(schemaState === SchemaState.UpgradeRecommended);
121
+ await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });
122
+ await b1.pullChanges();
123
+ await b1.locks.acquireLocks({
124
+ shared: IModel.repositoryModelId,
125
+ });
126
+ const subjectProps = {
127
+ classFullName: Subject.classFullName,
128
+ code: Subject.createCode(b1, IModel.rootSubjectId, "code value 1"),
129
+ federationGuid: Guid.createValue(),
130
+ model: IModel.repositoryModelId,
131
+ parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
132
+ };
133
+ const subjectId = withEditTxn(b1, "Inserted Subject", (txn) => txn.insertElement(subjectProps));
134
+ await b1.pushChanges({ description: "Inserted Subject", retainLocks: true });
135
+ const existingCode = b1.elements.getElementProps(subjectId).code;
136
+ withEditTxn(b1, "Updated Subject", (txn) => {
137
+ txn.updateElement({
138
+ id: subjectId,
139
+ code: { ...existingCode, value: "code value 2" },
140
+ });
141
+ });
142
+ await b1.pushChanges({ description: "Updated Subject" });
143
+ await b1.locks.releaseAllLocks();
144
+ }
145
+ finally {
146
+ if (b1) {
147
+ await b1.locks.releaseAllLocks().catch(() => { });
148
+ b1.close();
149
+ }
150
+ if (iModelId)
151
+ await HubMock.deleteIModel({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });
152
+ HubMock.shutdown();
153
+ }
127
154
  });
128
155
  it("Pulling profile upgrade after inserting element should pass", async () => {
129
156
  // startup
130
157
  HubMock.startup("ProfileUpgradeAfterInsertElement", KnownTestLocations.outputDir);
131
- const pathname = IModelTestUtils.resolveAssetFile("CompatibilityTestSeed.bim");
132
- const iModelId = await HubWrappers.pushIModel("user1", HubMock.iTwinId, pathname, "Test", true);
133
- // inserting and updating elements in one briefcase
134
- const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId });
135
- b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);
136
- b1.saveChanges();
137
- await b1.locks.acquireLocks({
138
- shared: IModel.repositoryModelId,
139
- });
140
- const subjectProps = {
141
- classFullName: Subject.classFullName,
142
- code: Subject.createCode(b1, IModel.rootSubjectId, "code value 1"),
143
- federationGuid: Guid.createValue(),
144
- model: IModel.repositoryModelId,
145
- parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
146
- };
147
- const subjectId = b1.elements.insertElement(subjectProps);
148
- b1.saveChanges();
149
- await b1.pushChanges({ description: "Inserted Subject", retainLocks: true });
150
- const existingCode = b1.elements.getElementProps(subjectId).code;
151
- b1.elements.updateElement({
152
- id: subjectId,
153
- code: { ...existingCode, value: "code value 2" },
154
- });
155
- b1.saveChanges();
156
- await b1.pushChanges({ description: "Updated Subject" });
157
- await b1.locks.releaseAllLocks();
158
- // upgrading schemas in second briefcase
159
- const props = await BriefcaseManager.downloadBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId });
160
- const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);
161
- chai.assert(schemaState === SchemaState.UpgradeRecommended);
162
- await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });
163
- await b1.pullChanges();
164
- await b1.locks.acquireLocks({
165
- shared: IModel.repositoryModelId,
166
- });
167
- const subjectProps2 = {
168
- classFullName: Subject.classFullName,
169
- code: Subject.createCode(b1, IModel.rootSubjectId, "code value 3"),
170
- federationGuid: Guid.createValue(),
171
- model: IModel.repositoryModelId,
172
- parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
173
- };
174
- b1.elements.insertElement(subjectProps2);
175
- b1.saveChanges();
176
- await b1.pushChanges({ description: "Inserted Subject 2", retainLocks: true });
177
- await b1.locks.releaseAllLocks();
178
- //cleanup
179
- b1.close();
180
- await HubMock.deleteIModel({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId });
181
- HubMock.shutdown();
158
+ let b1;
159
+ let iModelId;
160
+ try {
161
+ const pathname = IModelTestUtils.resolveAssetFile("CompatibilityTestSeed.bim");
162
+ iModelId = await HubWrappers.pushIModel("user1", HubMock.iTwinId, pathname, "Test", true);
163
+ // inserting and updating elements in one briefcase
164
+ b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId });
165
+ const briefcase = b1;
166
+ withEditTxn(briefcase, "profile upgrade after insert", () => {
167
+ briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);
168
+ });
169
+ await b1.locks.acquireLocks({
170
+ shared: IModel.repositoryModelId,
171
+ });
172
+ const subjectProps = {
173
+ classFullName: Subject.classFullName,
174
+ code: Subject.createCode(b1, IModel.rootSubjectId, "code value 1"),
175
+ federationGuid: Guid.createValue(),
176
+ model: IModel.repositoryModelId,
177
+ parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
178
+ };
179
+ const subjectId = withEditTxn(b1, "Inserted Subject", (txn) => txn.insertElement(subjectProps));
180
+ await b1.pushChanges({ description: "Inserted Subject", retainLocks: true });
181
+ const existingCode = b1.elements.getElementProps(subjectId).code;
182
+ withEditTxn(b1, "Updated Subject", (txn) => {
183
+ txn.updateElement({
184
+ id: subjectId,
185
+ code: { ...existingCode, value: "code value 2" },
186
+ });
187
+ });
188
+ await b1.pushChanges({ description: "Updated Subject" });
189
+ await b1.locks.releaseAllLocks();
190
+ // upgrading schemas in second briefcase
191
+ const props = await BriefcaseManager.downloadBriefcase({ accessToken: "user2", iTwinId: HubMock.iTwinId, iModelId });
192
+ const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);
193
+ chai.assert(schemaState === SchemaState.UpgradeRecommended);
194
+ await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });
195
+ await b1.pullChanges();
196
+ await b1.locks.acquireLocks({
197
+ shared: IModel.repositoryModelId,
198
+ });
199
+ const subjectProps2 = {
200
+ classFullName: Subject.classFullName,
201
+ code: Subject.createCode(b1, IModel.rootSubjectId, "code value 3"),
202
+ federationGuid: Guid.createValue(),
203
+ model: IModel.repositoryModelId,
204
+ parent: new SubjectOwnsSubjects(IModel.rootSubjectId),
205
+ };
206
+ withEditTxn(b1, "Inserted Subject 2", (txn) => {
207
+ txn.insertElement(subjectProps2);
208
+ });
209
+ await b1.pushChanges({ description: "Inserted Subject 2", retainLocks: true });
210
+ await b1.locks.releaseAllLocks();
211
+ }
212
+ finally {
213
+ if (b1) {
214
+ await b1.locks.releaseAllLocks().catch(() => { });
215
+ b1.close();
216
+ }
217
+ if (iModelId)
218
+ await HubMock.deleteIModel({ accessToken: "user1", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });
219
+ HubMock.shutdown();
220
+ }
182
221
  });
183
222
  });
184
223
  //# sourceMappingURL=ApplyChangeset.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ApplyChangeset.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/ApplyChangeset.test.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\nimport * as chai from \"chai\";\nimport * as chaiAsPromised from \"chai-as-promised\";\nimport { HubWrappers, IModelTestUtils, KnownTestLocations } from \"..\";\nimport { _nativeDb, BriefcaseDb, BriefcaseManager, ChannelControl, IModelHost, Subject, SubjectOwnsSubjects } from \"../../core-backend\";\nimport { HubMock } from \"../../internal/HubMock\";\nimport { Suite } from \"mocha\";\nimport { IModel, SchemaState, SubjectProps } from \"@itwin/core-common\";\nimport { Guid } from \"@itwin/core-bentley\";\nchai.use(chaiAsPromised);\n\ndescribe(\"apply changesets\", function (this: Suite) {\n before(async () => {\n await IModelHost.startup();\n });\n\n it(\"Apply changeset with no local changes, should not create new local changes\", async () => {\n HubMock.startup(\"PullMergeMethod\", KnownTestLocations.outputDir);\n\n const iModelId = await HubMock.createNewIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelName: \"Test\", description: \"TestSubject\" });\n\n const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n b1.saveChanges();\n\n const b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n b2.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n b2.saveChanges();\n\n const b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n b3.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n b3.saveChanges();\n\n const schema1 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"a1\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n </ECEntityClass>\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n </ECSchema>`;\n\n await b1.importSchemaStrings([schema1]);\n b1.saveChanges(\"schema1\");\n\n chai.expect(b1.txns.hasPendingTxns).to.be.true\n await b1.pushChanges({ description: \"schema1\" });\n chai.expect(b1.txns.hasPendingTxns).to.be.false\n\n chai.expect(b2.txns.hasPendingTxns).to.be.false\n await b2.pullChanges();\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n\n const schema2 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain2\" alias=\"ts1\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"a1\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n </ECEntityClass>\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\n </ECSchema>`;\n\n await b1.importSchemaStrings([schema2]);\n b1.saveChanges(\"schema2\");\n\n chai.expect(b1.txns.hasPendingTxns).to.be.true\n await b1.pushChanges({ description: \"schema2\" });\n chai.expect(b1.txns.hasPendingTxns).to.be.false;\n\n\n chai.expect(b2.txns.hasPendingTxns).to.be.false\n await b2.pullChanges();\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\n\n\n chai.expect(b3.txns.hasPendingTxns).to.be.false\n await b3.pullChanges();\n chai.expect(b3.txns.hasPendingTxns).to.be.false;\n\n\n b1.close();\n b2.close();\n b3.close();\n HubMock.shutdown();\n });\n\n it(\"Pulling profile upgrade before inserting element should pass\", async () => {\n // startup\n HubMock.startup(\"ProfileUpgradeBeforeInsertElement\", KnownTestLocations.outputDir);\n\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n const iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname,\"Test\", true);\n\n // inserting and updating elements in one briefcase\n const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n b1.saveChanges();\n\n // upgrading schemas in second briefcase\n const props = await BriefcaseManager.downloadBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId });\n const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);\n chai.assert(schemaState === SchemaState.UpgradeRecommended);\n await BriefcaseDb.upgradeSchemas({fileName: props.fileName});\n await b1.pullChanges();\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 1\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n const subjectId = b1.elements.insertElement(subjectProps);\n b1.saveChanges();\n await b1.pushChanges({description: \"Inserted Subject\", retainLocks: true})\n\n const existingCode = b1.elements.getElementProps(subjectId).code;\n b1.elements.updateElement({\n id: subjectId,\n code: { ...existingCode, value: \"code value 2\" },\n });\n b1.saveChanges();\n await b1.pushChanges({description: \"Updated Subject\"});\n await b1.locks.releaseAllLocks();\n\n //cleanup\n b1.close();\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n HubMock.shutdown()\n });\n\n it(\"Pulling profile upgrade after inserting element should pass\", async () => {\n // startup\n HubMock.startup(\"ProfileUpgradeAfterInsertElement\", KnownTestLocations.outputDir);\n\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n const iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname,\"Test\", true);\n\n // inserting and updating elements in one briefcase\n const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n b1.saveChanges();\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 1\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n const subjectId = b1.elements.insertElement(subjectProps);\n b1.saveChanges();\n await b1.pushChanges({description: \"Inserted Subject\", retainLocks: true})\n\n const existingCode = b1.elements.getElementProps(subjectId).code;\n b1.elements.updateElement({\n id: subjectId,\n code: { ...existingCode, value: \"code value 2\" },\n });\n b1.saveChanges();\n await b1.pushChanges({description: \"Updated Subject\"});\n await b1.locks.releaseAllLocks();\n\n // upgrading schemas in second briefcase\n const props = await BriefcaseManager.downloadBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId });\n const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);\n chai.assert(schemaState === SchemaState.UpgradeRecommended);\n await BriefcaseDb.upgradeSchemas({fileName: props.fileName});\n await b1.pullChanges();\n\n await b1.locks.acquireLocks({\n shared: IModel.repositoryModelId,\n });\n const subjectProps2: SubjectProps = {\n classFullName: Subject.classFullName,\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 3\"),\n federationGuid: Guid.createValue(),\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\n };\n b1.elements.insertElement(subjectProps2);\n b1.saveChanges();\n await b1.pushChanges({description: \"Inserted Subject 2\", retainLocks: true});\n await b1.locks.releaseAllLocks();\n\n //cleanup\n b1.close();\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n HubMock.shutdown()\n });\n});\n"]}
1
+ {"version":3,"file":"ApplyChangeset.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/ApplyChangeset.test.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\r\nimport * as chai from \"chai\";\r\nimport * as chaiAsPromised from \"chai-as-promised\";\r\nimport { HubWrappers, IModelTestUtils, KnownTestLocations } from \"..\";\r\nimport { _nativeDb, BriefcaseDb, BriefcaseManager, ChannelControl, Subject, SubjectOwnsSubjects } from \"../../core-backend\";\r\nimport { withEditTxn } from \"../../EditTxn\";\r\nimport { HubMock } from \"../../internal/HubMock\";\r\nimport { Suite } from \"mocha\";\r\nimport { IModel, SchemaState, SubjectProps } from \"@itwin/core-common\";\r\nimport { Guid } from \"@itwin/core-bentley\";\r\nimport { TestUtils } from \"../TestUtils\";\r\nchai.use(chaiAsPromised);\r\n\r\ndescribe(\"apply changesets\", function (this: Suite) {\r\n before(async () => {\r\n await TestUtils.startBackend();\r\n });\r\n\r\n it(\"Apply changeset with no local changes, should not create new local changes\", async () => {\r\n HubMock.startup(\"PullMergeMethod\", KnownTestLocations.outputDir);\r\n let b1: BriefcaseDb | undefined;\r\n let b2: BriefcaseDb | undefined;\r\n let b3: BriefcaseDb | undefined;\r\n let iModelId: string | undefined;\r\n\r\n try {\r\n iModelId = await HubMock.createNewIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelName: \"Test\", description: \"TestSubject\" });\r\n\r\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\r\n const b1Db = b1;\r\n withEditTxn(b1Db, \"apply changeset b1\", () => {\r\n b1Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\r\n });\r\n\r\n b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\r\n const b2Db = b2;\r\n withEditTxn(b2Db, \"apply changeset b2\", () => {\r\n b2Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\r\n });\r\n\r\n b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\r\n const b3Db = b3;\r\n withEditTxn(b3Db, \"apply changeset b3\", () => {\r\n b3Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\r\n });\r\n\r\n const schema1 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n <ECSchema schemaName=\"TestDomain\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\r\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\r\n <ECEntityClass typeName=\"a1\">\r\n <BaseClass>bis:GraphicalElement2d</BaseClass>\r\n </ECEntityClass>\r\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\r\n </ECSchema>`;\r\n\r\n await b1.importSchemaStrings([schema1]);\r\n\r\n chai.expect(b1.txns.hasPendingTxns).to.be.true;\r\n await b1.pushChanges({ description: \"schema1\" });\r\n chai.expect(b1.txns.hasPendingTxns).to.be.false;\r\n\r\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\r\n await b2.pullChanges();\r\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\r\n\r\n const schema2 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n <ECSchema schemaName=\"TestDomain2\" alias=\"ts1\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\r\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\r\n <ECEntityClass typeName=\"a1\">\r\n <BaseClass>bis:GraphicalElement2d</BaseClass>\r\n </ECEntityClass>\r\n <ECEntityClass typeName=\"b1\"> <BaseClass>a1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"b2\"> <BaseClass>a1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"c1\"> <BaseClass>b1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"c2\"> <BaseClass>b1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"d1\"> <BaseClass>b2</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"d2\"> <BaseClass>b2</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"f1\"> <BaseClass>d1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"f2\"> <BaseClass>d1</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"e1\"> <BaseClass>d2</BaseClass> </ECEntityClass>\r\n <ECEntityClass typeName=\"e2\"> <BaseClass>d2</BaseClass> </ECEntityClass>\r\n </ECSchema>`;\r\n\r\n await b1.importSchemaStrings([schema2]);\r\n\r\n chai.expect(b1.txns.hasPendingTxns).to.be.true;\r\n await b1.pushChanges({ description: \"schema2\" });\r\n chai.expect(b1.txns.hasPendingTxns).to.be.false;\r\n\r\n\r\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\r\n await b2.pullChanges();\r\n chai.expect(b2.txns.hasPendingTxns).to.be.false;\r\n\r\n\r\n chai.expect(b3.txns.hasPendingTxns).to.be.false;\r\n await b3.pullChanges();\r\n chai.expect(b3.txns.hasPendingTxns).to.be.false;\r\n } finally {\r\n b1?.close();\r\n b2?.close();\r\n b3?.close();\r\n if (iModelId)\r\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\r\n HubMock.shutdown();\r\n }\r\n });\r\n\r\n it(\"Pulling profile upgrade before inserting element should pass\", async () => {\r\n // startup\r\n HubMock.startup(\"ProfileUpgradeBeforeInsertElement\", KnownTestLocations.outputDir);\r\n let b1: BriefcaseDb | undefined;\r\n let iModelId: string | undefined;\r\n\r\n try {\r\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\r\n iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname, \"Test\", true);\r\n\r\n // inserting and updating elements in one briefcase\r\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\r\n const briefcase = b1;\r\n withEditTxn(briefcase, \"profile upgrade before insert\", () => {\r\n briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);\r\n });\r\n\r\n // upgrading schemas in second briefcase\r\n const props = await BriefcaseManager.downloadBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId });\r\n const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);\r\n chai.assert(schemaState === SchemaState.UpgradeRecommended);\r\n await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });\r\n await b1.pullChanges();\r\n\r\n await b1.locks.acquireLocks({\r\n shared: IModel.repositoryModelId,\r\n });\r\n const subjectProps: SubjectProps = {\r\n classFullName: Subject.classFullName,\r\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 1\"),\r\n federationGuid: Guid.createValue(),\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\r\n };\r\n const subjectId = withEditTxn(b1, \"Inserted Subject\", (txn) => txn.insertElement(subjectProps));\r\n await b1.pushChanges({ description: \"Inserted Subject\", retainLocks: true });\r\n\r\n const existingCode = b1.elements.getElementProps(subjectId).code;\r\n withEditTxn(b1, \"Updated Subject\", (txn) => {\r\n txn.updateElement({\r\n id: subjectId,\r\n code: { ...existingCode, value: \"code value 2\" },\r\n });\r\n });\r\n await b1.pushChanges({ description: \"Updated Subject\" });\r\n await b1.locks.releaseAllLocks();\r\n\r\n } finally {\r\n if (b1) {\r\n await b1.locks.releaseAllLocks().catch(() => { });\r\n b1.close();\r\n }\r\n if (iModelId)\r\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\r\n HubMock.shutdown();\r\n }\r\n });\r\n\r\n it(\"Pulling profile upgrade after inserting element should pass\", async () => {\r\n // startup\r\n HubMock.startup(\"ProfileUpgradeAfterInsertElement\", KnownTestLocations.outputDir);\r\n let b1: BriefcaseDb | undefined;\r\n let iModelId: string | undefined;\r\n\r\n try {\r\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\r\n iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname, \"Test\", true);\r\n\r\n // inserting and updating elements in one briefcase\r\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\r\n const briefcase = b1;\r\n withEditTxn(briefcase, \"profile upgrade after insert\", () => {\r\n briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);\r\n });\r\n\r\n await b1.locks.acquireLocks({\r\n shared: IModel.repositoryModelId,\r\n });\r\n const subjectProps: SubjectProps = {\r\n classFullName: Subject.classFullName,\r\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 1\"),\r\n federationGuid: Guid.createValue(),\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\r\n };\r\n const subjectId = withEditTxn(b1, \"Inserted Subject\", (txn) => txn.insertElement(subjectProps));\r\n await b1.pushChanges({ description: \"Inserted Subject\", retainLocks: true });\r\n\r\n const existingCode = b1.elements.getElementProps(subjectId).code;\r\n withEditTxn(b1, \"Updated Subject\", (txn) => {\r\n txn.updateElement({\r\n id: subjectId,\r\n code: { ...existingCode, value: \"code value 2\" },\r\n });\r\n });\r\n await b1.pushChanges({ description: \"Updated Subject\" });\r\n await b1.locks.releaseAllLocks();\r\n\r\n // upgrading schemas in second briefcase\r\n const props = await BriefcaseManager.downloadBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId });\r\n const schemaState = BriefcaseDb.validateSchemas(props.fileName, true);\r\n chai.assert(schemaState === SchemaState.UpgradeRecommended);\r\n await BriefcaseDb.upgradeSchemas({ fileName: props.fileName });\r\n await b1.pullChanges();\r\n\r\n await b1.locks.acquireLocks({\r\n shared: IModel.repositoryModelId,\r\n });\r\n const subjectProps2: SubjectProps = {\r\n classFullName: Subject.classFullName,\r\n code: Subject.createCode(b1, IModel.rootSubjectId, \"code value 3\"),\r\n federationGuid: Guid.createValue(),\r\n model: IModel.repositoryModelId,\r\n parent: new SubjectOwnsSubjects(IModel.rootSubjectId),\r\n };\r\n withEditTxn(b1, \"Inserted Subject 2\", (txn) => {\r\n txn.insertElement(subjectProps2);\r\n });\r\n await b1.pushChanges({ description: \"Inserted Subject 2\", retainLocks: true });\r\n await b1.locks.releaseAllLocks();\r\n\r\n } finally {\r\n if (b1) {\r\n await b1.locks.releaseAllLocks().catch(() => { });\r\n b1.close();\r\n }\r\n if (iModelId)\r\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\r\n HubMock.shutdown();\r\n }\r\n });\r\n});\r\n"]}
@@ -10,6 +10,7 @@ import { KnownTestLocations } from "../KnownTestLocations";
10
10
  import { HubMock } from "../../internal/HubMock";
11
11
  import { TestChangeSetUtility } from "../TestChangeSetUtility";
12
12
  import { _nativeDb, ChannelControl } from "../../core-backend";
13
+ import { withEditTxn } from "../../EditTxn";
13
14
  describe("BriefcaseManager", async () => {
14
15
  const testITwinId = Guid.createValue();
15
16
  const managerAccessToken = "manager mock token";
@@ -134,10 +135,7 @@ describe("BriefcaseManager", async () => {
134
135
  iModelPullAndPush.channels.addAllowedChannel(ChannelControl.sharedChannelName);
135
136
  const rootEl = iModelPullAndPush.elements.getRootSubject();
136
137
  rootEl.userLabel = `${rootEl.userLabel}changed`;
137
- iModelPullAndPush.elements.updateElement(rootEl.toJSON());
138
- assert.isTrue(iModelPullAndPush[_nativeDb].hasUnsavedChanges());
139
- assert.isFalse(iModelPullAndPush[_nativeDb].hasPendingTxns());
140
- iModelPullAndPush.saveChanges();
138
+ withEditTxn(iModelPullAndPush, (txn) => txn.updateElement(rootEl.toJSON()));
141
139
  assert.isFalse(iModelPullAndPush[_nativeDb].hasUnsavedChanges());
142
140
  assert.isTrue(iModelPullAndPush[_nativeDb].hasPendingTxns());
143
141
  iModelPullAndPush.close();