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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (426) hide show
  1. package/lib/cjs/BriefcaseManager.js +3 -3
  2. package/lib/cjs/BriefcaseManager.js.map +1 -1
  3. package/lib/cjs/Category.d.ts +37 -7
  4. package/lib/cjs/Category.d.ts.map +1 -1
  5. package/lib/cjs/Category.js +33 -42
  6. package/lib/cjs/Category.js.map +1 -1
  7. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  8. package/lib/cjs/ChangesetECAdaptor.js +5 -2
  9. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  10. package/lib/cjs/ChannelControl.d.ts +29 -0
  11. package/lib/cjs/ChannelControl.d.ts.map +1 -1
  12. package/lib/cjs/ChannelControl.js.map +1 -1
  13. package/lib/cjs/CheckpointManager.js +1 -1
  14. package/lib/cjs/CheckpointManager.js.map +1 -1
  15. package/lib/cjs/CodeSpecs.d.ts +32 -3
  16. package/lib/cjs/CodeSpecs.d.ts.map +1 -1
  17. package/lib/cjs/CodeSpecs.js +48 -20
  18. package/lib/cjs/CodeSpecs.js.map +1 -1
  19. package/lib/cjs/DisplayStyle.d.ts +18 -3
  20. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  21. package/lib/cjs/DisplayStyle.js +10 -21
  22. package/lib/cjs/DisplayStyle.js.map +1 -1
  23. package/lib/cjs/EditTxn.d.ts +262 -0
  24. package/lib/cjs/EditTxn.d.ts.map +1 -0
  25. package/lib/cjs/EditTxn.js +548 -0
  26. package/lib/cjs/EditTxn.js.map +1 -0
  27. package/lib/cjs/Element.d.ts +74 -5
  28. package/lib/cjs/Element.d.ts.map +1 -1
  29. package/lib/cjs/Element.js +63 -75
  30. package/lib/cjs/Element.js.map +1 -1
  31. package/lib/cjs/ElementAspect.d.ts +10 -0
  32. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  33. package/lib/cjs/ElementAspect.js +21 -12
  34. package/lib/cjs/ElementAspect.js.map +1 -1
  35. package/lib/cjs/ElementTreeWalker.d.ts +56 -3
  36. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  37. package/lib/cjs/ElementTreeWalker.js +53 -40
  38. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  39. package/lib/cjs/ExternalSource.d.ts +11 -2
  40. package/lib/cjs/ExternalSource.d.ts.map +1 -1
  41. package/lib/cjs/ExternalSource.js +10 -8
  42. package/lib/cjs/ExternalSource.js.map +1 -1
  43. package/lib/cjs/IModelDb.d.ts +66 -22
  44. package/lib/cjs/IModelDb.d.ts.map +1 -1
  45. package/lib/cjs/IModelDb.js +174 -288
  46. package/lib/cjs/IModelDb.js.map +1 -1
  47. package/lib/cjs/IModelHost.d.ts +22 -0
  48. package/lib/cjs/IModelHost.d.ts.map +1 -1
  49. package/lib/cjs/IModelHost.js +9 -0
  50. package/lib/cjs/IModelHost.js.map +1 -1
  51. package/lib/cjs/IpcHost.js +2 -2
  52. package/lib/cjs/IpcHost.js.map +1 -1
  53. package/lib/cjs/LineStyle.d.ts +47 -7
  54. package/lib/cjs/LineStyle.d.ts.map +1 -1
  55. package/lib/cjs/LineStyle.js +38 -33
  56. package/lib/cjs/LineStyle.js.map +1 -1
  57. package/lib/cjs/Material.d.ts +8 -1
  58. package/lib/cjs/Material.d.ts.map +1 -1
  59. package/lib/cjs/Material.js +6 -12
  60. package/lib/cjs/Material.js.map +1 -1
  61. package/lib/cjs/Model.d.ts +59 -20
  62. package/lib/cjs/Model.d.ts.map +1 -1
  63. package/lib/cjs/Model.js +38 -80
  64. package/lib/cjs/Model.js.map +1 -1
  65. package/lib/cjs/Relationship.d.ts +72 -7
  66. package/lib/cjs/Relationship.d.ts.map +1 -1
  67. package/lib/cjs/Relationship.js +39 -21
  68. package/lib/cjs/Relationship.js.map +1 -1
  69. package/lib/cjs/SchemaSync.js +4 -4
  70. package/lib/cjs/SchemaSync.js.map +1 -1
  71. package/lib/cjs/SheetIndex.d.ts +9 -0
  72. package/lib/cjs/SheetIndex.d.ts.map +1 -1
  73. package/lib/cjs/SheetIndex.js +38 -35
  74. package/lib/cjs/SheetIndex.js.map +1 -1
  75. package/lib/cjs/StashManager.js +1 -1
  76. package/lib/cjs/StashManager.js.map +1 -1
  77. package/lib/cjs/Texture.d.ts +6 -0
  78. package/lib/cjs/Texture.d.ts.map +1 -1
  79. package/lib/cjs/Texture.js +6 -14
  80. package/lib/cjs/Texture.js.map +1 -1
  81. package/lib/cjs/TxnManager.d.ts +5 -5
  82. package/lib/cjs/TxnManager.d.ts.map +1 -1
  83. package/lib/cjs/TxnManager.js +23 -7
  84. package/lib/cjs/TxnManager.js.map +1 -1
  85. package/lib/cjs/ViewDefinition.d.ts +21 -1
  86. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  87. package/lib/cjs/ViewDefinition.js +27 -66
  88. package/lib/cjs/ViewDefinition.js.map +1 -1
  89. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
  90. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
  91. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +33 -27
  92. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  93. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  94. package/lib/cjs/annotations/TextAnnotationElement.js +6 -5
  95. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  96. package/lib/cjs/core-backend.d.ts +1 -0
  97. package/lib/cjs/core-backend.d.ts.map +1 -1
  98. package/lib/cjs/core-backend.js +1 -0
  99. package/lib/cjs/core-backend.js.map +1 -1
  100. package/lib/cjs/domains/FunctionalElements.d.ts +6 -2
  101. package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
  102. package/lib/cjs/domains/FunctionalElements.js +8 -13
  103. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  104. package/lib/cjs/domains/GenericElements.d.ts +11 -4
  105. package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
  106. package/lib/cjs/domains/GenericElements.js +13 -24
  107. package/lib/cjs/domains/GenericElements.js.map +1 -1
  108. package/lib/cjs/internal/ChannelAdmin.d.ts +15 -0
  109. package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
  110. package/lib/cjs/internal/ChannelAdmin.js +5 -3
  111. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  112. package/lib/cjs/internal/Symbols.d.ts +4 -0
  113. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  114. package/lib/cjs/internal/Symbols.js +5 -1
  115. package/lib/cjs/internal/Symbols.js.map +1 -1
  116. package/lib/cjs/internal/annotations/fields.d.ts +3 -2
  117. package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
  118. package/lib/cjs/internal/annotations/fields.js +7 -6
  119. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  120. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  121. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  122. package/lib/esm/BriefcaseManager.js +3 -3
  123. package/lib/esm/BriefcaseManager.js.map +1 -1
  124. package/lib/esm/Category.d.ts +37 -7
  125. package/lib/esm/Category.d.ts.map +1 -1
  126. package/lib/esm/Category.js +33 -42
  127. package/lib/esm/Category.js.map +1 -1
  128. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  129. package/lib/esm/ChangesetECAdaptor.js +5 -2
  130. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  131. package/lib/esm/ChannelControl.d.ts +29 -0
  132. package/lib/esm/ChannelControl.d.ts.map +1 -1
  133. package/lib/esm/ChannelControl.js.map +1 -1
  134. package/lib/esm/CheckpointManager.js +1 -1
  135. package/lib/esm/CheckpointManager.js.map +1 -1
  136. package/lib/esm/CodeSpecs.d.ts +32 -3
  137. package/lib/esm/CodeSpecs.d.ts.map +1 -1
  138. package/lib/esm/CodeSpecs.js +49 -21
  139. package/lib/esm/CodeSpecs.js.map +1 -1
  140. package/lib/esm/DisplayStyle.d.ts +18 -3
  141. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  142. package/lib/esm/DisplayStyle.js +10 -21
  143. package/lib/esm/DisplayStyle.js.map +1 -1
  144. package/lib/esm/EditTxn.d.ts +262 -0
  145. package/lib/esm/EditTxn.d.ts.map +1 -0
  146. package/lib/esm/EditTxn.js +543 -0
  147. package/lib/esm/EditTxn.js.map +1 -0
  148. package/lib/esm/Element.d.ts +74 -5
  149. package/lib/esm/Element.d.ts.map +1 -1
  150. package/lib/esm/Element.js +64 -76
  151. package/lib/esm/Element.js.map +1 -1
  152. package/lib/esm/ElementAspect.d.ts +10 -0
  153. package/lib/esm/ElementAspect.d.ts.map +1 -1
  154. package/lib/esm/ElementAspect.js +22 -13
  155. package/lib/esm/ElementAspect.js.map +1 -1
  156. package/lib/esm/ElementTreeWalker.d.ts +56 -3
  157. package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
  158. package/lib/esm/ElementTreeWalker.js +53 -40
  159. package/lib/esm/ElementTreeWalker.js.map +1 -1
  160. package/lib/esm/ExternalSource.d.ts +11 -2
  161. package/lib/esm/ExternalSource.d.ts.map +1 -1
  162. package/lib/esm/ExternalSource.js +10 -8
  163. package/lib/esm/ExternalSource.js.map +1 -1
  164. package/lib/esm/IModelDb.d.ts +66 -22
  165. package/lib/esm/IModelDb.d.ts.map +1 -1
  166. package/lib/esm/IModelDb.js +176 -290
  167. package/lib/esm/IModelDb.js.map +1 -1
  168. package/lib/esm/IModelHost.d.ts +22 -0
  169. package/lib/esm/IModelHost.d.ts.map +1 -1
  170. package/lib/esm/IModelHost.js +9 -0
  171. package/lib/esm/IModelHost.js.map +1 -1
  172. package/lib/esm/IpcHost.js +3 -3
  173. package/lib/esm/IpcHost.js.map +1 -1
  174. package/lib/esm/LineStyle.d.ts +47 -7
  175. package/lib/esm/LineStyle.d.ts.map +1 -1
  176. package/lib/esm/LineStyle.js +38 -33
  177. package/lib/esm/LineStyle.js.map +1 -1
  178. package/lib/esm/Material.d.ts +8 -1
  179. package/lib/esm/Material.d.ts.map +1 -1
  180. package/lib/esm/Material.js +6 -12
  181. package/lib/esm/Material.js.map +1 -1
  182. package/lib/esm/Model.d.ts +59 -20
  183. package/lib/esm/Model.d.ts.map +1 -1
  184. package/lib/esm/Model.js +39 -81
  185. package/lib/esm/Model.js.map +1 -1
  186. package/lib/esm/Relationship.d.ts +72 -7
  187. package/lib/esm/Relationship.d.ts.map +1 -1
  188. package/lib/esm/Relationship.js +40 -22
  189. package/lib/esm/Relationship.js.map +1 -1
  190. package/lib/esm/SchemaSync.js +5 -5
  191. package/lib/esm/SchemaSync.js.map +1 -1
  192. package/lib/esm/SheetIndex.d.ts +9 -0
  193. package/lib/esm/SheetIndex.d.ts.map +1 -1
  194. package/lib/esm/SheetIndex.js +38 -35
  195. package/lib/esm/SheetIndex.js.map +1 -1
  196. package/lib/esm/StashManager.js +1 -1
  197. package/lib/esm/StashManager.js.map +1 -1
  198. package/lib/esm/Texture.d.ts +6 -0
  199. package/lib/esm/Texture.d.ts.map +1 -1
  200. package/lib/esm/Texture.js +6 -14
  201. package/lib/esm/Texture.js.map +1 -1
  202. package/lib/esm/TxnManager.d.ts +5 -5
  203. package/lib/esm/TxnManager.d.ts.map +1 -1
  204. package/lib/esm/TxnManager.js +23 -7
  205. package/lib/esm/TxnManager.js.map +1 -1
  206. package/lib/esm/ViewDefinition.d.ts +21 -1
  207. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  208. package/lib/esm/ViewDefinition.js +27 -66
  209. package/lib/esm/ViewDefinition.js.map +1 -1
  210. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
  211. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
  212. package/lib/esm/annotations/ElementDrivesTextAnnotation.js +33 -27
  213. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  214. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  215. package/lib/esm/annotations/TextAnnotationElement.js +6 -5
  216. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  217. package/lib/esm/core-backend.d.ts +1 -0
  218. package/lib/esm/core-backend.d.ts.map +1 -1
  219. package/lib/esm/core-backend.js +1 -0
  220. package/lib/esm/core-backend.js.map +1 -1
  221. package/lib/esm/domains/FunctionalElements.d.ts +6 -2
  222. package/lib/esm/domains/FunctionalElements.d.ts.map +1 -1
  223. package/lib/esm/domains/FunctionalElements.js +8 -13
  224. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  225. package/lib/esm/domains/GenericElements.d.ts +11 -4
  226. package/lib/esm/domains/GenericElements.d.ts.map +1 -1
  227. package/lib/esm/domains/GenericElements.js +13 -24
  228. package/lib/esm/domains/GenericElements.js.map +1 -1
  229. package/lib/esm/internal/ChannelAdmin.d.ts +15 -0
  230. package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
  231. package/lib/esm/internal/ChannelAdmin.js +6 -4
  232. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  233. package/lib/esm/internal/Symbols.d.ts +4 -0
  234. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  235. package/lib/esm/internal/Symbols.js +4 -0
  236. package/lib/esm/internal/Symbols.js.map +1 -1
  237. package/lib/esm/internal/annotations/fields.d.ts +3 -2
  238. package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
  239. package/lib/esm/internal/annotations/fields.js +7 -6
  240. package/lib/esm/internal/annotations/fields.js.map +1 -1
  241. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  242. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  243. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  244. package/lib/esm/test/ElementDrivesElement.test.d.ts +20 -19
  245. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  246. package/lib/esm/test/ElementDrivesElement.test.js +111 -96
  247. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  248. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  249. package/lib/esm/test/IModelHost.test.js +56 -2
  250. package/lib/esm/test/IModelHost.test.js.map +1 -1
  251. package/lib/esm/test/IModelTestUtils.d.ts +23 -23
  252. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  253. package/lib/esm/test/IModelTestUtils.js +466 -449
  254. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  255. package/lib/esm/test/PropertyDb.test.js +2 -2
  256. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  257. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +27 -18
  258. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  259. package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -1
  260. package/lib/esm/test/TestChangeSetUtility.js +11 -7
  261. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  262. package/lib/esm/test/TestEditTxn.d.ts +8 -0
  263. package/lib/esm/test/TestEditTxn.d.ts.map +1 -0
  264. package/lib/esm/test/TestEditTxn.js +34 -0
  265. package/lib/esm/test/TestEditTxn.js.map +1 -0
  266. package/lib/esm/test/TestUtils.d.ts +1 -0
  267. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  268. package/lib/esm/test/TestUtils.js +8 -1
  269. package/lib/esm/test/TestUtils.js.map +1 -1
  270. package/lib/esm/test/annotations/Fields.test.js +82 -90
  271. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  272. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  273. package/lib/esm/test/annotations/TextAnnotation.test.js +156 -99
  274. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  275. package/lib/esm/test/annotations/TextBlock.test.js +5 -3
  276. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  277. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  278. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  279. package/lib/esm/test/categories/Category.test.js +63 -3
  280. package/lib/esm/test/categories/Category.test.js.map +1 -1
  281. package/lib/esm/test/codespec/CodeSpec.test.js +88 -5
  282. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  283. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  284. package/lib/esm/test/ecdb/ECSqlAst.test.js +3 -2
  285. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  286. package/lib/esm/test/ecdb/ECSqlQuery.test.js +2 -2
  287. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  288. package/lib/esm/test/ecdb/ECSqlStatement.test.js +0 -1
  289. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  290. package/lib/esm/test/ecdb/QueryReaders.test.js +17 -14
  291. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  292. package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -2
  293. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  294. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -1
  295. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +30 -28
  296. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  297. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  298. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  299. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  300. package/lib/esm/test/element/DeleteDefinitionElements.test.js +159 -143
  301. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  302. package/lib/esm/test/element/ElementAspect.test.js +68 -60
  303. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  304. package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -1
  305. package/lib/esm/test/element/ElementDependencyGraph.test.js +51 -43
  306. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  307. package/lib/esm/test/element/ElementRoundTrip.test.js +37 -38
  308. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  309. package/lib/esm/test/element/ExcludedElements.test.js +2 -2
  310. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  311. package/lib/esm/test/element/ExternalSource.test.js +40 -38
  312. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  313. package/lib/esm/test/element/NullStructArray.test.js +10 -9
  314. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  315. package/lib/esm/test/element/ProjectInformationRecord.test.js +5 -2
  316. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  317. package/lib/esm/test/element/SheetInformationAspect.test.js +43 -11
  318. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  319. package/lib/esm/test/element/UrlLink.test.js +2 -2
  320. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  321. package/lib/esm/test/font/IModelDbFonts.test.js +87 -73
  322. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  323. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +164 -125
  324. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  325. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +2 -4
  326. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  327. package/lib/esm/test/hubaccess/Rebase.test.js +313 -247
  328. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  329. package/lib/esm/test/hubaccess/SemanticRebase.test.js +322 -247
  330. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  331. package/lib/esm/test/imodel/Code.test.js +31 -31
  332. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  333. package/lib/esm/test/imodel/ElementTreeWalker.test.js +57 -48
  334. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  335. package/lib/esm/test/imodel/IModel.test.js +419 -344
  336. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  337. package/lib/esm/test/imodel/ProjectExtents.test.js +2 -2
  338. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  339. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  340. package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -1
  341. package/lib/esm/test/incrementalSchemaLocater/TestContext.js +2 -2
  342. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  343. package/lib/esm/test/index.d.ts +1 -0
  344. package/lib/esm/test/index.d.ts.map +1 -1
  345. package/lib/esm/test/index.js +1 -0
  346. package/lib/esm/test/index.js.map +1 -1
  347. package/lib/esm/test/schema/ClassRegistry.test.js +23 -22
  348. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  349. package/lib/esm/test/schema/FunctionalDomain.test.js +36 -34
  350. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  351. package/lib/esm/test/schema/GenericDomain.test.js +114 -94
  352. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  353. package/lib/esm/test/schema/IModelSchemaContext.test.js +2 -1
  354. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  355. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +207 -192
  356. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  357. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +1 -3
  358. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -1
  359. package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -247
  360. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  361. package/lib/esm/test/standalone/ChangeMerge.test.js +101 -82
  362. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  363. package/lib/esm/test/standalone/ChangesetReader.test.js +114 -85
  364. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  365. package/lib/esm/test/standalone/DisplayStyle.test.js +43 -40
  366. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  367. package/lib/esm/test/standalone/Drawing.test.js +4 -3
  368. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  369. package/lib/esm/test/standalone/EditTxn.test.d.ts +2 -0
  370. package/lib/esm/test/standalone/EditTxn.test.d.ts.map +1 -0
  371. package/lib/esm/test/standalone/EditTxn.test.js +219 -0
  372. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -0
  373. package/lib/esm/test/standalone/ElementMesh.test.js +16 -13
  374. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  375. package/lib/esm/test/standalone/ExportGraphics.test.js +26 -20
  376. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  377. package/lib/esm/test/standalone/GeometryChangeEvents.test.js +11 -15
  378. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  379. package/lib/esm/test/standalone/GeometryStream.test.js +212 -165
  380. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  381. package/lib/esm/test/standalone/HubMock.test.js +31 -25
  382. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  383. package/lib/esm/test/standalone/IModelLimits.test.js +11 -8
  384. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  385. package/lib/esm/test/standalone/IModelWrite.test.d.ts +2 -2
  386. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  387. package/lib/esm/test/standalone/IModelWrite.test.js +184 -142
  388. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  389. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +25 -22
  390. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  391. package/lib/esm/test/standalone/IntegrityCheck.test.js +20 -18
  392. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  393. package/lib/esm/test/standalone/MergeConflict.test.d.ts +2 -2
  394. package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -1
  395. package/lib/esm/test/standalone/MergeConflict.test.js +49 -33
  396. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  397. package/lib/esm/test/standalone/RenderMaterialElement.test.js +5 -5
  398. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  399. package/lib/esm/test/standalone/RenderTimeline.test.js +3 -2
  400. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  401. package/lib/esm/test/standalone/SectionDrawing.test.js +7 -7
  402. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  403. package/lib/esm/test/standalone/ServerBasedLocks.test.js +21 -19
  404. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  405. package/lib/esm/test/standalone/Settings.test.js +7 -4
  406. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  407. package/lib/esm/test/standalone/SettingsSchemas.test.js +2 -1
  408. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  409. package/lib/esm/test/standalone/SnapshotDb.test.js +3 -1
  410. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  411. package/lib/esm/test/standalone/StandaloneDb.test.js +7 -6
  412. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  413. package/lib/esm/test/standalone/Texture.test.js +5 -4
  414. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  415. package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -1
  416. package/lib/esm/test/standalone/TileCache.test.js +5 -3
  417. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  418. package/lib/esm/test/standalone/TileTree.test.js +35 -31
  419. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  420. package/lib/esm/test/standalone/TxnManager.test.js +700 -653
  421. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  422. package/lib/esm/test/standalone/ViewDefinition.test.js +295 -229
  423. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  424. package/lib/esm/test/standalone/Workspace.test.js +25 -23
  425. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  426. package/package.json +12 -12
@@ -1,21 +1,24 @@
1
- import { BeEvent, DbResult, IModelStatus, StopWatch } from "@itwin/core-bentley";
1
+ import { BeEvent, DbResult, Guid, IModelStatus, StopWatch } from "@itwin/core-bentley";
2
2
  import { Code, GeometryStreamBuilder, IModel, IModelError, RelatedElement } from "@itwin/core-common";
3
3
  import { LineSegment3d, Point3d, YawPitchRollAngles } from "@itwin/core-geometry";
4
4
  import * as chai from "chai";
5
5
  import * as chaiAsPromised from "chai-as-promised";
6
6
  import { SpatialCategory } from "../Category";
7
- import { ChannelControl } from "../ChannelControl";
8
7
  import { ClassRegistry } from "../ClassRegistry";
9
8
  import { GeometricElement3d, PhysicalPartition } from "../Element";
10
- import { IModelDb } from "../IModelDb";
11
- import { HubMock } from "../internal/HubMock";
9
+ import { IModelDb, StandaloneDb } from "../IModelDb";
12
10
  import { PhysicalModel } from "../Model";
13
11
  import { SubjectOwnsPartitionElements } from "../NavigationRelationship";
14
12
  import { ElementDrivesElement } from "../Relationship";
15
13
  import { Schema, Schemas } from "../Schema";
16
- import { HubWrappers } from "./IModelTestUtils";
17
- import { KnownTestLocations } from "./KnownTestLocations";
14
+ import { EditTxn } from "../EditTxn";
15
+ import { IModelTestUtils } from "./IModelTestUtils";
18
16
  chai.use(chaiAsPromised);
17
+ function startTestTxn(iModelDb) {
18
+ const txn = new EditTxn(iModelDb, "element drives element test");
19
+ txn.start();
20
+ return txn;
21
+ }
19
22
  /**
20
23
  1. What is Change Propagation?**
21
24
  In engineering, models often consist of many interdependent components (e.g., parts, assemblies, constraints). When you modify one component (say, changing a dimension), that change can affect other components.
@@ -237,10 +240,10 @@ class ElementDrivesElementEventMonitor {
237
240
  onDeletedDependency = [];
238
241
  constructor(iModelDb) {
239
242
  this.iModelDb = iModelDb;
240
- InputDrivesOutput.events.onDeletedDependency.addListener((props) => this.onDeletedDependency.push([this.iModelDb.elements.tryGetElement(props.sourceId)?.userLabel, this.iModelDb.elements.tryGetElement(props.targetId)?.userLabel]));
241
- InputDrivesOutput.events.onRootChanged.addListener((props) => this.onRootChanged.push([this.iModelDb.elements.tryGetElement(props.sourceId)?.userLabel, this.iModelDb.elements.tryGetElement(props.targetId)?.userLabel]));
242
- NodeElement.events.onAllInputsHandled.addListener((id) => this.onAllInputsHandled.push(this.iModelDb.elements.tryGetElement(id)?.userLabel));
243
- NodeElement.events.onBeforeOutputsHandled.addListener((id) => this.onBeforeOutputsHandled.push(this.iModelDb.elements.tryGetElement(id)?.userLabel));
243
+ InputDrivesOutput.events.onDeletedDependency.addListener((arg) => this.onDeletedDependency.push([this.iModelDb.elements.tryGetElement(arg.props.sourceId)?.userLabel, this.iModelDb.elements.tryGetElement(arg.props.targetId)?.userLabel]));
244
+ InputDrivesOutput.events.onRootChanged.addListener((arg) => this.onRootChanged.push([this.iModelDb.elements.tryGetElement(arg.props.sourceId)?.userLabel, this.iModelDb.elements.tryGetElement(arg.props.targetId)?.userLabel]));
245
+ NodeElement.events.onAllInputsHandled.addListener((arg) => this.onAllInputsHandled.push(this.iModelDb.elements.tryGetElement(arg.elId)?.userLabel));
246
+ NodeElement.events.onBeforeOutputsHandled.addListener((arg) => this.onBeforeOutputsHandled.push(this.iModelDb.elements.tryGetElement(arg.elId)?.userLabel));
244
247
  }
245
248
  clear() {
246
249
  this.onRootChanged.length = 0;
@@ -258,11 +261,11 @@ export class InputDrivesOutput extends ElementDrivesElement {
258
261
  constructor(props, iModel) {
259
262
  super(props, iModel);
260
263
  }
261
- static onRootChanged(props, iModel) {
262
- this.events.onRootChanged.raiseEvent(props, iModel);
264
+ static onRootChangedArg(arg) {
265
+ this.events.onRootChanged.raiseEvent(arg);
263
266
  }
264
- static onDeletedDependency(props, iModel) {
265
- this.events.onDeletedDependency.raiseEvent(props, iModel);
267
+ static onDeletedDependencyArg(arg) {
268
+ this.events.onDeletedDependency.raiseEvent(arg);
266
269
  }
267
270
  }
268
271
  export class NodeElement extends GeometricElement3d {
@@ -284,11 +287,11 @@ export class NodeElement extends GeometricElement3d {
284
287
  val.val = this.val;
285
288
  return val;
286
289
  }
287
- static onAllInputsHandled(id, iModel) {
288
- this.events.onAllInputsHandled.raiseEvent(id, iModel);
290
+ static onAllInputsHandledArg(arg) {
291
+ this.events.onAllInputsHandled.raiseEvent(arg);
289
292
  }
290
- static onBeforeOutputsHandled(id, iModel) {
291
- this.events.onBeforeOutputsHandled.raiseEvent(id, iModel);
293
+ static onBeforeOutputsHandledArg(arg) {
294
+ this.events.onBeforeOutputsHandled.raiseEvent(arg);
292
295
  }
293
296
  static generateGeometry(radius) {
294
297
  const builder = new GeometryStreamBuilder();
@@ -340,17 +343,17 @@ export class NetworkSchema extends Schema {
340
343
  }
341
344
  }
342
345
  export class Engine {
343
- static async createGraph(iModelDb, modelId, graph) {
346
+ static async createGraph(txn, modelId, graph) {
344
347
  const nodes = new Map();
345
348
  const outGraph = new Graph();
346
349
  for (const node of graph.nodes()) {
347
- const id = await this.insertNode(iModelDb, modelId, node, "", 0, new Point3d(0, 0, 0));
350
+ const id = await this.insertNode(txn, modelId, node, "", 0, new Point3d(0, 0, 0));
348
351
  nodes.set(node, { id, name: node });
349
352
  }
350
353
  for (const edge of graph.edges()) {
351
354
  const fromId = nodes.get(edge.from).id;
352
355
  const toId = nodes.get(edge.to).id;
353
- await this.insertEdge(iModelDb, fromId, toId, 0);
356
+ await this.insertEdge(txn, fromId, toId, 0);
354
357
  outGraph.addEdge(nodes.get(edge.from), nodes.get(edge.to));
355
358
  }
356
359
  return outGraph;
@@ -411,7 +414,8 @@ export class Engine {
411
414
  });
412
415
  return edges;
413
416
  }
414
- static async createPartition(iModelDb) {
417
+ static async createPartition(txn) {
418
+ const iModelDb = txn.iModel;
415
419
  const parentId = new SubjectOwnsPartitionElements(IModel.rootSubjectId);
416
420
  const modelId = IModel.repositoryModelId;
417
421
  const modeledElementProps = {
@@ -423,30 +427,33 @@ export class Engine {
423
427
  };
424
428
  const modeledElement = iModelDb.elements.createElement(modeledElementProps);
425
429
  await iModelDb.locks.acquireLocks({ shared: modelId });
426
- return iModelDb.elements.insertElement(modeledElement.toJSON());
430
+ return txn.insertElement(modeledElement.toJSON());
427
431
  }
428
- static async createModel(iModelDb) {
429
- const partitionId = await this.createPartition(iModelDb);
432
+ static async createModel(txn) {
433
+ const iModelDb = txn.iModel;
434
+ const partitionId = await this.createPartition(txn);
430
435
  const modeledElementRef = new RelatedElement({ id: partitionId });
431
436
  const newModel = iModelDb.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName });
432
- const newModelId = newModel.insert();
437
+ const newModelId = txn.insertModel(newModel.toJSON());
433
438
  return newModelId;
434
439
  }
435
- static async createNodeCategory(iModelDb) {
440
+ static async createNodeCategory(txn) {
441
+ const iModelDb = txn.iModel;
436
442
  const category = SpatialCategory.create(iModelDb, IModelDb.dictionaryId, NodeElement.classFullName);
437
- return category.insert();
443
+ return txn.insertElement(category.toJSON());
438
444
  }
439
- static async initialize(iModelDb) {
440
- await NetworkSchema.importSchema(iModelDb);
445
+ static async initialize(txn) {
446
+ await NetworkSchema.importSchema(txn.iModel);
441
447
  NetworkSchema.registerSchema();
442
- const modelId = await this.createModel(iModelDb);
443
- const categoryId = await this.createNodeCategory(iModelDb);
448
+ const modelId = await this.createModel(txn);
449
+ const categoryId = await this.createNodeCategory(txn);
444
450
  return {
445
451
  modelId,
446
452
  categoryId,
447
453
  };
448
454
  }
449
- static async insertNode(iModelDb, modelId, name, op, val, location, radius = 0.1) {
455
+ static async insertNode(txn, modelId, name, op, val, location, radius = 0.1) {
456
+ const iModelDb = txn.iModel;
450
457
  const props = {
451
458
  classFullName: NodeElement.classFullName,
452
459
  model: modelId,
@@ -459,17 +466,20 @@ export class Engine {
459
466
  val,
460
467
  };
461
468
  await iModelDb.locks.acquireLocks({ shared: modelId });
462
- return iModelDb.elements.insertElement(props);
469
+ return txn.insertElement(props);
463
470
  }
464
- static async deleteNode(iModelDb, nodeId) {
471
+ static async deleteNode(txn, nodeId) {
472
+ const iModelDb = txn.iModel;
465
473
  await iModelDb.locks.acquireLocks({ exclusive: nodeId });
466
- return iModelDb.elements.deleteElement(nodeId);
474
+ return txn.deleteElement(nodeId);
467
475
  }
468
- static async updateNodeProps(iModelDb, props) {
476
+ static async updateNodeProps(txn, props) {
477
+ const iModelDb = txn.iModel;
469
478
  await iModelDb.locks.acquireLocks({ exclusive: props.id });
470
- return iModelDb.elements.updateElement(props);
479
+ return txn.updateElement(props);
471
480
  }
472
- static async updateNode(iModelDb, userLabel) {
481
+ static async updateNode(txn, userLabel) {
482
+ const iModelDb = txn.iModel;
473
483
  // eslint-disable-next-line @typescript-eslint/no-deprecated
474
484
  const id = iModelDb.withPreparedStatement("SELECT [ECInstanceId] FROM [Network].[Node] WHERE [UserLabel] = ?", (stmt) => {
475
485
  stmt.bindString(1, userLabel);
@@ -480,9 +490,10 @@ export class Engine {
480
490
  if (!id) {
481
491
  throw new Error(`Node with userLabel ${userLabel} not found`);
482
492
  }
483
- await this.updateNodeProps(iModelDb, { id });
493
+ await this.updateNodeProps(txn, { id });
484
494
  }
485
- static async deleteEdge(iModelDb, from, to) {
495
+ static async deleteEdge(txn, from, to) {
496
+ const iModelDb = txn.iModel;
486
497
  // eslint-disable-next-line @typescript-eslint/no-deprecated
487
498
  const edge = iModelDb.withPreparedStatement(`
488
499
  SELECT [IDo].[ECInstanceId], [IDo].[SourceECInstanceId], [IDo].[TargetECInstanceId]
@@ -504,9 +515,9 @@ export class Engine {
504
515
  if (!edge) {
505
516
  throw new Error(`Edge from ${from} to ${to} not found`);
506
517
  }
507
- iModelDb.relationships.deleteInstance(edge);
518
+ txn.deleteRelationship(edge);
508
519
  }
509
- static async insertEdge(iModelDb, sourceId, targetId, prop) {
520
+ static async insertEdge(txn, sourceId, targetId, prop) {
510
521
  const props = {
511
522
  classFullName: InputDrivesOutput.classFullName,
512
523
  sourceId,
@@ -515,32 +526,31 @@ export class Engine {
515
526
  status: 0,
516
527
  priority: 0
517
528
  };
518
- return iModelDb.relationships.insertInstance(props);
529
+ return txn.insertRelationship(props);
519
530
  }
520
531
  }
521
532
  describe("ElementDrivesElement Tests", () => {
522
- const briefcases = [];
523
- let iModelId;
524
- async function openBriefcase() {
525
- const iModelDb = await HubWrappers.downloadAndOpenBriefcase({ iTwinId: HubMock.iTwinId, iModelId });
526
- iModelDb.channels.addAllowedChannel(ChannelControl.sharedChannelName);
527
- iModelDb.saveChanges();
528
- briefcases.push(iModelDb);
533
+ const iModels = [];
534
+ let testTxn;
535
+ async function openIModel() {
536
+ const iModelDb = StandaloneDb.createEmpty(IModelTestUtils.prepareOutputFile("ElementDrivesElement", `${Guid.createValue()}.bim`), { rootSubject: { name: "ElementDrivesElementTest" }, enableTransactions: true });
537
+ const txn = new EditTxn(iModelDb, "open iModel initialization");
538
+ txn.start();
539
+ txn.end();
540
+ iModels.push(iModelDb);
529
541
  return iModelDb;
530
542
  }
531
- beforeEach(async () => {
532
- HubMock.startup("TestIModel", KnownTestLocations.outputDir);
533
- iModelId = await HubMock.createNewIModel({ iTwinId: HubMock.iTwinId, iModelName: "Test", description: "TestSubject" });
534
- });
535
543
  afterEach(async () => {
536
544
  NodeElement.events.onAllInputsHandled.clear();
537
545
  NodeElement.events.onBeforeOutputsHandled.clear();
538
546
  InputDrivesOutput.events.onRootChanged.clear();
539
547
  InputDrivesOutput.events.onDeletedDependency.clear();
540
- for (const briefcase of briefcases) {
541
- briefcase.close();
542
- }
543
- HubMock.shutdown();
548
+ if (testTxn?.isActive)
549
+ testTxn.end("abandon");
550
+ testTxn = undefined;
551
+ for (const iModel of iModels)
552
+ iModel.close();
553
+ iModels.length = 0;
544
554
  });
545
555
  it("local: topological sort", async () => {
546
556
  const graph = new Graph();
@@ -607,12 +617,12 @@ describe("ElementDrivesElement Tests", () => {
607
617
  graph.addEdge("util.o", ["app.exe", "test.exe"]);
608
618
  graph.addEdge("config.json", ["app.exe", "test.exe"]);
609
619
  // create graph
610
- const b1 = await openBriefcase();
611
- const { modelId, } = await Engine.initialize(b1);
620
+ const b1 = await openIModel();
621
+ const txn = testTxn = startTestTxn(b1);
622
+ const { modelId, } = await Engine.initialize(txn);
612
623
  const monitor = new ElementDrivesElementEventMonitor(b1);
613
- await Engine.createGraph(b1, modelId, graph);
614
- b1.saveChanges();
615
- b1.saveChanges();
624
+ await Engine.createGraph(txn, modelId, graph);
625
+ txn.saveChanges();
616
626
  chai.expect(monitor.onRootChanged).to.deep.equal([
617
627
  ["main.c", "main.o"],
618
628
  ["main.o", "test.exe"],
@@ -629,8 +639,8 @@ describe("ElementDrivesElement Tests", () => {
629
639
  chai.expect(monitor.onDeletedDependency).to.deep.equal([]);
630
640
  // update main.c
631
641
  monitor.clear();
632
- await Engine.updateNode(b1, "main.c");
633
- b1.saveChanges();
642
+ await Engine.updateNode(txn, "main.c");
643
+ txn.saveChanges();
634
644
  chai.expect(monitor.onRootChanged).to.deep.equal([
635
645
  ["main.c", "main.o"],
636
646
  ["main.o", "test.exe"],
@@ -668,11 +678,12 @@ describe("ElementDrivesElement Tests", () => {
668
678
  graph.addEdge("Belt", ["Jacket"]);
669
679
  graph.addNode("Watch");
670
680
  // Test using EDE
671
- const b1 = await openBriefcase();
672
- const { modelId, } = await Engine.initialize(b1);
681
+ const b1 = await openIModel();
682
+ const txn = testTxn = startTestTxn(b1);
683
+ const { modelId, } = await Engine.initialize(txn);
673
684
  const monitor = new ElementDrivesElementEventMonitor(b1);
674
- await Engine.createGraph(b1, modelId, graph);
675
- b1.saveChanges();
685
+ await Engine.createGraph(txn, modelId, graph);
686
+ txn.saveChanges();
676
687
  chai.expect(monitor.onRootChanged).to.deep.equal([
677
688
  ["Socks", "Shoes"],
678
689
  ["Underwear", "Shoes"],
@@ -689,8 +700,8 @@ describe("ElementDrivesElement Tests", () => {
689
700
  chai.expect(monitor.onBeforeOutputsHandled).to.deep.equal(["Socks", "Underwear", "Shirt"]);
690
701
  chai.expect(monitor.onDeletedDependency).to.deep.equal([]);
691
702
  monitor.clear();
692
- await Engine.updateNode(b1, "Socks");
693
- b1.saveChanges();
703
+ await Engine.updateNode(txn, "Socks");
704
+ txn.saveChanges();
694
705
  chai.expect(monitor.onRootChanged).to.deep.equal([["Socks", "Shoes"]]);
695
706
  chai.expect(monitor.onAllInputsHandled).to.deep.equal(["Shoes"]);
696
707
  chai.expect(monitor.onBeforeOutputsHandled).to.deep.equal(["Socks"]);
@@ -717,8 +728,9 @@ describe("ElementDrivesElement Tests", () => {
717
728
  chai.expect(sorted8).to.deep.equal(["Watch"]);
718
729
  });
719
730
  it("EDE: basic graph operations", async () => {
720
- const b1 = await openBriefcase();
721
- const { modelId, } = await Engine.initialize(b1);
731
+ const b1 = await openIModel();
732
+ const txn = testTxn = startTestTxn(b1);
733
+ const { modelId, } = await Engine.initialize(txn);
722
734
  const graph = new Graph();
723
735
  // Graph structure:
724
736
  // A
@@ -726,15 +738,15 @@ describe("ElementDrivesElement Tests", () => {
726
738
  // B C
727
739
  // |\ /
728
740
  // | \/
729
- // E--D
741
+ // E--D
730
742
  graph.addEdge("A", ["B", "C"]);
731
743
  graph.addEdge("B", ["E", "D"]);
732
744
  graph.addEdge("C", ["D"]);
733
745
  graph.addEdge("D", ["E"]);
734
746
  const monitor = new ElementDrivesElementEventMonitor(b1);
735
747
  // create a network
736
- await Engine.createGraph(b1, modelId, graph);
737
- b1.saveChanges();
748
+ await Engine.createGraph(txn, modelId, graph);
749
+ txn.saveChanges();
738
750
  chai.expect(monitor.onRootChanged).to.deep.equal([
739
751
  ["A", "B"],
740
752
  ["A", "C"],
@@ -748,8 +760,8 @@ describe("ElementDrivesElement Tests", () => {
748
760
  chai.expect(monitor.onDeletedDependency).to.deep.equal([]);
749
761
  monitor.clear();
750
762
  // update a node in network
751
- await Engine.updateNode(b1, "B");
752
- b1.saveChanges();
763
+ await Engine.updateNode(txn, "B");
764
+ txn.saveChanges();
753
765
  chai.expect(monitor.onRootChanged).to.deep.equal([
754
766
  ["B", "E"],
755
767
  ["B", "D"],
@@ -760,16 +772,17 @@ describe("ElementDrivesElement Tests", () => {
760
772
  chai.expect(monitor.onDeletedDependency).to.deep.equal([]);
761
773
  monitor.clear();
762
774
  // delete edge in network
763
- await Engine.deleteEdge(b1, "B", "E");
764
- b1.saveChanges();
775
+ await Engine.deleteEdge(txn, "B", "E");
776
+ txn.saveChanges();
765
777
  chai.expect(monitor.onRootChanged).to.deep.equal([]);
766
778
  chai.expect(monitor.onAllInputsHandled).to.deep.equal([]);
767
779
  chai.expect(monitor.onBeforeOutputsHandled).to.deep.equal([]);
768
780
  chai.expect(monitor.onDeletedDependency).to.deep.equal([["B", "E"]]);
769
781
  });
770
782
  it("EDE: cyclical throw exception", async () => {
771
- const b1 = await openBriefcase();
772
- const { modelId, } = await Engine.initialize(b1);
783
+ const b1 = await openIModel();
784
+ const txn = testTxn = startTestTxn(b1);
785
+ const { modelId, } = await Engine.initialize(txn);
773
786
  const graph = new Graph();
774
787
  // Graph structure with a cycle:
775
788
  // A
@@ -780,9 +793,9 @@ describe("ElementDrivesElement Tests", () => {
780
793
  graph.addEdge("C", ["A"]);
781
794
  const monitor = new ElementDrivesElementEventMonitor(b1);
782
795
  // create a network
783
- await Engine.createGraph(b1, modelId, graph);
784
- chai.expect(() => b1.saveChanges()).to.throw("Could not save changes due to propagation failure.");
785
- b1.abandonChanges();
796
+ await Engine.createGraph(txn, modelId, graph);
797
+ chai.expect(() => txn.saveChanges()).to.throw("Could not save changes due to propagation failure.");
798
+ txn.end("abandon");
786
799
  chai.expect(monitor.onRootChanged).to.deep.equal([["B", "C"], ["C", "A"], ["A", "B"]]);
787
800
  chai.expect(monitor.onAllInputsHandled).to.deep.equal(["C", "A", "B"]);
788
801
  chai.expect(monitor.onBeforeOutputsHandled).to.deep.equal([]);
@@ -790,8 +803,9 @@ describe("ElementDrivesElement Tests", () => {
790
803
  monitor.clear();
791
804
  });
792
805
  it("EDE: cyclical graph can start propagation with no clear starting element", async () => {
793
- const b1 = await openBriefcase();
794
- const { modelId, } = await Engine.initialize(b1);
806
+ const b1 = await openIModel();
807
+ const txn = testTxn = startTestTxn(b1);
808
+ const { modelId, } = await Engine.initialize(txn);
795
809
  const graph = new Graph();
796
810
  // Graph structure with a cycle:
797
811
  // A
@@ -806,9 +820,9 @@ describe("ElementDrivesElement Tests", () => {
806
820
  graph.addEdge("C", ["A"]);
807
821
  const monitor = new ElementDrivesElementEventMonitor(b1);
808
822
  // create a network
809
- await Engine.createGraph(b1, modelId, graph);
810
- chai.expect(() => b1.saveChanges()).to.throw("Could not save changes due to propagation failure.");
811
- b1.abandonChanges();
823
+ await Engine.createGraph(txn, modelId, graph);
824
+ chai.expect(() => txn.saveChanges()).to.throw("Could not save changes due to propagation failure.");
825
+ txn.end("abandon");
812
826
  chai.expect(monitor.onRootChanged).to.deep.equal([["C", "A"], ["A", "B"], ["B", "C"]]);
813
827
  chai.expect(monitor.onAllInputsHandled).to.deep.equal(["A", "B", "C"]);
814
828
  chai.expect(monitor.onBeforeOutputsHandled).to.deep.equal([]);
@@ -816,8 +830,9 @@ describe("ElementDrivesElement Tests", () => {
816
830
  monitor.clear();
817
831
  });
818
832
  it.skip("EDE: performance", async () => {
819
- const b1 = await openBriefcase();
820
- const { modelId, } = await Engine.initialize(b1);
833
+ const b1 = await openIModel();
834
+ const txn = testTxn = startTestTxn(b1);
835
+ const { modelId, } = await Engine.initialize(txn);
821
836
  const graph = new Graph();
822
837
  const createTree = (depth, breadth, prefix) => {
823
838
  if (depth === 0)
@@ -836,7 +851,7 @@ describe("ElementDrivesElement Tests", () => {
836
851
  };
837
852
  const stopWatch0 = new StopWatch("create graph", true);
838
853
  createTree(5, 3, "N");
839
- await Engine.createGraph(b1, modelId, graph);
854
+ await Engine.createGraph(txn, modelId, graph);
840
855
  stopWatch0.stop();
841
856
  const createGraphTime = stopWatch0.elapsed.seconds;
842
857
  let onRootChangedCount = 0;
@@ -845,10 +860,10 @@ describe("ElementDrivesElement Tests", () => {
845
860
  let onBeforeOutputsHandledCount = 0;
846
861
  InputDrivesOutput.events.onRootChanged.addListener(() => { onRootChangedCount++; });
847
862
  InputDrivesOutput.events.onDeletedDependency.addListener(() => { onDeletedDependencyCount++; });
848
- NodeElement.events.onAllInputsHandled.addListener((_id) => { onAllInputsHandledCount++; });
863
+ NodeElement.events.onAllInputsHandled.addListener(() => { onAllInputsHandledCount++; });
849
864
  NodeElement.events.onBeforeOutputsHandled.addListener(() => { onBeforeOutputsHandledCount++; });
850
865
  const stopWatch1 = new StopWatch("save changes", true);
851
- b1.saveChanges();
866
+ txn.saveChanges();
852
867
  stopWatch1.stop();
853
868
  const saveChangesTime = stopWatch1.elapsed.seconds;
854
869
  chai.expect(onRootChangedCount).to.be.equals(7380);