@itwin/core-backend 5.8.2 → 5.9.0-dev.10

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 (751) hide show
  1. package/CHANGELOG.md +1 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +38 -0
  3. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  4. package/lib/cjs/BackendHubAccess.js.map +1 -1
  5. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  6. package/lib/cjs/BisCoreSchema.js.map +1 -1
  7. package/lib/cjs/BlobContainerService.js.map +1 -1
  8. package/lib/cjs/BriefcaseManager.js +3 -3
  9. package/lib/cjs/BriefcaseManager.js.map +1 -1
  10. package/lib/cjs/CatalogDb.js.map +1 -1
  11. package/lib/cjs/Category.d.ts +37 -7
  12. package/lib/cjs/Category.d.ts.map +1 -1
  13. package/lib/cjs/Category.js +33 -42
  14. package/lib/cjs/Category.js.map +1 -1
  15. package/lib/cjs/ChangeSummaryManager.js +2 -2
  16. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  17. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  18. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  19. package/lib/cjs/ChangesetECAdaptor.js +253 -250
  20. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  21. package/lib/cjs/ChannelControl.d.ts +29 -0
  22. package/lib/cjs/ChannelControl.d.ts.map +1 -1
  23. package/lib/cjs/ChannelControl.js.map +1 -1
  24. package/lib/cjs/CheckpointManager.js +1 -1
  25. package/lib/cjs/CheckpointManager.js.map +1 -1
  26. package/lib/cjs/ClassRegistry.js +5 -5
  27. package/lib/cjs/ClassRegistry.js.map +1 -1
  28. package/lib/cjs/CloudSqlite.d.ts +1 -1
  29. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  30. package/lib/cjs/CloudSqlite.js +68 -13
  31. package/lib/cjs/CloudSqlite.js.map +1 -1
  32. package/lib/cjs/CodeService.js.map +1 -1
  33. package/lib/cjs/CodeSpecs.d.ts +32 -3
  34. package/lib/cjs/CodeSpecs.d.ts.map +1 -1
  35. package/lib/cjs/CodeSpecs.js +48 -20
  36. package/lib/cjs/CodeSpecs.js.map +1 -1
  37. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  38. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  39. package/lib/cjs/DevTools.js.map +1 -1
  40. package/lib/cjs/DisplayStyle.d.ts +18 -3
  41. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  42. package/lib/cjs/DisplayStyle.js +10 -21
  43. package/lib/cjs/DisplayStyle.js.map +1 -1
  44. package/lib/cjs/ECDb.js.map +1 -1
  45. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  46. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  47. package/lib/cjs/ECSqlStatement.js.map +1 -1
  48. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  49. package/lib/cjs/EditTxn.d.ts +262 -0
  50. package/lib/cjs/EditTxn.d.ts.map +1 -0
  51. package/lib/cjs/EditTxn.js +548 -0
  52. package/lib/cjs/EditTxn.js.map +1 -0
  53. package/lib/cjs/Element.d.ts +74 -5
  54. package/lib/cjs/Element.d.ts.map +1 -1
  55. package/lib/cjs/Element.js +63 -75
  56. package/lib/cjs/Element.js.map +1 -1
  57. package/lib/cjs/ElementAspect.d.ts +10 -0
  58. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  59. package/lib/cjs/ElementAspect.js +21 -12
  60. package/lib/cjs/ElementAspect.js.map +1 -1
  61. package/lib/cjs/ElementGraphics.js.map +1 -1
  62. package/lib/cjs/ElementTreeWalker.d.ts +56 -3
  63. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  64. package/lib/cjs/ElementTreeWalker.js +53 -40
  65. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  66. package/lib/cjs/Entity.js.map +1 -1
  67. package/lib/cjs/EntityReferences.js.map +1 -1
  68. package/lib/cjs/ExportGraphics.js.map +1 -1
  69. package/lib/cjs/ExternalSource.d.ts +11 -2
  70. package/lib/cjs/ExternalSource.d.ts.map +1 -1
  71. package/lib/cjs/ExternalSource.js +10 -8
  72. package/lib/cjs/ExternalSource.js.map +1 -1
  73. package/lib/cjs/FontFile.js.map +1 -1
  74. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  75. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  76. package/lib/cjs/GeometrySummary.js +47 -47
  77. package/lib/cjs/GeometrySummary.js.map +1 -1
  78. package/lib/cjs/IModelDb.d.ts +66 -22
  79. package/lib/cjs/IModelDb.d.ts.map +1 -1
  80. package/lib/cjs/IModelDb.js +183 -297
  81. package/lib/cjs/IModelDb.js.map +1 -1
  82. package/lib/cjs/IModelDbFonts.js.map +1 -1
  83. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  84. package/lib/cjs/IModelHost.d.ts +58 -1
  85. package/lib/cjs/IModelHost.d.ts.map +1 -1
  86. package/lib/cjs/IModelHost.js +89 -0
  87. package/lib/cjs/IModelHost.js.map +1 -1
  88. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  89. package/lib/cjs/IModelJsFs.js.map +1 -1
  90. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  91. package/lib/cjs/IpcHost.d.ts.map +1 -1
  92. package/lib/cjs/IpcHost.js +15 -6
  93. package/lib/cjs/IpcHost.js.map +1 -1
  94. package/lib/cjs/LineStyle.d.ts +47 -7
  95. package/lib/cjs/LineStyle.d.ts.map +1 -1
  96. package/lib/cjs/LineStyle.js +38 -33
  97. package/lib/cjs/LineStyle.js.map +1 -1
  98. package/lib/cjs/LocalHub.js +1 -1
  99. package/lib/cjs/LocalHub.js.map +1 -1
  100. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  101. package/lib/cjs/LockControl.d.ts +85 -1
  102. package/lib/cjs/LockControl.d.ts.map +1 -1
  103. package/lib/cjs/LockControl.js.map +1 -1
  104. package/lib/cjs/Material.d.ts +8 -1
  105. package/lib/cjs/Material.d.ts.map +1 -1
  106. package/lib/cjs/Material.js +6 -12
  107. package/lib/cjs/Material.js.map +1 -1
  108. package/lib/cjs/Model.d.ts +59 -20
  109. package/lib/cjs/Model.d.ts.map +1 -1
  110. package/lib/cjs/Model.js +38 -80
  111. package/lib/cjs/Model.js.map +1 -1
  112. package/lib/cjs/NativeAppStorage.js.map +1 -1
  113. package/lib/cjs/NativeHost.js.map +1 -1
  114. package/lib/cjs/NavigationRelationship.js.map +1 -1
  115. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  116. package/lib/cjs/PropertyStore.js.map +1 -1
  117. package/lib/cjs/Relationship.d.ts +72 -7
  118. package/lib/cjs/Relationship.d.ts.map +1 -1
  119. package/lib/cjs/Relationship.js +39 -21
  120. package/lib/cjs/Relationship.js.map +1 -1
  121. package/lib/cjs/RpcBackend.js.map +1 -1
  122. package/lib/cjs/SQLiteDb.js.map +1 -1
  123. package/lib/cjs/Schema.js.map +1 -1
  124. package/lib/cjs/SchemaSync.js +4 -4
  125. package/lib/cjs/SchemaSync.js.map +1 -1
  126. package/lib/cjs/SchemaUtils.js.map +1 -1
  127. package/lib/cjs/SheetIndex.d.ts +9 -0
  128. package/lib/cjs/SheetIndex.d.ts.map +1 -1
  129. package/lib/cjs/SheetIndex.js +38 -35
  130. package/lib/cjs/SheetIndex.js.map +1 -1
  131. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  132. package/lib/cjs/SqliteStatement.js.map +1 -1
  133. package/lib/cjs/StashManager.js +1 -1
  134. package/lib/cjs/StashManager.js.map +1 -1
  135. package/lib/cjs/Texture.d.ts +6 -0
  136. package/lib/cjs/Texture.d.ts.map +1 -1
  137. package/lib/cjs/Texture.js +6 -14
  138. package/lib/cjs/Texture.js.map +1 -1
  139. package/lib/cjs/TileStorage.js.map +1 -1
  140. package/lib/cjs/TxnManager.d.ts +105 -9
  141. package/lib/cjs/TxnManager.d.ts.map +1 -1
  142. package/lib/cjs/TxnManager.js +194 -15
  143. package/lib/cjs/TxnManager.js.map +1 -1
  144. package/lib/cjs/ViewDefinition.d.ts +21 -1
  145. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  146. package/lib/cjs/ViewDefinition.js +27 -66
  147. package/lib/cjs/ViewDefinition.js.map +1 -1
  148. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  149. package/lib/cjs/ViewStore.js.map +1 -1
  150. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
  151. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
  152. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +33 -27
  153. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  154. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  155. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  156. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  157. package/lib/cjs/annotations/TextAnnotationElement.js +6 -5
  158. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  159. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  160. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  161. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  162. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  163. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  164. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  165. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  166. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  167. package/lib/cjs/core-backend.d.ts +1 -0
  168. package/lib/cjs/core-backend.d.ts.map +1 -1
  169. package/lib/cjs/core-backend.js +1 -0
  170. package/lib/cjs/core-backend.js.map +1 -1
  171. package/lib/cjs/domains/FunctionalElements.d.ts +6 -2
  172. package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -1
  173. package/lib/cjs/domains/FunctionalElements.js +8 -13
  174. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  175. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  176. package/lib/cjs/domains/GenericElements.d.ts +11 -4
  177. package/lib/cjs/domains/GenericElements.d.ts.map +1 -1
  178. package/lib/cjs/domains/GenericElements.js +13 -24
  179. package/lib/cjs/domains/GenericElements.js.map +1 -1
  180. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  181. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  182. package/lib/cjs/internal/ChannelAdmin.d.ts +15 -0
  183. package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
  184. package/lib/cjs/internal/ChannelAdmin.js +5 -3
  185. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  186. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  187. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  188. package/lib/cjs/internal/HubMock.d.ts +2 -0
  189. package/lib/cjs/internal/HubMock.d.ts.map +1 -1
  190. package/lib/cjs/internal/HubMock.js +7 -0
  191. package/lib/cjs/internal/HubMock.js.map +1 -1
  192. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  193. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  194. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  195. package/lib/cjs/internal/NoLocks.d.ts.map +1 -1
  196. package/lib/cjs/internal/NoLocks.js +6 -0
  197. package/lib/cjs/internal/NoLocks.js.map +1 -1
  198. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  199. package/lib/cjs/internal/ServerBasedLocks.d.ts +12 -0
  200. package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
  201. package/lib/cjs/internal/ServerBasedLocks.js +285 -4
  202. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  203. package/lib/cjs/internal/Symbols.d.ts +4 -0
  204. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  205. package/lib/cjs/internal/Symbols.js +5 -1
  206. package/lib/cjs/internal/Symbols.js.map +1 -1
  207. package/lib/cjs/internal/annotations/fields.d.ts +3 -2
  208. package/lib/cjs/internal/annotations/fields.d.ts.map +1 -1
  209. package/lib/cjs/internal/annotations/fields.js +7 -6
  210. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  211. package/lib/cjs/internal/cross-package.js.map +1 -1
  212. package/lib/cjs/internal/workspace/SettingsEditorImpl.d.ts +18 -3
  213. package/lib/cjs/internal/workspace/SettingsEditorImpl.d.ts.map +1 -1
  214. package/lib/cjs/internal/workspace/SettingsEditorImpl.js +49 -242
  215. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  216. package/lib/cjs/internal/workspace/SettingsImpl.d.ts.map +1 -1
  217. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  218. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  219. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts +0 -1
  220. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  221. package/lib/cjs/internal/workspace/WorkspaceImpl.js +70 -41
  222. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  223. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  224. package/lib/cjs/rpc/multipart.js.map +1 -1
  225. package/lib/cjs/rpc/tracing.js.map +1 -1
  226. package/lib/cjs/rpc/web/logging.js.map +1 -1
  227. package/lib/cjs/rpc/web/request.js.map +1 -1
  228. package/lib/cjs/rpc/web/response.js.map +1 -1
  229. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  230. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  231. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  232. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  233. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  234. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  235. package/lib/cjs/workspace/Settings.d.ts +11 -5
  236. package/lib/cjs/workspace/Settings.d.ts.map +1 -1
  237. package/lib/cjs/workspace/Settings.js.map +1 -1
  238. package/lib/cjs/workspace/SettingsDb.d.ts +20 -99
  239. package/lib/cjs/workspace/SettingsDb.d.ts.map +1 -1
  240. package/lib/cjs/workspace/SettingsDb.js +23 -7
  241. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  242. package/lib/cjs/workspace/SettingsEditor.d.ts +40 -226
  243. package/lib/cjs/workspace/SettingsEditor.d.ts.map +1 -1
  244. package/lib/cjs/workspace/SettingsEditor.js +86 -25
  245. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  246. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  247. package/lib/cjs/workspace/Workspace.d.ts +7 -11
  248. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  249. package/lib/cjs/workspace/Workspace.js.map +1 -1
  250. package/lib/cjs/workspace/WorkspaceEditor.d.ts +14 -0
  251. package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
  252. package/lib/cjs/workspace/WorkspaceEditor.js +1 -1
  253. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  254. package/lib/esm/BackendHubAccess.d.ts +38 -0
  255. package/lib/esm/BackendHubAccess.d.ts.map +1 -1
  256. package/lib/esm/BackendHubAccess.js.map +1 -1
  257. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  258. package/lib/esm/BisCoreSchema.js.map +1 -1
  259. package/lib/esm/BlobContainerService.js.map +1 -1
  260. package/lib/esm/BriefcaseManager.js +3 -3
  261. package/lib/esm/BriefcaseManager.js.map +1 -1
  262. package/lib/esm/CatalogDb.js.map +1 -1
  263. package/lib/esm/Category.d.ts +37 -7
  264. package/lib/esm/Category.d.ts.map +1 -1
  265. package/lib/esm/Category.js +33 -42
  266. package/lib/esm/Category.js.map +1 -1
  267. package/lib/esm/ChangeSummaryManager.js +2 -2
  268. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  269. package/lib/esm/ChangedElementsDb.js.map +1 -1
  270. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  271. package/lib/esm/ChangesetECAdaptor.js +253 -250
  272. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  273. package/lib/esm/ChannelControl.d.ts +29 -0
  274. package/lib/esm/ChannelControl.d.ts.map +1 -1
  275. package/lib/esm/ChannelControl.js.map +1 -1
  276. package/lib/esm/CheckpointManager.js +1 -1
  277. package/lib/esm/CheckpointManager.js.map +1 -1
  278. package/lib/esm/ClassRegistry.js +5 -5
  279. package/lib/esm/ClassRegistry.js.map +1 -1
  280. package/lib/esm/CloudSqlite.d.ts +1 -1
  281. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  282. package/lib/esm/CloudSqlite.js +69 -14
  283. package/lib/esm/CloudSqlite.js.map +1 -1
  284. package/lib/esm/CodeService.js.map +1 -1
  285. package/lib/esm/CodeSpecs.d.ts +32 -3
  286. package/lib/esm/CodeSpecs.d.ts.map +1 -1
  287. package/lib/esm/CodeSpecs.js +49 -21
  288. package/lib/esm/CodeSpecs.js.map +1 -1
  289. package/lib/esm/ConcurrentQuery.js.map +1 -1
  290. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  291. package/lib/esm/DevTools.js.map +1 -1
  292. package/lib/esm/DisplayStyle.d.ts +18 -3
  293. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  294. package/lib/esm/DisplayStyle.js +10 -21
  295. package/lib/esm/DisplayStyle.js.map +1 -1
  296. package/lib/esm/ECDb.js.map +1 -1
  297. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  298. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  299. package/lib/esm/ECSqlStatement.js.map +1 -1
  300. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  301. package/lib/esm/EditTxn.d.ts +262 -0
  302. package/lib/esm/EditTxn.d.ts.map +1 -0
  303. package/lib/esm/EditTxn.js +543 -0
  304. package/lib/esm/EditTxn.js.map +1 -0
  305. package/lib/esm/Element.d.ts +74 -5
  306. package/lib/esm/Element.d.ts.map +1 -1
  307. package/lib/esm/Element.js +64 -76
  308. package/lib/esm/Element.js.map +1 -1
  309. package/lib/esm/ElementAspect.d.ts +10 -0
  310. package/lib/esm/ElementAspect.d.ts.map +1 -1
  311. package/lib/esm/ElementAspect.js +22 -13
  312. package/lib/esm/ElementAspect.js.map +1 -1
  313. package/lib/esm/ElementGraphics.js.map +1 -1
  314. package/lib/esm/ElementTreeWalker.d.ts +56 -3
  315. package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
  316. package/lib/esm/ElementTreeWalker.js +53 -40
  317. package/lib/esm/ElementTreeWalker.js.map +1 -1
  318. package/lib/esm/Entity.js.map +1 -1
  319. package/lib/esm/EntityReferences.js.map +1 -1
  320. package/lib/esm/ExportGraphics.js.map +1 -1
  321. package/lib/esm/ExternalSource.d.ts +11 -2
  322. package/lib/esm/ExternalSource.d.ts.map +1 -1
  323. package/lib/esm/ExternalSource.js +10 -8
  324. package/lib/esm/ExternalSource.js.map +1 -1
  325. package/lib/esm/FontFile.js.map +1 -1
  326. package/lib/esm/GeoCoordConfig.js.map +1 -1
  327. package/lib/esm/GeographicCRSServices.js.map +1 -1
  328. package/lib/esm/GeometrySummary.js +47 -47
  329. package/lib/esm/GeometrySummary.js.map +1 -1
  330. package/lib/esm/IModelDb.d.ts +66 -22
  331. package/lib/esm/IModelDb.d.ts.map +1 -1
  332. package/lib/esm/IModelDb.js +185 -299
  333. package/lib/esm/IModelDb.js.map +1 -1
  334. package/lib/esm/IModelDbFonts.js.map +1 -1
  335. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  336. package/lib/esm/IModelHost.d.ts +58 -1
  337. package/lib/esm/IModelHost.d.ts.map +1 -1
  338. package/lib/esm/IModelHost.js +91 -2
  339. package/lib/esm/IModelHost.js.map +1 -1
  340. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  341. package/lib/esm/IModelJsFs.js.map +1 -1
  342. package/lib/esm/ImageSourceConversion.js.map +1 -1
  343. package/lib/esm/IpcHost.d.ts.map +1 -1
  344. package/lib/esm/IpcHost.js +16 -7
  345. package/lib/esm/IpcHost.js.map +1 -1
  346. package/lib/esm/LineStyle.d.ts +47 -7
  347. package/lib/esm/LineStyle.d.ts.map +1 -1
  348. package/lib/esm/LineStyle.js +38 -33
  349. package/lib/esm/LineStyle.js.map +1 -1
  350. package/lib/esm/LocalHub.js +1 -1
  351. package/lib/esm/LocalHub.js.map +1 -1
  352. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  353. package/lib/esm/LockControl.d.ts +85 -1
  354. package/lib/esm/LockControl.d.ts.map +1 -1
  355. package/lib/esm/LockControl.js.map +1 -1
  356. package/lib/esm/Material.d.ts +8 -1
  357. package/lib/esm/Material.d.ts.map +1 -1
  358. package/lib/esm/Material.js +6 -12
  359. package/lib/esm/Material.js.map +1 -1
  360. package/lib/esm/Model.d.ts +59 -20
  361. package/lib/esm/Model.d.ts.map +1 -1
  362. package/lib/esm/Model.js +39 -81
  363. package/lib/esm/Model.js.map +1 -1
  364. package/lib/esm/NativeAppStorage.js.map +1 -1
  365. package/lib/esm/NativeHost.js.map +1 -1
  366. package/lib/esm/NavigationRelationship.js.map +1 -1
  367. package/lib/esm/PromiseMemoizer.js.map +1 -1
  368. package/lib/esm/PropertyStore.js.map +1 -1
  369. package/lib/esm/Relationship.d.ts +72 -7
  370. package/lib/esm/Relationship.d.ts.map +1 -1
  371. package/lib/esm/Relationship.js +40 -22
  372. package/lib/esm/Relationship.js.map +1 -1
  373. package/lib/esm/RpcBackend.js.map +1 -1
  374. package/lib/esm/SQLiteDb.js.map +1 -1
  375. package/lib/esm/Schema.js.map +1 -1
  376. package/lib/esm/SchemaSync.js +5 -5
  377. package/lib/esm/SchemaSync.js.map +1 -1
  378. package/lib/esm/SchemaUtils.js.map +1 -1
  379. package/lib/esm/SheetIndex.d.ts +9 -0
  380. package/lib/esm/SheetIndex.d.ts.map +1 -1
  381. package/lib/esm/SheetIndex.js +38 -35
  382. package/lib/esm/SheetIndex.js.map +1 -1
  383. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  384. package/lib/esm/SqliteStatement.js.map +1 -1
  385. package/lib/esm/StashManager.js +1 -1
  386. package/lib/esm/StashManager.js.map +1 -1
  387. package/lib/esm/Texture.d.ts +6 -0
  388. package/lib/esm/Texture.d.ts.map +1 -1
  389. package/lib/esm/Texture.js +6 -14
  390. package/lib/esm/Texture.js.map +1 -1
  391. package/lib/esm/TileStorage.js.map +1 -1
  392. package/lib/esm/TxnManager.d.ts +105 -9
  393. package/lib/esm/TxnManager.d.ts.map +1 -1
  394. package/lib/esm/TxnManager.js +194 -15
  395. package/lib/esm/TxnManager.js.map +1 -1
  396. package/lib/esm/ViewDefinition.d.ts +21 -1
  397. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  398. package/lib/esm/ViewDefinition.js +27 -66
  399. package/lib/esm/ViewDefinition.js.map +1 -1
  400. package/lib/esm/ViewStateHydrator.js.map +1 -1
  401. package/lib/esm/ViewStore.js.map +1 -1
  402. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +14 -6
  403. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -1
  404. package/lib/esm/annotations/ElementDrivesTextAnnotation.js +33 -27
  405. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  406. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  407. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  408. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  409. package/lib/esm/annotations/TextAnnotationElement.js +6 -5
  410. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  411. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  412. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  413. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  414. package/lib/esm/core-backend.d.ts +1 -0
  415. package/lib/esm/core-backend.d.ts.map +1 -1
  416. package/lib/esm/core-backend.js +1 -0
  417. package/lib/esm/core-backend.js.map +1 -1
  418. package/lib/esm/domains/FunctionalElements.d.ts +6 -2
  419. package/lib/esm/domains/FunctionalElements.d.ts.map +1 -1
  420. package/lib/esm/domains/FunctionalElements.js +8 -13
  421. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  422. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  423. package/lib/esm/domains/GenericElements.d.ts +11 -4
  424. package/lib/esm/domains/GenericElements.d.ts.map +1 -1
  425. package/lib/esm/domains/GenericElements.js +13 -24
  426. package/lib/esm/domains/GenericElements.js.map +1 -1
  427. package/lib/esm/domains/GenericSchema.js.map +1 -1
  428. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  429. package/lib/esm/internal/ChannelAdmin.d.ts +15 -0
  430. package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
  431. package/lib/esm/internal/ChannelAdmin.js +6 -4
  432. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  433. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  434. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  435. package/lib/esm/internal/HubMock.d.ts +2 -0
  436. package/lib/esm/internal/HubMock.d.ts.map +1 -1
  437. package/lib/esm/internal/HubMock.js +7 -0
  438. package/lib/esm/internal/HubMock.js.map +1 -1
  439. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  440. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  441. package/lib/esm/internal/NativePlatform.js.map +1 -1
  442. package/lib/esm/internal/NoLocks.d.ts.map +1 -1
  443. package/lib/esm/internal/NoLocks.js +6 -0
  444. package/lib/esm/internal/NoLocks.js.map +1 -1
  445. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  446. package/lib/esm/internal/ServerBasedLocks.d.ts +12 -0
  447. package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -1
  448. package/lib/esm/internal/ServerBasedLocks.js +286 -5
  449. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  450. package/lib/esm/internal/Symbols.d.ts +4 -0
  451. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  452. package/lib/esm/internal/Symbols.js +4 -0
  453. package/lib/esm/internal/Symbols.js.map +1 -1
  454. package/lib/esm/internal/annotations/fields.d.ts +3 -2
  455. package/lib/esm/internal/annotations/fields.d.ts.map +1 -1
  456. package/lib/esm/internal/annotations/fields.js +7 -6
  457. package/lib/esm/internal/annotations/fields.js.map +1 -1
  458. package/lib/esm/internal/cross-package.js.map +1 -1
  459. package/lib/esm/internal/workspace/SettingsEditorImpl.d.ts +18 -3
  460. package/lib/esm/internal/workspace/SettingsEditorImpl.d.ts.map +1 -1
  461. package/lib/esm/internal/workspace/SettingsEditorImpl.js +52 -246
  462. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  463. package/lib/esm/internal/workspace/SettingsImpl.d.ts.map +1 -1
  464. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  465. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  466. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +0 -1
  467. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  468. package/lib/esm/internal/workspace/WorkspaceImpl.js +71 -41
  469. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  470. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  471. package/lib/esm/rpc/multipart.js.map +1 -1
  472. package/lib/esm/rpc/tracing.js.map +1 -1
  473. package/lib/esm/rpc/web/logging.js.map +1 -1
  474. package/lib/esm/rpc/web/request.js.map +1 -1
  475. package/lib/esm/rpc/web/response.js.map +1 -1
  476. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  477. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  478. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  479. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  480. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  481. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  482. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  483. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  484. package/lib/esm/test/AttachDb.test.js +11 -11
  485. package/lib/esm/test/AttachDb.test.js.map +1 -1
  486. package/lib/esm/test/ElementDrivesElement.test.d.ts +20 -19
  487. package/lib/esm/test/ElementDrivesElement.test.d.ts.map +1 -1
  488. package/lib/esm/test/ElementDrivesElement.test.js +134 -119
  489. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  490. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  491. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  492. package/lib/esm/test/IModelHost.test.js +56 -2
  493. package/lib/esm/test/IModelHost.test.js.map +1 -1
  494. package/lib/esm/test/IModelTestUtils.d.ts +23 -23
  495. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  496. package/lib/esm/test/IModelTestUtils.js +466 -449
  497. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  498. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  499. package/lib/esm/test/IpcHost.test.js.map +1 -1
  500. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  501. package/lib/esm/test/PrintElementTree.js.map +1 -1
  502. package/lib/esm/test/PropertyDb.test.js +2 -2
  503. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  504. package/lib/esm/test/RevisionUtility.js.map +1 -1
  505. package/lib/esm/test/SchemaUtils.test.js +25 -25
  506. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  507. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  508. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +156 -147
  509. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  510. package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -1
  511. package/lib/esm/test/TestChangeSetUtility.js +11 -7
  512. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  513. package/lib/esm/test/TestEditTxn.d.ts +8 -0
  514. package/lib/esm/test/TestEditTxn.d.ts.map +1 -0
  515. package/lib/esm/test/TestEditTxn.js +34 -0
  516. package/lib/esm/test/TestEditTxn.js.map +1 -0
  517. package/lib/esm/test/TestUtils.d.ts +1 -0
  518. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  519. package/lib/esm/test/TestUtils.js +8 -1
  520. package/lib/esm/test/TestUtils.js.map +1 -1
  521. package/lib/esm/test/annotations/Fields.test.js +135 -143
  522. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  523. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  524. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  525. package/lib/esm/test/annotations/TextAnnotation.test.js +156 -99
  526. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  527. package/lib/esm/test/annotations/TextBlock.test.js +5 -3
  528. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  529. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  530. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  531. package/lib/esm/test/categories/Category.test.js +63 -3
  532. package/lib/esm/test/categories/Category.test.js.map +1 -1
  533. package/lib/esm/test/codespec/CodeSpec.test.js +88 -5
  534. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  535. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  536. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  537. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  538. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  539. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  540. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  541. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  542. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  543. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  544. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  545. package/lib/esm/test/ecdb/ECSqlAst.test.js +68 -67
  546. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  547. package/lib/esm/test/ecdb/ECSqlQuery.test.js +6 -6
  548. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  549. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -333
  550. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  551. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  552. package/lib/esm/test/ecdb/QueryReaders.test.js +47 -44
  553. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  554. package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -2
  555. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  556. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -1
  557. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +30 -28
  558. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  559. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  560. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  561. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  562. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  563. package/lib/esm/test/element/DeleteDefinitionElements.test.js +159 -143
  564. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  565. package/lib/esm/test/element/ElementAspect.test.js +90 -82
  566. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  567. package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -1
  568. package/lib/esm/test/element/ElementDependencyGraph.test.js +51 -43
  569. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  570. package/lib/esm/test/element/ElementRoundTrip.test.js +176 -177
  571. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  572. package/lib/esm/test/element/ExcludedElements.test.js +2 -2
  573. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  574. package/lib/esm/test/element/ExternalSource.test.js +40 -38
  575. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  576. package/lib/esm/test/element/NullStructArray.test.js +23 -22
  577. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  578. package/lib/esm/test/element/ProjectInformationRecord.test.js +5 -2
  579. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  580. package/lib/esm/test/element/SheetInformationAspect.test.js +43 -11
  581. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  582. package/lib/esm/test/element/UrlLink.test.js +2 -2
  583. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  584. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  585. package/lib/esm/test/font/IModelDbFonts.test.js +87 -73
  586. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  587. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +194 -155
  588. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  589. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +2 -4
  590. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  591. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  592. package/lib/esm/test/hubaccess/Rebase.test.js +369 -303
  593. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  594. package/lib/esm/test/hubaccess/SemanticRebase.test.js +467 -392
  595. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  596. package/lib/esm/test/imageData.js.map +1 -1
  597. package/lib/esm/test/imodel/Code.test.js +31 -31
  598. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  599. package/lib/esm/test/imodel/ElementTreeWalker.test.js +57 -48
  600. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  601. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  602. package/lib/esm/test/imodel/IModel.test.js +463 -388
  603. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  604. package/lib/esm/test/imodel/ProjectExtents.test.js +2 -2
  605. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  606. package/lib/esm/test/imodel/SchemaXmlImport.test.js +13 -13
  607. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  608. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  609. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  610. package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -1
  611. package/lib/esm/test/incrementalSchemaLocater/TestContext.js +2 -2
  612. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  613. package/lib/esm/test/index.d.ts +1 -0
  614. package/lib/esm/test/index.d.ts.map +1 -1
  615. package/lib/esm/test/index.js +1 -0
  616. package/lib/esm/test/index.js.map +1 -1
  617. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  618. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  619. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  620. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  621. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  622. package/lib/esm/test/rpc/response.test.js.map +1 -1
  623. package/lib/esm/test/schema/ClassRegistry.test.js +122 -121
  624. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  625. package/lib/esm/test/schema/FunctionalDomain.test.js +36 -34
  626. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  627. package/lib/esm/test/schema/GenericDomain.test.js +114 -94
  628. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  629. package/lib/esm/test/schema/IModelSchemaContext.test.js +11 -10
  630. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  631. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +226 -211
  632. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  633. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +1 -3
  634. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -1
  635. package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -247
  636. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  637. package/lib/esm/test/standalone/ChangeMerge.test.js +101 -82
  638. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  639. package/lib/esm/test/standalone/ChangesetReader.test.js +242 -213
  640. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  641. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  642. package/lib/esm/test/standalone/DisplayStyle.test.js +43 -40
  643. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  644. package/lib/esm/test/standalone/Drawing.test.js +4 -3
  645. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  646. package/lib/esm/test/standalone/EditTxn.test.d.ts +2 -0
  647. package/lib/esm/test/standalone/EditTxn.test.d.ts.map +1 -0
  648. package/lib/esm/test/standalone/EditTxn.test.js +219 -0
  649. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -0
  650. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  651. package/lib/esm/test/standalone/ElementMesh.test.js +16 -13
  652. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  653. package/lib/esm/test/standalone/ExportGraphics.test.js +40 -34
  654. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  655. package/lib/esm/test/standalone/GeometryChangeEvents.test.js +11 -15
  656. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  657. package/lib/esm/test/standalone/GeometryStream.test.js +212 -165
  658. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  659. package/lib/esm/test/standalone/HubMock.test.js +31 -25
  660. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  661. package/lib/esm/test/standalone/IModelLimits.test.js +11 -8
  662. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  663. package/lib/esm/test/standalone/IModelWrite.test.d.ts +2 -2
  664. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  665. package/lib/esm/test/standalone/IModelWrite.test.js +211 -169
  666. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  667. package/lib/esm/test/standalone/ITwinWorkspace.test.d.ts +2 -0
  668. package/lib/esm/test/standalone/ITwinWorkspace.test.d.ts.map +1 -0
  669. package/lib/esm/test/standalone/ITwinWorkspace.test.js +236 -0
  670. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -0
  671. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +25 -22
  672. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  673. package/lib/esm/test/standalone/IntegrityCheck.test.js +20 -18
  674. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  675. package/lib/esm/test/standalone/MergeConflict.test.d.ts +2 -2
  676. package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -1
  677. package/lib/esm/test/standalone/MergeConflict.test.js +49 -33
  678. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  679. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  680. package/lib/esm/test/standalone/RenderMaterialElement.test.js +5 -5
  681. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  682. package/lib/esm/test/standalone/RenderTimeline.test.js +3 -2
  683. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  684. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  685. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  686. package/lib/esm/test/standalone/SectionDrawing.test.js +7 -7
  687. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  688. package/lib/esm/test/standalone/ServerBasedLocks.test.js +928 -22
  689. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  690. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  691. package/lib/esm/test/standalone/Settings.test.js +26 -4
  692. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  693. package/lib/esm/test/standalone/SettingsSchemas.test.js +2 -1
  694. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  695. package/lib/esm/test/standalone/SnapshotDb.test.js +3 -1
  696. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  697. package/lib/esm/test/standalone/StandaloneDb.test.js +27 -26
  698. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  699. package/lib/esm/test/standalone/Texture.test.js +5 -4
  700. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  701. package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -1
  702. package/lib/esm/test/standalone/TileCache.test.js +5 -3
  703. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  704. package/lib/esm/test/standalone/TileTree.test.js +35 -31
  705. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  706. package/lib/esm/test/standalone/TxnManager.test.js +700 -653
  707. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  708. package/lib/esm/test/standalone/ViewDefinition.test.js +295 -229
  709. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  710. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  711. package/lib/esm/test/standalone/Workspace.test.js +72 -22
  712. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  713. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  714. package/lib/esm/test/workspace/SettingsDb.test.js +28 -456
  715. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  716. package/lib/esm/workspace/Settings.d.ts +11 -5
  717. package/lib/esm/workspace/Settings.d.ts.map +1 -1
  718. package/lib/esm/workspace/Settings.js.map +1 -1
  719. package/lib/esm/workspace/SettingsDb.d.ts +20 -99
  720. package/lib/esm/workspace/SettingsDb.d.ts.map +1 -1
  721. package/lib/esm/workspace/SettingsDb.js +20 -6
  722. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  723. package/lib/esm/workspace/SettingsEditor.d.ts +40 -226
  724. package/lib/esm/workspace/SettingsEditor.d.ts.map +1 -1
  725. package/lib/esm/workspace/SettingsEditor.js +85 -24
  726. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  727. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  728. package/lib/esm/workspace/Workspace.d.ts +7 -11
  729. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  730. package/lib/esm/workspace/Workspace.js.map +1 -1
  731. package/lib/esm/workspace/WorkspaceEditor.d.ts +14 -0
  732. package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -1
  733. package/lib/esm/workspace/WorkspaceEditor.js +1 -1
  734. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  735. package/package.json +13 -13
  736. package/lib/cjs/internal/workspace/SettingsDbImpl.d.ts +0 -38
  737. package/lib/cjs/internal/workspace/SettingsDbImpl.d.ts.map +0 -1
  738. package/lib/cjs/internal/workspace/SettingsDbImpl.js +0 -108
  739. package/lib/cjs/internal/workspace/SettingsDbImpl.js.map +0 -1
  740. package/lib/cjs/internal/workspace/SettingsSqliteDb.d.ts +0 -14
  741. package/lib/cjs/internal/workspace/SettingsSqliteDb.d.ts.map +0 -1
  742. package/lib/cjs/internal/workspace/SettingsSqliteDb.js +0 -40
  743. package/lib/cjs/internal/workspace/SettingsSqliteDb.js.map +0 -1
  744. package/lib/esm/internal/workspace/SettingsDbImpl.d.ts +0 -38
  745. package/lib/esm/internal/workspace/SettingsDbImpl.d.ts.map +0 -1
  746. package/lib/esm/internal/workspace/SettingsDbImpl.js +0 -104
  747. package/lib/esm/internal/workspace/SettingsDbImpl.js.map +0 -1
  748. package/lib/esm/internal/workspace/SettingsSqliteDb.d.ts +0 -14
  749. package/lib/esm/internal/workspace/SettingsSqliteDb.d.ts.map +0 -1
  750. package/lib/esm/internal/workspace/SettingsSqliteDb.js +0 -36
  751. package/lib/esm/internal/workspace/SettingsSqliteDb.js.map +0 -1
@@ -3,7 +3,8 @@
3
3
  * See LICENSE.md in the project root for license terms and full copyright notice.
4
4
  *--------------------------------------------------------------------------------------------*/
5
5
  import { Id64 } from "@itwin/core-bentley";
6
- import { BisCodeSpec, CodeScopeSpec, CodeSpec } from "@itwin/core-common";
6
+ import { BisCodeSpec, CodeScopeSpec, CodeSpec, EditTxnError } from "@itwin/core-common";
7
+ import { EditTxn, withEditTxn } from "../../EditTxn";
7
8
  import { SnapshotDb } from "../../IModelDb";
8
9
  import { ExtensiveTestScenario, IModelTestUtils } from "../IModelTestUtils";
9
10
  import { DocumentPartition, Sheet } from "../../Element";
@@ -11,53 +12,35 @@ import { expect } from "chai";
11
12
  import { DocumentListModel, SheetIndexModel, SheetModel } from "../../Model";
12
13
  import { ElementOwnsChildElements, SheetIndexFolderOwnsEntries, SheetIndexOwnsEntries, SheetIndexReferenceRefersToSheetIndex, SheetReferenceRefersToSheet } from "../../NavigationRelationship";
13
14
  import { SheetIndex, SheetIndexFolder, SheetIndexReference, SheetReference } from "../../SheetIndex";
14
- export const getOrCreateDocumentList = async (iModel) => {
15
+ const getOrCreateDocumentList = (txn) => {
15
16
  const documentListName = "SheetList";
16
- let documentListModelId;
17
- // Attempt to find an existing document partition and document list model
18
- const ids = iModel.queryEntityIds({ from: DocumentPartition.classFullName, where: `CodeValue = '${documentListName}'` });
19
- if (ids.size === 1) {
20
- documentListModelId = ids.values().next().value;
21
- }
22
- // If they do not exist, create the document partition and document list model
23
- if (documentListModelId === undefined) {
24
- const subjectId = iModel.elements.getRootSubject().id;
25
- await iModel.locks.acquireLocks({
26
- shared: subjectId,
27
- });
28
- documentListModelId = DocumentListModel.insert(iModel, subjectId, documentListName);
29
- }
30
- return documentListModelId;
17
+ const ids = txn.iModel.queryEntityIds({ from: DocumentPartition.classFullName, where: `CodeValue = '${documentListName}'` });
18
+ if (ids.size === 1)
19
+ return ids.values().next().value;
20
+ const subjectId = txn.iModel.elements.getRootSubject().id;
21
+ return DocumentListModel.insert(txn, subjectId, documentListName);
31
22
  };
32
- const insertSheet = async (iModel, sheetName) => {
33
- const createSheetProps = {
23
+ const insertSheet = (txn, sheetName) => {
24
+ const modelId = getOrCreateDocumentList(txn);
25
+ const sheetElementProps = {
34
26
  height: 42,
35
27
  width: 42,
36
28
  scale: 42,
37
- };
38
- // Get or make documentListModelId
39
- const modelId = await getOrCreateDocumentList(iModel);
40
- // Acquire locks and create sheet
41
- await iModel.locks.acquireLocks({ shared: modelId });
42
- const sheetElementProps = {
43
- ...createSheetProps,
44
29
  classFullName: Sheet.classFullName,
45
- code: Sheet.createCode(iModel, modelId, sheetName),
30
+ code: Sheet.createCode(txn.iModel, modelId, sheetName),
46
31
  model: modelId,
47
32
  };
48
- const sheetElementId = iModel.elements.insertElement(sheetElementProps);
49
- const sheetModelProps = {
33
+ const sheetElementId = txn.insertElement(sheetElementProps);
34
+ return txn.insertModel({
50
35
  classFullName: SheetModel.classFullName,
51
36
  modeledElement: { id: sheetElementId, relClassName: "BisCore:ModelModelsElement" },
52
- };
53
- const sheetModelId = iModel.models.insertModel(sheetModelProps);
54
- return sheetModelId;
37
+ });
55
38
  };
56
- const insertCodeSpec = async (iModel) => {
57
- const indexSpec = CodeSpec.create(iModel, BisCodeSpec.sheetIndex, CodeScopeSpec.Type.Model);
58
- iModel.codeSpecs.insert(indexSpec);
59
- const entrySpec = CodeSpec.create(iModel, BisCodeSpec.sheetIndexEntry, CodeScopeSpec.Type.ParentElement);
60
- iModel.codeSpecs.insert(entrySpec);
39
+ const insertCodeSpec = (txn) => {
40
+ const indexSpec = CodeSpec.create(txn.iModel, BisCodeSpec.sheetIndex, CodeScopeSpec.Type.Model);
41
+ txn.iModel.codeSpecs.insert(txn, indexSpec);
42
+ const entrySpec = CodeSpec.create(txn.iModel, BisCodeSpec.sheetIndexEntry, CodeScopeSpec.Type.ParentElement);
43
+ txn.iModel.codeSpecs.insert(txn, entrySpec);
61
44
  };
62
45
  describe("SheetIndex", () => {
63
46
  let iModel;
@@ -67,245 +50,327 @@ describe("SheetIndex", () => {
67
50
  await ExtensiveTestScenario.prepareDb(iModelDb);
68
51
  await ExtensiveTestScenario.populateDb(iModelDb);
69
52
  iModel = iModelDb;
70
- await insertCodeSpec(iModel);
53
+ withEditTxn(iModel, (txn) => insertCodeSpec(txn));
71
54
  });
72
55
  afterEach(() => {
73
- iModel.abandonChanges();
74
56
  iModel.close();
75
57
  });
76
- it("SheetIndexModel Should insert", async () => {
77
- const subjectId = iModel.elements.getRootSubject().id;
78
- const modelId = SheetIndexModel.insert(iModel, subjectId, "testSheetIndex");
79
- expect(Id64.isValidId64(modelId)).to.be.true;
58
+ it("SheetIndexModel Should insert", () => {
59
+ withEditTxn(iModel, (txn) => {
60
+ const subjectId = iModel.elements.getRootSubject().id;
61
+ const modelId = SheetIndexModel.insert(txn, subjectId, "testSheetIndex");
62
+ expect(Id64.isValidId64(modelId)).to.be.true;
63
+ });
80
64
  });
81
- it("SheetIndex Should insert", async () => {
82
- const subjectId = iModel.elements.getRootSubject().id;
83
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
84
- expect(Id64.isValidId64(modelId)).to.be.true;
85
- const sheetIndex = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
86
- expect(Id64.isValidId64(sheetIndex)).to.be.true;
65
+ it("SheetIndex Should insert", () => {
66
+ withEditTxn(iModel, (txn) => {
67
+ const subjectId = iModel.elements.getRootSubject().id;
68
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
69
+ expect(Id64.isValidId64(modelId)).to.be.true;
70
+ const sheetIndex = SheetIndex.insert(txn, modelId, "TestSheetIndex");
71
+ expect(Id64.isValidId64(sheetIndex)).to.be.true;
72
+ });
87
73
  });
88
74
  describe("Update", () => {
89
75
  it("Priority", () => {
90
- const subjectId = iModel.elements.getRootSubject().id;
91
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
92
- expect(Id64.isValidId64(modelId)).to.be.true;
93
- const sheetIndex1Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
94
- expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
95
- const folderId = SheetIndexFolder.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestFolder", priority: 1 });
96
- expect(Id64.isValidId64(folderId)).to.be.true;
97
- const folder = iModel.elements.tryGetElement(folderId);
98
- expect(folder).to.not.be.undefined;
99
- expect(folder?.entryPriority).equals(1);
100
- folder.entryPriority = 0;
101
- folder.update();
102
- const folderPostUpdate = iModel.elements.tryGetElement(folderId);
103
- expect(folderPostUpdate?.entryPriority).equals(0);
76
+ withEditTxn(iModel, (txn) => {
77
+ const subjectId = iModel.elements.getRootSubject().id;
78
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
79
+ expect(Id64.isValidId64(modelId)).to.be.true;
80
+ const sheetIndex1Id = SheetIndex.insert(txn, modelId, "TestSheetIndex");
81
+ expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
82
+ const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestFolder", priority: 1 });
83
+ expect(Id64.isValidId64(folderId)).to.be.true;
84
+ const folder = iModel.elements.tryGetElement(folderId);
85
+ expect(folder).to.not.be.undefined;
86
+ expect(folder?.entryPriority).equals(1);
87
+ folder.entryPriority = 0;
88
+ folder.update(txn);
89
+ const folderPostUpdate = iModel.elements.tryGetElement(folderId);
90
+ expect(folderPostUpdate?.entryPriority).equals(0);
91
+ });
104
92
  });
105
93
  it("Parent", () => {
106
- const subjectId = iModel.elements.getRootSubject().id;
107
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
108
- expect(Id64.isValidId64(modelId)).to.be.true;
109
- const sheetIndex1Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex-1");
110
- expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
111
- const sheetIndex2Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex-2");
112
- expect(Id64.isValidId64(sheetIndex2Id)).to.be.true;
113
- const folderId = SheetIndexFolder.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestFolder", priority: 1 });
114
- expect(Id64.isValidId64(folderId)).to.be.true;
115
- const folder = iModel.elements.tryGetElement(folderId);
116
- expect(folder).to.not.be.undefined;
117
- const parentRel11 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex1Id, targetId: folderId });
118
- expect(parentRel11).to.not.be.undefined;
119
- folder.parent = new SheetIndexOwnsEntries(sheetIndex2Id);
120
- folder.update();
121
- const parentRel12 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex1Id, targetId: folderId });
122
- expect(parentRel12).to.be.undefined;
123
- const parentRel22 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex2Id, targetId: folderId });
124
- expect(parentRel22).to.not.be.undefined;
94
+ withEditTxn(iModel, (txn) => {
95
+ const subjectId = iModel.elements.getRootSubject().id;
96
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
97
+ expect(Id64.isValidId64(modelId)).to.be.true;
98
+ const sheetIndex1Id = SheetIndex.insert(txn, modelId, "TestSheetIndex-1");
99
+ expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
100
+ const sheetIndex2Id = SheetIndex.insert(txn, modelId, "TestSheetIndex-2");
101
+ expect(Id64.isValidId64(sheetIndex2Id)).to.be.true;
102
+ const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestFolder", priority: 1 });
103
+ expect(Id64.isValidId64(folderId)).to.be.true;
104
+ const folder = iModel.elements.tryGetElement(folderId);
105
+ expect(folder).to.not.be.undefined;
106
+ const parentRel11 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex1Id, targetId: folderId });
107
+ expect(parentRel11).to.not.be.undefined;
108
+ folder.parent = new SheetIndexOwnsEntries(sheetIndex2Id);
109
+ folder.update(txn);
110
+ const parentRel12 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex1Id, targetId: folderId });
111
+ expect(parentRel12).to.be.undefined;
112
+ const parentRel22 = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndex2Id, targetId: folderId });
113
+ expect(parentRel22).to.not.be.undefined;
114
+ });
125
115
  });
126
- it("Sheet Reference", async () => {
127
- const subjectId = iModel.elements.getRootSubject().id;
128
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
129
- expect(Id64.isValidId64(modelId)).to.be.true;
130
- const sheetIndexId = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
131
- expect(Id64.isValidId64(sheetIndexId)).to.be.true;
132
- const sheet1Id = await insertSheet(iModel, "sheet-1");
133
- const sheet2Id = await insertSheet(iModel, "sheet-2");
134
- const sheetRefId = SheetReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndexId, name: "TestSheetReference", priority: 1 });
135
- expect(Id64.isValidId64(sheetRefId)).to.be.true;
136
- const sheetRef = iModel.elements.tryGetElement(sheetRefId);
137
- expect(sheetRef).to.not.be.undefined;
138
- expect(sheetRef.sheet).to.be.undefined;
139
- sheetRef.sheet = new SheetReferenceRefersToSheet(sheet1Id);
140
- sheetRef.update();
141
- const refersRel11 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet1Id });
142
- expect(refersRel11).to.not.be.undefined;
143
- const parentRel12 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet2Id });
144
- expect(parentRel12).to.be.undefined;
145
- sheetRef.sheet = new SheetReferenceRefersToSheet(sheet2Id);
146
- sheetRef.update();
147
- const refersRel21 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet1Id });
148
- expect(refersRel21).to.be.undefined;
149
- const parentRel22 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet2Id });
150
- expect(parentRel22).to.not.be.undefined;
116
+ it("Sheet Reference", () => {
117
+ withEditTxn(iModel, (txn) => {
118
+ const sheet1Id = insertSheet(txn, "sheet-1");
119
+ const sheet2Id = insertSheet(txn, "sheet-2");
120
+ const subjectId = iModel.elements.getRootSubject().id;
121
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
122
+ expect(Id64.isValidId64(modelId)).to.be.true;
123
+ const sheetIndexId = SheetIndex.insert(txn, modelId, "TestSheetIndex");
124
+ expect(Id64.isValidId64(sheetIndexId)).to.be.true;
125
+ const sheetRefId = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: "TestSheetReference", priority: 1 });
126
+ expect(Id64.isValidId64(sheetRefId)).to.be.true;
127
+ const sheetRef = iModel.elements.tryGetElement(sheetRefId);
128
+ expect(sheetRef).to.not.be.undefined;
129
+ expect(sheetRef.sheet).to.be.undefined;
130
+ sheetRef.sheet = new SheetReferenceRefersToSheet(sheet1Id);
131
+ sheetRef.update(txn);
132
+ const refersRel11 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet1Id });
133
+ expect(refersRel11).to.not.be.undefined;
134
+ const parentRel12 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet2Id });
135
+ expect(parentRel12).to.be.undefined;
136
+ sheetRef.sheet = new SheetReferenceRefersToSheet(sheet2Id);
137
+ sheetRef.update(txn);
138
+ const refersRel21 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet1Id });
139
+ expect(refersRel21).to.be.undefined;
140
+ const parentRel22 = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheet2Id });
141
+ expect(parentRel22).to.not.be.undefined;
142
+ });
151
143
  });
152
144
  it("Sheet Index Reference", () => {
153
- const subjectId = iModel.elements.getRootSubject().id;
154
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
155
- expect(Id64.isValidId64(modelId)).to.be.true;
156
- const sheetIndex1Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex-1");
157
- expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
158
- const sheetIndex2Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex-2");
159
- expect(Id64.isValidId64(sheetIndex2Id)).to.be.true;
160
- const sheetIndex3Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex-3");
161
- expect(Id64.isValidId64(sheetIndex3Id)).to.be.true;
162
- const sheetIndexRefId = SheetIndexReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestSheetReference", priority: 1 });
163
- expect(Id64.isValidId64(sheetIndexRefId)).to.be.true;
164
- const sheetIndexRef = iModel.elements.tryGetElement(sheetIndexRefId);
165
- expect(sheetIndexRef).to.not.be.undefined;
166
- expect(sheetIndexRef.sheetIndex).to.be.undefined;
167
- sheetIndexRef.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(sheetIndex2Id);
168
- sheetIndexRef.update();
169
- const parentRel11 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });
170
- expect(parentRel11).to.not.be.undefined;
171
- sheetIndexRef.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(sheetIndex3Id);
172
- sheetIndexRef.update();
173
- const refersRel21 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });
174
- expect(refersRel21).to.be.undefined;
175
- const parentRel22 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex3Id });
176
- expect(parentRel22).to.not.be.undefined;
145
+ withEditTxn(iModel, (txn) => {
146
+ const subjectId = iModel.elements.getRootSubject().id;
147
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
148
+ expect(Id64.isValidId64(modelId)).to.be.true;
149
+ const sheetIndex1Id = SheetIndex.insert(txn, modelId, "TestSheetIndex-1");
150
+ expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
151
+ const sheetIndex2Id = SheetIndex.insert(txn, modelId, "TestSheetIndex-2");
152
+ expect(Id64.isValidId64(sheetIndex2Id)).to.be.true;
153
+ const sheetIndex3Id = SheetIndex.insert(txn, modelId, "TestSheetIndex-3");
154
+ expect(Id64.isValidId64(sheetIndex3Id)).to.be.true;
155
+ const sheetIndexRefId = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestSheetReference", priority: 1 });
156
+ expect(Id64.isValidId64(sheetIndexRefId)).to.be.true;
157
+ const sheetIndexRef = iModel.elements.tryGetElement(sheetIndexRefId);
158
+ expect(sheetIndexRef).to.not.be.undefined;
159
+ expect(sheetIndexRef.sheetIndex).to.be.undefined;
160
+ sheetIndexRef.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(sheetIndex2Id);
161
+ sheetIndexRef.update(txn);
162
+ const parentRel11 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });
163
+ expect(parentRel11).to.not.be.undefined;
164
+ sheetIndexRef.sheetIndex = new SheetIndexReferenceRefersToSheetIndex(sheetIndex3Id);
165
+ sheetIndexRef.update(txn);
166
+ const refersRel21 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });
167
+ expect(refersRel21).to.be.undefined;
168
+ const parentRel22 = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex3Id });
169
+ expect(parentRel22).to.not.be.undefined;
170
+ });
177
171
  });
178
172
  });
179
173
  describe("SheetIndexFolder", () => {
180
- it("Should insert", async () => {
181
- const subjectId = iModel.elements.getRootSubject().id;
182
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
183
- expect(Id64.isValidId64(modelId)).to.be.true;
184
- const sheetIndexId = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
185
- expect(Id64.isValidId64(sheetIndexId)).to.be.true;
186
- const folderId = SheetIndexFolder.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndexId, name: "TestFolder-1", priority: 1 });
187
- expect(Id64.isValidId64(folderId)).to.be.true;
188
- const folder = iModel.elements.tryGetElement(folderId);
189
- expect(folder).to.not.be.undefined;
190
- const relationship = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndexId, targetId: folderId });
191
- expect(relationship).to.not.be.undefined;
192
- expect(relationship?.classFullName).equals(SheetIndexOwnsEntries.classFullName);
193
- expect(folder?.parent?.id).equals(sheetIndexId);
174
+ it("Should insert", () => {
175
+ withEditTxn(iModel, (txn) => {
176
+ const subjectId = iModel.elements.getRootSubject().id;
177
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
178
+ expect(Id64.isValidId64(modelId)).to.be.true;
179
+ const sheetIndexId = SheetIndex.insert(txn, modelId, "TestSheetIndex");
180
+ expect(Id64.isValidId64(sheetIndexId)).to.be.true;
181
+ const folderId = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: "TestFolder-1", priority: 1 });
182
+ expect(Id64.isValidId64(folderId)).to.be.true;
183
+ const folder = iModel.elements.tryGetElement(folderId);
184
+ expect(folder).to.not.be.undefined;
185
+ const relationship = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: sheetIndexId, targetId: folderId });
186
+ expect(relationship).to.not.be.undefined;
187
+ expect(relationship?.classFullName).equals(SheetIndexOwnsEntries.classFullName);
188
+ expect(folder?.parent?.id).equals(sheetIndexId);
189
+ });
194
190
  });
195
- it("Should not insert SheetIndexFolder with the same name", async () => {
196
- const subjectId = iModel.elements.getRootSubject().id;
197
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
198
- expect(Id64.isValidId64(modelId)).to.be.true;
199
- const sheetIndex = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
200
- expect(Id64.isValidId64(sheetIndex)).to.be.true;
201
- const folder = SheetIndexFolder.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestFolder", priority: 1 });
202
- expect(Id64.isValidId64(folder)).to.be.true;
203
- const failInsert = () => SheetIndexFolder.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestFolder", priority: 0 });
204
- expect(failInsert).throws();
191
+ it("Should not insert SheetIndexFolder with the same name", () => {
192
+ withEditTxn(iModel, (txn) => {
193
+ const subjectId = iModel.elements.getRootSubject().id;
194
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
195
+ expect(Id64.isValidId64(modelId)).to.be.true;
196
+ const sheetIndex = SheetIndex.insert(txn, modelId, "TestSheetIndex");
197
+ expect(Id64.isValidId64(sheetIndex)).to.be.true;
198
+ const folder = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestFolder", priority: 1 });
199
+ expect(Id64.isValidId64(folder)).to.be.true;
200
+ const failInsert = () => SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestFolder", priority: 0 });
201
+ expect(failInsert).throws();
202
+ });
205
203
  });
206
- it("Should have children", async () => {
207
- const subjectId = iModel.elements.getRootSubject().id;
208
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
209
- expect(Id64.isValidId64(modelId)).to.be.true;
210
- const sheetIndexId = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
211
- expect(Id64.isValidId64(sheetIndexId)).to.be.true;
212
- const folder1Id = SheetIndexFolder.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndexId, name: "TestFolder-1", priority: 1 });
213
- expect(Id64.isValidId64(folder1Id)).to.be.true;
214
- const folder2Id = SheetIndexFolder.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: folder1Id, name: "TestFolder-2", priority: 1 });
215
- expect(Id64.isValidId64(folder2Id)).to.be.true;
216
- const folder2 = iModel.elements.tryGetElement(folder2Id);
217
- expect(folder2).to.not.be.undefined;
218
- const relationship = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: folder1Id, targetId: folder2Id });
219
- expect(relationship).to.not.be.undefined;
220
- expect(relationship?.classFullName).equals(SheetIndexFolderOwnsEntries.classFullName);
221
- expect(folder2?.parent?.id).equals(folder1Id);
204
+ it("Should have children", () => {
205
+ withEditTxn(iModel, (txn) => {
206
+ const subjectId = iModel.elements.getRootSubject().id;
207
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
208
+ expect(Id64.isValidId64(modelId)).to.be.true;
209
+ const sheetIndexId = SheetIndex.insert(txn, modelId, "TestSheetIndex");
210
+ expect(Id64.isValidId64(sheetIndexId)).to.be.true;
211
+ const folder1Id = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndexId, name: "TestFolder-1", priority: 1 });
212
+ expect(Id64.isValidId64(folder1Id)).to.be.true;
213
+ const folder2Id = SheetIndexFolder.insert(txn, { sheetIndexModelId: modelId, parentId: folder1Id, name: "TestFolder-2", priority: 1 });
214
+ expect(Id64.isValidId64(folder2Id)).to.be.true;
215
+ const folder2 = iModel.elements.tryGetElement(folder2Id);
216
+ expect(folder2).to.not.be.undefined;
217
+ const relationship = iModel.relationships.tryGetInstanceProps(ElementOwnsChildElements.classFullName, { sourceId: folder1Id, targetId: folder2Id });
218
+ expect(relationship).to.not.be.undefined;
219
+ expect(relationship?.classFullName).equals(SheetIndexFolderOwnsEntries.classFullName);
220
+ expect(folder2?.parent?.id).equals(folder1Id);
221
+ });
222
222
  });
223
223
  });
224
224
  describe("SheetReferences", () => {
225
- it("Should not insert SheetReferences with the same name", async () => {
226
- const subjectId = iModel.elements.getRootSubject().id;
227
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
228
- expect(Id64.isValidId64(modelId)).to.be.true;
229
- const sheetIndex = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
230
- expect(Id64.isValidId64(sheetIndex)).to.be.true;
231
- const sheetRef1 = SheetReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef", priority: 1 });
232
- expect(Id64.isValidId64(sheetRef1)).to.be.true;
233
- const failInsert = () => SheetReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef", priority: 0 });
234
- expect(failInsert).throws();
225
+ it("Should not insert SheetReferences with the same name", () => {
226
+ withEditTxn(iModel, (txn) => {
227
+ const subjectId = iModel.elements.getRootSubject().id;
228
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
229
+ expect(Id64.isValidId64(modelId)).to.be.true;
230
+ const sheetIndex = SheetIndex.insert(txn, modelId, "TestSheetIndex");
231
+ expect(Id64.isValidId64(sheetIndex)).to.be.true;
232
+ const sheetRef1 = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef", priority: 1 });
233
+ expect(Id64.isValidId64(sheetRef1)).to.be.true;
234
+ const failInsert = () => SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef", priority: 0 });
235
+ expect(failInsert).throws();
236
+ });
235
237
  });
236
- it("Should insert SheetReferences without a Sheet", async () => {
237
- const subjectId = iModel.elements.getRootSubject().id;
238
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
239
- expect(Id64.isValidId64(modelId)).to.be.true;
240
- const sheetIndex = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
241
- expect(Id64.isValidId64(sheetIndex)).to.be.true;
242
- const sheetRef = SheetReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef", priority: 1 });
243
- expect(Id64.isValidId64(sheetRef)).to.be.true;
238
+ it("Should insert SheetReferences without a Sheet", () => {
239
+ withEditTxn(iModel, (txn) => {
240
+ const subjectId = iModel.elements.getRootSubject().id;
241
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
242
+ expect(Id64.isValidId64(modelId)).to.be.true;
243
+ const sheetIndex = SheetIndex.insert(txn, modelId, "TestSheetIndex");
244
+ expect(Id64.isValidId64(sheetIndex)).to.be.true;
245
+ const sheetRef = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef", priority: 1 });
246
+ expect(Id64.isValidId64(sheetRef)).to.be.true;
247
+ });
244
248
  });
245
- it("Should insert and with a Sheet", async () => {
246
- const subjectId = iModel.elements.getRootSubject().id;
247
- const sheetId = await insertSheet(iModel, "sheet-1");
248
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
249
- expect(Id64.isValidId64(modelId)).to.be.true;
250
- const sheetIndex = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
251
- expect(Id64.isValidId64(sheetIndex)).to.be.true;
252
- const sheetRefId = SheetReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef", priority: 1, sheetId });
253
- expect(Id64.isValidId64(sheetRefId)).to.be.true;
254
- const ref = iModel.elements.tryGetElement(sheetRefId);
255
- expect(ref).to.not.be.undefined;
256
- const relationship = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheetId });
257
- expect(relationship).to.not.be.undefined;
258
- expect(relationship?.classFullName).equals(SheetReferenceRefersToSheet.classFullName);
259
- expect(ref?.sheet?.id).equals(sheetId);
249
+ it("Should insert and with a Sheet", () => {
250
+ withEditTxn(iModel, (txn) => {
251
+ const sheetId = insertSheet(txn, "sheet-1");
252
+ const subjectId = iModel.elements.getRootSubject().id;
253
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
254
+ expect(Id64.isValidId64(modelId)).to.be.true;
255
+ const sheetIndex = SheetIndex.insert(txn, modelId, "TestSheetIndex");
256
+ expect(Id64.isValidId64(sheetIndex)).to.be.true;
257
+ const sheetRefId = SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef", priority: 1, sheetId });
258
+ expect(Id64.isValidId64(sheetRefId)).to.be.true;
259
+ const ref = iModel.elements.tryGetElement(sheetRefId);
260
+ expect(ref).to.not.be.undefined;
261
+ const relationship = iModel.relationships.tryGetInstanceProps(SheetReferenceRefersToSheet.classFullName, { sourceId: sheetRefId, targetId: sheetId });
262
+ expect(relationship).to.not.be.undefined;
263
+ expect(relationship?.classFullName).equals(SheetReferenceRefersToSheet.classFullName);
264
+ expect(ref?.sheet?.id).equals(sheetId);
265
+ });
260
266
  });
261
- it.skip("Should not insert with the same Sheet twice", async () => {
262
- const subjectId = iModel.elements.getRootSubject().id;
263
- const sheetId = await insertSheet(iModel, "sheet-1");
264
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
265
- expect(Id64.isValidId64(modelId)).to.be.true;
266
- const sheetIndex = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
267
- SheetReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef-1", priority: 1, sheetId });
268
- const sameIndex = () => SheetReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef-2", priority: 2, sheetId });
269
- expect(sameIndex).throws();
267
+ it("supports deprecated SheetReference.insert overload when implicit writes are allowed", () => {
268
+ const previousEnforcement = EditTxn.implicitWriteEnforcement;
269
+ EditTxn.implicitWriteEnforcement = "allow";
270
+ try {
271
+ withEditTxn(iModel, (txn) => {
272
+ const sheetId = insertSheet(txn, "legacy-sheet");
273
+ const subjectId = iModel.elements.getRootSubject().id;
274
+ const modelId = SheetIndexModel.insert(txn, subjectId, "LegacySheetRefModel");
275
+ const sheetIndex = SheetIndex.insert(txn, modelId, "LegacySheetIndex");
276
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
277
+ const sheetRefId = SheetReference.insert({
278
+ iModelDb: iModel,
279
+ sheetIndexModelId: modelId,
280
+ parentId: sheetIndex,
281
+ name: "LegacySheetRef",
282
+ priority: 1,
283
+ sheetId,
284
+ });
285
+ expect(Id64.isValidId64(sheetRefId)).to.be.true;
286
+ const ref = iModel.elements.tryGetElement(sheetRefId);
287
+ expect(ref?.sheet?.id).to.equal(sheetId);
288
+ });
289
+ }
290
+ finally {
291
+ EditTxn.implicitWriteEnforcement = previousEnforcement;
292
+ }
293
+ });
294
+ it("rejects deprecated SheetReference.insert overload when implicit writes are disallowed", () => {
295
+ const previousEnforcement = EditTxn.implicitWriteEnforcement;
296
+ EditTxn.implicitWriteEnforcement = "throw";
297
+ try {
298
+ withEditTxn(iModel, (txn) => {
299
+ const sheetId = insertSheet(txn, "legacy-throw-sheet");
300
+ const subjectId = iModel.elements.getRootSubject().id;
301
+ const modelId = SheetIndexModel.insert(txn, subjectId, "LegacyThrowSheetRefModel");
302
+ const sheetIndex = SheetIndex.insert(txn, modelId, "LegacyThrowSheetIndex");
303
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
304
+ expect(() => SheetReference.insert({
305
+ iModelDb: iModel,
306
+ sheetIndexModelId: modelId,
307
+ parentId: sheetIndex,
308
+ name: "LegacyThrowSheetRef",
309
+ priority: 1,
310
+ sheetId,
311
+ })).to.throw().that.satisfies((error) => EditTxnError.isError(error, "implicit-txn-write-disallowed"));
312
+ });
313
+ }
314
+ finally {
315
+ EditTxn.implicitWriteEnforcement = previousEnforcement;
316
+ }
317
+ });
318
+ it.skip("Should not insert with the same Sheet twice", () => {
319
+ withEditTxn(iModel, (txn) => {
320
+ const sheetId = insertSheet(txn, "sheet-1");
321
+ const subjectId = iModel.elements.getRootSubject().id;
322
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
323
+ expect(Id64.isValidId64(modelId)).to.be.true;
324
+ const sheetIndex = SheetIndex.insert(txn, modelId, "TestSheetIndex");
325
+ SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef-1", priority: 1, sheetId });
326
+ const sameIndex = () => SheetReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetRef-2", priority: 2, sheetId });
327
+ expect(sameIndex).throws();
328
+ });
270
329
  });
271
330
  });
272
331
  describe("SheetIndexReferences", () => {
273
- it("Should not insert SheetIndexReferences with the same name", async () => {
274
- const subjectId = iModel.elements.getRootSubject().id;
275
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
276
- expect(Id64.isValidId64(modelId)).to.be.true;
277
- const sheetIndex = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
278
- expect(Id64.isValidId64(sheetIndex)).to.be.true;
279
- const sheetIndexRef = SheetIndexReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetIndexRef", priority: 1 });
280
- expect(Id64.isValidId64(sheetIndexRef)).to.be.true;
281
- const failInsert = () => SheetIndexReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetIndexRef", priority: 0 });
282
- expect(failInsert).throws();
332
+ it("Should not insert SheetIndexReferences with the same name", () => {
333
+ withEditTxn(iModel, (txn) => {
334
+ const subjectId = iModel.elements.getRootSubject().id;
335
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
336
+ expect(Id64.isValidId64(modelId)).to.be.true;
337
+ const sheetIndex = SheetIndex.insert(txn, modelId, "TestSheetIndex");
338
+ expect(Id64.isValidId64(sheetIndex)).to.be.true;
339
+ const sheetIndexRef = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetIndexRef", priority: 1 });
340
+ expect(Id64.isValidId64(sheetIndexRef)).to.be.true;
341
+ const failInsert = () => SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex, name: "TestSheetIndexRef", priority: 0 });
342
+ expect(failInsert).throws();
343
+ });
283
344
  });
284
- it("Should insert SheetIndexReferences without a SheetIndexRef", async () => {
285
- const subjectId = iModel.elements.getRootSubject().id;
286
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
287
- expect(Id64.isValidId64(modelId)).to.be.true;
288
- const sheetIndex1Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex");
289
- expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
290
- const sheetRef = SheetIndexReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestSheetIndexRef", priority: 1 });
291
- expect(Id64.isValidId64(sheetRef)).to.be.true;
345
+ it("Should insert SheetIndexReferences without a SheetIndexRef", () => {
346
+ withEditTxn(iModel, (txn) => {
347
+ const subjectId = iModel.elements.getRootSubject().id;
348
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
349
+ expect(Id64.isValidId64(modelId)).to.be.true;
350
+ const sheetIndex1Id = SheetIndex.insert(txn, modelId, "TestSheetIndex");
351
+ expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
352
+ const sheetRef = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestSheetIndexRef", priority: 1 });
353
+ expect(Id64.isValidId64(sheetRef)).to.be.true;
354
+ });
292
355
  });
293
- it("Should insert and with a SheetIndexRef", async () => {
294
- const subjectId = iModel.elements.getRootSubject().id;
295
- const modelId = SheetIndexModel.insert(iModel, subjectId, "TestSheetIndexModel");
296
- expect(Id64.isValidId64(modelId)).to.be.true;
297
- const sheetIndex1Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex-1");
298
- expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
299
- const sheetIndex2Id = SheetIndex.insert(iModel, modelId, "TestSheetIndex-2");
300
- expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
301
- const sheetIndexRefId = SheetIndexReference.insert({ iModelDb: iModel, sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestSheetRef", priority: 1, sheetIndexId: sheetIndex2Id });
302
- expect(Id64.isValidId64(sheetIndexRefId)).to.be.true;
303
- const ref = iModel.elements.tryGetElement(sheetIndexRefId);
304
- expect(ref).to.not.be.undefined;
305
- const relationship = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });
306
- expect(relationship).to.not.be.undefined;
307
- expect(relationship?.classFullName).equals(SheetIndexReferenceRefersToSheetIndex.classFullName);
308
- expect(ref?.sheetIndex?.id).equals(sheetIndex2Id);
356
+ it("Should insert and with a SheetIndexRef", () => {
357
+ withEditTxn(iModel, (txn) => {
358
+ const subjectId = iModel.elements.getRootSubject().id;
359
+ const modelId = SheetIndexModel.insert(txn, subjectId, "TestSheetIndexModel");
360
+ expect(Id64.isValidId64(modelId)).to.be.true;
361
+ const sheetIndex1Id = SheetIndex.insert(txn, modelId, "TestSheetIndex-1");
362
+ expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
363
+ const sheetIndex2Id = SheetIndex.insert(txn, modelId, "TestSheetIndex-2");
364
+ expect(Id64.isValidId64(sheetIndex1Id)).to.be.true;
365
+ const sheetIndexRefId = SheetIndexReference.insert(txn, { sheetIndexModelId: modelId, parentId: sheetIndex1Id, name: "TestSheetRef", priority: 1, sheetIndexId: sheetIndex2Id });
366
+ expect(Id64.isValidId64(sheetIndexRefId)).to.be.true;
367
+ const ref = iModel.elements.tryGetElement(sheetIndexRefId);
368
+ expect(ref).to.not.be.undefined;
369
+ const relationship = iModel.relationships.tryGetInstanceProps(SheetIndexReferenceRefersToSheetIndex.classFullName, { sourceId: sheetIndexRefId, targetId: sheetIndex2Id });
370
+ expect(relationship).to.not.be.undefined;
371
+ expect(relationship?.classFullName).equals(SheetIndexReferenceRefersToSheetIndex.classFullName);
372
+ expect(ref?.sheetIndex?.id).equals(sheetIndex2Id);
373
+ });
309
374
  });
310
375
  });
311
376
  });