@itwin/core-backend 5.0.0-dev.10 → 5.0.0-dev.102

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 (1039) hide show
  1. package/CHANGELOG.md +65 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +15 -35
  3. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  4. package/lib/cjs/BackendHubAccess.js +2 -0
  5. package/lib/cjs/BackendHubAccess.js.map +1 -1
  6. package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
  7. package/lib/cjs/BisCoreSchema.js +2 -0
  8. package/lib/cjs/BisCoreSchema.js.map +1 -1
  9. package/lib/cjs/BlobContainerService.d.ts +4 -4
  10. package/lib/cjs/BlobContainerService.d.ts.map +1 -1
  11. package/lib/cjs/BlobContainerService.js.map +1 -1
  12. package/lib/cjs/BriefcaseManager.d.ts +10 -0
  13. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  14. package/lib/cjs/BriefcaseManager.js +63 -20
  15. package/lib/cjs/BriefcaseManager.js.map +1 -1
  16. package/lib/cjs/Category.js +6 -1
  17. package/lib/cjs/Category.js.map +1 -1
  18. package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
  19. package/lib/cjs/ChangeSummaryManager.js +102 -27
  20. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  21. package/lib/cjs/ChangedElementsDb.d.ts +3 -3
  22. package/lib/cjs/ChangedElementsDb.d.ts.map +1 -1
  23. package/lib/cjs/ChangedElementsDb.js +8 -7
  24. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  25. package/lib/cjs/ChangesetECAdaptor.d.ts +3 -3
  26. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  27. package/lib/cjs/ChangesetECAdaptor.js +32 -19
  28. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  29. package/lib/cjs/CheckpointManager.d.ts +16 -15
  30. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  31. package/lib/cjs/CheckpointManager.js +55 -69
  32. package/lib/cjs/CheckpointManager.js.map +1 -1
  33. package/lib/cjs/ClassRegistry.d.ts +46 -2
  34. package/lib/cjs/ClassRegistry.d.ts.map +1 -1
  35. package/lib/cjs/ClassRegistry.js +93 -37
  36. package/lib/cjs/ClassRegistry.js.map +1 -1
  37. package/lib/cjs/CloudSqlite.d.ts +2 -1
  38. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  39. package/lib/cjs/CloudSqlite.js +15 -8
  40. package/lib/cjs/CloudSqlite.js.map +1 -1
  41. package/lib/cjs/CodeService.d.ts +2 -0
  42. package/lib/cjs/CodeService.d.ts.map +1 -1
  43. package/lib/cjs/CodeService.js +4 -0
  44. package/lib/cjs/CodeService.js.map +1 -1
  45. package/lib/cjs/CodeSpecs.js +3 -2
  46. package/lib/cjs/CodeSpecs.js.map +1 -1
  47. package/lib/cjs/CustomViewState3dCreator.js +7 -6
  48. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  49. package/lib/cjs/DevTools.js +16 -16
  50. package/lib/cjs/DevTools.js.map +1 -1
  51. package/lib/cjs/DisplayStyle.js +2 -0
  52. package/lib/cjs/DisplayStyle.js.map +1 -1
  53. package/lib/cjs/ECDb.d.ts +53 -60
  54. package/lib/cjs/ECDb.d.ts.map +1 -1
  55. package/lib/cjs/ECDb.js +115 -73
  56. package/lib/cjs/ECDb.js.map +1 -1
  57. package/lib/cjs/ECSchemaXmlContext.js +1 -0
  58. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  59. package/lib/cjs/ECSqlStatement.d.ts +185 -4
  60. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  61. package/lib/cjs/ECSqlStatement.js +237 -9
  62. package/lib/cjs/ECSqlStatement.js.map +1 -1
  63. package/lib/cjs/Element.d.ts +29 -26
  64. package/lib/cjs/Element.d.ts.map +1 -1
  65. package/lib/cjs/Element.js +173 -48
  66. package/lib/cjs/Element.js.map +1 -1
  67. package/lib/cjs/ElementAspect.d.ts +0 -5
  68. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  69. package/lib/cjs/ElementAspect.js +25 -16
  70. package/lib/cjs/ElementAspect.js.map +1 -1
  71. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  72. package/lib/cjs/ElementTreeWalker.js +17 -12
  73. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  74. package/lib/cjs/Entity.d.ts +46 -10
  75. package/lib/cjs/Entity.d.ts.map +1 -1
  76. package/lib/cjs/Entity.js +79 -16
  77. package/lib/cjs/Entity.js.map +1 -1
  78. package/lib/cjs/ExportGraphics.js +4 -0
  79. package/lib/cjs/ExportGraphics.js.map +1 -1
  80. package/lib/cjs/ExternalSource.js +22 -0
  81. package/lib/cjs/ExternalSource.js.map +1 -1
  82. package/lib/cjs/FontFile.d.ts +68 -0
  83. package/lib/cjs/FontFile.d.ts.map +1 -0
  84. package/lib/cjs/FontFile.js +36 -0
  85. package/lib/cjs/FontFile.js.map +1 -0
  86. package/lib/cjs/GeoCoordConfig.js +8 -8
  87. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  88. package/lib/cjs/GeometrySummary.js +6 -3
  89. package/lib/cjs/GeometrySummary.js.map +1 -1
  90. package/lib/cjs/IModelDb.d.ts +208 -73
  91. package/lib/cjs/IModelDb.d.ts.map +1 -1
  92. package/lib/cjs/IModelDb.js +367 -167
  93. package/lib/cjs/IModelDb.js.map +1 -1
  94. package/lib/cjs/IModelDbFonts.d.ts +54 -0
  95. package/lib/cjs/IModelDbFonts.d.ts.map +1 -0
  96. package/lib/cjs/{IModelCloneContext.js → IModelDbFonts.js} +2 -7
  97. package/lib/cjs/IModelDbFonts.js.map +1 -0
  98. package/lib/cjs/IModelElementCloneContext.d.ts +2 -0
  99. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  100. package/lib/cjs/IModelElementCloneContext.js +12 -1
  101. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  102. package/lib/cjs/IModelHost.d.ts +14 -14
  103. package/lib/cjs/IModelHost.d.ts.map +1 -1
  104. package/lib/cjs/IModelHost.js +75 -42
  105. package/lib/cjs/IModelHost.js.map +1 -1
  106. package/lib/cjs/IModelJsFs.d.ts.map +1 -1
  107. package/lib/cjs/IModelJsFs.js +17 -1
  108. package/lib/cjs/IModelJsFs.js.map +1 -1
  109. package/lib/cjs/ImageSourceConversion.d.ts +49 -0
  110. package/lib/cjs/ImageSourceConversion.d.ts.map +1 -0
  111. package/lib/cjs/ImageSourceConversion.js +37 -0
  112. package/lib/cjs/ImageSourceConversion.js.map +1 -0
  113. package/lib/cjs/IpcHost.d.ts.map +1 -1
  114. package/lib/cjs/IpcHost.js +19 -33
  115. package/lib/cjs/IpcHost.js.map +1 -1
  116. package/lib/cjs/LocalHub.js +8 -2
  117. package/lib/cjs/LocalHub.js.map +1 -1
  118. package/lib/cjs/LocalhostIpcHost.js +5 -6
  119. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  120. package/lib/cjs/Material.js +40 -0
  121. package/lib/cjs/Material.js.map +1 -1
  122. package/lib/cjs/Model.d.ts +1 -1
  123. package/lib/cjs/Model.d.ts.map +1 -1
  124. package/lib/cjs/Model.js +27 -2
  125. package/lib/cjs/Model.js.map +1 -1
  126. package/lib/cjs/NativeAppStorage.js +5 -3
  127. package/lib/cjs/NativeAppStorage.js.map +1 -1
  128. package/lib/cjs/NativeHost.js +6 -3
  129. package/lib/cjs/NativeHost.js.map +1 -1
  130. package/lib/cjs/NavigationRelationship.js +25 -25
  131. package/lib/cjs/NavigationRelationship.js.map +1 -1
  132. package/lib/cjs/PromiseMemoizer.d.ts +2 -3
  133. package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
  134. package/lib/cjs/PromiseMemoizer.js +12 -5
  135. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  136. package/lib/cjs/PropertyStore.js +1 -4
  137. package/lib/cjs/PropertyStore.js.map +1 -1
  138. package/lib/cjs/Relationship.d.ts.map +1 -1
  139. package/lib/cjs/Relationship.js +15 -1
  140. package/lib/cjs/Relationship.js.map +1 -1
  141. package/lib/cjs/SQLiteDb.d.ts +6 -4
  142. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  143. package/lib/cjs/SQLiteDb.js +74 -15
  144. package/lib/cjs/SQLiteDb.js.map +1 -1
  145. package/lib/cjs/Schema.d.ts +25 -1
  146. package/lib/cjs/Schema.d.ts.map +1 -1
  147. package/lib/cjs/Schema.js +44 -8
  148. package/lib/cjs/Schema.js.map +1 -1
  149. package/lib/cjs/SchemaSync.js +1 -4
  150. package/lib/cjs/SchemaSync.js.map +1 -1
  151. package/lib/cjs/SheetIndex.js +6 -0
  152. package/lib/cjs/SheetIndex.js.map +1 -1
  153. package/lib/cjs/SqliteChangesetReader.d.ts +11 -3
  154. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  155. package/lib/cjs/SqliteChangesetReader.js +21 -5
  156. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  157. package/lib/cjs/SqliteStatement.d.ts +4 -2
  158. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  159. package/lib/cjs/SqliteStatement.js +13 -1
  160. package/lib/cjs/SqliteStatement.js.map +1 -1
  161. package/lib/cjs/TextAnnotationGeometry.d.ts.map +1 -1
  162. package/lib/cjs/TextAnnotationGeometry.js +38 -11
  163. package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
  164. package/lib/cjs/TextAnnotationLayout.d.ts +10 -3
  165. package/lib/cjs/TextAnnotationLayout.d.ts.map +1 -1
  166. package/lib/cjs/TextAnnotationLayout.js +56 -18
  167. package/lib/cjs/TextAnnotationLayout.js.map +1 -1
  168. package/lib/cjs/Texture.js +3 -0
  169. package/lib/cjs/Texture.js.map +1 -1
  170. package/lib/cjs/TileStorage.js +6 -1
  171. package/lib/cjs/TileStorage.js.map +1 -1
  172. package/lib/cjs/TxnManager.d.ts +55 -4
  173. package/lib/cjs/TxnManager.d.ts.map +1 -1
  174. package/lib/cjs/TxnManager.js +234 -58
  175. package/lib/cjs/TxnManager.js.map +1 -1
  176. package/lib/cjs/ViewDefinition.d.ts +6 -6
  177. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  178. package/lib/cjs/ViewDefinition.js +81 -26
  179. package/lib/cjs/ViewDefinition.js.map +1 -1
  180. package/lib/cjs/ViewStateHydrator.d.ts +0 -1
  181. package/lib/cjs/ViewStateHydrator.d.ts.map +1 -1
  182. package/lib/cjs/ViewStateHydrator.js +1 -11
  183. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  184. package/lib/cjs/ViewStore.d.ts.map +1 -1
  185. package/lib/cjs/ViewStore.js +5 -2
  186. package/lib/cjs/ViewStore.js.map +1 -1
  187. package/lib/cjs/core-backend.d.ts +7 -2
  188. package/lib/cjs/core-backend.d.ts.map +1 -1
  189. package/lib/cjs/core-backend.js +7 -2
  190. package/lib/cjs/core-backend.js.map +1 -1
  191. package/lib/cjs/domains/FunctionalElements.js +1 -1
  192. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  193. package/lib/cjs/internal/ChangesetConflictArgs.d.ts +40 -2
  194. package/lib/cjs/internal/ChangesetConflictArgs.d.ts.map +1 -1
  195. package/lib/cjs/internal/ChangesetConflictArgs.js +101 -0
  196. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  197. package/lib/cjs/internal/ChannelAdmin.d.ts +1 -1
  198. package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
  199. package/lib/cjs/internal/ChannelAdmin.js +16 -13
  200. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  201. package/lib/cjs/internal/FontFileImpl.d.ts +34 -0
  202. package/lib/cjs/internal/FontFileImpl.d.ts.map +1 -0
  203. package/lib/cjs/internal/FontFileImpl.js +143 -0
  204. package/lib/cjs/internal/FontFileImpl.js.map +1 -0
  205. package/lib/cjs/{HubMock.d.ts → internal/HubMock.d.ts} +6 -7
  206. package/lib/cjs/internal/HubMock.d.ts.map +1 -0
  207. package/lib/cjs/{HubMock.js → internal/HubMock.js} +40 -15
  208. package/lib/cjs/internal/HubMock.js.map +1 -0
  209. package/lib/cjs/internal/IModelDbFontsImpl.d.ts +7 -0
  210. package/lib/cjs/internal/IModelDbFontsImpl.d.ts.map +1 -0
  211. package/lib/cjs/internal/IModelDbFontsImpl.js +186 -0
  212. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -0
  213. package/lib/cjs/internal/NoLocks.js +2 -5
  214. package/lib/cjs/internal/NoLocks.js.map +1 -1
  215. package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
  216. package/lib/cjs/internal/ServerBasedLocks.js +6 -6
  217. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  218. package/lib/cjs/internal/Symbols.d.ts +11 -0
  219. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  220. package/lib/cjs/internal/Symbols.js +12 -1
  221. package/lib/cjs/internal/Symbols.js.map +1 -1
  222. package/lib/cjs/internal/workspace/SettingsImpl.js +6 -9
  223. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  224. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js +8 -12
  225. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  226. package/lib/cjs/internal/workspace/WorkspaceImpl.js +22 -17
  227. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  228. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js +1 -4
  229. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  230. package/lib/cjs/rpc/multipart.d.ts.map +1 -1
  231. package/lib/cjs/rpc/multipart.js +2 -1
  232. package/lib/cjs/rpc/multipart.js.map +1 -1
  233. package/lib/cjs/rpc/tracing.js +2 -2
  234. package/lib/cjs/rpc/tracing.js.map +1 -1
  235. package/lib/cjs/rpc/web/request.d.ts.map +1 -1
  236. package/lib/cjs/rpc/web/request.js +2 -1
  237. package/lib/cjs/rpc/web/request.js.map +1 -1
  238. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
  239. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +6 -2
  240. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  241. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +5 -3
  242. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  243. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  244. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +15 -25
  245. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  246. package/lib/esm/BackendHubAccess.d.ts +209 -0
  247. package/lib/esm/BackendHubAccess.d.ts.map +1 -0
  248. package/lib/esm/BackendHubAccess.js +41 -0
  249. package/lib/esm/BackendHubAccess.js.map +1 -0
  250. package/lib/esm/BackendLoggerCategory.d.ts +88 -0
  251. package/lib/esm/BackendLoggerCategory.d.ts.map +1 -0
  252. package/lib/esm/BackendLoggerCategory.js +93 -0
  253. package/lib/esm/BackendLoggerCategory.js.map +1 -0
  254. package/lib/esm/BisCoreSchema.d.ts +22 -0
  255. package/lib/esm/BisCoreSchema.d.ts.map +1 -0
  256. package/lib/esm/BisCoreSchema.js +61 -0
  257. package/lib/esm/BisCoreSchema.js.map +1 -0
  258. package/lib/esm/BlobContainerService.d.ts +159 -0
  259. package/lib/esm/BlobContainerService.d.ts.map +1 -0
  260. package/lib/esm/BlobContainerService.js +15 -0
  261. package/lib/esm/BlobContainerService.js.map +1 -0
  262. package/lib/esm/BriefcaseManager.d.ts +213 -0
  263. package/lib/esm/BriefcaseManager.d.ts.map +1 -0
  264. package/lib/esm/BriefcaseManager.js +520 -0
  265. package/lib/esm/BriefcaseManager.js.map +1 -0
  266. package/lib/esm/Category.d.ts +136 -0
  267. package/lib/esm/Category.d.ts.map +1 -0
  268. package/lib/esm/Category.js +224 -0
  269. package/lib/esm/Category.js.map +1 -0
  270. package/lib/esm/ChangeSummaryManager.d.ts +161 -0
  271. package/lib/esm/ChangeSummaryManager.d.ts.map +1 -0
  272. package/lib/esm/ChangeSummaryManager.js +421 -0
  273. package/lib/esm/ChangeSummaryManager.js.map +1 -0
  274. package/lib/esm/ChangedElementsDb.d.ts +101 -0
  275. package/lib/esm/ChangedElementsDb.d.ts.map +1 -0
  276. package/lib/esm/ChangedElementsDb.js +165 -0
  277. package/lib/esm/ChangedElementsDb.js.map +1 -0
  278. package/lib/esm/ChangesetECAdaptor.d.ts +203 -0
  279. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -0
  280. package/lib/esm/ChangesetECAdaptor.js +815 -0
  281. package/lib/esm/ChangesetECAdaptor.js.map +1 -0
  282. package/lib/esm/ChannelControl.d.ts +68 -0
  283. package/lib/esm/ChannelControl.d.ts.map +1 -0
  284. package/lib/esm/ChannelControl.js +15 -0
  285. package/lib/esm/ChannelControl.js.map +1 -0
  286. package/lib/esm/CheckpointManager.d.ts +124 -0
  287. package/lib/esm/CheckpointManager.d.ts.map +1 -0
  288. package/lib/esm/CheckpointManager.js +359 -0
  289. package/lib/esm/CheckpointManager.js.map +1 -0
  290. package/lib/esm/ClassRegistry.d.ts +134 -0
  291. package/lib/esm/ClassRegistry.d.ts.map +1 -0
  292. package/lib/esm/ClassRegistry.js +324 -0
  293. package/lib/esm/ClassRegistry.js.map +1 -0
  294. package/lib/esm/CloudSqlite.d.ts +682 -0
  295. package/lib/esm/CloudSqlite.d.ts.map +1 -0
  296. package/lib/esm/CloudSqlite.js +511 -0
  297. package/lib/esm/CloudSqlite.js.map +1 -0
  298. package/lib/esm/CodeService.d.ts +402 -0
  299. package/lib/esm/CodeService.d.ts.map +1 -0
  300. package/lib/esm/CodeService.js +65 -0
  301. package/lib/esm/CodeService.js.map +1 -0
  302. package/lib/esm/CodeSpecs.d.ts +59 -0
  303. package/lib/esm/CodeSpecs.d.ts.map +1 -0
  304. package/lib/esm/CodeSpecs.js +152 -0
  305. package/lib/esm/CodeSpecs.js.map +1 -0
  306. package/lib/esm/ConcurrentQuery.d.ts +14 -0
  307. package/lib/esm/ConcurrentQuery.d.ts.map +1 -0
  308. package/lib/esm/ConcurrentQuery.js +33 -0
  309. package/lib/esm/ConcurrentQuery.js.map +1 -0
  310. package/lib/esm/CustomViewState3dCreator.d.ts +22 -0
  311. package/lib/esm/CustomViewState3dCreator.d.ts.map +1 -0
  312. package/lib/esm/CustomViewState3dCreator.js +78 -0
  313. package/lib/esm/CustomViewState3dCreator.js.map +1 -0
  314. package/lib/esm/DevTools.d.ts +73 -0
  315. package/lib/esm/DevTools.d.ts.map +1 -0
  316. package/lib/esm/DevTools.js +153 -0
  317. package/lib/esm/DevTools.js.map +1 -0
  318. package/lib/esm/DisplayStyle.d.ts +99 -0
  319. package/lib/esm/DisplayStyle.d.ts.map +1 -0
  320. package/lib/esm/DisplayStyle.js +264 -0
  321. package/lib/esm/DisplayStyle.js.map +1 -0
  322. package/lib/esm/ECDb.d.ts +206 -0
  323. package/lib/esm/ECDb.d.ts.map +1 -0
  324. package/lib/esm/ECDb.js +410 -0
  325. package/lib/esm/ECDb.js.map +1 -0
  326. package/lib/esm/ECSchemaXmlContext.d.ts +46 -0
  327. package/lib/esm/ECSchemaXmlContext.d.ts.map +1 -0
  328. package/lib/esm/ECSchemaXmlContext.js +66 -0
  329. package/lib/esm/ECSchemaXmlContext.js.map +1 -0
  330. package/lib/esm/ECSqlStatement.d.ts +671 -0
  331. package/lib/esm/ECSqlStatement.d.ts.map +1 -0
  332. package/lib/esm/ECSqlStatement.js +1028 -0
  333. package/lib/esm/ECSqlStatement.js.map +1 -0
  334. package/lib/esm/Element.d.ts +999 -0
  335. package/lib/esm/Element.d.ts.map +1 -0
  336. package/lib/esm/Element.js +1375 -0
  337. package/lib/esm/Element.js.map +1 -0
  338. package/lib/esm/ElementAspect.d.ts +164 -0
  339. package/lib/esm/ElementAspect.d.ts.map +1 -0
  340. package/lib/esm/ElementAspect.js +205 -0
  341. package/lib/esm/ElementAspect.js.map +1 -0
  342. package/lib/esm/ElementGraphics.d.ts +7 -0
  343. package/lib/esm/ElementGraphics.d.ts.map +1 -0
  344. package/lib/esm/ElementGraphics.js +36 -0
  345. package/lib/esm/ElementGraphics.js.map +1 -0
  346. package/lib/esm/ElementTreeWalker.d.ts +182 -0
  347. package/lib/esm/ElementTreeWalker.d.ts.map +1 -0
  348. package/lib/esm/ElementTreeWalker.js +425 -0
  349. package/lib/esm/ElementTreeWalker.js.map +1 -0
  350. package/lib/esm/Entity.d.ts +142 -0
  351. package/lib/esm/Entity.d.ts.map +1 -0
  352. package/lib/esm/Entity.js +186 -0
  353. package/lib/esm/Entity.js.map +1 -0
  354. package/lib/esm/EntityReferences.d.ts +50 -0
  355. package/lib/esm/EntityReferences.d.ts.map +1 -0
  356. package/lib/esm/EntityReferences.js +92 -0
  357. package/lib/esm/EntityReferences.js.map +1 -0
  358. package/lib/esm/ExportGraphics.d.ts +318 -0
  359. package/lib/esm/ExportGraphics.d.ts.map +1 -0
  360. package/lib/esm/ExportGraphics.js +209 -0
  361. package/lib/esm/ExportGraphics.js.map +1 -0
  362. package/lib/esm/ExternalSource.d.ts +89 -0
  363. package/lib/esm/ExternalSource.d.ts.map +1 -0
  364. package/lib/esm/ExternalSource.js +139 -0
  365. package/lib/esm/ExternalSource.js.map +1 -0
  366. package/lib/esm/FontFile.d.ts +68 -0
  367. package/lib/esm/FontFile.d.ts.map +1 -0
  368. package/lib/esm/FontFile.js +33 -0
  369. package/lib/esm/FontFile.js.map +1 -0
  370. package/lib/esm/GeoCoordConfig.d.ts +30 -0
  371. package/lib/esm/GeoCoordConfig.d.ts.map +1 -0
  372. package/lib/esm/GeoCoordConfig.js +78 -0
  373. package/lib/esm/GeoCoordConfig.js.map +1 -0
  374. package/lib/esm/GeographicCRSServices.d.ts +40 -0
  375. package/lib/esm/GeographicCRSServices.d.ts.map +1 -0
  376. package/lib/esm/GeographicCRSServices.js +17 -0
  377. package/lib/esm/GeographicCRSServices.js.map +1 -0
  378. package/lib/esm/GeometrySummary.d.ts +5 -0
  379. package/lib/esm/GeometrySummary.d.ts.map +1 -0
  380. package/lib/esm/GeometrySummary.js +381 -0
  381. package/lib/esm/GeometrySummary.js.map +1 -0
  382. package/lib/esm/IModelDb.d.ts +1402 -0
  383. package/lib/esm/IModelDb.d.ts.map +1 -0
  384. package/lib/esm/IModelDb.js +3260 -0
  385. package/lib/esm/IModelDb.js.map +1 -0
  386. package/lib/esm/IModelDbFonts.d.ts +54 -0
  387. package/lib/esm/IModelDbFonts.d.ts.map +1 -0
  388. package/lib/esm/IModelDbFonts.js +9 -0
  389. package/lib/esm/IModelDbFonts.js.map +1 -0
  390. package/lib/esm/IModelElementCloneContext.d.ts +92 -0
  391. package/lib/esm/IModelElementCloneContext.d.ts.map +1 -0
  392. package/lib/esm/IModelElementCloneContext.js +168 -0
  393. package/lib/esm/IModelElementCloneContext.js.map +1 -0
  394. package/lib/esm/IModelHost.d.ts +387 -0
  395. package/lib/esm/IModelHost.d.ts.map +1 -0
  396. package/lib/esm/IModelHost.js +502 -0
  397. package/lib/esm/IModelHost.js.map +1 -0
  398. package/lib/esm/IModelJsFs.d.ts +62 -0
  399. package/lib/esm/IModelJsFs.d.ts.map +1 -0
  400. package/lib/esm/IModelJsFs.js +151 -0
  401. package/lib/esm/IModelJsFs.js.map +1 -0
  402. package/lib/esm/ImageSourceConversion.d.ts +49 -0
  403. package/lib/esm/ImageSourceConversion.d.ts.map +1 -0
  404. package/lib/esm/ImageSourceConversion.js +33 -0
  405. package/lib/esm/ImageSourceConversion.js.map +1 -0
  406. package/lib/esm/IpcHost.d.ts +111 -0
  407. package/lib/esm/IpcHost.d.ts.map +1 -0
  408. package/lib/esm/IpcHost.js +292 -0
  409. package/lib/esm/IpcHost.js.map +1 -0
  410. package/lib/esm/LineStyle.d.ts +312 -0
  411. package/lib/esm/LineStyle.d.ts.map +1 -0
  412. package/lib/esm/LineStyle.js +293 -0
  413. package/lib/esm/LineStyle.js.map +1 -0
  414. package/lib/esm/LocalHub.d.ts +163 -0
  415. package/lib/esm/LocalHub.d.ts.map +1 -0
  416. package/lib/esm/LocalHub.js +583 -0
  417. package/lib/esm/LocalHub.js.map +1 -0
  418. package/lib/esm/LocalhostIpcHost.d.ts +22 -0
  419. package/lib/esm/LocalhostIpcHost.d.ts.map +1 -0
  420. package/lib/esm/LocalhostIpcHost.js +74 -0
  421. package/lib/esm/LocalhostIpcHost.js.map +1 -0
  422. package/lib/esm/LockControl.d.ts +73 -0
  423. package/lib/esm/LockControl.d.ts.map +1 -0
  424. package/lib/esm/LockControl.js +9 -0
  425. package/lib/esm/LockControl.js.map +1 -0
  426. package/lib/esm/Material.d.ts +131 -0
  427. package/lib/esm/Material.d.ts.map +1 -0
  428. package/lib/esm/Material.js +235 -0
  429. package/lib/esm/Material.js.map +1 -0
  430. package/lib/esm/Model.d.ts +375 -0
  431. package/lib/esm/Model.d.ts.map +1 -0
  432. package/lib/esm/Model.js +484 -0
  433. package/lib/esm/Model.js.map +1 -0
  434. package/lib/esm/NativeAppStorage.d.ts +52 -0
  435. package/lib/esm/NativeAppStorage.d.ts.map +1 -0
  436. package/lib/esm/NativeAppStorage.js +205 -0
  437. package/lib/esm/NativeAppStorage.js.map +1 -0
  438. package/lib/esm/NativeHost.d.ts +53 -0
  439. package/lib/esm/NativeHost.d.ts.map +1 -0
  440. package/lib/esm/NativeHost.js +158 -0
  441. package/lib/esm/NativeHost.js.map +1 -0
  442. package/lib/esm/NavigationRelationship.d.ts +185 -0
  443. package/lib/esm/NavigationRelationship.d.ts.map +1 -0
  444. package/lib/esm/NavigationRelationship.js +238 -0
  445. package/lib/esm/NavigationRelationship.js.map +1 -0
  446. package/lib/esm/PromiseMemoizer.d.ts +48 -0
  447. package/lib/esm/PromiseMemoizer.d.ts.map +1 -0
  448. package/lib/esm/PromiseMemoizer.js +101 -0
  449. package/lib/esm/PromiseMemoizer.js.map +1 -0
  450. package/lib/esm/PropertyStore.d.ts +134 -0
  451. package/lib/esm/PropertyStore.d.ts.map +1 -0
  452. package/lib/esm/PropertyStore.js +177 -0
  453. package/lib/esm/PropertyStore.js.map +1 -0
  454. package/lib/esm/Relationship.d.ts +399 -0
  455. package/lib/esm/Relationship.d.ts.map +1 -0
  456. package/lib/esm/Relationship.js +476 -0
  457. package/lib/esm/Relationship.js.map +1 -0
  458. package/lib/esm/RpcBackend.d.ts +6 -0
  459. package/lib/esm/RpcBackend.d.ts.map +1 -0
  460. package/lib/esm/RpcBackend.js +28 -0
  461. package/lib/esm/RpcBackend.js.map +1 -0
  462. package/lib/esm/SQLiteDb.d.ts +324 -0
  463. package/lib/esm/SQLiteDb.d.ts.map +1 -0
  464. package/lib/esm/SQLiteDb.js +379 -0
  465. package/lib/esm/SQLiteDb.js.map +1 -0
  466. package/lib/esm/Schema.d.ts +79 -0
  467. package/lib/esm/Schema.d.ts.map +1 -0
  468. package/lib/esm/Schema.js +113 -0
  469. package/lib/esm/Schema.js.map +1 -0
  470. package/lib/esm/SchemaSync.d.ts +47 -0
  471. package/lib/esm/SchemaSync.d.ts.map +1 -0
  472. package/lib/esm/SchemaSync.js +148 -0
  473. package/lib/esm/SchemaSync.js.map +1 -0
  474. package/lib/esm/SchemaUtils.d.ts +19 -0
  475. package/lib/esm/SchemaUtils.d.ts.map +1 -0
  476. package/lib/esm/SchemaUtils.js +37 -0
  477. package/lib/esm/SchemaUtils.js.map +1 -0
  478. package/lib/esm/SheetIndex.d.ts +148 -0
  479. package/lib/esm/SheetIndex.d.ts.map +1 -0
  480. package/lib/esm/SheetIndex.js +228 -0
  481. package/lib/esm/SheetIndex.js.map +1 -0
  482. package/lib/esm/SqliteChangesetReader.d.ts +278 -0
  483. package/lib/esm/SqliteChangesetReader.d.ts.map +1 -0
  484. package/lib/esm/SqliteChangesetReader.js +337 -0
  485. package/lib/esm/SqliteChangesetReader.js.map +1 -0
  486. package/lib/esm/SqliteStatement.d.ts +375 -0
  487. package/lib/esm/SqliteStatement.d.ts.map +1 -0
  488. package/lib/esm/SqliteStatement.js +615 -0
  489. package/lib/esm/SqliteStatement.js.map +1 -0
  490. package/lib/esm/TextAnnotationElement.d.ts +54 -0
  491. package/lib/esm/TextAnnotationElement.d.ts.map +1 -0
  492. package/lib/esm/TextAnnotationElement.js +89 -0
  493. package/lib/esm/TextAnnotationElement.js.map +1 -0
  494. package/lib/esm/TextAnnotationGeometry.d.ts +32 -0
  495. package/lib/esm/TextAnnotationGeometry.d.ts.map +1 -0
  496. package/lib/esm/TextAnnotationGeometry.js +181 -0
  497. package/lib/esm/TextAnnotationGeometry.js.map +1 -0
  498. package/lib/esm/TextAnnotationLayout.d.ts +177 -0
  499. package/lib/esm/TextAnnotationLayout.d.ts.map +1 -0
  500. package/lib/esm/TextAnnotationLayout.js +513 -0
  501. package/lib/esm/TextAnnotationLayout.js.map +1 -0
  502. package/lib/esm/Texture.d.ts +58 -0
  503. package/lib/esm/Texture.d.ts.map +1 -0
  504. package/lib/esm/Texture.js +81 -0
  505. package/lib/esm/Texture.js.map +1 -0
  506. package/lib/esm/TileStorage.d.ts +59 -0
  507. package/lib/esm/TileStorage.d.ts.map +1 -0
  508. package/lib/esm/TileStorage.js +158 -0
  509. package/lib/esm/TileStorage.js.map +1 -0
  510. package/lib/esm/TxnManager.d.ts +296 -0
  511. package/lib/esm/TxnManager.d.ts.map +1 -0
  512. package/lib/esm/TxnManager.js +619 -0
  513. package/lib/esm/TxnManager.js.map +1 -0
  514. package/lib/esm/ViewDefinition.d.ts +392 -0
  515. package/lib/esm/ViewDefinition.d.ts.map +1 -0
  516. package/lib/esm/ViewDefinition.js +638 -0
  517. package/lib/esm/ViewDefinition.js.map +1 -0
  518. package/lib/esm/ViewStateHydrator.d.ts +14 -0
  519. package/lib/esm/ViewStateHydrator.d.ts.map +1 -0
  520. package/lib/esm/ViewStateHydrator.js +89 -0
  521. package/lib/esm/ViewStateHydrator.js.map +1 -0
  522. package/lib/esm/ViewStore.d.ts +502 -0
  523. package/lib/esm/ViewStore.d.ts.map +1 -0
  524. package/lib/esm/ViewStore.js +1260 -0
  525. package/lib/esm/ViewStore.js.map +1 -0
  526. package/lib/esm/core-backend.d.ts +182 -0
  527. package/lib/esm/core-backend.d.ts.map +1 -0
  528. package/lib/esm/core-backend.js +186 -0
  529. package/lib/esm/core-backend.js.map +1 -0
  530. package/lib/esm/domains/FunctionalElements.d.ts +86 -0
  531. package/lib/esm/domains/FunctionalElements.d.ts.map +1 -0
  532. package/lib/esm/domains/FunctionalElements.js +117 -0
  533. package/lib/esm/domains/FunctionalElements.js.map +1 -0
  534. package/lib/esm/domains/FunctionalSchema.d.ts +14 -0
  535. package/lib/esm/domains/FunctionalSchema.d.ts.map +1 -0
  536. package/lib/esm/domains/FunctionalSchema.js +37 -0
  537. package/lib/esm/domains/FunctionalSchema.js.map +1 -0
  538. package/lib/esm/domains/GenericElements.d.ts +160 -0
  539. package/lib/esm/domains/GenericElements.d.ts.map +1 -0
  540. package/lib/esm/domains/GenericElements.js +225 -0
  541. package/lib/esm/domains/GenericElements.js.map +1 -0
  542. package/lib/esm/domains/GenericSchema.d.ts +11 -0
  543. package/lib/esm/domains/GenericSchema.d.ts.map +1 -0
  544. package/lib/esm/domains/GenericSchema.js +25 -0
  545. package/lib/esm/domains/GenericSchema.js.map +1 -0
  546. package/lib/esm/internal/ChangesetConflictArgs.d.ts +62 -0
  547. package/lib/esm/internal/ChangesetConflictArgs.d.ts.map +1 -0
  548. package/lib/esm/internal/ChangesetConflictArgs.js +104 -0
  549. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -0
  550. package/lib/esm/internal/ChannelAdmin.d.ts +34 -0
  551. package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -0
  552. package/lib/esm/internal/ChannelAdmin.js +116 -0
  553. package/lib/esm/internal/ChannelAdmin.js.map +1 -0
  554. package/lib/esm/internal/FontFileImpl.d.ts +34 -0
  555. package/lib/esm/internal/FontFileImpl.d.ts.map +1 -0
  556. package/lib/esm/internal/FontFileImpl.js +135 -0
  557. package/lib/esm/internal/FontFileImpl.js.map +1 -0
  558. package/lib/esm/internal/HubMock.d.ts +94 -0
  559. package/lib/esm/internal/HubMock.d.ts.map +1 -0
  560. package/lib/esm/internal/HubMock.js +242 -0
  561. package/lib/esm/internal/HubMock.js.map +1 -0
  562. package/lib/esm/internal/IModelDbFontsImpl.d.ts +7 -0
  563. package/lib/esm/internal/IModelDbFontsImpl.d.ts.map +1 -0
  564. package/lib/esm/internal/IModelDbFontsImpl.js +183 -0
  565. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -0
  566. package/lib/esm/internal/NativePlatform.d.ts +15 -0
  567. package/lib/esm/internal/NativePlatform.d.ts.map +1 -0
  568. package/lib/esm/internal/NativePlatform.js +43 -0
  569. package/lib/esm/internal/NativePlatform.js.map +1 -0
  570. package/lib/esm/internal/NoLocks.d.ts +6 -0
  571. package/lib/esm/internal/NoLocks.d.ts.map +1 -0
  572. package/lib/esm/internal/NoLocks.js +24 -0
  573. package/lib/esm/internal/NoLocks.js.map +1 -0
  574. package/lib/esm/internal/ServerBasedLocks.d.ts +52 -0
  575. package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -0
  576. package/lib/esm/internal/ServerBasedLocks.js +175 -0
  577. package/lib/esm/internal/ServerBasedLocks.js.map +1 -0
  578. package/lib/esm/internal/Symbols.d.ts +22 -0
  579. package/lib/esm/internal/Symbols.d.ts.map +1 -0
  580. package/lib/esm/internal/Symbols.js +29 -0
  581. package/lib/esm/internal/Symbols.js.map +1 -0
  582. package/lib/esm/internal/cross-package.d.ts +4 -0
  583. package/lib/esm/internal/cross-package.d.ts.map +1 -0
  584. package/lib/esm/internal/cross-package.js +8 -0
  585. package/lib/esm/internal/cross-package.js.map +1 -0
  586. package/lib/esm/internal/workspace/SettingsImpl.d.ts +43 -0
  587. package/lib/esm/internal/workspace/SettingsImpl.d.ts.map +1 -0
  588. package/lib/esm/internal/workspace/SettingsImpl.js +154 -0
  589. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -0
  590. package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts +6 -0
  591. package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts.map +1 -0
  592. package/lib/esm/internal/workspace/SettingsSchemasImpl.js +268 -0
  593. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -0
  594. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +41 -0
  595. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -0
  596. package/lib/esm/internal/workspace/WorkspaceImpl.js +691 -0
  597. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -0
  598. package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts +10 -0
  599. package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts.map +1 -0
  600. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js +35 -0
  601. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -0
  602. package/lib/esm/rpc/multipart.d.ts +12 -0
  603. package/lib/esm/rpc/multipart.d.ts.map +1 -0
  604. package/lib/esm/rpc/multipart.js +67 -0
  605. package/lib/esm/rpc/multipart.js.map +1 -0
  606. package/lib/esm/rpc/tracing.d.ts +29 -0
  607. package/lib/esm/rpc/tracing.d.ts.map +1 -0
  608. package/lib/esm/rpc/tracing.js +71 -0
  609. package/lib/esm/rpc/tracing.js.map +1 -0
  610. package/lib/esm/rpc/web/logging.d.ts +10 -0
  611. package/lib/esm/rpc/web/logging.d.ts.map +1 -0
  612. package/lib/esm/rpc/web/logging.js +41 -0
  613. package/lib/esm/rpc/web/logging.js.map +1 -0
  614. package/lib/esm/rpc/web/request.d.ts +7 -0
  615. package/lib/esm/rpc/web/request.d.ts.map +1 -0
  616. package/lib/esm/rpc/web/request.js +71 -0
  617. package/lib/esm/rpc/web/request.js.map +1 -0
  618. package/lib/esm/rpc/web/response.d.ts +7 -0
  619. package/lib/esm/rpc/web/response.d.ts.map +1 -0
  620. package/lib/esm/rpc/web/response.js +136 -0
  621. package/lib/esm/rpc/web/response.js.map +1 -0
  622. package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts +16 -0
  623. package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts.map +1 -0
  624. package/lib/esm/rpc-impl/DevToolsRpcImpl.js +29 -0
  625. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -0
  626. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +51 -0
  627. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -0
  628. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +314 -0
  629. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -0
  630. package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts +21 -0
  631. package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -0
  632. package/lib/esm/rpc-impl/IModelTileRpcImpl.js +193 -0
  633. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -0
  634. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +45 -0
  635. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -0
  636. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js +155 -0
  637. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -0
  638. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +18 -0
  639. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts.map +1 -0
  640. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +41 -0
  641. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -0
  642. package/lib/esm/test/AdvancedEqual.d.ts +38 -0
  643. package/lib/esm/test/AdvancedEqual.d.ts.map +1 -0
  644. package/lib/esm/test/AdvancedEqual.js +67 -0
  645. package/lib/esm/test/AdvancedEqual.js.map +1 -0
  646. package/lib/esm/test/AttachDb.test.d.ts +2 -0
  647. package/lib/esm/test/AttachDb.test.d.ts.map +1 -0
  648. package/lib/esm/test/AttachDb.test.js +157 -0
  649. package/lib/esm/test/AttachDb.test.js.map +1 -0
  650. package/lib/esm/test/GeometryTestUtil.d.ts +7 -0
  651. package/lib/esm/test/GeometryTestUtil.d.ts.map +1 -0
  652. package/lib/esm/test/GeometryTestUtil.js +25 -0
  653. package/lib/esm/test/GeometryTestUtil.js.map +1 -0
  654. package/lib/esm/test/IModelHost.test.d.ts +2 -0
  655. package/lib/esm/test/IModelHost.test.d.ts.map +1 -0
  656. package/lib/esm/test/IModelHost.test.js +187 -0
  657. package/lib/esm/test/IModelHost.test.js.map +1 -0
  658. package/lib/esm/test/IModelTestUtils.d.ts +173 -0
  659. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -0
  660. package/lib/esm/test/IModelTestUtils.js +1125 -0
  661. package/lib/esm/test/IModelTestUtils.js.map +1 -0
  662. package/lib/esm/test/ImageSourceConversion.test.d.ts +2 -0
  663. package/lib/esm/test/ImageSourceConversion.test.d.ts.map +1 -0
  664. package/lib/esm/test/ImageSourceConversion.test.js +171 -0
  665. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -0
  666. package/lib/esm/test/IpcHost.test.d.ts +2 -0
  667. package/lib/esm/test/IpcHost.test.d.ts.map +1 -0
  668. package/lib/esm/test/IpcHost.test.js +55 -0
  669. package/lib/esm/test/IpcHost.test.js.map +1 -0
  670. package/lib/esm/test/KnownTestLocations.d.ts +7 -0
  671. package/lib/esm/test/KnownTestLocations.d.ts.map +1 -0
  672. package/lib/esm/test/KnownTestLocations.js +27 -0
  673. package/lib/esm/test/KnownTestLocations.js.map +1 -0
  674. package/lib/esm/test/PrintElementTree.d.ts +7 -0
  675. package/lib/esm/test/PrintElementTree.d.ts.map +1 -0
  676. package/lib/esm/test/PrintElementTree.js +36 -0
  677. package/lib/esm/test/PrintElementTree.js.map +1 -0
  678. package/lib/esm/test/PropertyDb.test.d.ts +2 -0
  679. package/lib/esm/test/PropertyDb.test.d.ts.map +1 -0
  680. package/lib/esm/test/PropertyDb.test.js +71 -0
  681. package/lib/esm/test/PropertyDb.test.js.map +1 -0
  682. package/lib/esm/test/RevisionUtility.d.ts +33 -0
  683. package/lib/esm/test/RevisionUtility.d.ts.map +1 -0
  684. package/lib/esm/test/RevisionUtility.js +52 -0
  685. package/lib/esm/test/RevisionUtility.js.map +1 -0
  686. package/lib/esm/test/SchemaUtils.test.d.ts +2 -0
  687. package/lib/esm/test/SchemaUtils.test.d.ts.map +1 -0
  688. package/lib/esm/test/SchemaUtils.test.js +99 -0
  689. package/lib/esm/test/SchemaUtils.test.js.map +1 -0
  690. package/lib/esm/test/SequentialLogMatcher.d.ts +35 -0
  691. package/lib/esm/test/SequentialLogMatcher.d.ts.map +1 -0
  692. package/lib/esm/test/SequentialLogMatcher.js +130 -0
  693. package/lib/esm/test/SequentialLogMatcher.js.map +1 -0
  694. package/lib/esm/test/TestChangeSetUtility.d.ts +23 -0
  695. package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -0
  696. package/lib/esm/test/TestChangeSetUtility.js +65 -0
  697. package/lib/esm/test/TestChangeSetUtility.js.map +1 -0
  698. package/lib/esm/test/TestUtils.d.ts +38 -0
  699. package/lib/esm/test/TestUtils.d.ts.map +1 -0
  700. package/lib/esm/test/TestUtils.js +99 -0
  701. package/lib/esm/test/TestUtils.js.map +1 -0
  702. package/lib/esm/test/annotations/TextAnnotation.test.d.ts +2 -0
  703. package/lib/esm/test/annotations/TextAnnotation.test.d.ts.map +1 -0
  704. package/lib/esm/test/annotations/TextAnnotation.test.js +1135 -0
  705. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -0
  706. package/lib/esm/test/categories/Category.test.d.ts +2 -0
  707. package/lib/esm/test/categories/Category.test.d.ts.map +1 -0
  708. package/lib/esm/test/categories/Category.test.js +51 -0
  709. package/lib/esm/test/categories/Category.test.js.map +1 -0
  710. package/lib/esm/test/codespec/CodeSpec.test.d.ts +2 -0
  711. package/lib/esm/test/codespec/CodeSpec.test.d.ts.map +1 -0
  712. package/lib/esm/test/codespec/CodeSpec.test.js +51 -0
  713. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -0
  714. package/lib/esm/test/ecdb/CTE.test.d.ts +2 -0
  715. package/lib/esm/test/ecdb/CTE.test.d.ts.map +1 -0
  716. package/lib/esm/test/ecdb/CTE.test.js +177 -0
  717. package/lib/esm/test/ecdb/CTE.test.js.map +1 -0
  718. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts +2 -0
  719. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts.map +1 -0
  720. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +167 -0
  721. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -0
  722. package/lib/esm/test/ecdb/ECDb.test.d.ts +2 -0
  723. package/lib/esm/test/ecdb/ECDb.test.d.ts.map +1 -0
  724. package/lib/esm/test/ecdb/ECDb.test.js +653 -0
  725. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -0
  726. package/lib/esm/test/ecdb/ECDbTestHelper.d.ts +5 -0
  727. package/lib/esm/test/ecdb/ECDbTestHelper.d.ts.map +1 -0
  728. package/lib/esm/test/ecdb/ECDbTestHelper.js +28 -0
  729. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -0
  730. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts +2 -0
  731. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts.map +1 -0
  732. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +63 -0
  733. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -0
  734. package/lib/esm/test/ecdb/ECSqlAst.test.d.ts +5 -0
  735. package/lib/esm/test/ecdb/ECSqlAst.test.d.ts.map +1 -0
  736. package/lib/esm/test/ecdb/ECSqlAst.test.js +972 -0
  737. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -0
  738. package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts +2 -0
  739. package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts.map +1 -0
  740. package/lib/esm/test/ecdb/ECSqlQuery.test.js +776 -0
  741. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -0
  742. package/lib/esm/test/ecdb/ECSqlReader.test.d.ts +2 -0
  743. package/lib/esm/test/ecdb/ECSqlReader.test.d.ts.map +1 -0
  744. package/lib/esm/test/ecdb/ECSqlReader.test.js +669 -0
  745. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -0
  746. package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts +2 -0
  747. package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts.map +1 -0
  748. package/lib/esm/test/ecdb/ECSqlStatement.test.js +3329 -0
  749. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -0
  750. package/lib/esm/test/ecdb/SqliteStatement.test.d.ts +2 -0
  751. package/lib/esm/test/ecdb/SqliteStatement.test.d.ts.map +1 -0
  752. package/lib/esm/test/ecdb/SqliteStatement.test.js +510 -0
  753. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -0
  754. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts +4 -0
  755. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -0
  756. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +127 -0
  757. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -0
  758. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts +2 -0
  759. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts.map +1 -0
  760. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +197 -0
  761. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -0
  762. package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts +66 -0
  763. package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts.map +1 -0
  764. package/lib/esm/test/ecsql/src/ECSqlTestParser.js +420 -0
  765. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -0
  766. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts +2 -0
  767. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts.map +1 -0
  768. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +369 -0
  769. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -0
  770. package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts +2 -0
  771. package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts.map +1 -0
  772. package/lib/esm/test/element/DeleteDefinitionElements.test.js +208 -0
  773. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -0
  774. package/lib/esm/test/element/ElementAspect.test.d.ts +2 -0
  775. package/lib/esm/test/element/ElementAspect.test.d.ts.map +1 -0
  776. package/lib/esm/test/element/ElementAspect.test.js +363 -0
  777. package/lib/esm/test/element/ElementAspect.test.js.map +1 -0
  778. package/lib/esm/test/element/ElementDependencyGraph.test.d.ts +2 -0
  779. package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -0
  780. package/lib/esm/test/element/ElementDependencyGraph.test.js +383 -0
  781. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -0
  782. package/lib/esm/test/element/ElementRoundTrip.test.d.ts +2 -0
  783. package/lib/esm/test/element/ElementRoundTrip.test.d.ts.map +1 -0
  784. package/lib/esm/test/element/ElementRoundTrip.test.js +926 -0
  785. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -0
  786. package/lib/esm/test/element/ExcludedElements.test.d.ts +2 -0
  787. package/lib/esm/test/element/ExcludedElements.test.d.ts.map +1 -0
  788. package/lib/esm/test/element/ExcludedElements.test.js +57 -0
  789. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -0
  790. package/lib/esm/test/element/ExternalSource.test.d.ts +2 -0
  791. package/lib/esm/test/element/ExternalSource.test.d.ts.map +1 -0
  792. package/lib/esm/test/element/ExternalSource.test.js +107 -0
  793. package/lib/esm/test/element/ExternalSource.test.js.map +1 -0
  794. package/lib/esm/test/element/NullStructArray.test.d.ts +2 -0
  795. package/lib/esm/test/element/NullStructArray.test.d.ts.map +1 -0
  796. package/lib/esm/test/element/NullStructArray.test.js +77 -0
  797. package/lib/esm/test/element/NullStructArray.test.js.map +1 -0
  798. package/lib/esm/test/element/UrlLink.test.d.ts +2 -0
  799. package/lib/esm/test/element/UrlLink.test.d.ts.map +1 -0
  800. package/lib/esm/test/element/UrlLink.test.js +36 -0
  801. package/lib/esm/test/element/UrlLink.test.js.map +1 -0
  802. package/lib/esm/test/font/FontFile.test.d.ts +2 -0
  803. package/lib/esm/test/font/FontFile.test.d.ts.map +1 -0
  804. package/lib/esm/test/font/FontFile.test.js +139 -0
  805. package/lib/esm/test/font/FontFile.test.js.map +1 -0
  806. package/lib/esm/test/font/IModelDbFonts.test.d.ts +2 -0
  807. package/lib/esm/test/font/IModelDbFonts.test.d.ts.map +1 -0
  808. package/lib/esm/test/font/IModelDbFonts.test.js +266 -0
  809. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -0
  810. package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts +2 -0
  811. package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts.map +1 -0
  812. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +176 -0
  813. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -0
  814. package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts +2 -0
  815. package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts.map +1 -0
  816. package/lib/esm/test/hubaccess/CheckpointManager.test.js +51 -0
  817. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -0
  818. package/lib/esm/test/imageData.d.ts +9 -0
  819. package/lib/esm/test/imageData.d.ts.map +1 -0
  820. package/lib/esm/test/imageData.js +16 -0
  821. package/lib/esm/test/imageData.js.map +1 -0
  822. package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts +2 -0
  823. package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts.map +1 -0
  824. package/lib/esm/test/imodel/ElementTreeWalker.test.js +383 -0
  825. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -0
  826. package/lib/esm/test/imodel/GetTextureImage.test.d.ts +2 -0
  827. package/lib/esm/test/imodel/GetTextureImage.test.d.ts.map +1 -0
  828. package/lib/esm/test/imodel/GetTextureImage.test.js +29 -0
  829. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -0
  830. package/lib/esm/test/imodel/IModel.test.d.ts +2 -0
  831. package/lib/esm/test/imodel/IModel.test.d.ts.map +1 -0
  832. package/lib/esm/test/imodel/IModel.test.js +2615 -0
  833. package/lib/esm/test/imodel/IModel.test.js.map +1 -0
  834. package/lib/esm/test/imodel/ProjectExtents.test.d.ts +2 -0
  835. package/lib/esm/test/imodel/ProjectExtents.test.d.ts.map +1 -0
  836. package/lib/esm/test/imodel/ProjectExtents.test.js +66 -0
  837. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -0
  838. package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts +2 -0
  839. package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts.map +1 -0
  840. package/lib/esm/test/imodel/SchemaXmlImport.test.js +74 -0
  841. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -0
  842. package/lib/esm/test/index.d.ts +7 -0
  843. package/lib/esm/test/index.d.ts.map +1 -0
  844. package/lib/esm/test/index.js +11 -0
  845. package/lib/esm/test/index.js.map +1 -0
  846. package/lib/esm/test/misc/DevTools.test.d.ts +2 -0
  847. package/lib/esm/test/misc/DevTools.test.d.ts.map +1 -0
  848. package/lib/esm/test/misc/DevTools.test.js +72 -0
  849. package/lib/esm/test/misc/DevTools.test.js.map +1 -0
  850. package/lib/esm/test/misc/EntitySubClasses.test.d.ts +2 -0
  851. package/lib/esm/test/misc/EntitySubClasses.test.d.ts.map +1 -0
  852. package/lib/esm/test/misc/EntitySubClasses.test.js +106 -0
  853. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -0
  854. package/lib/esm/test/misc/GeoServices.test.d.ts +2 -0
  855. package/lib/esm/test/misc/GeoServices.test.d.ts.map +1 -0
  856. package/lib/esm/test/misc/GeoServices.test.js +850 -0
  857. package/lib/esm/test/misc/GeoServices.test.js.map +1 -0
  858. package/lib/esm/test/misc/PromiseMemoizer.test.d.ts +2 -0
  859. package/lib/esm/test/misc/PromiseMemoizer.test.d.ts.map +1 -0
  860. package/lib/esm/test/misc/PromiseMemoizer.test.js +111 -0
  861. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -0
  862. package/lib/esm/test/native/DgnDbWorker.test.d.ts +2 -0
  863. package/lib/esm/test/native/DgnDbWorker.test.d.ts.map +1 -0
  864. package/lib/esm/test/native/DgnDbWorker.test.js +159 -0
  865. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -0
  866. package/lib/esm/test/rpc/response.test.d.ts +2 -0
  867. package/lib/esm/test/rpc/response.test.d.ts.map +1 -0
  868. package/lib/esm/test/rpc/response.test.js +112 -0
  869. package/lib/esm/test/rpc/response.test.js.map +1 -0
  870. package/lib/esm/test/schema/ClassRegistry.test.d.ts +2 -0
  871. package/lib/esm/test/schema/ClassRegistry.test.d.ts.map +1 -0
  872. package/lib/esm/test/schema/ClassRegistry.test.js +679 -0
  873. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -0
  874. package/lib/esm/test/schema/FunctionalDomain.test.d.ts +2 -0
  875. package/lib/esm/test/schema/FunctionalDomain.test.d.ts.map +1 -0
  876. package/lib/esm/test/schema/FunctionalDomain.test.js +490 -0
  877. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -0
  878. package/lib/esm/test/schema/GenericDomain.test.d.ts +2 -0
  879. package/lib/esm/test/schema/GenericDomain.test.d.ts.map +1 -0
  880. package/lib/esm/test/schema/GenericDomain.test.js +133 -0
  881. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -0
  882. package/lib/esm/test/schema/IModelSchemaContext.test.d.ts +2 -0
  883. package/lib/esm/test/schema/IModelSchemaContext.test.d.ts.map +1 -0
  884. package/lib/esm/test/schema/IModelSchemaContext.test.js +95 -0
  885. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -0
  886. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +4 -0
  887. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -0
  888. package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -0
  889. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -0
  890. package/lib/esm/test/standalone/ChangeMerge.test.d.ts +2 -0
  891. package/lib/esm/test/standalone/ChangeMerge.test.d.ts.map +1 -0
  892. package/lib/esm/test/standalone/ChangeMerge.test.js +409 -0
  893. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -0
  894. package/lib/esm/test/standalone/ChangesetReader.test.d.ts +2 -0
  895. package/lib/esm/test/standalone/ChangesetReader.test.d.ts.map +1 -0
  896. package/lib/esm/test/standalone/ChangesetReader.test.js +891 -0
  897. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -0
  898. package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts +2 -0
  899. package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts.map +1 -0
  900. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js +49 -0
  901. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -0
  902. package/lib/esm/test/standalone/DisplayStyle.test.d.ts +2 -0
  903. package/lib/esm/test/standalone/DisplayStyle.test.d.ts.map +1 -0
  904. package/lib/esm/test/standalone/DisplayStyle.test.js +136 -0
  905. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -0
  906. package/lib/esm/test/standalone/Drawing.test.d.ts +2 -0
  907. package/lib/esm/test/standalone/Drawing.test.d.ts.map +1 -0
  908. package/lib/esm/test/standalone/Drawing.test.js +120 -0
  909. package/lib/esm/test/standalone/Drawing.test.js.map +1 -0
  910. package/lib/esm/test/standalone/ElementGraphics.test.d.ts +2 -0
  911. package/lib/esm/test/standalone/ElementGraphics.test.d.ts.map +1 -0
  912. package/lib/esm/test/standalone/ElementGraphics.test.js +127 -0
  913. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -0
  914. package/lib/esm/test/standalone/ElementMesh.test.d.ts +2 -0
  915. package/lib/esm/test/standalone/ElementMesh.test.d.ts.map +1 -0
  916. package/lib/esm/test/standalone/ElementMesh.test.js +142 -0
  917. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -0
  918. package/lib/esm/test/standalone/ExportGraphics.test.d.ts +2 -0
  919. package/lib/esm/test/standalone/ExportGraphics.test.d.ts.map +1 -0
  920. package/lib/esm/test/standalone/ExportGraphics.test.js +1040 -0
  921. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -0
  922. package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts +2 -0
  923. package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts.map +1 -0
  924. package/lib/esm/test/standalone/GeometryChangeEvents.test.js +139 -0
  925. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -0
  926. package/lib/esm/test/standalone/GeometryStream.test.d.ts +2 -0
  927. package/lib/esm/test/standalone/GeometryStream.test.d.ts.map +1 -0
  928. package/lib/esm/test/standalone/GeometryStream.test.js +2869 -0
  929. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -0
  930. package/lib/esm/test/standalone/HubMock.test.d.ts +2 -0
  931. package/lib/esm/test/standalone/HubMock.test.d.ts.map +1 -0
  932. package/lib/esm/test/standalone/HubMock.test.js +343 -0
  933. package/lib/esm/test/standalone/HubMock.test.js.map +1 -0
  934. package/lib/esm/test/standalone/IModelWrite.test.d.ts +7 -0
  935. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -0
  936. package/lib/esm/test/standalone/IModelWrite.test.js +907 -0
  937. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -0
  938. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts +2 -0
  939. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts.map +1 -0
  940. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +417 -0
  941. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -0
  942. package/lib/esm/test/standalone/MergeConflict.test.d.ts +7 -0
  943. package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -0
  944. package/lib/esm/test/standalone/MergeConflict.test.js +345 -0
  945. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -0
  946. package/lib/esm/test/standalone/NativeAppStorage.test.d.ts +2 -0
  947. package/lib/esm/test/standalone/NativeAppStorage.test.d.ts.map +1 -0
  948. package/lib/esm/test/standalone/NativeAppStorage.test.js +121 -0
  949. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -0
  950. package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts +2 -0
  951. package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts.map +1 -0
  952. package/lib/esm/test/standalone/RenderMaterialElement.test.js +399 -0
  953. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -0
  954. package/lib/esm/test/standalone/RenderTimeline.test.d.ts +2 -0
  955. package/lib/esm/test/standalone/RenderTimeline.test.d.ts.map +1 -0
  956. package/lib/esm/test/standalone/RenderTimeline.test.js +71 -0
  957. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -0
  958. package/lib/esm/test/standalone/SQLiteDb.test.d.ts +2 -0
  959. package/lib/esm/test/standalone/SQLiteDb.test.d.ts.map +1 -0
  960. package/lib/esm/test/standalone/SQLiteDb.test.js +63 -0
  961. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -0
  962. package/lib/esm/test/standalone/SchemaUtils.test.d.ts +2 -0
  963. package/lib/esm/test/standalone/SchemaUtils.test.d.ts.map +1 -0
  964. package/lib/esm/test/standalone/SchemaUtils.test.js +25 -0
  965. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -0
  966. package/lib/esm/test/standalone/SectionDrawing.test.d.ts +2 -0
  967. package/lib/esm/test/standalone/SectionDrawing.test.d.ts.map +1 -0
  968. package/lib/esm/test/standalone/SectionDrawing.test.js +83 -0
  969. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -0
  970. package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts +2 -0
  971. package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts.map +1 -0
  972. package/lib/esm/test/standalone/ServerBasedLocks.test.js +279 -0
  973. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -0
  974. package/lib/esm/test/standalone/Setting.test.d.ts +2 -0
  975. package/lib/esm/test/standalone/Setting.test.d.ts.map +1 -0
  976. package/lib/esm/test/standalone/Setting.test.js +76 -0
  977. package/lib/esm/test/standalone/Setting.test.js.map +1 -0
  978. package/lib/esm/test/standalone/Settings.test.d.ts +2 -0
  979. package/lib/esm/test/standalone/Settings.test.d.ts.map +1 -0
  980. package/lib/esm/test/standalone/Settings.test.js +349 -0
  981. package/lib/esm/test/standalone/Settings.test.js.map +1 -0
  982. package/lib/esm/test/standalone/SettingsSchemas.test.d.ts +2 -0
  983. package/lib/esm/test/standalone/SettingsSchemas.test.d.ts.map +1 -0
  984. package/lib/esm/test/standalone/SettingsSchemas.test.js +31 -0
  985. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -0
  986. package/lib/esm/test/standalone/SnapshotDb.test.d.ts +2 -0
  987. package/lib/esm/test/standalone/SnapshotDb.test.d.ts.map +1 -0
  988. package/lib/esm/test/standalone/SnapshotDb.test.js +154 -0
  989. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -0
  990. package/lib/esm/test/standalone/Texture.test.d.ts +2 -0
  991. package/lib/esm/test/standalone/Texture.test.d.ts.map +1 -0
  992. package/lib/esm/test/standalone/Texture.test.js +90 -0
  993. package/lib/esm/test/standalone/Texture.test.js.map +1 -0
  994. package/lib/esm/test/standalone/TileCache.test.d.ts +9 -0
  995. package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -0
  996. package/lib/esm/test/standalone/TileCache.test.js +127 -0
  997. package/lib/esm/test/standalone/TileCache.test.js.map +1 -0
  998. package/lib/esm/test/standalone/TileTree.test.d.ts +2 -0
  999. package/lib/esm/test/standalone/TileTree.test.d.ts.map +1 -0
  1000. package/lib/esm/test/standalone/TileTree.test.js +241 -0
  1001. package/lib/esm/test/standalone/TileTree.test.js.map +1 -0
  1002. package/lib/esm/test/standalone/TxnManager.test.d.ts +2 -0
  1003. package/lib/esm/test/standalone/TxnManager.test.d.ts.map +1 -0
  1004. package/lib/esm/test/standalone/TxnManager.test.js +878 -0
  1005. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -0
  1006. package/lib/esm/test/standalone/ViewDefinition.test.d.ts +2 -0
  1007. package/lib/esm/test/standalone/ViewDefinition.test.d.ts.map +1 -0
  1008. package/lib/esm/test/standalone/ViewDefinition.test.js +279 -0
  1009. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -0
  1010. package/lib/esm/test/standalone/ViewStoreDb.test.d.ts +2 -0
  1011. package/lib/esm/test/standalone/ViewStoreDb.test.d.ts.map +1 -0
  1012. package/lib/esm/test/standalone/ViewStoreDb.test.js +288 -0
  1013. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -0
  1014. package/lib/esm/test/standalone/Workspace.test.d.ts +2 -0
  1015. package/lib/esm/test/standalone/Workspace.test.d.ts.map +1 -0
  1016. package/lib/esm/test/standalone/Workspace.test.js +161 -0
  1017. package/lib/esm/test/standalone/Workspace.test.js.map +1 -0
  1018. package/lib/esm/workspace/Settings.d.ts +216 -0
  1019. package/lib/esm/workspace/Settings.d.ts.map +1 -0
  1020. package/lib/esm/workspace/Settings.js +83 -0
  1021. package/lib/esm/workspace/Settings.js.map +1 -0
  1022. package/lib/esm/workspace/SettingsSchemas.d.ts +135 -0
  1023. package/lib/esm/workspace/SettingsSchemas.d.ts.map +1 -0
  1024. package/lib/esm/workspace/SettingsSchemas.js +9 -0
  1025. package/lib/esm/workspace/SettingsSchemas.js.map +1 -0
  1026. package/lib/esm/workspace/Workspace.d.ts +507 -0
  1027. package/lib/esm/workspace/Workspace.d.ts.map +1 -0
  1028. package/lib/esm/workspace/Workspace.js +97 -0
  1029. package/lib/esm/workspace/Workspace.js.map +1 -0
  1030. package/lib/esm/workspace/WorkspaceEditor.d.ts +245 -0
  1031. package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -0
  1032. package/lib/esm/workspace/WorkspaceEditor.js +31 -0
  1033. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -0
  1034. package/package.json +37 -29
  1035. package/lib/cjs/HubMock.d.ts.map +0 -1
  1036. package/lib/cjs/HubMock.js.map +0 -1
  1037. package/lib/cjs/IModelCloneContext.d.ts +0 -9
  1038. package/lib/cjs/IModelCloneContext.d.ts.map +0 -1
  1039. package/lib/cjs/IModelCloneContext.js.map +0 -1
@@ -0,0 +1,1125 @@
1
+ /*---------------------------------------------------------------------------------------------
2
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
3
+ * See LICENSE.md in the project root for license terms and full copyright notice.
4
+ *--------------------------------------------------------------------------------------------*/
5
+ import { Buffer } from "node:buffer";
6
+ import * as chai from "chai";
7
+ import { assert, expect } from "chai";
8
+ import * as chaiAsPromised from "chai-as-promised";
9
+ import * as path from "path";
10
+ import { BeEvent, DbResult, Guid, Id64, IModelStatus, omit } from "@itwin/core-bentley";
11
+ import { Base64EncodedString, Code, CodeScopeSpec, ColorDef, Environment, FontType, GeometryParams, GeometryStreamBuilder, ImageSourceFormat, IModel, IModelError, IModelReadRpcInterface, IModelVersion, PlanProjectionSettings, RelatedElement, RpcConfiguration, RpcManager, RpcPendingResponse, SkyBoxImageType, SubCategoryAppearance, SubCategoryOverride, SyncMode, } from "@itwin/core-common";
12
+ import { Box, Cone, LineString3d, Point2d, Point3d, Range2d, Range3d, StandardViewIndex, Vector3d, YawPitchRollAngles } from "@itwin/core-geometry";
13
+ import { V2CheckpointManager } from "../CheckpointManager";
14
+ import { ClassRegistry } from "../ClassRegistry";
15
+ import { _nativeDb, AuxCoordSystem2d, BriefcaseDb, BriefcaseLocalValue, BriefcaseManager, CategorySelector, ChannelControl, DisplayStyle2d, DisplayStyle3d, DrawingCategory, DrawingViewDefinition, Element, ElementOwnsChildElements, ElementOwnsMultiAspects, ElementOwnsUniqueAspect, ExternalSource, ExternalSourceIsInRepository, FunctionalModel, FunctionalSchema, GroupModel, IModelDb, IModelHost, IModelJsFs, InformationPartitionElement, Model, ModelSelector, OrthographicViewDefinition, PhysicalModel, PhysicalObject, PhysicalPartition, RenderMaterialElement, SnapshotDb, SpatialCategory, SubCategory, SubjectOwnsPartitionElements, Texture, ViewDefinition, } from "../core-backend";
16
+ import { DefinitionPartition, Drawing, DrawingGraphic, GeometryPart, LinkElement, PhysicalElement, RepositoryLink, Subject } from "../Element";
17
+ import { DefinitionModel, DocumentListModel, DrawingModel, InformationRecordModel, SpatialLocationModel } from "../Model";
18
+ import { DrawingGraphicRepresentsElement, ElementDrivesElement } from "../Relationship";
19
+ import { RpcBriefcaseUtility } from "../rpc-impl/RpcBriefcaseUtility";
20
+ import { Schema, Schemas } from "../Schema";
21
+ import { HubMock } from "../internal/HubMock";
22
+ import { KnownTestLocations } from "./KnownTestLocations";
23
+ import { _getCheckpointDb, _hubAccess } from "../internal/Symbols";
24
+ chai.use(chaiAsPromised);
25
+ /* eslint-disable @typescript-eslint/explicit-member-accessibility */
26
+ RpcConfiguration.developmentMode = true;
27
+ // Initialize the RPC interface classes used by tests
28
+ RpcManager.initializeInterface(IModelReadRpcInterface);
29
+ export class TestBim extends Schema {
30
+ static get schemaName() { return "TestBim"; }
31
+ }
32
+ export class TestElementDrivesElement extends ElementDrivesElement {
33
+ static get className() { return "TestElementDrivesElement"; }
34
+ static rootChanged = new BeEvent();
35
+ static deletedDependency = new BeEvent();
36
+ static onRootChanged(props, imodel) { this.rootChanged.raiseEvent(props, imodel); }
37
+ static onDeletedDependency(props, imodel) { this.deletedDependency.raiseEvent(props, imodel); }
38
+ }
39
+ export class TestPhysicalObject extends PhysicalElement {
40
+ static get className() { return "TestPhysicalObject"; }
41
+ static beforeOutputsHandled = new BeEvent();
42
+ static allInputsHandled = new BeEvent();
43
+ static onBeforeOutputsHandled(id, imodel) { this.beforeOutputsHandled.raiseEvent(id, imodel); }
44
+ static onAllInputsHandled(id, imodel) { this.allInputsHandled.raiseEvent(id, imodel); }
45
+ }
46
+ /** the types of users available for tests */
47
+ export var TestUserType;
48
+ (function (TestUserType) {
49
+ TestUserType[TestUserType["Regular"] = 0] = "Regular";
50
+ TestUserType[TestUserType["Manager"] = 1] = "Manager";
51
+ TestUserType[TestUserType["Super"] = 2] = "Super";
52
+ TestUserType[TestUserType["SuperManager"] = 3] = "SuperManager";
53
+ })(TestUserType || (TestUserType = {}));
54
+ /** A wrapper around the BackendHubAccess API through IModelHost[_hubAccess].
55
+ *
56
+ * All methods in this class should be usable with any BackendHubAccess implementation (i.e. HubMock and IModelHubBackend).
57
+ */
58
+ export class HubWrappers {
59
+ static get hubMock() { return HubMock; }
60
+ static async getAccessToken(user) {
61
+ return TestUserType[user];
62
+ }
63
+ /** Create an iModel with the name provided if it does not already exist. If it does exist, the iModelId is returned. */
64
+ static async createIModel(accessToken, iTwinId, iModelName) {
65
+ assert.isTrue(this.hubMock.isValid, "Must use HubMock for tests that modify iModels");
66
+ let iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName });
67
+ if (!iModelId)
68
+ iModelId = await IModelHost[_hubAccess].createNewIModel({ accessToken, iTwinId, iModelName, description: `Description for iModel` });
69
+ return iModelId;
70
+ }
71
+ /** Deletes and re-creates an iModel with the provided name in the iTwin.
72
+ * @returns the iModelId of the newly created iModel.
73
+ */
74
+ static async recreateIModel(...[arg]) {
75
+ assert.isTrue(this.hubMock.isValid, "Must use HubMock for tests that modify iModels");
76
+ const deleteIModel = await IModelHost[_hubAccess].queryIModelByName(arg);
77
+ if (undefined !== deleteIModel)
78
+ await IModelHost[_hubAccess].deleteIModel({ accessToken: arg.accessToken, iTwinId: arg.iTwinId, iModelId: deleteIModel });
79
+ // Create a new iModel
80
+ return IModelHost[_hubAccess].createNewIModel({ description: `Description for ${arg.iModelName}`, ...arg });
81
+ }
82
+ /** Delete an IModel from the hub */
83
+ static async deleteIModel(accessToken, iTwinId, iModelName) {
84
+ const iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName });
85
+ if (undefined === iModelId)
86
+ return;
87
+ await IModelHost[_hubAccess].deleteIModel({ accessToken, iTwinId, iModelId });
88
+ }
89
+ /** Push an iModel to the Hub */
90
+ static async pushIModel(accessToken, iTwinId, pathname, iModelName, overwrite) {
91
+ // Delete any existing iModels with the same name as the required iModel
92
+ const locIModelName = iModelName || path.basename(pathname, ".bim");
93
+ const iModelId = await IModelHost[_hubAccess].queryIModelByName({ accessToken, iTwinId, iModelName: locIModelName });
94
+ if (iModelId) {
95
+ if (!overwrite)
96
+ return iModelId;
97
+ await IModelHost[_hubAccess].deleteIModel({ accessToken, iTwinId, iModelId });
98
+ }
99
+ // Upload a new iModel
100
+ return IModelHost[_hubAccess].createNewIModel({ accessToken, iTwinId, iModelName: locIModelName, version0: pathname });
101
+ }
102
+ /** Helper to open a briefcase db directly with the BriefcaseManager API */
103
+ static async downloadAndOpenBriefcase(args) {
104
+ const props = await BriefcaseManager.downloadBriefcase(args);
105
+ if (args.noLock) {
106
+ const briefcase = await BriefcaseDb.open({ fileName: props.fileName });
107
+ briefcase[_nativeDb].saveLocalValue(BriefcaseLocalValue.NoLocking, "true");
108
+ briefcase.saveChanges();
109
+ briefcase.close();
110
+ }
111
+ return BriefcaseDb.open({ fileName: props.fileName });
112
+ }
113
+ /** Opens the specific iModel as a Briefcase through the same workflow the IModelReadRpc.getConnectionProps method will use. Replicates the way a frontend would open the iModel. */
114
+ static async openBriefcaseUsingRpc(args) {
115
+ if (undefined === args.asOf)
116
+ args.asOf = IModelVersion.latest().toJSON();
117
+ const openArgs = {
118
+ tokenProps: {
119
+ iTwinId: args.iTwinId,
120
+ iModelId: args.iModelId,
121
+ changeset: (await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId })),
122
+ },
123
+ activity: { accessToken: args.accessToken, activityId: "", applicationId: "", applicationVersion: "", sessionId: "" },
124
+ syncMode: args.briefcaseId === 0 ? SyncMode.PullOnly : SyncMode.PullAndPush,
125
+ forceDownload: args.deleteFirst,
126
+ };
127
+ assert.isTrue(this.hubMock.isValid || openArgs.syncMode === SyncMode.PullOnly, "use HubMock to acquire briefcases");
128
+ while (true) {
129
+ try {
130
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
131
+ return (await RpcBriefcaseUtility.open(openArgs));
132
+ }
133
+ catch (error) {
134
+ if (!(error instanceof RpcPendingResponse))
135
+ throw error;
136
+ }
137
+ }
138
+ }
139
+ /** Downloads and opens a checkpoint */
140
+ static async downloadAndOpenCheckpoint(args) {
141
+ if (undefined === args.asOf)
142
+ args.asOf = IModelVersion.latest().toJSON();
143
+ const checkpoint = {
144
+ iTwinId: args.iTwinId,
145
+ iModelId: args.iModelId,
146
+ accessToken: args.accessToken,
147
+ changeset: (await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId })),
148
+ };
149
+ const folder = path.join(V2CheckpointManager.getFolder(), checkpoint.iModelId);
150
+ const filename = path.join(folder, `${checkpoint.changeset.id ?? "first"}.bim`);
151
+ return V2CheckpointManager[_getCheckpointDb]({ checkpoint, localFile: filename });
152
+ }
153
+ /** Opens the specific Checkpoint iModel, `SyncMode.FixedVersion`, through the same workflow the IModelReadRpc.getConnectionProps method will use. Replicates the way a frontend would open the iModel. */
154
+ static async openCheckpointUsingRpc(args) {
155
+ if (undefined === args.asOf)
156
+ args.asOf = IModelVersion.latest().toJSON();
157
+ const changeset = await IModelHost[_hubAccess].getChangesetFromVersion({ accessToken: args.accessToken, version: IModelVersion.fromJSON(args.asOf), iModelId: args.iModelId });
158
+ const openArgs = {
159
+ tokenProps: {
160
+ iTwinId: args.iTwinId,
161
+ iModelId: args.iModelId,
162
+ changeset,
163
+ },
164
+ activity: { accessToken: args.accessToken, activityId: "", applicationId: "", applicationVersion: "", sessionId: "" },
165
+ syncMode: SyncMode.FixedVersion,
166
+ forceDownload: args.deleteFirst,
167
+ };
168
+ while (true) {
169
+ try {
170
+ return (await RpcBriefcaseUtility.open(openArgs));
171
+ }
172
+ catch (error) {
173
+ if (!(error instanceof RpcPendingResponse))
174
+ throw error;
175
+ }
176
+ }
177
+ }
178
+ /**
179
+ * Purges all acquired briefcases for the specified iModel (and user), if the specified threshold of acquired briefcases is exceeded
180
+ */
181
+ static async purgeAcquiredBriefcasesById(accessToken, iModelId, onReachThreshold = () => { }, acquireThreshold = 16) {
182
+ const briefcases = await IModelHost[_hubAccess].getMyBriefcaseIds({ accessToken, iModelId });
183
+ if (briefcases.length > acquireThreshold) {
184
+ if (undefined !== onReachThreshold)
185
+ onReachThreshold();
186
+ const promises = [];
187
+ briefcases.forEach((briefcaseId) => {
188
+ promises.push(IModelHost[_hubAccess].releaseBriefcase({ accessToken, iModelId, briefcaseId }));
189
+ });
190
+ await Promise.all(promises);
191
+ }
192
+ }
193
+ static async closeAndDeleteBriefcaseDb(accessToken, briefcaseDb) {
194
+ const fileName = briefcaseDb.pathName;
195
+ const iModelId = briefcaseDb.iModelId;
196
+ briefcaseDb.close();
197
+ await BriefcaseManager.deleteBriefcaseFiles(fileName, accessToken);
198
+ // try to clean up empty briefcase directories, and empty iModel directories.
199
+ if (0 === BriefcaseManager.getCachedBriefcases(iModelId).length) {
200
+ IModelJsFs.removeSync(BriefcaseManager.getBriefcaseBasePath(iModelId));
201
+ const imodelPath = BriefcaseManager.getIModelPath(iModelId);
202
+ if (0 === IModelJsFs.readdirSync(imodelPath).length) {
203
+ IModelJsFs.removeSync(imodelPath);
204
+ }
205
+ }
206
+ }
207
+ }
208
+ export class IModelTestUtils {
209
+ static get knownTestLocations() { return KnownTestLocations; }
210
+ /** Generate a name for an iModel that's unique using the baseName provided and appending a new GUID. */
211
+ static generateUniqueName(baseName) {
212
+ return `${baseName} - ${Guid.createValue()}`;
213
+ }
214
+ /** Prepare for an output file by:
215
+ * - Resolving the output file name under the known test output directory
216
+ * - Making directories as necessary
217
+ * - Removing a previous copy of the output file
218
+ * @param subDirName Sub-directory under known test output directory. Should match the name of the test file minus the .test.ts file extension.
219
+ * @param fileName Name of output fille
220
+ */
221
+ static prepareOutputFile(subDirName, fileName) {
222
+ if (!IModelJsFs.existsSync(this.knownTestLocations.outputDir))
223
+ IModelJsFs.mkdirSync(this.knownTestLocations.outputDir);
224
+ const outputDir = path.join(this.knownTestLocations.outputDir, subDirName);
225
+ if (!IModelJsFs.existsSync(outputDir))
226
+ IModelJsFs.mkdirSync(outputDir);
227
+ const outputFile = path.join(outputDir, fileName);
228
+ if (IModelJsFs.existsSync(outputFile))
229
+ IModelJsFs.unlinkSync(outputFile);
230
+ return outputFile;
231
+ }
232
+ /** Resolve an asset file path from the asset name by looking in the known assets directory */
233
+ static resolveAssetFile(assetName) {
234
+ const assetFile = path.join(this.knownTestLocations.assetsDir, assetName);
235
+ assert.isTrue(IModelJsFs.existsSync(assetFile));
236
+ return assetFile;
237
+ }
238
+ static resolveFontFile(fontName) {
239
+ const subDirs = ["Karla", "DejaVu", "Sitka"];
240
+ const fontSubDirectory = subDirs.find((x) => fontName.startsWith(x));
241
+ fontName = fontSubDirectory ? path.join(fontSubDirectory, fontName) : fontName;
242
+ const assetName = path.join("Fonts", fontName);
243
+ return this.resolveAssetFile(assetName);
244
+ }
245
+ /** Orchestrates the steps necessary to create a new snapshot iModel from a seed file. */
246
+ static createSnapshotFromSeed(testFileName, seedFileName) {
247
+ const seedDb = SnapshotDb.openFile(seedFileName);
248
+ const testDb = SnapshotDb.createFrom(seedDb, testFileName);
249
+ seedDb.close();
250
+ testDb.channels.addAllowedChannel(ChannelControl.sharedChannelName);
251
+ return testDb;
252
+ }
253
+ static getUniqueModelCode(testDb, newModelCodeBase) {
254
+ let newModelCode = newModelCodeBase;
255
+ let iter = 0;
256
+ while (true) {
257
+ const modelCode = InformationPartitionElement.createCode(testDb, IModel.rootSubjectId, newModelCode);
258
+ if (testDb.elements.queryElementIdByCode(modelCode) === undefined)
259
+ return modelCode;
260
+ newModelCode = newModelCodeBase + iter;
261
+ ++iter;
262
+ }
263
+ }
264
+ static generateChangeSetId() {
265
+ let result = "";
266
+ for (let i = 0; i < 20; ++i) {
267
+ result += Math.floor(Math.random() * 256).toString(16).padStart(2, "0");
268
+ }
269
+ return { id: result };
270
+ }
271
+ /** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
272
+ static createAndInsertPhysicalPartition(testDb, newModelCode, parentId) {
273
+ const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;
274
+ const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
275
+ const modeledElementProps = {
276
+ classFullName: PhysicalPartition.classFullName,
277
+ parent,
278
+ model,
279
+ code: newModelCode,
280
+ };
281
+ const modeledElement = testDb.elements.createElement(modeledElementProps);
282
+ return testDb.elements.insertElement(modeledElement.toJSON());
283
+ }
284
+ /** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
285
+ static async createAndInsertPhysicalPartitionAsync(testDb, newModelCode, parentId) {
286
+ const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;
287
+ const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
288
+ const modeledElementProps = {
289
+ classFullName: PhysicalPartition.classFullName,
290
+ parent,
291
+ model,
292
+ code: newModelCode,
293
+ };
294
+ const modeledElement = testDb.elements.createElement(modeledElementProps);
295
+ await testDb.locks.acquireLocks({ shared: model });
296
+ return testDb.elements.insertElement(modeledElement.toJSON());
297
+ }
298
+ /** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
299
+ static createAndInsertPhysicalModel(testDb, modeledElementRef, privateModel = false) {
300
+ const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName, isPrivate: privateModel });
301
+ const newModelId = newModel.id = testDb.models.insertModel(newModel.toJSON());
302
+ assert.isTrue(Id64.isValidId64(newModelId));
303
+ assert.isTrue(Id64.isValidId64(newModel.id));
304
+ assert.deepEqual(newModelId, newModel.id);
305
+ return newModelId;
306
+ }
307
+ /** Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel. */
308
+ static async createAndInsertPhysicalModelAsync(testDb, modeledElementRef, privateModel = false) {
309
+ const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: PhysicalModel.classFullName, isPrivate: privateModel });
310
+ const newModelId = newModel.insert();
311
+ assert.isTrue(Id64.isValidId64(newModelId));
312
+ assert.isTrue(Id64.isValidId64(newModel.id));
313
+ assert.deepEqual(newModelId, newModel.id);
314
+ return newModelId;
315
+ }
316
+ /**
317
+ * Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel.
318
+ * @return [modeledElementId, modelId]
319
+ */
320
+ static createAndInsertPhysicalPartitionAndModel(testImodel, newModelCode, privateModel = false, parent) {
321
+ const eid = IModelTestUtils.createAndInsertPhysicalPartition(testImodel, newModelCode, parent);
322
+ const modeledElementRef = new RelatedElement({ id: eid });
323
+ const mid = IModelTestUtils.createAndInsertPhysicalModel(testImodel, modeledElementRef, privateModel);
324
+ return [eid, mid];
325
+ }
326
+ /**
327
+ * Create and insert a PhysicalPartition element (in the repositoryModel) and an associated PhysicalModel.
328
+ * @return [modeledElementId, modelId]
329
+ */
330
+ static async createAndInsertPhysicalPartitionAndModelAsync(testImodel, newModelCode, privateModel = false, parentId) {
331
+ const eid = await IModelTestUtils.createAndInsertPhysicalPartitionAsync(testImodel, newModelCode, parentId);
332
+ const modeledElementRef = new RelatedElement({ id: eid });
333
+ const mid = await IModelTestUtils.createAndInsertPhysicalModelAsync(testImodel, modeledElementRef, privateModel);
334
+ return [eid, mid];
335
+ }
336
+ /** Create and insert a Drawing Partition element (in the repositoryModel). */
337
+ static createAndInsertDrawingPartition(testDb, newModelCode, parentId) {
338
+ const model = parentId ? testDb.elements.getElement(parentId).model : IModel.repositoryModelId;
339
+ const parent = new SubjectOwnsPartitionElements(parentId || IModel.rootSubjectId);
340
+ const modeledElementProps = {
341
+ classFullName: Drawing.classFullName,
342
+ parent,
343
+ model,
344
+ code: newModelCode,
345
+ };
346
+ const modeledElement = testDb.elements.createElement(modeledElementProps);
347
+ return testDb.elements.insertElement(modeledElement.toJSON());
348
+ }
349
+ /** Create and insert a DrawingModel associated with Drawing Partition. */
350
+ static createAndInsertDrawingModel(testDb, modeledElementRef, privateModel = false) {
351
+ const newModel = testDb.models.createModel({ modeledElement: modeledElementRef, classFullName: DrawingModel.classFullName, isPrivate: privateModel });
352
+ const newModelId = newModel.insert();
353
+ assert.isTrue(Id64.isValidId64(newModelId));
354
+ assert.isTrue(Id64.isValidId64(newModel.id));
355
+ assert.deepEqual(newModelId, newModel.id);
356
+ return newModelId;
357
+ }
358
+ /**
359
+ * Create and insert a Drawing Partition element (in the repositoryModel) and an associated DrawingModel.
360
+ * @return [modeledElementId, modelId]
361
+ */
362
+ static createAndInsertDrawingPartitionAndModel(testImodel, newModelCode, privateModel = false, parent) {
363
+ const eid = IModelTestUtils.createAndInsertDrawingPartition(testImodel, newModelCode, parent);
364
+ const modeledElementRef = new RelatedElement({ id: eid });
365
+ const mid = IModelTestUtils.createAndInsertDrawingModel(testImodel, modeledElementRef, privateModel);
366
+ return [eid, mid];
367
+ }
368
+ static getUniqueSpatialCategoryCode(scopeModel, newCodeBaseValue) {
369
+ let newCodeValue = newCodeBaseValue;
370
+ let iter = 0;
371
+ while (true) {
372
+ if (SpatialCategory.queryCategoryIdByName(scopeModel.iModel, scopeModel.id, newCodeValue) === undefined)
373
+ return SpatialCategory.createCode(scopeModel.iModel, scopeModel.id, newCodeValue);
374
+ newCodeValue = newCodeBaseValue + iter;
375
+ ++iter;
376
+ }
377
+ }
378
+ // Create a PhysicalObject. (Does not insert it.)
379
+ static createPhysicalObject(testImodel, modelId, categoryId, elemCode) {
380
+ const elementProps = {
381
+ classFullName: "Generic:PhysicalObject",
382
+ model: modelId,
383
+ category: categoryId,
384
+ code: elemCode ? elemCode : Code.createEmpty(),
385
+ };
386
+ return testImodel.elements.createElement(elementProps);
387
+ }
388
+ static registerTestBimSchema() {
389
+ if (undefined === Schemas.getRegisteredSchema(TestBim.schemaName)) {
390
+ Schemas.registerSchema(TestBim);
391
+ ClassRegistry.register(TestPhysicalObject, TestBim);
392
+ ClassRegistry.register(TestElementDrivesElement, TestBim);
393
+ }
394
+ }
395
+ static executeQuery(db, ecsql, bindings) {
396
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
397
+ return db.withPreparedStatement(ecsql, (stmt) => {
398
+ if (bindings)
399
+ stmt.bindValues(bindings);
400
+ const rows = [];
401
+ while (DbResult.BE_SQLITE_ROW === stmt.step()) {
402
+ rows.push(stmt.getRow());
403
+ if (rows.length > IModelDb.maxLimit)
404
+ throw new IModelError(IModelStatus.BadRequest, "Max LIMIT exceeded in SELECT statement");
405
+ }
406
+ return rows;
407
+ });
408
+ }
409
+ static createJobSubjectElement(iModel, name) {
410
+ const subj = Subject.create(iModel, iModel.elements.getRootSubject().id, name);
411
+ subj.setJsonProperty("Subject", { Job: name }); // eslint-disable-line @typescript-eslint/naming-convention
412
+ return subj;
413
+ }
414
+ /** Flushes the Txns in the TxnTable - this allows importing of schemas */
415
+ static flushTxns(iModelDb) {
416
+ iModelDb[_nativeDb].deleteAllTxns();
417
+ return true;
418
+ }
419
+ static querySubjectId(iModelDb, subjectCodeValue) {
420
+ const subjectId = iModelDb.elements.queryElementIdByCode(Subject.createCode(iModelDb, IModel.rootSubjectId, subjectCodeValue));
421
+ assert.isTrue(Id64.isValidId64(subjectId));
422
+ return subjectId;
423
+ }
424
+ static queryDefinitionPartitionId(iModelDb, parentSubjectId, suffix) {
425
+ const partitionCode = DefinitionPartition.createCode(iModelDb, parentSubjectId, `Definition${suffix}`);
426
+ const partitionId = iModelDb.elements.queryElementIdByCode(partitionCode);
427
+ assert.isTrue(Id64.isValidId64(partitionId));
428
+ return partitionId;
429
+ }
430
+ static querySpatialCategoryId(iModelDb, modelId, suffix) {
431
+ const categoryCode = SpatialCategory.createCode(iModelDb, modelId, `SpatialCategory${suffix}`);
432
+ const categoryId = iModelDb.elements.queryElementIdByCode(categoryCode);
433
+ assert.isTrue(Id64.isValidId64(categoryId));
434
+ return categoryId;
435
+ }
436
+ static queryPhysicalPartitionId(iModelDb, parentSubjectId, suffix) {
437
+ const partitionCode = PhysicalPartition.createCode(iModelDb, parentSubjectId, `Physical${suffix}`);
438
+ const partitionId = iModelDb.elements.queryElementIdByCode(partitionCode);
439
+ assert.isTrue(Id64.isValidId64(partitionId));
440
+ return partitionId;
441
+ }
442
+ static queryPhysicalElementId(iModelDb, modelId, categoryId, suffix) {
443
+ const elementId = IModelTestUtils.queryByUserLabel(iModelDb, `PhysicalObject${suffix}`);
444
+ assert.isTrue(Id64.isValidId64(elementId));
445
+ const element = iModelDb.elements.getElement(elementId);
446
+ assert.equal(element.model, modelId);
447
+ assert.equal(element.category, categoryId);
448
+ return elementId;
449
+ }
450
+ static insertSpatialCategory(iModelDb, modelId, categoryName, color) {
451
+ const appearance = {
452
+ color: color.toJSON(),
453
+ transp: 0,
454
+ invisible: false,
455
+ };
456
+ return SpatialCategory.insert(iModelDb, modelId, categoryName, appearance);
457
+ }
458
+ static createBoxes(subCategoryIds) {
459
+ const length = 1.0;
460
+ const entryOrigin = Point3d.createZero();
461
+ const geometryStreamBuilder = new GeometryStreamBuilder();
462
+ geometryStreamBuilder.appendGeometry(Box.createDgnBox(entryOrigin, Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, length), length, length, length, length, true));
463
+ for (const subCategoryId of subCategoryIds) {
464
+ entryOrigin.addInPlace({ x: 1, y: 1, z: 1 });
465
+ geometryStreamBuilder.appendSubCategoryChange(subCategoryId);
466
+ geometryStreamBuilder.appendGeometry(Box.createDgnBox(entryOrigin, Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, length), length, length, length, length, true));
467
+ }
468
+ return geometryStreamBuilder.geometryStream;
469
+ }
470
+ static createBox(size, categoryId, subCategoryId, renderMaterialId, geometryPartId) {
471
+ const geometryStreamBuilder = new GeometryStreamBuilder();
472
+ if ((undefined !== categoryId) && (undefined !== subCategoryId)) {
473
+ geometryStreamBuilder.appendSubCategoryChange(subCategoryId);
474
+ if (undefined !== renderMaterialId) {
475
+ const geometryParams = new GeometryParams(categoryId, subCategoryId);
476
+ geometryParams.materialId = renderMaterialId;
477
+ geometryStreamBuilder.appendGeometryParamsChange(geometryParams);
478
+ }
479
+ }
480
+ geometryStreamBuilder.appendGeometry(Box.createDgnBox(Point3d.createZero(), Vector3d.unitX(), Vector3d.unitY(), new Point3d(0, 0, size.z), size.x, size.y, size.x, size.y, true));
481
+ if (undefined !== geometryPartId) {
482
+ geometryStreamBuilder.appendGeometryPart3d(geometryPartId);
483
+ }
484
+ return geometryStreamBuilder.geometryStream;
485
+ }
486
+ static createCylinder(radius) {
487
+ const pointA = Point3d.create(0, 0, 0);
488
+ const pointB = Point3d.create(0, 0, 2 * radius);
489
+ const cylinder = Cone.createBaseAndTarget(pointA, pointB, Vector3d.unitX(), Vector3d.unitY(), radius, radius, true);
490
+ const geometryStreamBuilder = new GeometryStreamBuilder();
491
+ geometryStreamBuilder.appendGeometry(cylinder);
492
+ return geometryStreamBuilder.geometryStream;
493
+ }
494
+ static createRectangle(size) {
495
+ const geometryStreamBuilder = new GeometryStreamBuilder();
496
+ geometryStreamBuilder.appendGeometry(LineString3d.createPoints([
497
+ new Point3d(0, 0),
498
+ new Point3d(size.x, 0),
499
+ new Point3d(size.x, size.y),
500
+ new Point3d(0, size.y),
501
+ new Point3d(0, 0),
502
+ ]));
503
+ return geometryStreamBuilder.geometryStream;
504
+ }
505
+ static insertTextureElement(iModelDb, modelId, textureName) {
506
+ // This is an encoded png containing a 3x3 square with white in top left pixel, blue in middle pixel, and green in bottom right pixel. The rest of the square is red.
507
+ const pngData = [137, 80, 78, 71, 13, 10, 26, 10, 0, 0, 0, 13, 73, 72, 68, 82, 0, 0, 0, 3, 0, 0, 0, 3, 8, 2, 0, 0, 0, 217, 74, 34, 232, 0, 0, 0, 1, 115, 82, 71, 66, 0, 174, 206, 28, 233, 0, 0, 0, 4, 103, 65, 77, 65, 0, 0, 177, 143, 11, 252, 97, 5, 0, 0, 0, 9, 112, 72, 89, 115, 0, 0, 14, 195, 0, 0, 14, 195, 1, 199, 111, 168, 100, 0, 0, 0, 24, 73, 68, 65, 84, 24, 87, 99, 248, 15, 4, 12, 12, 64, 4, 198, 64, 46, 132, 5, 162, 254, 51, 0, 0, 195, 90, 10, 246, 127, 175, 154, 145, 0, 0, 0, 0, 73, 69, 78, 68, 174, 66, 96, 130];
508
+ const textureData = Buffer.from(pngData).toString("base64");
509
+ return Texture.insertTexture(iModelDb, modelId, textureName, ImageSourceFormat.Png, textureData, `Description for ${textureName}`);
510
+ }
511
+ static queryByUserLabel(iModelDb, userLabel) {
512
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
513
+ return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE UserLabel=:userLabel`, (statement) => {
514
+ statement.bindString("userLabel", userLabel);
515
+ return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;
516
+ });
517
+ }
518
+ static queryByCodeValue(iModelDb, codeValue) {
519
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
520
+ return iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Element.classFullName} WHERE CodeValue=:codeValue`, (statement) => {
521
+ statement.bindString("codeValue", codeValue);
522
+ return DbResult.BE_SQLITE_ROW === statement.step() ? statement.getValue(0).getId() : Id64.invalid;
523
+ });
524
+ }
525
+ static insertRepositoryLink(iModelDb, codeValue, url, format) {
526
+ const repositoryLinkProps = {
527
+ classFullName: RepositoryLink.classFullName,
528
+ model: IModel.repositoryModelId,
529
+ code: LinkElement.createCode(iModelDb, IModel.repositoryModelId, codeValue),
530
+ url,
531
+ format,
532
+ };
533
+ return iModelDb.elements.insertElement(repositoryLinkProps);
534
+ }
535
+ static insertExternalSource(iModelDb, repositoryId, userLabel) {
536
+ const externalSourceProps = {
537
+ classFullName: ExternalSource.classFullName,
538
+ model: IModel.repositoryModelId,
539
+ code: Code.createEmpty(),
540
+ userLabel,
541
+ repository: new ExternalSourceIsInRepository(repositoryId),
542
+ connectorName: "Connector",
543
+ connectorVersion: "0.0.1",
544
+ };
545
+ return iModelDb.elements.insertElement(externalSourceProps);
546
+ }
547
+ static dumpIModelInfo(iModelDb) {
548
+ const outputFileName = `${iModelDb.pathName}.info.txt`;
549
+ if (IModelJsFs.existsSync(outputFileName)) {
550
+ IModelJsFs.removeSync(outputFileName);
551
+ }
552
+ IModelJsFs.appendFileSync(outputFileName, `${iModelDb.pathName}\n`);
553
+ IModelJsFs.appendFileSync(outputFileName, "\n=== CodeSpecs ===\n");
554
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
555
+ iModelDb.withPreparedStatement(`SELECT ECInstanceId,Name FROM BisCore:CodeSpec ORDER BY ECInstanceId`, (statement) => {
556
+ while (DbResult.BE_SQLITE_ROW === statement.step()) {
557
+ const codeSpecId = statement.getValue(0).getId();
558
+ const codeSpecName = statement.getValue(1).getString();
559
+ IModelJsFs.appendFileSync(outputFileName, `${codeSpecId}, ${codeSpecName}\n`);
560
+ }
561
+ });
562
+ IModelJsFs.appendFileSync(outputFileName, "\n=== Schemas ===\n");
563
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
564
+ iModelDb.withPreparedStatement(`SELECT Name FROM ECDbMeta.ECSchemaDef ORDER BY ECInstanceId`, (statement) => {
565
+ while (DbResult.BE_SQLITE_ROW === statement.step()) {
566
+ const schemaName = statement.getValue(0).getString();
567
+ IModelJsFs.appendFileSync(outputFileName, `${schemaName}\n`);
568
+ }
569
+ });
570
+ IModelJsFs.appendFileSync(outputFileName, "\n=== Models ===\n");
571
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
572
+ iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${Model.classFullName} ORDER BY ECInstanceId`, (statement) => {
573
+ while (DbResult.BE_SQLITE_ROW === statement.step()) {
574
+ const modelId = statement.getValue(0).getId();
575
+ const model = iModelDb.models.getModel(modelId);
576
+ IModelJsFs.appendFileSync(outputFileName, `${modelId}, ${model.name}, ${model.parentModel}, ${model.classFullName}\n`);
577
+ }
578
+ });
579
+ IModelJsFs.appendFileSync(outputFileName, "\n=== ViewDefinitions ===\n");
580
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
581
+ iModelDb.withPreparedStatement(`SELECT ECInstanceId FROM ${ViewDefinition.classFullName} ORDER BY ECInstanceId`, (statement) => {
582
+ while (DbResult.BE_SQLITE_ROW === statement.step()) {
583
+ const viewDefinitionId = statement.getValue(0).getId();
584
+ const viewDefinition = iModelDb.elements.getElement(viewDefinitionId);
585
+ IModelJsFs.appendFileSync(outputFileName, `${viewDefinitionId}, ${viewDefinition.code.value}, ${viewDefinition.classFullName}\n`);
586
+ }
587
+ });
588
+ IModelJsFs.appendFileSync(outputFileName, "\n=== Elements ===\n");
589
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
590
+ iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${Element.classFullName}`, (statement) => {
591
+ if (DbResult.BE_SQLITE_ROW === statement.step()) {
592
+ const count = statement.getValue(0).getInteger();
593
+ IModelJsFs.appendFileSync(outputFileName, `Count of ${Element.classFullName}=${count}\n`);
594
+ }
595
+ });
596
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
597
+ iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${PhysicalObject.classFullName}`, (statement) => {
598
+ if (DbResult.BE_SQLITE_ROW === statement.step()) {
599
+ const count = statement.getValue(0).getInteger();
600
+ IModelJsFs.appendFileSync(outputFileName, `Count of ${PhysicalObject.classFullName}=${count}\n`);
601
+ }
602
+ });
603
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
604
+ iModelDb.withPreparedStatement(`SELECT COUNT(*) FROM ${GeometryPart.classFullName}`, (statement) => {
605
+ if (DbResult.BE_SQLITE_ROW === statement.step()) {
606
+ const count = statement.getValue(0).getInteger();
607
+ IModelJsFs.appendFileSync(outputFileName, `Count of ${GeometryPart.classFullName}=${count}\n`);
608
+ }
609
+ });
610
+ }
611
+ }
612
+ export class ExtensiveTestScenario {
613
+ static uniqueAspectGuid = Guid.createValue();
614
+ static federationGuid3 = Guid.createValue();
615
+ static async prepareDb(sourceDb) {
616
+ // Import desired schemas
617
+ const sourceSchemaFileName = path.join(KnownTestLocations.assetsDir, "ExtensiveTestScenario.ecschema.xml");
618
+ await sourceDb.importSchemas([FunctionalSchema.schemaFilePath, sourceSchemaFileName]);
619
+ FunctionalSchema.registerSchema();
620
+ }
621
+ static async populateDb(sourceDb) {
622
+ // make sure Arial is in the font table
623
+ const arialFontId = await sourceDb.fonts.acquireId({ name: "Arial", type: FontType.TrueType });
624
+ expect(arialFontId).not.to.be.undefined;
625
+ expect(arialFontId).greaterThan(0);
626
+ // Initialize project extents
627
+ const projectExtents = new Range3d(-1000, -1000, -1000, 1000, 1000, 1000);
628
+ sourceDb.updateProjectExtents(projectExtents);
629
+ // Insert CodeSpecs
630
+ const codeSpecId1 = sourceDb.codeSpecs.insert("SourceCodeSpec", CodeScopeSpec.Type.Model);
631
+ const codeSpecId2 = sourceDb.codeSpecs.insert("ExtraCodeSpec", CodeScopeSpec.Type.ParentElement);
632
+ const codeSpecId3 = sourceDb.codeSpecs.insert("InformationRecords", CodeScopeSpec.Type.Model);
633
+ assert.isTrue(Id64.isValidId64(codeSpecId1));
634
+ assert.isTrue(Id64.isValidId64(codeSpecId2));
635
+ assert.isTrue(Id64.isValidId64(codeSpecId3));
636
+ // Insert RepositoryModel structure
637
+ const subjectId = Subject.insert(sourceDb, IModel.rootSubjectId, "Subject", "Subject Description");
638
+ assert.isTrue(Id64.isValidId64(subjectId));
639
+ const sourceOnlySubjectId = Subject.insert(sourceDb, IModel.rootSubjectId, "Only in Source");
640
+ assert.isTrue(Id64.isValidId64(sourceOnlySubjectId));
641
+ const definitionModelId = DefinitionModel.insert(sourceDb, subjectId, "Definition");
642
+ assert.isTrue(Id64.isValidId64(definitionModelId));
643
+ const informationModelId = InformationRecordModel.insert(sourceDb, subjectId, "Information");
644
+ assert.isTrue(Id64.isValidId64(informationModelId));
645
+ const groupModelId = GroupModel.insert(sourceDb, subjectId, "Group");
646
+ assert.isTrue(Id64.isValidId64(groupModelId));
647
+ const physicalModelId = PhysicalModel.insert(sourceDb, subjectId, "Physical");
648
+ assert.isTrue(Id64.isValidId64(physicalModelId));
649
+ const spatialLocationModelId = SpatialLocationModel.insert(sourceDb, subjectId, "SpatialLocation", true);
650
+ assert.isTrue(Id64.isValidId64(spatialLocationModelId));
651
+ const functionalModelId = FunctionalModel.insert(sourceDb, subjectId, "Functional");
652
+ assert.isTrue(Id64.isValidId64(functionalModelId));
653
+ const documentListModelId = DocumentListModel.insert(sourceDb, subjectId, "Document");
654
+ assert.isTrue(Id64.isValidId64(documentListModelId));
655
+ const drawingId = Drawing.insert(sourceDb, documentListModelId, "Drawing");
656
+ assert.isTrue(Id64.isValidId64(drawingId));
657
+ // Insert DefinitionElements
658
+ const modelSelectorId = ModelSelector.insert(sourceDb, definitionModelId, "SpatialModels", [physicalModelId, spatialLocationModelId]);
659
+ assert.isTrue(Id64.isValidId64(modelSelectorId));
660
+ const spatialCategoryId = IModelTestUtils.insertSpatialCategory(sourceDb, definitionModelId, "SpatialCategory", ColorDef.green);
661
+ assert.isTrue(Id64.isValidId64(spatialCategoryId));
662
+ const sourcePhysicalCategoryId = IModelTestUtils.insertSpatialCategory(sourceDb, definitionModelId, "SourcePhysicalCategory", ColorDef.blue);
663
+ assert.isTrue(Id64.isValidId64(sourcePhysicalCategoryId));
664
+ const subCategoryId = SubCategory.insert(sourceDb, spatialCategoryId, "SubCategory", { color: ColorDef.blue.toJSON() });
665
+ assert.isTrue(Id64.isValidId64(subCategoryId));
666
+ const filteredSubCategoryId = SubCategory.insert(sourceDb, spatialCategoryId, "FilteredSubCategory", { color: ColorDef.green.toJSON() });
667
+ assert.isTrue(Id64.isValidId64(filteredSubCategoryId));
668
+ const drawingCategoryId = DrawingCategory.insert(sourceDb, definitionModelId, "DrawingCategory", new SubCategoryAppearance());
669
+ assert.isTrue(Id64.isValidId64(drawingCategoryId));
670
+ const spatialCategorySelectorId = CategorySelector.insert(sourceDb, definitionModelId, "SpatialCategories", [spatialCategoryId, sourcePhysicalCategoryId]);
671
+ assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));
672
+ const drawingCategorySelectorId = CategorySelector.insert(sourceDb, definitionModelId, "DrawingCategories", [drawingCategoryId]);
673
+ assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));
674
+ const auxCoordSystemProps = {
675
+ classFullName: AuxCoordSystem2d.classFullName,
676
+ model: definitionModelId,
677
+ code: AuxCoordSystem2d.createCode(sourceDb, definitionModelId, "AuxCoordSystem2d"),
678
+ };
679
+ const auxCoordSystemId = sourceDb.elements.insertElement(auxCoordSystemProps);
680
+ assert.isTrue(Id64.isValidId64(auxCoordSystemId));
681
+ const textureId = IModelTestUtils.insertTextureElement(sourceDb, definitionModelId, "Texture");
682
+ assert.isTrue(Id64.isValidId64(textureId));
683
+ const renderMaterialId = RenderMaterialElement.insert(sourceDb, definitionModelId, "RenderMaterial", { paletteName: "PaletteName" });
684
+ assert.isTrue(Id64.isValidId64(renderMaterialId));
685
+ const geometryPartProps = {
686
+ classFullName: GeometryPart.classFullName,
687
+ model: definitionModelId,
688
+ code: GeometryPart.createCode(sourceDb, definitionModelId, "GeometryPart"),
689
+ geom: IModelTestUtils.createBox(Point3d.create(3, 3, 3)),
690
+ };
691
+ const geometryPartId = sourceDb.elements.insertElement(geometryPartProps);
692
+ assert.isTrue(Id64.isValidId64(geometryPartId));
693
+ // Insert InformationRecords
694
+ const informationRecordProps1 = {
695
+ classFullName: "ExtensiveTestScenario:SourceInformationRecord",
696
+ model: informationModelId,
697
+ code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord1" },
698
+ commonString: "Common1",
699
+ sourceString: "One",
700
+ };
701
+ const informationRecordId1 = sourceDb.elements.insertElement(informationRecordProps1);
702
+ assert.isTrue(Id64.isValidId64(informationRecordId1));
703
+ const informationRecordProps2 = {
704
+ classFullName: "ExtensiveTestScenario:SourceInformationRecord",
705
+ model: informationModelId,
706
+ code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord2" },
707
+ commonString: "Common2",
708
+ sourceString: "Two",
709
+ };
710
+ const informationRecordId2 = sourceDb.elements.insertElement(informationRecordProps2);
711
+ assert.isTrue(Id64.isValidId64(informationRecordId2));
712
+ const informationRecordProps3 = {
713
+ classFullName: "ExtensiveTestScenario:SourceInformationRecord",
714
+ model: informationModelId,
715
+ code: { spec: codeSpecId3, scope: informationModelId, value: "InformationRecord3" },
716
+ commonString: "Common3",
717
+ sourceString: "Three",
718
+ };
719
+ const informationRecordId3 = sourceDb.elements.insertElement(informationRecordProps3);
720
+ assert.isTrue(Id64.isValidId64(informationRecordId3));
721
+ // Insert PhysicalObject1
722
+ const physicalObjectProps1 = {
723
+ classFullName: PhysicalObject.classFullName,
724
+ model: physicalModelId,
725
+ category: spatialCategoryId,
726
+ code: Code.createEmpty(),
727
+ userLabel: "PhysicalObject1",
728
+ geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1), spatialCategoryId, subCategoryId, renderMaterialId, geometryPartId),
729
+ placement: {
730
+ origin: Point3d.create(1, 1, 1),
731
+ angles: YawPitchRollAngles.createDegrees(0, 0, 0),
732
+ },
733
+ };
734
+ const physicalObjectId1 = sourceDb.elements.insertElement(physicalObjectProps1);
735
+ assert.isTrue(Id64.isValidId64(physicalObjectId1));
736
+ // Insert PhysicalObject1 children
737
+ const childObjectProps1A = physicalObjectProps1;
738
+ childObjectProps1A.userLabel = "ChildObject1A";
739
+ childObjectProps1A.parent = new ElementOwnsChildElements(physicalObjectId1);
740
+ childObjectProps1A.placement.origin = Point3d.create(0, 1, 1);
741
+ const childObjectId1A = sourceDb.elements.insertElement(childObjectProps1A);
742
+ assert.isTrue(Id64.isValidId64(childObjectId1A));
743
+ const childObjectProps1B = childObjectProps1A;
744
+ childObjectProps1B.userLabel = "ChildObject1B";
745
+ childObjectProps1B.placement.origin = Point3d.create(1, 0, 1);
746
+ const childObjectId1B = sourceDb.elements.insertElement(childObjectProps1B);
747
+ assert.isTrue(Id64.isValidId64(childObjectId1B));
748
+ // Insert PhysicalObject2
749
+ const physicalObjectProps2 = {
750
+ classFullName: PhysicalObject.classFullName,
751
+ model: physicalModelId,
752
+ category: sourcePhysicalCategoryId,
753
+ code: Code.createEmpty(),
754
+ userLabel: "PhysicalObject2",
755
+ geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),
756
+ placement: {
757
+ origin: Point3d.create(2, 2, 2),
758
+ angles: YawPitchRollAngles.createDegrees(0, 0, 0),
759
+ },
760
+ };
761
+ const physicalObjectId2 = sourceDb.elements.insertElement(physicalObjectProps2);
762
+ assert.isTrue(Id64.isValidId64(physicalObjectId2));
763
+ // Insert PhysicalObject3
764
+ const physicalObjectProps3 = {
765
+ classFullName: PhysicalObject.classFullName,
766
+ model: physicalModelId,
767
+ category: sourcePhysicalCategoryId,
768
+ code: Code.createEmpty(),
769
+ federationGuid: ExtensiveTestScenario.federationGuid3,
770
+ userLabel: "PhysicalObject3",
771
+ };
772
+ const physicalObjectId3 = sourceDb.elements.insertElement(physicalObjectProps3);
773
+ assert.isTrue(Id64.isValidId64(physicalObjectId3));
774
+ // Insert PhysicalObject4
775
+ const physicalObjectProps4 = {
776
+ classFullName: PhysicalObject.classFullName,
777
+ model: physicalModelId,
778
+ category: spatialCategoryId,
779
+ code: Code.createEmpty(),
780
+ userLabel: "PhysicalObject4",
781
+ geom: IModelTestUtils.createBoxes([subCategoryId, filteredSubCategoryId]),
782
+ placement: {
783
+ origin: Point3d.create(4, 4, 4),
784
+ angles: YawPitchRollAngles.createDegrees(0, 0, 0),
785
+ },
786
+ };
787
+ const physicalObjectId4 = sourceDb.elements.insertElement(physicalObjectProps4);
788
+ assert.isTrue(Id64.isValidId64(physicalObjectId4));
789
+ // Insert PhysicalElement1
790
+ const sourcePhysicalElementProps = {
791
+ classFullName: "ExtensiveTestScenario:SourcePhysicalElement",
792
+ model: physicalModelId,
793
+ category: sourcePhysicalCategoryId,
794
+ code: Code.createEmpty(),
795
+ userLabel: "PhysicalElement1",
796
+ geom: IModelTestUtils.createBox(Point3d.create(2, 2, 2)),
797
+ placement: {
798
+ origin: Point3d.create(4, 4, 4),
799
+ angles: YawPitchRollAngles.createDegrees(0, 0, 0),
800
+ },
801
+ sourceString: "S1",
802
+ sourceDouble: 1.1,
803
+ sourceNavigation: { id: sourcePhysicalCategoryId, relClassName: "ExtensiveTestScenario:SourcePhysicalElementUsesSourceDefinition" },
804
+ commonNavigation: { id: sourcePhysicalCategoryId },
805
+ commonString: "Common",
806
+ commonDouble: 7.3,
807
+ sourceBinary: new Uint8Array([1, 3, 5, 7]),
808
+ commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),
809
+ extraString: "Extra",
810
+ };
811
+ const sourcePhysicalElementId = sourceDb.elements.insertElement(sourcePhysicalElementProps);
812
+ assert.isTrue(Id64.isValidId64(sourcePhysicalElementId));
813
+ assert.doesNotThrow(() => sourceDb.elements.getElement(sourcePhysicalElementId));
814
+ // Insert ElementAspects
815
+ const aspectProps = {
816
+ classFullName: "ExtensiveTestScenario:SourceUniqueAspect",
817
+ element: new ElementOwnsUniqueAspect(physicalObjectId1),
818
+ commonDouble: 1.1,
819
+ commonString: "Unique",
820
+ commonLong: physicalObjectId1,
821
+ commonBinary: Base64EncodedString.fromUint8Array(new Uint8Array([2, 4, 6, 8])),
822
+ sourceDouble: 11.1,
823
+ sourceString: "UniqueAspect",
824
+ sourceLong: physicalObjectId1,
825
+ sourceGuid: ExtensiveTestScenario.uniqueAspectGuid,
826
+ extraString: "Extra",
827
+ };
828
+ sourceDb.elements.insertAspect(aspectProps);
829
+ const sourceUniqueAspect = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceUniqueAspect")[0];
830
+ expect(sourceUniqueAspect).to.deep.subsetEqual(omit(aspectProps, ["commonBinary"]), { normalizeClassNameProps: true });
831
+ sourceDb.elements.insertAspect({
832
+ classFullName: "ExtensiveTestScenario:SourceMultiAspect",
833
+ element: new ElementOwnsMultiAspects(physicalObjectId1),
834
+ commonDouble: 2.2,
835
+ commonString: "Multi",
836
+ commonLong: physicalObjectId1,
837
+ sourceDouble: 22.2,
838
+ sourceString: "MultiAspect",
839
+ sourceLong: physicalObjectId1,
840
+ sourceGuid: Guid.createValue(),
841
+ extraString: "Extra",
842
+ });
843
+ sourceDb.elements.insertAspect({
844
+ classFullName: "ExtensiveTestScenario:SourceMultiAspect",
845
+ element: new ElementOwnsMultiAspects(physicalObjectId1),
846
+ commonDouble: 3.3,
847
+ commonString: "Multi",
848
+ commonLong: physicalObjectId1,
849
+ sourceDouble: 33.3,
850
+ sourceString: "MultiAspect",
851
+ sourceLong: physicalObjectId1,
852
+ sourceGuid: Guid.createValue(),
853
+ extraString: "Extra",
854
+ });
855
+ sourceDb.elements.insertAspect({
856
+ classFullName: "ExtensiveTestScenario:SourceUniqueAspectToExclude",
857
+ element: new ElementOwnsUniqueAspect(physicalObjectId1),
858
+ description: "SourceUniqueAspect1",
859
+ });
860
+ sourceDb.elements.insertAspect({
861
+ classFullName: "ExtensiveTestScenario:SourceMultiAspectToExclude",
862
+ element: new ElementOwnsMultiAspects(physicalObjectId1),
863
+ description: "SourceMultiAspect1",
864
+ });
865
+ // Insert DrawingGraphics
866
+ const drawingGraphicProps1 = {
867
+ classFullName: DrawingGraphic.classFullName,
868
+ model: drawingId,
869
+ category: drawingCategoryId,
870
+ code: Code.createEmpty(),
871
+ userLabel: "DrawingGraphic1",
872
+ geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),
873
+ placement: { origin: Point2d.create(2, 2), angle: 0 },
874
+ };
875
+ const drawingGraphicId1 = sourceDb.elements.insertElement(drawingGraphicProps1);
876
+ assert.isTrue(Id64.isValidId64(drawingGraphicId1));
877
+ const drawingGraphicRepresentsId1 = DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId1, physicalObjectId1);
878
+ assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId1));
879
+ const drawingGraphicProps2 = {
880
+ classFullName: DrawingGraphic.classFullName,
881
+ model: drawingId,
882
+ category: drawingCategoryId,
883
+ code: Code.createEmpty(),
884
+ userLabel: "DrawingGraphic2",
885
+ geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),
886
+ placement: { origin: Point2d.create(3, 3), angle: 0 },
887
+ };
888
+ const drawingGraphicId2 = sourceDb.elements.insertElement(drawingGraphicProps2);
889
+ assert.isTrue(Id64.isValidId64(drawingGraphicId2));
890
+ const drawingGraphicRepresentsId2 = DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId2, physicalObjectId1);
891
+ assert.isTrue(Id64.isValidId64(drawingGraphicRepresentsId2));
892
+ // Insert DisplayStyles
893
+ const displayStyle2dId = DisplayStyle2d.insert(sourceDb, definitionModelId, "DisplayStyle2d");
894
+ assert.isTrue(Id64.isValidId64(displayStyle2dId));
895
+ const displayStyle3d = DisplayStyle3d.create(sourceDb, definitionModelId, "DisplayStyle3d");
896
+ const subCategoryOverride = SubCategoryOverride.fromJSON({ color: ColorDef.from(1, 2, 3).toJSON() });
897
+ displayStyle3d.settings.overrideSubCategory(subCategoryId, subCategoryOverride);
898
+ displayStyle3d.settings.addExcludedElements(physicalObjectId1);
899
+ displayStyle3d.settings.setPlanProjectionSettings(spatialLocationModelId, PlanProjectionSettings.fromJSON({ elevation: 10.0 }));
900
+ displayStyle3d.settings.environment = Environment.fromJSON({
901
+ sky: {
902
+ image: {
903
+ type: SkyBoxImageType.Spherical,
904
+ texture: textureId,
905
+ },
906
+ },
907
+ });
908
+ const displayStyle3dId = displayStyle3d.insert();
909
+ assert.isTrue(Id64.isValidId64(displayStyle3dId));
910
+ // Insert ViewDefinitions
911
+ const viewId = OrthographicViewDefinition.insert(sourceDb, definitionModelId, "Orthographic View", modelSelectorId, spatialCategorySelectorId, displayStyle3dId, projectExtents, StandardViewIndex.Iso);
912
+ assert.isTrue(Id64.isValidId64(viewId));
913
+ const drawingViewRange = new Range2d(0, 0, 100, 100);
914
+ const drawingViewId = DrawingViewDefinition.insert(sourceDb, definitionModelId, "Drawing View", drawingId, drawingCategorySelectorId, displayStyle2dId, drawingViewRange);
915
+ assert.isTrue(Id64.isValidId64(drawingViewId));
916
+ // Insert instance of SourceRelToExclude to test relationship exclusion by class
917
+ const relationship1 = sourceDb.relationships.createInstance({
918
+ classFullName: "ExtensiveTestScenario:SourceRelToExclude",
919
+ sourceId: spatialCategorySelectorId,
920
+ targetId: drawingCategorySelectorId,
921
+ });
922
+ const relationshipId1 = sourceDb.relationships.insertInstance(relationship1.toJSON());
923
+ assert.isTrue(Id64.isValidId64(relationshipId1));
924
+ // Insert instance of RelWithProps to test relationship property remapping
925
+ const relationship2 = sourceDb.relationships.createInstance({
926
+ classFullName: "ExtensiveTestScenario:SourceRelWithProps",
927
+ sourceId: spatialCategorySelectorId,
928
+ targetId: drawingCategorySelectorId,
929
+ sourceString: "One",
930
+ sourceDouble: 1.1,
931
+ sourceLong: spatialCategoryId,
932
+ sourceGuid: Guid.createValue(),
933
+ });
934
+ const relationshipId2 = sourceDb.relationships.insertInstance(relationship2.toJSON());
935
+ assert.isTrue(Id64.isValidId64(relationshipId2));
936
+ }
937
+ static updateDb(sourceDb) {
938
+ // Update Subject element
939
+ const subjectId = sourceDb.elements.queryElementIdByCode(Subject.createCode(sourceDb, IModel.rootSubjectId, "Subject"));
940
+ assert.isTrue(Id64.isValidId64(subjectId));
941
+ const subject = sourceDb.elements.getElement(subjectId);
942
+ subject.description = "Subject description (Updated)";
943
+ sourceDb.elements.updateElement(subject.toJSON());
944
+ // Update spatialCategory element
945
+ const definitionModelId = sourceDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(sourceDb, subjectId, "Definition"));
946
+ assert.isTrue(Id64.isValidId64(definitionModelId));
947
+ const spatialCategoryId = sourceDb.elements.queryElementIdByCode(SpatialCategory.createCode(sourceDb, definitionModelId, "SpatialCategory"));
948
+ assert.isTrue(Id64.isValidId64(spatialCategoryId));
949
+ const spatialCategory = sourceDb.elements.getElement(spatialCategoryId);
950
+ spatialCategory.federationGuid = Guid.createValue();
951
+ sourceDb.elements.updateElement(spatialCategory.toJSON());
952
+ // Update relationship properties
953
+ const spatialCategorySelectorId = sourceDb.elements.queryElementIdByCode(CategorySelector.createCode(sourceDb, definitionModelId, "SpatialCategories"));
954
+ assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));
955
+ const drawingCategorySelectorId = sourceDb.elements.queryElementIdByCode(CategorySelector.createCode(sourceDb, definitionModelId, "DrawingCategories"));
956
+ assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));
957
+ const relWithProps = sourceDb.relationships.getInstanceProps("ExtensiveTestScenario:SourceRelWithProps", { sourceId: spatialCategorySelectorId, targetId: drawingCategorySelectorId });
958
+ assert.equal(relWithProps.sourceString, "One");
959
+ assert.equal(relWithProps.sourceDouble, 1.1);
960
+ relWithProps.sourceString += "-Updated";
961
+ relWithProps.sourceDouble = 1.2;
962
+ sourceDb.relationships.updateInstance(relWithProps);
963
+ // Update ElementAspect properties
964
+ const physicalObjectId1 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject1");
965
+ const sourceUniqueAspects = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceUniqueAspect");
966
+ assert.equal(sourceUniqueAspects.length, 1);
967
+ sourceUniqueAspects[0].asAny.commonString += "-Updated";
968
+ sourceUniqueAspects[0].asAny.sourceString += "-Updated";
969
+ sourceDb.elements.updateAspect(sourceUniqueAspects[0].toJSON());
970
+ const sourceMultiAspects = sourceDb.elements.getAspects(physicalObjectId1, "ExtensiveTestScenario:SourceMultiAspect");
971
+ assert.equal(sourceMultiAspects.length, 2);
972
+ sourceMultiAspects[1].asAny.commonString += "-Updated";
973
+ sourceMultiAspects[1].asAny.sourceString += "-Updated";
974
+ sourceDb.elements.updateAspect(sourceMultiAspects[1].toJSON());
975
+ // clear NavigationProperty of PhysicalElement1
976
+ const physicalElementId1 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalElement1");
977
+ let physicalElement1 = sourceDb.elements.getElement(physicalElementId1);
978
+ physicalElement1.asAny.commonNavigation = RelatedElement.none;
979
+ physicalElement1.update();
980
+ physicalElement1 = sourceDb.elements.getElement(physicalElementId1);
981
+ assert.isUndefined(physicalElement1.asAny.commonNavigation);
982
+ // delete PhysicalObject3
983
+ const physicalObjectId3 = IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject3");
984
+ assert.isTrue(Id64.isValidId64(physicalObjectId3));
985
+ sourceDb.elements.deleteElement(physicalObjectId3);
986
+ assert.equal(Id64.invalid, IModelTestUtils.queryByUserLabel(sourceDb, "PhysicalObject3"));
987
+ // Insert PhysicalObject5
988
+ const physicalObjectProps5 = {
989
+ classFullName: PhysicalObject.classFullName,
990
+ model: physicalElement1.model,
991
+ category: spatialCategoryId,
992
+ code: Code.createEmpty(),
993
+ userLabel: "PhysicalObject5",
994
+ geom: IModelTestUtils.createBox(Point3d.create(1, 1, 1)),
995
+ placement: {
996
+ origin: Point3d.create(5, 5, 5),
997
+ angles: YawPitchRollAngles.createDegrees(0, 0, 0),
998
+ },
999
+ };
1000
+ const physicalObjectId5 = sourceDb.elements.insertElement(physicalObjectProps5);
1001
+ assert.isTrue(Id64.isValidId64(physicalObjectId5));
1002
+ // delete relationship
1003
+ const drawingGraphicId1 = IModelTestUtils.queryByUserLabel(sourceDb, "DrawingGraphic1");
1004
+ const drawingGraphicId2 = IModelTestUtils.queryByUserLabel(sourceDb, "DrawingGraphic2");
1005
+ const relationship = sourceDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId1 });
1006
+ relationship.delete();
1007
+ // insert relationships
1008
+ DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId1, physicalObjectId5);
1009
+ DrawingGraphicRepresentsElement.insert(sourceDb, drawingGraphicId2, physicalObjectId5);
1010
+ // update InformationRecord2
1011
+ const informationRecordCodeSpec = sourceDb.codeSpecs.getByName("InformationRecords");
1012
+ const informationModelId = sourceDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(sourceDb, subjectId, "Information"));
1013
+ const informationRecodeCode2 = new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord2" });
1014
+ const informationRecordId2 = sourceDb.elements.queryElementIdByCode(informationRecodeCode2);
1015
+ assert.isTrue(Id64.isValidId64(informationRecordId2));
1016
+ const informationRecord2 = sourceDb.elements.getElement(informationRecordId2);
1017
+ informationRecord2.commonString = `${informationRecord2.commonString}-Updated`;
1018
+ informationRecord2.sourceString = `${informationRecord2.sourceString}-Updated`;
1019
+ informationRecord2.update();
1020
+ // delete InformationRecord3
1021
+ const informationRecodeCode3 = new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord3" });
1022
+ const informationRecordId3 = sourceDb.elements.queryElementIdByCode(informationRecodeCode3);
1023
+ assert.isTrue(Id64.isValidId64(informationRecordId3));
1024
+ sourceDb.elements.deleteElement(informationRecordId3);
1025
+ }
1026
+ static assertUpdatesInDb(iModelDb, assertDeletes = true) {
1027
+ // determine which schema was imported
1028
+ const testSourceSchema = iModelDb.querySchemaVersion("ExtensiveTestScenario") ? true : false;
1029
+ const testTargetSchema = iModelDb.querySchemaVersion("ExtensiveTestScenarioTarget") ? true : false;
1030
+ assert.notEqual(testSourceSchema, testTargetSchema);
1031
+ // assert Subject was updated
1032
+ const subjectId = iModelDb.elements.queryElementIdByCode(Subject.createCode(iModelDb, IModel.rootSubjectId, "Subject"));
1033
+ assert.isTrue(Id64.isValidId64(subjectId));
1034
+ const subject = iModelDb.elements.getElement(subjectId);
1035
+ assert.equal(subject.description, "Subject description (Updated)");
1036
+ // assert SpatialCategory was updated
1037
+ const definitionModelId = iModelDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(iModelDb, subjectId, "Definition"));
1038
+ assert.isTrue(Id64.isValidId64(definitionModelId));
1039
+ const spatialCategoryId = iModelDb.elements.queryElementIdByCode(SpatialCategory.createCode(iModelDb, definitionModelId, "SpatialCategory"));
1040
+ assert.isTrue(Id64.isValidId64(spatialCategoryId));
1041
+ const spatialCategory = iModelDb.elements.getElement(spatialCategoryId);
1042
+ assert.exists(spatialCategory.federationGuid);
1043
+ // assert TargetRelWithProps was updated
1044
+ const spatialCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, "SpatialCategories"));
1045
+ assert.isTrue(Id64.isValidId64(spatialCategorySelectorId));
1046
+ const drawingCategorySelectorId = iModelDb.elements.queryElementIdByCode(CategorySelector.createCode(iModelDb, definitionModelId, "DrawingCategories"));
1047
+ assert.isTrue(Id64.isValidId64(drawingCategorySelectorId));
1048
+ const relClassFullName = testTargetSchema ? "ExtensiveTestScenarioTarget:TargetRelWithProps" : "ExtensiveTestScenario:SourceRelWithProps";
1049
+ const relWithProps = iModelDb.relationships.getInstanceProps(relClassFullName, { sourceId: spatialCategorySelectorId, targetId: drawingCategorySelectorId });
1050
+ assert.equal(testTargetSchema ? relWithProps.targetString : relWithProps.sourceString, "One-Updated");
1051
+ assert.equal(testTargetSchema ? relWithProps.targetDouble : relWithProps.sourceDouble, 1.2);
1052
+ // assert ElementAspect properties
1053
+ const physicalObjectId1 = IModelTestUtils.queryByUserLabel(iModelDb, "PhysicalObject1");
1054
+ const uniqueAspectClassFullName = testTargetSchema ? "ExtensiveTestScenarioTarget:TargetUniqueAspect" : "ExtensiveTestScenario:SourceUniqueAspect";
1055
+ const uniqueAspects = iModelDb.elements.getAspects(physicalObjectId1, uniqueAspectClassFullName);
1056
+ assert.equal(uniqueAspects.length, 1);
1057
+ const uniqueAspect = uniqueAspects[0].asAny;
1058
+ expect(uniqueAspect).to.deep.subsetEqual({
1059
+ commonDouble: 1.1,
1060
+ commonString: "Unique-Updated",
1061
+ commonLong: physicalObjectId1,
1062
+ });
1063
+ if (testTargetSchema) {
1064
+ expect(uniqueAspect).to.deep.subsetEqual({
1065
+ targetDouble: 11.1,
1066
+ targetString: "UniqueAspect-Updated",
1067
+ targetLong: physicalObjectId1,
1068
+ });
1069
+ }
1070
+ else {
1071
+ expect(uniqueAspect).to.deep.subsetEqual({
1072
+ sourceDouble: 11.1,
1073
+ sourceString: "UniqueAspect-Updated",
1074
+ sourceLong: physicalObjectId1,
1075
+ });
1076
+ }
1077
+ const multiAspectClassFullName = testTargetSchema ? "ExtensiveTestScenarioTarget:TargetMultiAspect" : "ExtensiveTestScenario:SourceMultiAspect";
1078
+ const multiAspects = iModelDb.elements.getAspects(physicalObjectId1, multiAspectClassFullName);
1079
+ assert.equal(multiAspects.length, 2);
1080
+ const multiAspect0 = multiAspects[0].asAny;
1081
+ const multiAspect1 = multiAspects[1].asAny;
1082
+ assert.equal(multiAspect0.commonDouble, 2.2);
1083
+ assert.equal(multiAspect0.commonString, "Multi");
1084
+ assert.equal(multiAspect0.commonLong, physicalObjectId1);
1085
+ assert.equal(testTargetSchema ? multiAspect0.targetDouble : multiAspect0.sourceDouble, 22.2);
1086
+ assert.equal(testTargetSchema ? multiAspect0.targetString : multiAspect0.sourceString, "MultiAspect");
1087
+ assert.equal(testTargetSchema ? multiAspect0.targetLong : multiAspect0.sourceLong, physicalObjectId1);
1088
+ assert.equal(multiAspect1.commonDouble, 3.3);
1089
+ assert.equal(multiAspect1.commonString, "Multi-Updated");
1090
+ assert.equal(multiAspect1.commonLong, physicalObjectId1);
1091
+ assert.equal(testTargetSchema ? multiAspect1.targetDouble : multiAspect1.sourceDouble, 33.3);
1092
+ assert.equal(testTargetSchema ? multiAspect1.targetString : multiAspect1.sourceString, "MultiAspect-Updated");
1093
+ assert.equal(testTargetSchema ? multiAspect1.targetLong : multiAspect1.sourceLong, physicalObjectId1);
1094
+ // assert NavigationProperty of PhysicalElement1 was cleared
1095
+ const physicalElementId = IModelTestUtils.queryByUserLabel(iModelDb, "PhysicalElement1");
1096
+ const physicalElement = iModelDb.elements.getElement(physicalElementId);
1097
+ assert.isUndefined(physicalElement.asAny.commonNavigation);
1098
+ // assert PhysicalObject5 was inserted
1099
+ const physicalObjectId5 = IModelTestUtils.queryByUserLabel(iModelDb, "PhysicalObject5");
1100
+ assert.isTrue(Id64.isValidId64(physicalObjectId5));
1101
+ // assert relationships were inserted
1102
+ const drawingGraphicId1 = IModelTestUtils.queryByUserLabel(iModelDb, "DrawingGraphic1");
1103
+ const drawingGraphicId2 = IModelTestUtils.queryByUserLabel(iModelDb, "DrawingGraphic2");
1104
+ iModelDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId1, targetId: physicalObjectId5 });
1105
+ iModelDb.relationships.getInstance(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId5 });
1106
+ // assert InformationRecord2 was updated
1107
+ const informationRecordCodeSpec = iModelDb.codeSpecs.getByName("InformationRecords");
1108
+ const informationModelId = iModelDb.elements.queryElementIdByCode(InformationPartitionElement.createCode(iModelDb, subjectId, "Information"));
1109
+ const informationRecordId2 = iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord2" }));
1110
+ assert.isTrue(Id64.isValidId64(informationRecordId2));
1111
+ const informationRecord2 = iModelDb.elements.getElement(informationRecordId2);
1112
+ assert.equal(informationRecord2.commonString, "Common2-Updated");
1113
+ assert.equal(testTargetSchema ? informationRecord2.targetString : informationRecord2.sourceString, "Two-Updated");
1114
+ // assert InformationRecord3 was deleted
1115
+ assert.isDefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord1" })));
1116
+ assert.isDefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord2" })));
1117
+ // detect deletes if possible - cannot detect during processAll when isReverseSynchronization is true
1118
+ if (assertDeletes) {
1119
+ assert.equal(Id64.invalid, IModelTestUtils.queryByUserLabel(iModelDb, "PhysicalObject3"));
1120
+ assert.throws(() => iModelDb.relationships.getInstanceProps(DrawingGraphicRepresentsElement.classFullName, { sourceId: drawingGraphicId2, targetId: physicalObjectId1 }));
1121
+ assert.isUndefined(iModelDb.elements.queryElementIdByCode(new Code({ spec: informationRecordCodeSpec.id, scope: informationModelId, value: "InformationRecord3" })));
1122
+ }
1123
+ }
1124
+ }
1125
+ //# sourceMappingURL=IModelTestUtils.js.map