@itwin/core-backend 5.9.0-dev.9 → 5.10.0-dev.3

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 (539) hide show
  1. package/CHANGELOG.md +18 -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.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +6 -3
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.js.map +1 -1
  10. package/lib/cjs/Category.js.map +1 -1
  11. package/lib/cjs/ChangeSummaryManager.js +2 -2
  12. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  13. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  14. package/lib/cjs/ChangesetECAdaptor.d.ts +9 -1
  15. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  16. package/lib/cjs/ChangesetECAdaptor.js +255 -249
  17. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  18. package/lib/cjs/ChangesetReader.d.ts +186 -0
  19. package/lib/cjs/ChangesetReader.d.ts.map +1 -0
  20. package/lib/cjs/ChangesetReader.js +372 -0
  21. package/lib/cjs/ChangesetReader.js.map +1 -0
  22. package/lib/cjs/ChangesetReaderTypes.d.ts +120 -0
  23. package/lib/cjs/ChangesetReaderTypes.d.ts.map +1 -0
  24. package/lib/cjs/ChangesetReaderTypes.js +23 -0
  25. package/lib/cjs/ChangesetReaderTypes.js.map +1 -0
  26. package/lib/cjs/ChannelControl.js.map +1 -1
  27. package/lib/cjs/CheckpointManager.js.map +1 -1
  28. package/lib/cjs/ClassRegistry.js +5 -5
  29. package/lib/cjs/ClassRegistry.js.map +1 -1
  30. package/lib/cjs/CloudSqlite.d.ts +1 -1
  31. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  32. package/lib/cjs/CloudSqlite.js +68 -13
  33. package/lib/cjs/CloudSqlite.js.map +1 -1
  34. package/lib/cjs/CodeService.js.map +1 -1
  35. package/lib/cjs/CodeSpecs.js.map +1 -1
  36. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  37. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  38. package/lib/cjs/DevTools.js.map +1 -1
  39. package/lib/cjs/DisplayStyle.js.map +1 -1
  40. package/lib/cjs/ECDb.js.map +1 -1
  41. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  42. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  43. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  44. package/lib/cjs/ECSqlStatement.js.map +1 -1
  45. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  46. package/lib/cjs/EditTxn.d.ts +55 -1
  47. package/lib/cjs/EditTxn.d.ts.map +1 -1
  48. package/lib/cjs/EditTxn.js +43 -1
  49. package/lib/cjs/EditTxn.js.map +1 -1
  50. package/lib/cjs/Element.d.ts +69 -0
  51. package/lib/cjs/Element.d.ts.map +1 -1
  52. package/lib/cjs/Element.js +36 -0
  53. package/lib/cjs/Element.js.map +1 -1
  54. package/lib/cjs/ElementAspect.js.map +1 -1
  55. package/lib/cjs/ElementGraphics.js.map +1 -1
  56. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  57. package/lib/cjs/Entity.js.map +1 -1
  58. package/lib/cjs/EntityReferences.js.map +1 -1
  59. package/lib/cjs/ExportGraphics.js.map +1 -1
  60. package/lib/cjs/ExternalSource.js.map +1 -1
  61. package/lib/cjs/FontFile.js.map +1 -1
  62. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  63. package/lib/cjs/GeographicCRSServices.d.ts +15 -0
  64. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  65. package/lib/cjs/GeographicCRSServices.js +13 -4
  66. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  67. package/lib/cjs/GeometrySummary.js +47 -47
  68. package/lib/cjs/GeometrySummary.js.map +1 -1
  69. package/lib/cjs/IModelDb.d.ts +9 -1
  70. package/lib/cjs/IModelDb.d.ts.map +1 -1
  71. package/lib/cjs/IModelDb.js +32 -13
  72. package/lib/cjs/IModelDb.js.map +1 -1
  73. package/lib/cjs/IModelDbFonts.js.map +1 -1
  74. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  75. package/lib/cjs/IModelHost.js.map +1 -1
  76. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  77. package/lib/cjs/IModelJsFs.js.map +1 -1
  78. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  79. package/lib/cjs/IpcHost.d.ts.map +1 -1
  80. package/lib/cjs/IpcHost.js +20 -9
  81. package/lib/cjs/IpcHost.js.map +1 -1
  82. package/lib/cjs/LineStyle.js.map +1 -1
  83. package/lib/cjs/LocalHub.js +1 -1
  84. package/lib/cjs/LocalHub.js.map +1 -1
  85. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  86. package/lib/cjs/LockControl.js.map +1 -1
  87. package/lib/cjs/Material.js.map +1 -1
  88. package/lib/cjs/Model.d.ts +34 -0
  89. package/lib/cjs/Model.d.ts.map +1 -1
  90. package/lib/cjs/Model.js +24 -0
  91. package/lib/cjs/Model.js.map +1 -1
  92. package/lib/cjs/NativeAppStorage.js.map +1 -1
  93. package/lib/cjs/NativeHost.js.map +1 -1
  94. package/lib/cjs/NavigationRelationship.js.map +1 -1
  95. package/lib/cjs/PartialChangeUnifier.d.ts +77 -0
  96. package/lib/cjs/PartialChangeUnifier.d.ts.map +1 -0
  97. package/lib/cjs/PartialChangeUnifier.js +234 -0
  98. package/lib/cjs/PartialChangeUnifier.js.map +1 -0
  99. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  100. package/lib/cjs/PropertyStore.js.map +1 -1
  101. package/lib/cjs/Relationship.js.map +1 -1
  102. package/lib/cjs/RpcBackend.js.map +1 -1
  103. package/lib/cjs/SQLiteDb.js.map +1 -1
  104. package/lib/cjs/Schema.js.map +1 -1
  105. package/lib/cjs/SchemaSync.js.map +1 -1
  106. package/lib/cjs/SchemaUtils.js.map +1 -1
  107. package/lib/cjs/SheetIndex.js.map +1 -1
  108. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  109. package/lib/cjs/SqliteChangesetReader.js +1 -1
  110. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  111. package/lib/cjs/SqliteStatement.js.map +1 -1
  112. package/lib/cjs/StashManager.js.map +1 -1
  113. package/lib/cjs/Texture.js.map +1 -1
  114. package/lib/cjs/TileStorage.js.map +1 -1
  115. package/lib/cjs/TxnManager.d.ts +14 -0
  116. package/lib/cjs/TxnManager.d.ts.map +1 -1
  117. package/lib/cjs/TxnManager.js +25 -0
  118. package/lib/cjs/TxnManager.js.map +1 -1
  119. package/lib/cjs/ViewDefinition.d.ts +19 -7
  120. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  121. package/lib/cjs/ViewDefinition.js +77 -25
  122. package/lib/cjs/ViewDefinition.js.map +1 -1
  123. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  124. package/lib/cjs/ViewStore.d.ts.map +1 -1
  125. package/lib/cjs/ViewStore.js +63 -21
  126. package/lib/cjs/ViewStore.js.map +1 -1
  127. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  128. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  129. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  130. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  131. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  132. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  133. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  134. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  135. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  136. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  137. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  138. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  139. package/lib/cjs/core-backend.d.ts +3 -0
  140. package/lib/cjs/core-backend.d.ts.map +1 -1
  141. package/lib/cjs/core-backend.js +3 -0
  142. package/lib/cjs/core-backend.js.map +1 -1
  143. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  144. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  145. package/lib/cjs/domains/GenericElements.js.map +1 -1
  146. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  147. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  148. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  149. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  150. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  151. package/lib/cjs/internal/HubMock.js.map +1 -1
  152. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  153. package/lib/cjs/internal/IntegrityCheck.d.ts +10 -10
  154. package/lib/cjs/internal/IntegrityCheck.js +22 -22
  155. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  156. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  157. package/lib/cjs/internal/NoLocks.js.map +1 -1
  158. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  159. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  160. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  161. package/lib/cjs/internal/Symbols.js.map +1 -1
  162. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  163. package/lib/cjs/internal/cross-package.js.map +1 -1
  164. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  165. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  166. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  167. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  168. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  169. package/lib/cjs/rpc/multipart.js.map +1 -1
  170. package/lib/cjs/rpc/tracing.js.map +1 -1
  171. package/lib/cjs/rpc/web/logging.js.map +1 -1
  172. package/lib/cjs/rpc/web/request.js.map +1 -1
  173. package/lib/cjs/rpc/web/response.js.map +1 -1
  174. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  175. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  176. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  177. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  178. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  179. package/lib/cjs/workspace/Settings.d.ts +6 -4
  180. package/lib/cjs/workspace/Settings.d.ts.map +1 -1
  181. package/lib/cjs/workspace/Settings.js.map +1 -1
  182. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  183. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  184. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  185. package/lib/cjs/workspace/Workspace.js.map +1 -1
  186. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  187. package/lib/esm/BackendHubAccess.js.map +1 -1
  188. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  189. package/lib/esm/BisCoreSchema.js.map +1 -1
  190. package/lib/esm/BlobContainerService.js.map +1 -1
  191. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  192. package/lib/esm/BriefcaseManager.js +6 -3
  193. package/lib/esm/BriefcaseManager.js.map +1 -1
  194. package/lib/esm/CatalogDb.js.map +1 -1
  195. package/lib/esm/Category.js.map +1 -1
  196. package/lib/esm/ChangeSummaryManager.js +2 -2
  197. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  198. package/lib/esm/ChangedElementsDb.js.map +1 -1
  199. package/lib/esm/ChangesetECAdaptor.d.ts +9 -1
  200. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  201. package/lib/esm/ChangesetECAdaptor.js +255 -249
  202. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  203. package/lib/esm/ChangesetReader.d.ts +186 -0
  204. package/lib/esm/ChangesetReader.d.ts.map +1 -0
  205. package/lib/esm/ChangesetReader.js +368 -0
  206. package/lib/esm/ChangesetReader.js.map +1 -0
  207. package/lib/esm/ChangesetReaderTypes.d.ts +120 -0
  208. package/lib/esm/ChangesetReaderTypes.d.ts.map +1 -0
  209. package/lib/esm/ChangesetReaderTypes.js +20 -0
  210. package/lib/esm/ChangesetReaderTypes.js.map +1 -0
  211. package/lib/esm/ChannelControl.js.map +1 -1
  212. package/lib/esm/CheckpointManager.js.map +1 -1
  213. package/lib/esm/ClassRegistry.js +5 -5
  214. package/lib/esm/ClassRegistry.js.map +1 -1
  215. package/lib/esm/CloudSqlite.d.ts +1 -1
  216. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  217. package/lib/esm/CloudSqlite.js +69 -14
  218. package/lib/esm/CloudSqlite.js.map +1 -1
  219. package/lib/esm/CodeService.js.map +1 -1
  220. package/lib/esm/CodeSpecs.js.map +1 -1
  221. package/lib/esm/ConcurrentQuery.js.map +1 -1
  222. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  223. package/lib/esm/DevTools.js.map +1 -1
  224. package/lib/esm/DisplayStyle.js.map +1 -1
  225. package/lib/esm/ECDb.js.map +1 -1
  226. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  227. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  228. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  229. package/lib/esm/ECSqlStatement.js.map +1 -1
  230. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  231. package/lib/esm/EditTxn.d.ts +55 -1
  232. package/lib/esm/EditTxn.d.ts.map +1 -1
  233. package/lib/esm/EditTxn.js +43 -1
  234. package/lib/esm/EditTxn.js.map +1 -1
  235. package/lib/esm/Element.d.ts +69 -0
  236. package/lib/esm/Element.d.ts.map +1 -1
  237. package/lib/esm/Element.js +36 -0
  238. package/lib/esm/Element.js.map +1 -1
  239. package/lib/esm/ElementAspect.js.map +1 -1
  240. package/lib/esm/ElementGraphics.js.map +1 -1
  241. package/lib/esm/ElementTreeWalker.js.map +1 -1
  242. package/lib/esm/Entity.js.map +1 -1
  243. package/lib/esm/EntityReferences.js.map +1 -1
  244. package/lib/esm/ExportGraphics.js.map +1 -1
  245. package/lib/esm/ExternalSource.js.map +1 -1
  246. package/lib/esm/FontFile.js.map +1 -1
  247. package/lib/esm/GeoCoordConfig.js.map +1 -1
  248. package/lib/esm/GeographicCRSServices.d.ts +15 -0
  249. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  250. package/lib/esm/GeographicCRSServices.js +12 -4
  251. package/lib/esm/GeographicCRSServices.js.map +1 -1
  252. package/lib/esm/GeometrySummary.js +47 -47
  253. package/lib/esm/GeometrySummary.js.map +1 -1
  254. package/lib/esm/IModelDb.d.ts +9 -1
  255. package/lib/esm/IModelDb.d.ts.map +1 -1
  256. package/lib/esm/IModelDb.js +33 -14
  257. package/lib/esm/IModelDb.js.map +1 -1
  258. package/lib/esm/IModelDbFonts.js.map +1 -1
  259. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  260. package/lib/esm/IModelHost.js.map +1 -1
  261. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  262. package/lib/esm/IModelJsFs.js.map +1 -1
  263. package/lib/esm/ImageSourceConversion.js.map +1 -1
  264. package/lib/esm/IpcHost.d.ts.map +1 -1
  265. package/lib/esm/IpcHost.js +20 -9
  266. package/lib/esm/IpcHost.js.map +1 -1
  267. package/lib/esm/LineStyle.js.map +1 -1
  268. package/lib/esm/LocalHub.js +1 -1
  269. package/lib/esm/LocalHub.js.map +1 -1
  270. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  271. package/lib/esm/LockControl.js.map +1 -1
  272. package/lib/esm/Material.js.map +1 -1
  273. package/lib/esm/Model.d.ts +34 -0
  274. package/lib/esm/Model.d.ts.map +1 -1
  275. package/lib/esm/Model.js +24 -0
  276. package/lib/esm/Model.js.map +1 -1
  277. package/lib/esm/NativeAppStorage.js.map +1 -1
  278. package/lib/esm/NativeHost.js.map +1 -1
  279. package/lib/esm/NavigationRelationship.js.map +1 -1
  280. package/lib/esm/PartialChangeUnifier.d.ts +77 -0
  281. package/lib/esm/PartialChangeUnifier.d.ts.map +1 -0
  282. package/lib/esm/PartialChangeUnifier.js +230 -0
  283. package/lib/esm/PartialChangeUnifier.js.map +1 -0
  284. package/lib/esm/PromiseMemoizer.js.map +1 -1
  285. package/lib/esm/PropertyStore.js.map +1 -1
  286. package/lib/esm/Relationship.js.map +1 -1
  287. package/lib/esm/RpcBackend.js.map +1 -1
  288. package/lib/esm/SQLiteDb.js.map +1 -1
  289. package/lib/esm/Schema.js.map +1 -1
  290. package/lib/esm/SchemaSync.js.map +1 -1
  291. package/lib/esm/SchemaUtils.js.map +1 -1
  292. package/lib/esm/SheetIndex.js.map +1 -1
  293. package/lib/esm/SqliteChangesetReader.d.ts.map +1 -1
  294. package/lib/esm/SqliteChangesetReader.js +1 -1
  295. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  296. package/lib/esm/SqliteStatement.js.map +1 -1
  297. package/lib/esm/StashManager.js.map +1 -1
  298. package/lib/esm/Texture.js.map +1 -1
  299. package/lib/esm/TileStorage.js.map +1 -1
  300. package/lib/esm/TxnManager.d.ts +14 -0
  301. package/lib/esm/TxnManager.d.ts.map +1 -1
  302. package/lib/esm/TxnManager.js +25 -0
  303. package/lib/esm/TxnManager.js.map +1 -1
  304. package/lib/esm/ViewDefinition.d.ts +19 -7
  305. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  306. package/lib/esm/ViewDefinition.js +78 -26
  307. package/lib/esm/ViewDefinition.js.map +1 -1
  308. package/lib/esm/ViewStateHydrator.js.map +1 -1
  309. package/lib/esm/ViewStore.d.ts.map +1 -1
  310. package/lib/esm/ViewStore.js +64 -22
  311. package/lib/esm/ViewStore.js.map +1 -1
  312. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  313. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  314. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  315. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  316. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  317. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  318. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  319. package/lib/esm/core-backend.d.ts +3 -0
  320. package/lib/esm/core-backend.d.ts.map +1 -1
  321. package/lib/esm/core-backend.js +3 -0
  322. package/lib/esm/core-backend.js.map +1 -1
  323. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  324. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  325. package/lib/esm/domains/GenericElements.js.map +1 -1
  326. package/lib/esm/domains/GenericSchema.js.map +1 -1
  327. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  328. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  329. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  330. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  331. package/lib/esm/internal/HubMock.js.map +1 -1
  332. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  333. package/lib/esm/internal/IntegrityCheck.d.ts +10 -10
  334. package/lib/esm/internal/IntegrityCheck.js +22 -22
  335. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  336. package/lib/esm/internal/NativePlatform.js.map +1 -1
  337. package/lib/esm/internal/NoLocks.js.map +1 -1
  338. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  339. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  340. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  341. package/lib/esm/internal/Symbols.js.map +1 -1
  342. package/lib/esm/internal/annotations/fields.js.map +1 -1
  343. package/lib/esm/internal/cross-package.js.map +1 -1
  344. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  345. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  346. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  347. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  348. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  349. package/lib/esm/rpc/multipart.js.map +1 -1
  350. package/lib/esm/rpc/tracing.js.map +1 -1
  351. package/lib/esm/rpc/web/logging.js.map +1 -1
  352. package/lib/esm/rpc/web/request.js.map +1 -1
  353. package/lib/esm/rpc/web/response.js.map +1 -1
  354. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  355. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  356. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  357. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  358. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  359. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  360. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  361. package/lib/esm/test/AttachDb.test.js +11 -11
  362. package/lib/esm/test/AttachDb.test.js.map +1 -1
  363. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  364. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  365. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  366. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  367. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  368. package/lib/esm/test/IModelHost.test.js.map +1 -1
  369. package/lib/esm/test/IModelTestUtils.d.ts +1 -0
  370. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  371. package/lib/esm/test/IModelTestUtils.js +5 -0
  372. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  373. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  374. package/lib/esm/test/IpcHost.test.js +112 -0
  375. package/lib/esm/test/IpcHost.test.js.map +1 -1
  376. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  377. package/lib/esm/test/PrintElementTree.js.map +1 -1
  378. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  379. package/lib/esm/test/RevisionUtility.js.map +1 -1
  380. package/lib/esm/test/SchemaUtils.test.js +25 -25
  381. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  382. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  383. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  384. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  385. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  386. package/lib/esm/test/TestEditTxn.js.map +1 -1
  387. package/lib/esm/test/TestUtils.js.map +1 -1
  388. package/lib/esm/test/annotations/Fields.test.js +53 -53
  389. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  390. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  391. package/lib/esm/test/annotations/LeaderGeometry.test.js +0 -1
  392. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  393. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  394. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  395. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  396. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  397. package/lib/esm/test/categories/Category.test.js.map +1 -1
  398. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  399. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  400. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  401. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  402. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  403. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  404. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  405. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  406. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  407. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  408. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  409. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  410. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  411. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  412. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  413. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
  414. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  415. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  416. package/lib/esm/test/ecdb/QueryReaders.test.js +31 -31
  417. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  418. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  419. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  420. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  421. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  422. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  423. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  424. package/lib/esm/test/element/DeleteDefinitionElements.test.js +819 -26
  425. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  426. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  427. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  428. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  429. package/lib/esm/test/element/ElementRoundTrip.test.js +283 -142
  430. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  431. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  432. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  433. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  434. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  435. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  436. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  437. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  438. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  439. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  440. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  441. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  442. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  443. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  444. package/lib/esm/test/hubaccess/Rebase.test.js +57 -57
  445. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  446. package/lib/esm/test/hubaccess/SemanticRebase.test.js +145 -145
  447. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  448. package/lib/esm/test/imageData.js.map +1 -1
  449. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  450. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  451. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  452. package/lib/esm/test/imodel/IModel.test.js +45 -45
  453. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  454. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  455. package/lib/esm/test/imodel/SchemaXmlImport.test.js +77 -13
  456. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  457. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  458. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  459. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  460. package/lib/esm/test/index.js.map +1 -1
  461. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  462. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  463. package/lib/esm/test/misc/GeoServices.test.js +43 -1
  464. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  465. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  466. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  467. package/lib/esm/test/rpc/response.test.js.map +1 -1
  468. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  469. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  470. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  471. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  472. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  473. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  474. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  475. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  476. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  477. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  478. package/lib/esm/test/standalone/ChangesetReader.test.js +4201 -1671
  479. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  480. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  481. package/lib/esm/test/standalone/DeleteElements.test.d.ts +2 -0
  482. package/lib/esm/test/standalone/DeleteElements.test.d.ts.map +1 -0
  483. package/lib/esm/test/standalone/DeleteElements.test.js +625 -0
  484. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -0
  485. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  486. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  487. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  488. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  489. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  490. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  491. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  492. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  493. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  494. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  495. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  496. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  497. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  498. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  499. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  500. package/lib/esm/test/standalone/IntegrityCheck.test.js +214 -5
  501. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  502. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  503. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  504. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  505. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  506. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  507. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts +2 -0
  508. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.d.ts.map +1 -0
  509. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +1862 -0
  510. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -0
  511. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  512. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  513. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  514. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  515. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  516. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  517. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  518. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  519. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  520. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  521. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  522. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  523. package/lib/esm/test/standalone/TxnManager.test.js +90 -0
  524. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  525. package/lib/esm/test/standalone/ViewDefinition.test.js +18 -7
  526. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  527. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  528. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  529. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  530. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  531. package/lib/esm/workspace/Settings.d.ts +6 -4
  532. package/lib/esm/workspace/Settings.d.ts.map +1 -1
  533. package/lib/esm/workspace/Settings.js.map +1 -1
  534. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  535. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  536. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  537. package/lib/esm/workspace/Workspace.js.map +1 -1
  538. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  539. package/package.json +15 -15
@@ -39,22 +39,22 @@ describe("apply changesets", function () {
39
39
  withEditTxn(b3Db, "apply changeset b3", () => {
40
40
  b3Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);
41
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>
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>
58
58
  </ECSchema>`;
59
59
  await b1.importSchemaStrings([schema1]);
60
60
  chai.expect(b1.txns.hasPendingTxns).to.be.true;
@@ -63,22 +63,22 @@ describe("apply changesets", function () {
63
63
  chai.expect(b2.txns.hasPendingTxns).to.be.false;
64
64
  await b2.pullChanges();
65
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>
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>
82
82
  </ECSchema>`;
83
83
  await b1.importSchemaStrings([schema2]);
84
84
  chai.expect(b1.txns.hasPendingTxns).to.be.true;
@@ -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, Subject, SubjectOwnsSubjects } from \"../../core-backend\";\nimport { withEditTxn } from \"../../EditTxn\";\nimport { HubMock } from \"../../internal/HubMock\";\nimport { Suite } from \"mocha\";\nimport { IModel, SchemaState, SubjectProps } from \"@itwin/core-common\";\nimport { Guid } from \"@itwin/core-bentley\";\nimport { TestUtils } from \"../TestUtils\";\nchai.use(chaiAsPromised);\n\ndescribe(\"apply changesets\", function (this: Suite) {\n before(async () => {\n await TestUtils.startBackend();\n });\n\n it(\"Apply changeset with no local changes, should not create new local changes\", async () => {\n HubMock.startup(\"PullMergeMethod\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let b2: BriefcaseDb | undefined;\n let b3: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n iModelId = await HubMock.createNewIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelName: \"Test\", description: \"TestSubject\" });\n\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b1Db = b1;\n withEditTxn(b1Db, \"apply changeset b1\", () => {\n b1Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n b2 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b2Db = b2;\n withEditTxn(b2Db, \"apply changeset b2\", () => {\n b2Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\n\n b3 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user2\", iTwinId: HubMock.iTwinId, iModelId, noLock: true });\n const b3Db = b3;\n withEditTxn(b3Db, \"apply changeset b3\", () => {\n b3Db.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\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\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\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 } finally {\n b1?.close();\n b2?.close();\n b3?.close();\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\n });\n\n it(\"Pulling profile upgrade before inserting element should pass\", async () => {\n // startup\n HubMock.startup(\"ProfileUpgradeBeforeInsertElement\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname, \"Test\", true);\n\n // inserting and updating elements in one briefcase\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n const briefcase = b1;\n withEditTxn(briefcase, \"profile upgrade before insert\", () => {\n briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\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 = withEditTxn(b1, \"Inserted Subject\", (txn) => txn.insertElement(subjectProps));\n await b1.pushChanges({ description: \"Inserted Subject\", retainLocks: true });\n\n const existingCode = b1.elements.getElementProps(subjectId).code;\n withEditTxn(b1, \"Updated Subject\", (txn) => {\n txn.updateElement({\n id: subjectId,\n code: { ...existingCode, value: \"code value 2\" },\n });\n });\n await b1.pushChanges({ description: \"Updated Subject\" });\n await b1.locks.releaseAllLocks();\n\n } finally {\n if (b1) {\n await b1.locks.releaseAllLocks().catch(() => { });\n b1.close();\n }\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\n });\n\n it(\"Pulling profile upgrade after inserting element should pass\", async () => {\n // startup\n HubMock.startup(\"ProfileUpgradeAfterInsertElement\", KnownTestLocations.outputDir);\n let b1: BriefcaseDb | undefined;\n let iModelId: string | undefined;\n\n try {\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n iModelId = await HubWrappers.pushIModel(\"user1\", HubMock.iTwinId, pathname, \"Test\", true);\n\n // inserting and updating elements in one briefcase\n b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId });\n const briefcase = b1;\n withEditTxn(briefcase, \"profile upgrade after insert\", () => {\n briefcase.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n });\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 = withEditTxn(b1, \"Inserted Subject\", (txn) => txn.insertElement(subjectProps));\n await b1.pushChanges({ description: \"Inserted Subject\", retainLocks: true });\n\n const existingCode = b1.elements.getElementProps(subjectId).code;\n withEditTxn(b1, \"Updated Subject\", (txn) => {\n txn.updateElement({\n id: subjectId,\n code: { ...existingCode, value: \"code value 2\" },\n });\n });\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 withEditTxn(b1, \"Inserted Subject 2\", (txn) => {\n txn.insertElement(subjectProps2);\n });\n await b1.pushChanges({ description: \"Inserted Subject 2\", retainLocks: true });\n await b1.locks.releaseAllLocks();\n\n } finally {\n if (b1) {\n await b1.locks.releaseAllLocks().catch(() => { });\n b1.close();\n }\n if (iModelId)\n await HubMock.deleteIModel({ accessToken: \"user1\", iTwinId: HubMock.iTwinId, iModelId }).catch(() => { });\n HubMock.shutdown();\n }\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"]}
@@ -1 +1 @@
1
- {"version":3,"file":"BriefcaseManager.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/BriefcaseManager.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 { assert } from \"chai\";\nimport { Guid } from \"@itwin/core-bentley\";\nimport { BriefcaseIdValue } from \"@itwin/core-common\";\nimport { Element } from \"../../Element\";\nimport { HubWrappers, IModelTestUtils } from \"../IModelTestUtils\";\nimport { KnownTestLocations } from \"../KnownTestLocations\";\nimport { HubMock } from \"../../internal/HubMock\";\nimport { TestChangeSetUtility } from \"../TestChangeSetUtility\";\nimport { _nativeDb, ChannelControl } from \"../../core-backend\";\nimport { withEditTxn } from \"../../EditTxn\";\n\ndescribe(\"BriefcaseManager\", async () => {\n const testITwinId: string = Guid.createValue();\n const managerAccessToken = \"manager mock token\";\n const accessToken = \"access token\";\n\n // contested version0 files can cause errors that cause tests to not call shutdown, so always do it here\n afterEach(() => HubMock.shutdown());\n\n it(\"Open iModels with various names causing potential issues on Windows/Unix\", async () => {\n HubMock.startup(\"bad names\", KnownTestLocations.outputDir);\n let iModelName = \"iModel Name With Spaces\";\n let iModelId = await HubWrappers.createIModel(managerAccessToken, testITwinId, iModelName);\n const args = { accessToken, iTwinId: testITwinId, iModelId };\n assert.isDefined(iModelId);\n let iModel = await HubWrappers.openCheckpointUsingRpc(args);\n assert.isDefined(iModel);\n\n iModelName = \"iModel Name With :\\/<>?* Characters\";\n iModelId = await HubWrappers.createIModel(managerAccessToken, testITwinId, iModelName);\n assert.isDefined(iModelId);\n iModel = await HubWrappers.openCheckpointUsingRpc(args);\n assert.isDefined(iModel);\n\n iModelName = \"iModel Name Thats Excessively Long \" +\n \"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789\" +\n \"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789\" +\n \"01234567890123456789\"; // 35 + 2*100 + 20 = 255\n // Note: iModelHub does not accept a name that's longer than 255 characters.\n assert.equal(255, iModelName.length);\n iModelId = await HubWrappers.createIModel(managerAccessToken, testITwinId, iModelName);\n assert.isDefined(iModelId);\n iModel = await HubWrappers.openCheckpointUsingRpc(args);\n assert.isDefined(iModel);\n iModel.close();\n });\n\n it(\"should set appropriate briefcase ids for FixedVersion, PullOnly and PullAndPush workflows\", async () => {\n HubMock.startup(\"briefcaseIds\", KnownTestLocations.outputDir);\n const iModelId = await HubWrappers.createIModel(accessToken, testITwinId, \"imodel1\");\n const args = { accessToken, iTwinId: testITwinId, iModelId, deleteFirst: true };\n const iModel1 = await HubWrappers.openCheckpointUsingRpc(args);\n assert.equal(BriefcaseIdValue.Unassigned, iModel1.getBriefcaseId(), \"checkpoint should be 0\");\n\n try {\n const iModelFailure = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModelFailure);\n assert.fail(\"iModelFailure should fail due to iModel1 already being open as a SnapshotDb\");\n } catch (err: any) {\n assert.isTrue(err.message.includes(\"iModel is already open as a SnapshotDb\"), \"iModelFailure failure must be due to db being open as a SnapshotDb\");\n }\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel1);\n const iModel2 = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\n assert.equal(BriefcaseIdValue.Unassigned, iModel2.briefcaseId, \"pullOnly should be 0\");\n\n const iModel2Dup = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\n\n const iModel3 = await HubWrappers.openBriefcaseUsingRpc(args);\n assert.isTrue(iModel3.briefcaseId >= BriefcaseIdValue.FirstValid && iModel3.briefcaseId <= BriefcaseIdValue.LastValid, \"valid briefcaseId\");\n\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel2);\n try {\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel2Dup);\n assert.fail(\"iModel2Dup failure should fail due to already being closed when iModel2 closed\");\n } catch (err: any) {\n assert.isTrue(err.message.includes(\"db is not open\"), \"iModel2Dup failure must be due to db not being open\");\n }\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel3);\n });\n\n it(\"should reuse a briefcaseId when re-opening iModels for pullAndPush workflows\", async () => {\n HubMock.startup(\"briefcaseIdsReopen\", KnownTestLocations.outputDir);\n const iModelId = await HubWrappers.createIModel(accessToken, testITwinId, \"imodel1\");\n\n const args = { accessToken, iTwinId: testITwinId, iModelId, deleteFirst: false };\n const iModel1 = await HubWrappers.openBriefcaseUsingRpc(args);\n const briefcaseId1 = iModel1.briefcaseId;\n iModel1.close(); // Keeps the briefcase by default\n\n const iModel3 = await HubWrappers.openBriefcaseUsingRpc(args);\n const briefcaseId3 = iModel3.briefcaseId;\n assert.strictEqual(briefcaseId3, briefcaseId1);\n\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel3);\n });\n\n it(\"should reuse a briefcaseId when re-opening iModels of different versions for pullAndPush and pullOnly workflows\", async () => {\n HubMock.startup(\"workflow\", KnownTestLocations.outputDir);\n const userToken1 = \"manager token\";\n const userToken2 = \"super manager token\";\n\n // User1 creates an iModel on the Hub\n const testUtility = new TestChangeSetUtility(userToken1, IModelTestUtils.generateUniqueName(\"BriefcaseReuseTest\"));\n await testUtility.createTestIModel();\n\n // User2 opens and then closes the iModel pullOnly/pullPush, keeping the briefcase\n const args = { accessToken: userToken2, iTwinId: testUtility.iTwinId, iModelId: testUtility.iModelId };\n const iModelPullAndPush = await HubWrappers.openBriefcaseUsingRpc(args);\n const briefcaseIdPullAndPush: number = iModelPullAndPush.briefcaseId;\n const changesetPullAndPush = iModelPullAndPush.changeset;\n iModelPullAndPush.close();\n\n const iModelPullOnly = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\n const briefcaseIdPullOnly: number = iModelPullOnly.briefcaseId;\n const changesetPullOnly = iModelPullOnly.changeset;\n iModelPullOnly.close();\n\n // User1 pushes a change set\n await testUtility.pushTestChangeSet();\n\n // User 2 reopens the iModel pullOnly/pullPush => Expect the same briefcase to be re-used, but the changeset should have been updated!!\n const iModelPullAndPush2 = await HubWrappers.openBriefcaseUsingRpc(args);\n const briefcaseIdPullAndPush2: number = iModelPullAndPush2.briefcaseId;\n assert.strictEqual(briefcaseIdPullAndPush2, briefcaseIdPullAndPush);\n const changesetPullAndPush2 = iModelPullAndPush2.changeset;\n assert.notStrictEqual(changesetPullAndPush2, changesetPullAndPush);\n await HubWrappers.closeAndDeleteBriefcaseDb(userToken2, iModelPullAndPush2);\n\n const iModelPullOnly2 = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\n const briefcaseIdPullOnly2: number = iModelPullOnly2.briefcaseId;\n assert.strictEqual(briefcaseIdPullOnly2, briefcaseIdPullOnly);\n const changesetPullOnly2 = iModelPullOnly2.changeset;\n assert.notStrictEqual(changesetPullOnly2, changesetPullOnly);\n await HubWrappers.closeAndDeleteBriefcaseDb(userToken2, iModelPullOnly2);\n\n // Delete iModel from the Hub and disk\n await testUtility.deleteTestIModel();\n });\n\n it(\"should be able to edit a PullAndPush briefcase, reopen it as of a new version, and then push changes\", async () => {\n HubMock.startup(\"pullPush\", KnownTestLocations.outputDir);\n const userToken1 = \"manager token\"; // User1 is just used to create and update the iModel\n const userToken2 = \"super manager token\"; // User2 is used for the test\n\n // User1 creates an iModel on the Hub\n const testUtility = new TestChangeSetUtility(userToken1, \"PullAndPushTest\");\n await testUtility.createTestIModel();\n\n // User2 opens the iModel pullAndPush and is able to edit and save changes\n const args = { accessToken: userToken2, iTwinId: testUtility.iTwinId, iModelId: testUtility.iModelId };\n let iModelPullAndPush = await HubWrappers.openBriefcaseUsingRpc(args);\n assert.exists(iModelPullAndPush);\n const briefcaseId = iModelPullAndPush.briefcaseId;\n const pathname = iModelPullAndPush.pathName;\n\n iModelPullAndPush.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n const rootEl: Element = iModelPullAndPush.elements.getRootSubject();\n rootEl.userLabel = `${rootEl.userLabel}changed`;\n withEditTxn(iModelPullAndPush, (txn) => txn.updateElement(rootEl.toJSON()));\n\n assert.isFalse(iModelPullAndPush[_nativeDb].hasUnsavedChanges());\n assert.isTrue(iModelPullAndPush[_nativeDb].hasPendingTxns());\n\n iModelPullAndPush.close();\n\n // User2 should be able to re-open the iModel pullAndPush again\n // - the changes will still be there\n iModelPullAndPush = await HubWrappers.openBriefcaseUsingRpc(args);\n const changesetPullAndPush = iModelPullAndPush.changeset;\n assert.strictEqual(iModelPullAndPush.briefcaseId, briefcaseId);\n assert.strictEqual(iModelPullAndPush.pathName, pathname);\n assert.isFalse(iModelPullAndPush[_nativeDb].hasUnsavedChanges());\n assert.isTrue(iModelPullAndPush[_nativeDb].hasPendingTxns());\n\n // User1 pushes a change set\n await testUtility.pushTestChangeSet();\n\n // User2 should be able to re-open the iModel\n await HubWrappers.openBriefcaseUsingRpc(args);\n\n // User2 closes and reopens the iModel pullAndPush as of the newer version\n // - the changes will still be there, AND\n // - the briefcase will be upgraded to the newer version since it was closed and re-opened.\n iModelPullAndPush.close();\n iModelPullAndPush = await HubWrappers.openBriefcaseUsingRpc(args);\n const changesetPullAndPush3 = iModelPullAndPush.changeset;\n assert.notStrictEqual(changesetPullAndPush3, changesetPullAndPush);\n assert.strictEqual(iModelPullAndPush.briefcaseId, briefcaseId);\n assert.strictEqual(iModelPullAndPush.pathName, pathname);\n assert.isFalse(iModelPullAndPush[_nativeDb].hasUnsavedChanges());\n assert.isTrue(iModelPullAndPush[_nativeDb].hasPendingTxns());\n\n // User2 should be able to push the changes now\n await iModelPullAndPush.pushChanges({ accessToken: userToken2, description: \"test change\" });\n const changesetPullAndPush4 = iModelPullAndPush.changeset;\n assert.notStrictEqual(changesetPullAndPush4, changesetPullAndPush3);\n\n // Delete iModel from the Hub and disk\n await HubWrappers.closeAndDeleteBriefcaseDb(userToken2, iModelPullAndPush);\n await testUtility.deleteTestIModel();\n });\n});\n"]}
1
+ {"version":3,"file":"BriefcaseManager.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/BriefcaseManager.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 { assert } from \"chai\";\r\nimport { Guid } from \"@itwin/core-bentley\";\r\nimport { BriefcaseIdValue } from \"@itwin/core-common\";\r\nimport { Element } from \"../../Element\";\r\nimport { HubWrappers, IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\nimport { HubMock } from \"../../internal/HubMock\";\r\nimport { TestChangeSetUtility } from \"../TestChangeSetUtility\";\r\nimport { _nativeDb, ChannelControl } from \"../../core-backend\";\r\nimport { withEditTxn } from \"../../EditTxn\";\r\n\r\ndescribe(\"BriefcaseManager\", async () => {\r\n const testITwinId: string = Guid.createValue();\r\n const managerAccessToken = \"manager mock token\";\r\n const accessToken = \"access token\";\r\n\r\n // contested version0 files can cause errors that cause tests to not call shutdown, so always do it here\r\n afterEach(() => HubMock.shutdown());\r\n\r\n it(\"Open iModels with various names causing potential issues on Windows/Unix\", async () => {\r\n HubMock.startup(\"bad names\", KnownTestLocations.outputDir);\r\n let iModelName = \"iModel Name With Spaces\";\r\n let iModelId = await HubWrappers.createIModel(managerAccessToken, testITwinId, iModelName);\r\n const args = { accessToken, iTwinId: testITwinId, iModelId };\r\n assert.isDefined(iModelId);\r\n let iModel = await HubWrappers.openCheckpointUsingRpc(args);\r\n assert.isDefined(iModel);\r\n\r\n iModelName = \"iModel Name With :\\/<>?* Characters\";\r\n iModelId = await HubWrappers.createIModel(managerAccessToken, testITwinId, iModelName);\r\n assert.isDefined(iModelId);\r\n iModel = await HubWrappers.openCheckpointUsingRpc(args);\r\n assert.isDefined(iModel);\r\n\r\n iModelName = \"iModel Name Thats Excessively Long \" +\r\n \"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789\" +\r\n \"0123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789\" +\r\n \"01234567890123456789\"; // 35 + 2*100 + 20 = 255\r\n // Note: iModelHub does not accept a name that's longer than 255 characters.\r\n assert.equal(255, iModelName.length);\r\n iModelId = await HubWrappers.createIModel(managerAccessToken, testITwinId, iModelName);\r\n assert.isDefined(iModelId);\r\n iModel = await HubWrappers.openCheckpointUsingRpc(args);\r\n assert.isDefined(iModel);\r\n iModel.close();\r\n });\r\n\r\n it(\"should set appropriate briefcase ids for FixedVersion, PullOnly and PullAndPush workflows\", async () => {\r\n HubMock.startup(\"briefcaseIds\", KnownTestLocations.outputDir);\r\n const iModelId = await HubWrappers.createIModel(accessToken, testITwinId, \"imodel1\");\r\n const args = { accessToken, iTwinId: testITwinId, iModelId, deleteFirst: true };\r\n const iModel1 = await HubWrappers.openCheckpointUsingRpc(args);\r\n assert.equal(BriefcaseIdValue.Unassigned, iModel1.getBriefcaseId(), \"checkpoint should be 0\");\r\n\r\n try {\r\n const iModelFailure = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\r\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModelFailure);\r\n assert.fail(\"iModelFailure should fail due to iModel1 already being open as a SnapshotDb\");\r\n } catch (err: any) {\r\n assert.isTrue(err.message.includes(\"iModel is already open as a SnapshotDb\"), \"iModelFailure failure must be due to db being open as a SnapshotDb\");\r\n }\r\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel1);\r\n const iModel2 = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\r\n assert.equal(BriefcaseIdValue.Unassigned, iModel2.briefcaseId, \"pullOnly should be 0\");\r\n\r\n const iModel2Dup = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\r\n\r\n const iModel3 = await HubWrappers.openBriefcaseUsingRpc(args);\r\n assert.isTrue(iModel3.briefcaseId >= BriefcaseIdValue.FirstValid && iModel3.briefcaseId <= BriefcaseIdValue.LastValid, \"valid briefcaseId\");\r\n\r\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel2);\r\n try {\r\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel2Dup);\r\n assert.fail(\"iModel2Dup failure should fail due to already being closed when iModel2 closed\");\r\n } catch (err: any) {\r\n assert.isTrue(err.message.includes(\"db is not open\"), \"iModel2Dup failure must be due to db not being open\");\r\n }\r\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel3);\r\n });\r\n\r\n it(\"should reuse a briefcaseId when re-opening iModels for pullAndPush workflows\", async () => {\r\n HubMock.startup(\"briefcaseIdsReopen\", KnownTestLocations.outputDir);\r\n const iModelId = await HubWrappers.createIModel(accessToken, testITwinId, \"imodel1\");\r\n\r\n const args = { accessToken, iTwinId: testITwinId, iModelId, deleteFirst: false };\r\n const iModel1 = await HubWrappers.openBriefcaseUsingRpc(args);\r\n const briefcaseId1 = iModel1.briefcaseId;\r\n iModel1.close(); // Keeps the briefcase by default\r\n\r\n const iModel3 = await HubWrappers.openBriefcaseUsingRpc(args);\r\n const briefcaseId3 = iModel3.briefcaseId;\r\n assert.strictEqual(briefcaseId3, briefcaseId1);\r\n\r\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel3);\r\n });\r\n\r\n it(\"should reuse a briefcaseId when re-opening iModels of different versions for pullAndPush and pullOnly workflows\", async () => {\r\n HubMock.startup(\"workflow\", KnownTestLocations.outputDir);\r\n const userToken1 = \"manager token\";\r\n const userToken2 = \"super manager token\";\r\n\r\n // User1 creates an iModel on the Hub\r\n const testUtility = new TestChangeSetUtility(userToken1, IModelTestUtils.generateUniqueName(\"BriefcaseReuseTest\"));\r\n await testUtility.createTestIModel();\r\n\r\n // User2 opens and then closes the iModel pullOnly/pullPush, keeping the briefcase\r\n const args = { accessToken: userToken2, iTwinId: testUtility.iTwinId, iModelId: testUtility.iModelId };\r\n const iModelPullAndPush = await HubWrappers.openBriefcaseUsingRpc(args);\r\n const briefcaseIdPullAndPush: number = iModelPullAndPush.briefcaseId;\r\n const changesetPullAndPush = iModelPullAndPush.changeset;\r\n iModelPullAndPush.close();\r\n\r\n const iModelPullOnly = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\r\n const briefcaseIdPullOnly: number = iModelPullOnly.briefcaseId;\r\n const changesetPullOnly = iModelPullOnly.changeset;\r\n iModelPullOnly.close();\r\n\r\n // User1 pushes a change set\r\n await testUtility.pushTestChangeSet();\r\n\r\n // User 2 reopens the iModel pullOnly/pullPush => Expect the same briefcase to be re-used, but the changeset should have been updated!!\r\n const iModelPullAndPush2 = await HubWrappers.openBriefcaseUsingRpc(args);\r\n const briefcaseIdPullAndPush2: number = iModelPullAndPush2.briefcaseId;\r\n assert.strictEqual(briefcaseIdPullAndPush2, briefcaseIdPullAndPush);\r\n const changesetPullAndPush2 = iModelPullAndPush2.changeset;\r\n assert.notStrictEqual(changesetPullAndPush2, changesetPullAndPush);\r\n await HubWrappers.closeAndDeleteBriefcaseDb(userToken2, iModelPullAndPush2);\r\n\r\n const iModelPullOnly2 = await HubWrappers.openBriefcaseUsingRpc({ ...args, briefcaseId: 0 });\r\n const briefcaseIdPullOnly2: number = iModelPullOnly2.briefcaseId;\r\n assert.strictEqual(briefcaseIdPullOnly2, briefcaseIdPullOnly);\r\n const changesetPullOnly2 = iModelPullOnly2.changeset;\r\n assert.notStrictEqual(changesetPullOnly2, changesetPullOnly);\r\n await HubWrappers.closeAndDeleteBriefcaseDb(userToken2, iModelPullOnly2);\r\n\r\n // Delete iModel from the Hub and disk\r\n await testUtility.deleteTestIModel();\r\n });\r\n\r\n it(\"should be able to edit a PullAndPush briefcase, reopen it as of a new version, and then push changes\", async () => {\r\n HubMock.startup(\"pullPush\", KnownTestLocations.outputDir);\r\n const userToken1 = \"manager token\"; // User1 is just used to create and update the iModel\r\n const userToken2 = \"super manager token\"; // User2 is used for the test\r\n\r\n // User1 creates an iModel on the Hub\r\n const testUtility = new TestChangeSetUtility(userToken1, \"PullAndPushTest\");\r\n await testUtility.createTestIModel();\r\n\r\n // User2 opens the iModel pullAndPush and is able to edit and save changes\r\n const args = { accessToken: userToken2, iTwinId: testUtility.iTwinId, iModelId: testUtility.iModelId };\r\n let iModelPullAndPush = await HubWrappers.openBriefcaseUsingRpc(args);\r\n assert.exists(iModelPullAndPush);\r\n const briefcaseId = iModelPullAndPush.briefcaseId;\r\n const pathname = iModelPullAndPush.pathName;\r\n\r\n iModelPullAndPush.channels.addAllowedChannel(ChannelControl.sharedChannelName);\r\n const rootEl: Element = iModelPullAndPush.elements.getRootSubject();\r\n rootEl.userLabel = `${rootEl.userLabel}changed`;\r\n withEditTxn(iModelPullAndPush, (txn) => txn.updateElement(rootEl.toJSON()));\r\n\r\n assert.isFalse(iModelPullAndPush[_nativeDb].hasUnsavedChanges());\r\n assert.isTrue(iModelPullAndPush[_nativeDb].hasPendingTxns());\r\n\r\n iModelPullAndPush.close();\r\n\r\n // User2 should be able to re-open the iModel pullAndPush again\r\n // - the changes will still be there\r\n iModelPullAndPush = await HubWrappers.openBriefcaseUsingRpc(args);\r\n const changesetPullAndPush = iModelPullAndPush.changeset;\r\n assert.strictEqual(iModelPullAndPush.briefcaseId, briefcaseId);\r\n assert.strictEqual(iModelPullAndPush.pathName, pathname);\r\n assert.isFalse(iModelPullAndPush[_nativeDb].hasUnsavedChanges());\r\n assert.isTrue(iModelPullAndPush[_nativeDb].hasPendingTxns());\r\n\r\n // User1 pushes a change set\r\n await testUtility.pushTestChangeSet();\r\n\r\n // User2 should be able to re-open the iModel\r\n await HubWrappers.openBriefcaseUsingRpc(args);\r\n\r\n // User2 closes and reopens the iModel pullAndPush as of the newer version\r\n // - the changes will still be there, AND\r\n // - the briefcase will be upgraded to the newer version since it was closed and re-opened.\r\n iModelPullAndPush.close();\r\n iModelPullAndPush = await HubWrappers.openBriefcaseUsingRpc(args);\r\n const changesetPullAndPush3 = iModelPullAndPush.changeset;\r\n assert.notStrictEqual(changesetPullAndPush3, changesetPullAndPush);\r\n assert.strictEqual(iModelPullAndPush.briefcaseId, briefcaseId);\r\n assert.strictEqual(iModelPullAndPush.pathName, pathname);\r\n assert.isFalse(iModelPullAndPush[_nativeDb].hasUnsavedChanges());\r\n assert.isTrue(iModelPullAndPush[_nativeDb].hasPendingTxns());\r\n\r\n // User2 should be able to push the changes now\r\n await iModelPullAndPush.pushChanges({ accessToken: userToken2, description: \"test change\" });\r\n const changesetPullAndPush4 = iModelPullAndPush.changeset;\r\n assert.notStrictEqual(changesetPullAndPush4, changesetPullAndPush3);\r\n\r\n // Delete iModel from the Hub and disk\r\n await HubWrappers.closeAndDeleteBriefcaseDb(userToken2, iModelPullAndPush);\r\n await testUtility.deleteTestIModel();\r\n });\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CheckpointManager.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/CheckpointManager.test.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SAC1B,CAAC;QACF,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACzE,UAAU;SACX,CAAC;QACF,MAAM,EAAE,GAAG,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SAC1B,CAAC;QAEF,qBAAqB;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/E,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;YAChC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAExC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QAChG,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;YACnC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhD,2BAA2B;QAC3B,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,UAAU;YACrB,UAAU;SACX,CAAC;QACF,MAAM,EAAE,GAAG,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","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 { assert } from \"chai\";\nimport * as path from \"path\";\nimport * as sinon from \"sinon\";\nimport { Guid } from \"@itwin/core-bentley\";\nimport { V2CheckpointManager } from \"../../CheckpointManager\";\nimport { IModelJsFs } from \"../../IModelJsFs\";\nimport { _hubAccess, _nativeDb } from \"../../internal/Symbols\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\n\ndescribe(\"Checkpoint Manager\", () => {\n\n afterEach(() => {\n sinon.restore();\n });\n\n it(\"open missing local file should return undefined\", async () => {\n const checkpoint = {\n iTwinId: \"5678\",\n iModelId: \"910\",\n changeset: { id: \"1234\" },\n };\n const request = {\n localFile: path.join(V2CheckpointManager.getFolder(), Guid.createValue()),\n checkpoint,\n };\n const db = IModelTestUtils.tryOpenLocalFile(request);\n assert.isUndefined(db);\n });\n\n it(\"open a bad bim file should return undefined\", async () => {\n const checkpoint = {\n iTwinId: \"5678\",\n iModelId: \"910\",\n changeset: { id: \"1234\" },\n };\n\n // Setup a local file\n const folder = path.join(V2CheckpointManager.getFolder(), checkpoint.iModelId);\n if (!IModelJsFs.existsSync(folder))\n IModelJsFs.recursiveMkDirSync(folder);\n\n const outputFile = path.join(V2CheckpointManager.getFolder(), `${checkpoint.changeset.id}.bim`);\n if (IModelJsFs.existsSync(outputFile))\n IModelJsFs.unlinkSync(outputFile);\n\n IModelJsFs.writeFileSync(outputFile, \"Testing\");\n\n // Attempt to open the file\n const request = {\n localFile: outputFile,\n checkpoint,\n };\n const db = IModelTestUtils.tryOpenLocalFile(request);\n assert.isUndefined(db);\n });\n});\n"]}
1
+ {"version":3,"file":"CheckpointManager.test.js","sourceRoot":"","sources":["../../../../src/test/hubaccess/CheckpointManager.test.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAE/F,OAAO,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAElC,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SAC1B,CAAC;QACF,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC;YACzE,UAAU;SACX,CAAC;QACF,MAAM,EAAE,GAAG,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,KAAK,IAAI,EAAE;QAC3D,MAAM,UAAU,GAAG;YACjB,OAAO,EAAE,MAAM;YACf,QAAQ,EAAE,KAAK;YACf,SAAS,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE;SAC1B,CAAC;QAEF,qBAAqB;QACrB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC/E,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;YAChC,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QAExC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,EAAE,GAAG,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;QAChG,IAAI,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC;YACnC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAEpC,UAAU,CAAC,aAAa,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;QAEhD,2BAA2B;QAC3B,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,UAAU;YACrB,UAAU;SACX,CAAC;QACF,MAAM,EAAE,GAAG,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACrD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","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 { assert } from \"chai\";\r\nimport * as path from \"path\";\r\nimport * as sinon from \"sinon\";\r\nimport { Guid } from \"@itwin/core-bentley\";\r\nimport { V2CheckpointManager } from \"../../CheckpointManager\";\r\nimport { IModelJsFs } from \"../../IModelJsFs\";\r\nimport { _hubAccess, _nativeDb } from \"../../internal/Symbols\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\n\r\ndescribe(\"Checkpoint Manager\", () => {\r\n\r\n afterEach(() => {\r\n sinon.restore();\r\n });\r\n\r\n it(\"open missing local file should return undefined\", async () => {\r\n const checkpoint = {\r\n iTwinId: \"5678\",\r\n iModelId: \"910\",\r\n changeset: { id: \"1234\" },\r\n };\r\n const request = {\r\n localFile: path.join(V2CheckpointManager.getFolder(), Guid.createValue()),\r\n checkpoint,\r\n };\r\n const db = IModelTestUtils.tryOpenLocalFile(request);\r\n assert.isUndefined(db);\r\n });\r\n\r\n it(\"open a bad bim file should return undefined\", async () => {\r\n const checkpoint = {\r\n iTwinId: \"5678\",\r\n iModelId: \"910\",\r\n changeset: { id: \"1234\" },\r\n };\r\n\r\n // Setup a local file\r\n const folder = path.join(V2CheckpointManager.getFolder(), checkpoint.iModelId);\r\n if (!IModelJsFs.existsSync(folder))\r\n IModelJsFs.recursiveMkDirSync(folder);\r\n\r\n const outputFile = path.join(V2CheckpointManager.getFolder(), `${checkpoint.changeset.id}.bim`);\r\n if (IModelJsFs.existsSync(outputFile))\r\n IModelJsFs.unlinkSync(outputFile);\r\n\r\n IModelJsFs.writeFileSync(outputFile, \"Testing\");\r\n\r\n // Attempt to open the file\r\n const request = {\r\n localFile: outputFile,\r\n checkpoint,\r\n };\r\n const db = IModelTestUtils.tryOpenLocalFile(request);\r\n assert.isUndefined(db);\r\n });\r\n});\r\n"]}
@@ -44,26 +44,26 @@ class TestIModel {
44
44
  const b1 = await HubWrappers.downloadAndOpenBriefcase({ accessToken, iTwinId: HubMock.iTwinId, iModelId: this.iModelId });
45
45
  const b1Txn = startTestTxn(b1, "rebase startup");
46
46
  b1.channels.addAllowedChannel(ChannelControl.sharedChannelName);
47
- const schema1 = `<?xml version="1.0" encoding="UTF-8"?>
48
- <ECSchema schemaName="TestDomain" alias="ts" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
49
- <ECSchemaReference name="BisCore" version="01.00.00" alias="bis"/>
50
- <ECEntityClass typeName="a1">
51
- <BaseClass>bis:GraphicalElement2d</BaseClass>
52
- <ECProperty propertyName="prop1" typeName="string" />
53
- </ECEntityClass>
54
- <ECEntityClass typeName="A1Recipe2d">
55
- <BaseClass>bis:TemplateRecipe2d</BaseClass>
56
- <ECProperty propertyName="prop1" typeName="string" />
57
- </ECEntityClass>
58
- <ECRelationshipClass typeName="A1OwnsA1" modifier="None" strength="embedding">
59
- <BaseClass>bis:ElementOwnsChildElements</BaseClass>
60
- <Source multiplicity="(0..1)" roleLabel="owns" polymorphic="true">
61
- <Class class="a1"/>
62
- </Source>
63
- <Target multiplicity="(0..*)" roleLabel="is owned by" polymorphic="false">
64
- <Class class="a1"/>
65
- </Target>
66
- </ECRelationshipClass>
47
+ const schema1 = `<?xml version="1.0" encoding="UTF-8"?>
48
+ <ECSchema schemaName="TestDomain" alias="ts" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
49
+ <ECSchemaReference name="BisCore" version="01.00.00" alias="bis"/>
50
+ <ECEntityClass typeName="a1">
51
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
52
+ <ECProperty propertyName="prop1" typeName="string" />
53
+ </ECEntityClass>
54
+ <ECEntityClass typeName="A1Recipe2d">
55
+ <BaseClass>bis:TemplateRecipe2d</BaseClass>
56
+ <ECProperty propertyName="prop1" typeName="string" />
57
+ </ECEntityClass>
58
+ <ECRelationshipClass typeName="A1OwnsA1" modifier="None" strength="embedding">
59
+ <BaseClass>bis:ElementOwnsChildElements</BaseClass>
60
+ <Source multiplicity="(0..1)" roleLabel="owns" polymorphic="true">
61
+ <Class class="a1"/>
62
+ </Source>
63
+ <Target multiplicity="(0..*)" roleLabel="is owned by" polymorphic="false">
64
+ <Class class="a1"/>
65
+ </Target>
66
+ </ECRelationshipClass>
67
67
  </ECSchema>`;
68
68
  await importSchemaStrings(b1Txn, [schema1]);
69
69
  chai.expect(b1.txns.hasPendingTxns).to.be.true;
@@ -492,13 +492,13 @@ for (const enableSemanticRebase of [false, true]) {
492
492
  it("should fail to importSchemas() & importSchemaStrings() in indirect scope", async () => {
493
493
  const b1 = await testIModel.openBriefcase();
494
494
  const b1Txn = startTestTxn(b1, "indirect schema import failures");
495
- const schema = `<?xml version="1.0" encoding="UTF-8"?>
496
- <ECSchema schemaName="MySchema" alias="ms1" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
497
- <ECSchemaReference name="BisCore" version="01.00.00" alias="bis"/>
498
- <ECEntityClass typeName="my_class">
499
- <BaseClass>bis:GraphicalElement2d</BaseClass>
500
- <ECProperty propertyName="prop1" typeName="string" />
501
- </ECEntityClass>
495
+ const schema = `<?xml version="1.0" encoding="UTF-8"?>
496
+ <ECSchema schemaName="MySchema" alias="ms1" version="01.00.00" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
497
+ <ECSchemaReference name="BisCore" version="01.00.00" alias="bis"/>
498
+ <ECEntityClass typeName="my_class">
499
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
500
+ <ECProperty propertyName="prop1" typeName="string" />
501
+ </ECEntityClass>
502
502
  </ECSchema>`;
503
503
  const schemaFile = path.join(KnownTestLocations.outputDir, "MySchema.01.00.00.ecschema.xml");
504
504
  if (existsSync(schemaFile)) {
@@ -788,27 +788,27 @@ for (const enableSemanticRebase of [false, true]) {
788
788
  it("schema change should not be stashed", async () => {
789
789
  const b1 = await testIModel.openBriefcase();
790
790
  const b1Txn = startTestTxn(b1, "schema change should not be stashed");
791
- const schema1 = `<?xml version="1.0" encoding="UTF-8"?>
792
- <ECSchema schemaName="TestDomain" alias="ts" version="01.00.01" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
793
- <ECSchemaReference name="BisCore" version="01.00.00" alias="bis"/>
794
- <ECEntityClass typeName="a1">
795
- <BaseClass>bis:GraphicalElement2d</BaseClass>
796
- <ECProperty propertyName="prop1" typeName="string" />
797
- <ECProperty propertyName="prop2" typeName="string" />
798
- </ECEntityClass>
799
- <ECEntityClass typeName="A1Recipe2d">
800
- <BaseClass>bis:TemplateRecipe2d</BaseClass>
801
- <ECProperty propertyName="prop1" typeName="string" />
802
- </ECEntityClass>
803
- <ECRelationshipClass typeName="A1OwnsA1" modifier="None" strength="embedding">
804
- <BaseClass>bis:ElementOwnsChildElements</BaseClass>
805
- <Source multiplicity="(0..1)" roleLabel="owns" polymorphic="true">
806
- <Class class="a1"/>
807
- </Source>
808
- <Target multiplicity="(0..*)" roleLabel="is owned by" polymorphic="false">
809
- <Class class="a1"/>
810
- </Target>
811
- </ECRelationshipClass>
791
+ const schema1 = `<?xml version="1.0" encoding="UTF-8"?>
792
+ <ECSchema schemaName="TestDomain" alias="ts" version="01.00.01" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
793
+ <ECSchemaReference name="BisCore" version="01.00.00" alias="bis"/>
794
+ <ECEntityClass typeName="a1">
795
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
796
+ <ECProperty propertyName="prop1" typeName="string" />
797
+ <ECProperty propertyName="prop2" typeName="string" />
798
+ </ECEntityClass>
799
+ <ECEntityClass typeName="A1Recipe2d">
800
+ <BaseClass>bis:TemplateRecipe2d</BaseClass>
801
+ <ECProperty propertyName="prop1" typeName="string" />
802
+ </ECEntityClass>
803
+ <ECRelationshipClass typeName="A1OwnsA1" modifier="None" strength="embedding">
804
+ <BaseClass>bis:ElementOwnsChildElements</BaseClass>
805
+ <Source multiplicity="(0..1)" roleLabel="owns" polymorphic="true">
806
+ <Class class="a1"/>
807
+ </Source>
808
+ <Target multiplicity="(0..*)" roleLabel="is owned by" polymorphic="false">
809
+ <Class class="a1"/>
810
+ </Target>
811
+ </ECRelationshipClass>
812
812
  </ECSchema>`;
813
813
  await importSchemaStrings(b1Txn, [schema1]);
814
814
  await chai.expect(StashManager.stash({ db: b1, description: "stash test 1" })).to.not.rejectedWith("Bad Arg: Pending schema changeset stashing is not currently supported");
@@ -989,7 +989,7 @@ for (const enableSemanticRebase of [false, true]) {
989
989
  },
990
990
  recompute: async (txn) => {
991
991
  const reader = SqliteChangesetReader.openTxn({ txnId: txn.id, db: b2, disableSchemaCheck: true });
992
- const adaptor = new ChangesetECAdaptor(reader);
992
+ const adaptor = new ChangesetECAdaptor(reader); // eslint-disable-line @typescript-eslint/no-deprecated
993
993
  adaptor.acceptClass("TestDomain:a1");
994
994
  const ids = new Set();
995
995
  while (adaptor.step()) {
@@ -1875,14 +1875,14 @@ for (const enableSemanticRebase of [false, true]) {
1875
1875
  ];
1876
1876
  const generateSchema = (noOfNewPropsToAdd) => {
1877
1877
  props += noOfNewPropsToAdd;
1878
- return `<?xml version="1.0" encoding="UTF-8"?>
1879
- <ECSchema schemaName="TestDomain1" alias="ts1" version="01.00.${ver++}" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
1880
- <ECSchemaReference name="BisCore" version="01.00.00" alias="bis"/>
1881
- <ECEntityClass typeName="test">
1882
- <BaseClass>bis:GraphicalElement2d</BaseClass>
1883
- <ECProperty propertyName="prop1" typeName="string" />
1884
- ${Array.from({ length: props - 1 }, (_, i) => `<ECProperty propertyName="prop${i + 2}" typeName="string" />`).join("\n ")}
1885
- </ECEntityClass>
1878
+ return `<?xml version="1.0" encoding="UTF-8"?>
1879
+ <ECSchema schemaName="TestDomain1" alias="ts1" version="01.00.${ver++}" xmlns="http://www.bentley.com/schemas/Bentley.ECXML.3.2">
1880
+ <ECSchemaReference name="BisCore" version="01.00.00" alias="bis"/>
1881
+ <ECEntityClass typeName="test">
1882
+ <BaseClass>bis:GraphicalElement2d</BaseClass>
1883
+ <ECProperty propertyName="prop1" typeName="string" />
1884
+ ${Array.from({ length: props - 1 }, (_, i) => `<ECProperty propertyName="prop${i + 2}" typeName="string" />`).join("\n ")}
1885
+ </ECEntityClass>
1886
1886
  </ECSchema>`;
1887
1887
  };
1888
1888
  const getColumnNames = (b, tableName) => {