@itwin/core-backend 5.1.2 → 5.1.3-experimental.1

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 (392) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +19 -5
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.js.map +1 -1
  10. package/lib/cjs/Category.js.map +1 -1
  11. package/lib/cjs/ChangeSummaryManager.js +2 -2
  12. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  13. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  14. package/lib/cjs/ChangesetECAdaptor.js +248 -248
  15. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  16. package/lib/cjs/ChannelControl.js.map +1 -1
  17. package/lib/cjs/CheckpointManager.js.map +1 -1
  18. package/lib/cjs/ClassRegistry.js +5 -5
  19. package/lib/cjs/ClassRegistry.js.map +1 -1
  20. package/lib/cjs/CloudSqlite.js.map +1 -1
  21. package/lib/cjs/CodeService.js.map +1 -1
  22. package/lib/cjs/CodeSpecs.js.map +1 -1
  23. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  24. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  25. package/lib/cjs/DevTools.js.map +1 -1
  26. package/lib/cjs/DisplayStyle.js.map +1 -1
  27. package/lib/cjs/ECDb.js.map +1 -1
  28. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  29. package/lib/cjs/ECSqlStatement.js.map +1 -1
  30. package/lib/cjs/Element.js.map +1 -1
  31. package/lib/cjs/ElementAspect.js.map +1 -1
  32. package/lib/cjs/ElementGraphics.js.map +1 -1
  33. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  34. package/lib/cjs/Entity.js.map +1 -1
  35. package/lib/cjs/EntityReferences.js.map +1 -1
  36. package/lib/cjs/ExportGraphics.js.map +1 -1
  37. package/lib/cjs/ExternalSource.js.map +1 -1
  38. package/lib/cjs/FontFile.js.map +1 -1
  39. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  40. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  41. package/lib/cjs/GeometrySummary.js +47 -47
  42. package/lib/cjs/GeometrySummary.js.map +1 -1
  43. package/lib/cjs/IModelDb.d.ts +22 -2
  44. package/lib/cjs/IModelDb.d.ts.map +1 -1
  45. package/lib/cjs/IModelDb.js +31 -11
  46. package/lib/cjs/IModelDb.js.map +1 -1
  47. package/lib/cjs/IModelDbFonts.js.map +1 -1
  48. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  49. package/lib/cjs/IModelHost.js.map +1 -1
  50. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  51. package/lib/cjs/IModelJsFs.js.map +1 -1
  52. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  53. package/lib/cjs/IpcHost.js.map +1 -1
  54. package/lib/cjs/LineStyle.js.map +1 -1
  55. package/lib/cjs/LocalHub.js +1 -1
  56. package/lib/cjs/LocalHub.js.map +1 -1
  57. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  58. package/lib/cjs/LockControl.js.map +1 -1
  59. package/lib/cjs/Material.js.map +1 -1
  60. package/lib/cjs/Model.js.map +1 -1
  61. package/lib/cjs/NativeAppStorage.js.map +1 -1
  62. package/lib/cjs/NativeHost.js.map +1 -1
  63. package/lib/cjs/NavigationRelationship.js.map +1 -1
  64. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  65. package/lib/cjs/PropertyStore.js.map +1 -1
  66. package/lib/cjs/Relationship.js.map +1 -1
  67. package/lib/cjs/RpcBackend.js.map +1 -1
  68. package/lib/cjs/SQLiteDb.js.map +1 -1
  69. package/lib/cjs/Schema.js.map +1 -1
  70. package/lib/cjs/SchemaSync.js.map +1 -1
  71. package/lib/cjs/SchemaUtils.js.map +1 -1
  72. package/lib/cjs/SheetIndex.js.map +1 -1
  73. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  74. package/lib/cjs/SqliteStatement.js.map +1 -1
  75. package/lib/cjs/Texture.js.map +1 -1
  76. package/lib/cjs/TileStorage.js.map +1 -1
  77. package/lib/cjs/TxnManager.d.ts +57 -10
  78. package/lib/cjs/TxnManager.d.ts.map +1 -1
  79. package/lib/cjs/TxnManager.js +76 -13
  80. package/lib/cjs/TxnManager.js.map +1 -1
  81. package/lib/cjs/ViewDefinition.js.map +1 -1
  82. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  83. package/lib/cjs/ViewStore.js.map +1 -1
  84. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  85. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  86. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  87. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  88. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  89. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  90. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  91. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  92. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  93. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  94. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  95. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  96. package/lib/cjs/core-backend.js.map +1 -1
  97. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  98. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  99. package/lib/cjs/domains/GenericElements.js.map +1 -1
  100. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  101. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  102. package/lib/cjs/internal/ChannelAdmin.js +1 -1
  103. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  104. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  105. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  106. package/lib/cjs/internal/HubMock.js.map +1 -1
  107. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  108. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  109. package/lib/cjs/internal/NoLocks.js.map +1 -1
  110. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  111. package/lib/cjs/internal/Symbols.js.map +1 -1
  112. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  113. package/lib/cjs/internal/cross-package.js.map +1 -1
  114. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  115. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  116. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  117. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  118. package/lib/cjs/rpc/multipart.js.map +1 -1
  119. package/lib/cjs/rpc/tracing.js.map +1 -1
  120. package/lib/cjs/rpc/web/logging.js.map +1 -1
  121. package/lib/cjs/rpc/web/request.js.map +1 -1
  122. package/lib/cjs/rpc/web/response.js.map +1 -1
  123. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  124. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  125. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  126. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  127. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  128. package/lib/cjs/workspace/Settings.js.map +1 -1
  129. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  130. package/lib/cjs/workspace/Workspace.js.map +1 -1
  131. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  132. package/lib/esm/BackendHubAccess.js.map +1 -1
  133. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  134. package/lib/esm/BisCoreSchema.js.map +1 -1
  135. package/lib/esm/BlobContainerService.js.map +1 -1
  136. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  137. package/lib/esm/BriefcaseManager.js +20 -6
  138. package/lib/esm/BriefcaseManager.js.map +1 -1
  139. package/lib/esm/CatalogDb.js.map +1 -1
  140. package/lib/esm/Category.js.map +1 -1
  141. package/lib/esm/ChangeSummaryManager.js +2 -2
  142. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  143. package/lib/esm/ChangedElementsDb.js.map +1 -1
  144. package/lib/esm/ChangesetECAdaptor.js +248 -248
  145. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  146. package/lib/esm/ChannelControl.js.map +1 -1
  147. package/lib/esm/CheckpointManager.js.map +1 -1
  148. package/lib/esm/ClassRegistry.js +5 -5
  149. package/lib/esm/ClassRegistry.js.map +1 -1
  150. package/lib/esm/CloudSqlite.js.map +1 -1
  151. package/lib/esm/CodeService.js.map +1 -1
  152. package/lib/esm/CodeSpecs.js.map +1 -1
  153. package/lib/esm/ConcurrentQuery.js.map +1 -1
  154. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  155. package/lib/esm/DevTools.js.map +1 -1
  156. package/lib/esm/DisplayStyle.js.map +1 -1
  157. package/lib/esm/ECDb.js.map +1 -1
  158. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  159. package/lib/esm/ECSqlStatement.js.map +1 -1
  160. package/lib/esm/Element.js.map +1 -1
  161. package/lib/esm/ElementAspect.js.map +1 -1
  162. package/lib/esm/ElementGraphics.js.map +1 -1
  163. package/lib/esm/ElementTreeWalker.js.map +1 -1
  164. package/lib/esm/Entity.js.map +1 -1
  165. package/lib/esm/EntityReferences.js.map +1 -1
  166. package/lib/esm/ExportGraphics.js.map +1 -1
  167. package/lib/esm/ExternalSource.js.map +1 -1
  168. package/lib/esm/FontFile.js.map +1 -1
  169. package/lib/esm/GeoCoordConfig.js.map +1 -1
  170. package/lib/esm/GeographicCRSServices.js.map +1 -1
  171. package/lib/esm/GeometrySummary.js +47 -47
  172. package/lib/esm/GeometrySummary.js.map +1 -1
  173. package/lib/esm/IModelDb.d.ts +22 -2
  174. package/lib/esm/IModelDb.d.ts.map +1 -1
  175. package/lib/esm/IModelDb.js +31 -11
  176. package/lib/esm/IModelDb.js.map +1 -1
  177. package/lib/esm/IModelDbFonts.js.map +1 -1
  178. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  179. package/lib/esm/IModelHost.js.map +1 -1
  180. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  181. package/lib/esm/IModelJsFs.js.map +1 -1
  182. package/lib/esm/ImageSourceConversion.js.map +1 -1
  183. package/lib/esm/IpcHost.js.map +1 -1
  184. package/lib/esm/LineStyle.js.map +1 -1
  185. package/lib/esm/LocalHub.js +1 -1
  186. package/lib/esm/LocalHub.js.map +1 -1
  187. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  188. package/lib/esm/LockControl.js.map +1 -1
  189. package/lib/esm/Material.js.map +1 -1
  190. package/lib/esm/Model.js.map +1 -1
  191. package/lib/esm/NativeAppStorage.js.map +1 -1
  192. package/lib/esm/NativeHost.js.map +1 -1
  193. package/lib/esm/NavigationRelationship.js.map +1 -1
  194. package/lib/esm/PromiseMemoizer.js.map +1 -1
  195. package/lib/esm/PropertyStore.js.map +1 -1
  196. package/lib/esm/Relationship.js.map +1 -1
  197. package/lib/esm/RpcBackend.js.map +1 -1
  198. package/lib/esm/SQLiteDb.js.map +1 -1
  199. package/lib/esm/Schema.js.map +1 -1
  200. package/lib/esm/SchemaSync.js.map +1 -1
  201. package/lib/esm/SchemaUtils.js.map +1 -1
  202. package/lib/esm/SheetIndex.js.map +1 -1
  203. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  204. package/lib/esm/SqliteStatement.js.map +1 -1
  205. package/lib/esm/Texture.js.map +1 -1
  206. package/lib/esm/TileStorage.js.map +1 -1
  207. package/lib/esm/TxnManager.d.ts +57 -10
  208. package/lib/esm/TxnManager.d.ts.map +1 -1
  209. package/lib/esm/TxnManager.js +77 -14
  210. package/lib/esm/TxnManager.js.map +1 -1
  211. package/lib/esm/ViewDefinition.js.map +1 -1
  212. package/lib/esm/ViewStateHydrator.js.map +1 -1
  213. package/lib/esm/ViewStore.js.map +1 -1
  214. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  215. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  216. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  217. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  218. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  219. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  220. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  221. package/lib/esm/core-backend.js.map +1 -1
  222. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  223. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  224. package/lib/esm/domains/GenericElements.js.map +1 -1
  225. package/lib/esm/domains/GenericSchema.js.map +1 -1
  226. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  227. package/lib/esm/internal/ChannelAdmin.js +1 -1
  228. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  229. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  230. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  231. package/lib/esm/internal/HubMock.js.map +1 -1
  232. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  233. package/lib/esm/internal/NativePlatform.js.map +1 -1
  234. package/lib/esm/internal/NoLocks.js.map +1 -1
  235. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  236. package/lib/esm/internal/Symbols.js.map +1 -1
  237. package/lib/esm/internal/annotations/fields.js.map +1 -1
  238. package/lib/esm/internal/cross-package.js.map +1 -1
  239. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  240. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  241. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  242. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  243. package/lib/esm/rpc/multipart.js.map +1 -1
  244. package/lib/esm/rpc/tracing.js.map +1 -1
  245. package/lib/esm/rpc/web/logging.js.map +1 -1
  246. package/lib/esm/rpc/web/request.js.map +1 -1
  247. package/lib/esm/rpc/web/response.js.map +1 -1
  248. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  249. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  250. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  251. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  252. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  253. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  254. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  255. package/lib/esm/test/AttachDb.test.js +11 -11
  256. package/lib/esm/test/AttachDb.test.js.map +1 -1
  257. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  258. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  259. package/lib/esm/test/IModelHost.test.js.map +1 -1
  260. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  261. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  262. package/lib/esm/test/IpcHost.test.js.map +1 -1
  263. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  264. package/lib/esm/test/PrintElementTree.js.map +1 -1
  265. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  266. package/lib/esm/test/RevisionUtility.js.map +1 -1
  267. package/lib/esm/test/SchemaUtils.test.js +25 -25
  268. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  269. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  270. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  271. package/lib/esm/test/TestUtils.js.map +1 -1
  272. package/lib/esm/test/annotations/Fields.test.js +30 -30
  273. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  274. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  275. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  276. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  277. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  278. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  279. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  280. package/lib/esm/test/categories/Category.test.js.map +1 -1
  281. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  282. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  283. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  284. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +15 -15
  285. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  286. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  287. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  288. package/lib/esm/test/ecdb/ECDb.test.js +57 -57
  289. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  290. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  291. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  292. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  293. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  294. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  295. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  296. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  297. package/lib/esm/test/ecdb/ECSqlStatement.test.js +326 -326
  298. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  299. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  300. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  301. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  302. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  303. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  304. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  305. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  306. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  307. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  308. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  309. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  310. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  311. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  312. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  313. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  314. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  315. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  316. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  317. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  318. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  319. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  320. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  321. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  322. package/lib/esm/test/hubaccess/Rebase.test.d.ts +2 -0
  323. package/lib/esm/test/hubaccess/Rebase.test.d.ts.map +1 -0
  324. package/lib/esm/test/hubaccess/Rebase.test.js +172 -0
  325. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -0
  326. package/lib/esm/test/imageData.js.map +1 -1
  327. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  328. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  329. package/lib/esm/test/imodel/IModel.test.js +44 -44
  330. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  331. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  332. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  333. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  334. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  335. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -1
  336. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -1
  337. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -1
  338. package/lib/esm/test/index.js.map +1 -1
  339. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  340. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  341. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  342. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  343. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  344. package/lib/esm/test/rpc/response.test.js.map +1 -1
  345. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  346. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  347. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  348. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  349. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  350. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  351. package/lib/esm/test/standalone/ChangeMerge.test.js +10 -10
  352. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  353. package/lib/esm/test/standalone/ChangesetReader.test.js +117 -117
  354. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  355. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  356. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  357. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  358. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  359. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  360. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  361. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  362. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  363. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  364. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  365. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  366. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  367. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  368. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  369. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  370. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  371. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  372. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  373. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  374. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  375. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  376. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  377. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  378. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  379. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  380. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  381. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  382. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  383. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  384. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  385. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  386. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  387. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  388. package/lib/esm/workspace/Settings.js.map +1 -1
  389. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  390. package/lib/esm/workspace/Workspace.js.map +1 -1
  391. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  392. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"IModelWrite.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/IModelWrite.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\nimport { AccessToken, DbResult, GuidString, Id64, Id64String } from \"@itwin/core-bentley\";\nimport {\n ChangesetIdWithIndex, Code, ColorDef,\n GeometricElement2dProps, GeometryStreamProps, IModel, IModelVersion, LockState, QueryRowFormat, RequestNewBriefcaseProps, SchemaState, SubCategoryAppearance,\n} from \"@itwin/core-common\";\nimport { Arc3d, IModelJson, Point2d, Point3d } from \"@itwin/core-geometry\";\nimport * as chai from \"chai\";\nimport { assert, expect } from \"chai\";\nimport * as chaiAsPromised from \"chai-as-promised\";\nimport * as fs from \"fs\";\nimport * as semver from \"semver\";\nimport * as sinon from \"sinon\";\nimport { HubWrappers, KnownTestLocations } from \"../\";\nimport { DrawingCategory } from \"../../Category\";\nimport { ECSqlStatement } from \"../../ECSqlStatement\";\nimport { HubMock } from \"../../internal/HubMock\";\nimport {\n _nativeDb,\n BriefcaseDb,\n BriefcaseManager,\n ChannelControl,\n CodeService, DefinitionModel, DictionaryModel, DocumentListModel, Drawing, DrawingGraphic, OpenBriefcaseArgs, SpatialCategory, Subject,\n} from \"../../core-backend\";\nimport { IModelTestUtils, TestUserType } from \"../IModelTestUtils\";\nimport { ServerBasedLocks } from \"../../internal/ServerBasedLocks\";\n\nchai.use(chaiAsPromised);\n\nexport async function createNewModelAndCategory(rwIModel: BriefcaseDb, parent?: Id64String) {\n // Create a new physical model.\n const [, modelId] = await IModelTestUtils.createAndInsertPhysicalPartitionAndModelAsync(rwIModel, IModelTestUtils.getUniqueModelCode(rwIModel, \"newPhysicalModel\"), true, parent);\n\n // Find or create a SpatialCategory.\n const dictionary: DictionaryModel = rwIModel.models.getModel<DictionaryModel>(IModel.dictionaryId);\n const newCategoryCode = IModelTestUtils.getUniqueSpatialCategoryCode(dictionary, \"ThisTestSpatialCategory\");\n const category = SpatialCategory.create(rwIModel, IModel.dictionaryId, newCategoryCode.value);\n const spatialCategoryId = rwIModel.elements.insertElement(category.toJSON());\n category.setDefaultAppearance(new SubCategoryAppearance({ color: 0xff0000 }));\n // const spatialCategoryId: Id64String = SpatialCategory.insert(rwIModel, IModel.dictionaryId, newCategoryCode.value!, new SubCategoryAppearance({ color: 0xff0000 }));\n\n return { modelId, spatialCategoryId };\n}\n\ndescribe(\"IModelWriteTest\", () => {\n let managerAccessToken: AccessToken;\n let superAccessToken: AccessToken;\n let iTwinId: GuidString;\n\n before(() => {\n HubMock.startup(\"IModelWriteTest\", KnownTestLocations.outputDir);\n iTwinId = HubMock.iTwinId;\n });\n after(() => HubMock.shutdown());\n\n it(\"Check busyTimeout option\", async () => {\n const iModelProps = {\n iModelName: \"ReadWriteTest\",\n iTwinId,\n };\n\n const iModelId = await HubMock.createNewIModel(iModelProps);\n const briefcaseProps = await BriefcaseManager.downloadBriefcase({ accessToken: \"test token\", iTwinId, iModelId });\n\n const tryOpen = async (args: OpenBriefcaseArgs) => {\n const start = performance.now();\n let didThrow = false;\n try {\n await BriefcaseDb.open(args);\n\n } catch (e: any) {\n assert.strictEqual(e.errorNumber, DbResult.BE_SQLITE_BUSY, \"Expect error 'Db is busy'\");\n didThrow = true;\n }\n assert.isTrue(didThrow);\n return performance.now() - start;\n };\n const seconds = (s: number) => s * 1000;\n\n const db = await BriefcaseDb.open({ fileName: briefcaseProps.fileName });\n db.saveChanges();\n // lock db so another connection cannot write to it.\n db.saveFileProperty({ name: \"test\", namespace: \"test\" }, \"\");\n\n assert.isAtMost(await tryOpen({ fileName: briefcaseProps.fileName, busyTimeout: seconds(0) }), seconds(1), \"open should fail with busy error instantly\");\n assert.isAtLeast(await tryOpen({ fileName: briefcaseProps.fileName, busyTimeout: seconds(1) }), seconds(1), \"open should fail with atleast 1 sec delay due to retry\");\n assert.isAtLeast(await tryOpen({ fileName: briefcaseProps.fileName, busyTimeout: seconds(2) }), seconds(2), \"open should fail with atleast 2 sec delay due to retry\");\n assert.isAtLeast(await tryOpen({ fileName: briefcaseProps.fileName, busyTimeout: seconds(3) }), seconds(3), \"open should fail with atleast 3 sec delay due to retry\");\n\n db.abandonChanges();\n db.close();\n });\n\n it(\"WatchForChanges\", async () => {\n const iModelProps = {\n iModelName: \"ReadWriteTest\",\n iTwinId,\n };\n\n const iModelId = await HubMock.createNewIModel(iModelProps);\n const briefcaseProps = await BriefcaseManager.downloadBriefcase({ accessToken: \"test token\", iTwinId, iModelId });\n\n let nClosed = 0;\n const fsWatcher = {\n callback: () => { },\n close: () => ++nClosed,\n };\n const watchStub: any = (_filename: fs.PathLike, _opts: fs.WatchOptions, fn: () => void) => {\n fsWatcher.callback = fn;\n return fsWatcher;\n };\n const watchStubResult = sinon.stub(fs, \"watch\").callsFake(watchStub);\n\n const bc = await BriefcaseDb.open({ fileName: briefcaseProps.fileName });\n bc.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n const roBC = await BriefcaseDb.open({ fileName: briefcaseProps.fileName, watchForChanges: true });\n\n const code1 = IModelTestUtils.getUniqueModelCode(bc, \"newPhysicalModel1\");\n await IModelTestUtils.createAndInsertPhysicalPartitionAndModelAsync(bc, code1, true);\n bc.saveChanges();\n\n // immediately after save changes the current txnId in the writeable briefcase changes, but it isn't reflected\n // in the readonly briefcase until the file watcher fires.\n expect(bc[_nativeDb].getCurrentTxnId()).not.equal(roBC[_nativeDb].getCurrentTxnId());\n\n // trigger watcher via stub\n fsWatcher.callback();\n\n // now they should match because restartDefaultTxn in the readonly briefcase reads the changes from the writeable connection\n expect(bc[_nativeDb].getCurrentTxnId()).equal(roBC[_nativeDb].getCurrentTxnId());\n\n roBC.close();\n expect(nClosed).equal(1);\n\n bc.close();\n // NOTE: Since HubMock.startup() is called in the before() block and not beforeEach(), we CANNOT\n // call sinon.restore() here. This is because sinon.restore() will restore the stubs for\n // CloudSqlite that HubMock.startup() put in place.\n watchStubResult.restore();\n });\n\n function expectEqualChangesets(a: ChangesetIdWithIndex, b: ChangesetIdWithIndex): void {\n expect(a.id).to.equal(b.id);\n expect(a.index).to.equal(b.index);\n }\n\n it(\"WatchForChanges - push\", async () => {\n const adminAccessToken = await HubWrappers.getAccessToken(TestUserType.SuperManager);\n const iModelProps = {\n iModelName: \"ReadWriteTest\",\n iTwinId,\n };\n\n const iModelId = await HubMock.createNewIModel(iModelProps);\n const briefcaseProps = await BriefcaseManager.downloadBriefcase({ accessToken: adminAccessToken, iTwinId, iModelId });\n\n let nClosed = 0;\n const fsWatcher = {\n callback: () => { },\n close: () => ++nClosed,\n };\n const watchStub: any = (_filename: fs.PathLike, _opts: fs.WatchOptions, fn: () => void) => {\n fsWatcher.callback = fn;\n return fsWatcher;\n };\n const watchStubResult = sinon.stub(fs, \"watch\").callsFake(watchStub);\n\n const bc = await BriefcaseDb.open({ fileName: briefcaseProps.fileName });\n bc.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n const roBC = await BriefcaseDb.open({ fileName: briefcaseProps.fileName, watchForChanges: true });\n\n const code1 = IModelTestUtils.getUniqueModelCode(bc, \"newPhysicalModel1\");\n await IModelTestUtils.createAndInsertPhysicalPartitionAndModelAsync(bc, code1, true);\n bc.saveChanges();\n\n // immediately after save changes the current txnId in the writeable briefcase changes, but it isn't reflected\n // in the readonly briefcase until the file watcher fires.\n expect(bc[_nativeDb].getCurrentTxnId()).not.equal(roBC[_nativeDb].getCurrentTxnId());\n\n // trigger watcher via stub\n fsWatcher.callback();\n\n // now they should match because restartDefaultTxn in the readonly briefcase reads the changes from the writeable connection\n expect(bc[_nativeDb].getCurrentTxnId()).equal(roBC[_nativeDb].getCurrentTxnId());\n\n // Push the changes to the hub\n\n const prePushChangeset = bc.changeset;\n let eventRaised = false;\n roBC.onChangesetChanged.addOnce((prevCS) => {\n expectEqualChangesets(prevCS, prePushChangeset);\n eventRaised = true;\n });\n\n await bc.pushChanges({ accessToken: adminAccessToken, description: \"test\" });\n const postPushChangeset = bc.changeset;\n assert(!!postPushChangeset);\n expect(prePushChangeset !== postPushChangeset, \"changes should be pushed\");\n\n // trigger watcher via stub\n fsWatcher.callback();\n\n expectEqualChangesets(roBC.changeset, postPushChangeset);\n expect(roBC[_nativeDb].getCurrentTxnId(), \"txn should be updated\").equal(bc[_nativeDb].getCurrentTxnId());\n expect(eventRaised).to.be.true;\n\n roBC.close();\n expect(nClosed).equal(1);\n\n bc.close();\n // NOTE: Since HubMock.startup() is called in the before() block and not beforeEach(), we CANNOT\n // call sinon.restore() here. This is because sinon.restore() will restore the stubs for\n // CloudSqlite that HubMock.startup() put in place.\n watchStubResult.restore();\n });\n\n it(\"WatchForChanges - pull\", async () => {\n const adminAccessToken = await HubWrappers.getAccessToken(TestUserType.SuperManager);\n\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n const hubName = \"CompatibilityTest\";\n const iModelId = await HubWrappers.pushIModel(managerAccessToken, iTwinId, pathname, hubName, true);\n\n // Download two copies of the briefcase - manager and super\n const args: RequestNewBriefcaseProps = { iTwinId, iModelId };\n const initialDb = await BriefcaseManager.downloadBriefcase({ accessToken: adminAccessToken, ...args });\n const briefcaseProps = await BriefcaseManager.downloadBriefcase({ accessToken: adminAccessToken, ...args });\n\n // Push some changes - prep for pull workflow.\n const bc1 = await BriefcaseDb.open({ fileName: initialDb.fileName });\n bc1.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n const code2 = IModelTestUtils.getUniqueModelCode(bc1, \"newPhysicalModel2\");\n await IModelTestUtils.createAndInsertPhysicalPartitionAndModelAsync(bc1, code2, true);\n const prePushChangeset = bc1.changeset;\n bc1.saveChanges();\n await bc1.pushChanges({ accessToken: adminAccessToken, description: \"test\" });\n const postPushChangeset = bc1.changeset;\n assert(!!prePushChangeset);\n expect(prePushChangeset !== postPushChangeset, \"changes should be pushed\");\n\n bc1.close();\n\n // Writer that pulls + watcher.\n let nClosed = 0;\n const fsWatcher = {\n callback: () => { },\n close: () => ++nClosed,\n };\n const watchStub: any = (_filename: fs.PathLike, _opts: fs.WatchOptions, fn: () => void) => {\n fsWatcher.callback = fn;\n return fsWatcher;\n };\n const watchStubResult = sinon.stub(fs, \"watch\").callsFake(watchStub);\n\n const bc = await BriefcaseDb.open({ fileName: briefcaseProps.fileName });\n bc.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n const roBC = await BriefcaseDb.open({ fileName: briefcaseProps.fileName, watchForChanges: true });\n\n const prePullChangeset = bc.changeset;\n let eventRaised = false;\n roBC.onChangesetChanged.addOnce((prevCS) => {\n expectEqualChangesets(prevCS, prePushChangeset);\n eventRaised = true;\n });\n\n await bc.pullChanges();\n\n const postPullChangeset = bc.changeset;\n assert(!!postPullChangeset);\n expect(prePullChangeset !== postPullChangeset, \"changes should be pulled\");\n\n // trigger watcher via stub\n fsWatcher.callback();\n\n expectEqualChangesets(roBC.changeset, postPullChangeset);\n expect(roBC[_nativeDb].getCurrentTxnId(), \"txn should be updated\").equal(bc[_nativeDb].getCurrentTxnId());\n expect(eventRaised).to.be.true;\n\n roBC.close();\n expect(nClosed).equal(1);\n\n bc.close();\n // NOTE: Since HubMock.startup() is called in the before() block and not beforeEach(), we CANNOT\n // call sinon.restore() here. This is because sinon.restore() will restore the stubs for\n // CloudSqlite that HubMock.startup() put in place.\n watchStubResult.restore();\n });\n\n it(\"should handle undo/redo\", async () => {\n const adminAccessToken = await HubWrappers.getAccessToken(TestUserType.SuperManager);\n // Delete any existing iModels with the same name as the read-write test iModel\n const iModelName = \"CodesUndoRedoPushTest\";\n\n // Create a new empty iModel on the Hub & obtain a briefcase\n const rwIModelId = await HubMock.createNewIModel({ accessToken: adminAccessToken, iTwinId, iModelName, description: \"TestSubject\" });\n assert.isNotEmpty(rwIModelId);\n const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ accessToken: adminAccessToken, iTwinId, iModelId: rwIModelId });\n rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n\n // create and insert a new model with code1\n const code1 = IModelTestUtils.getUniqueModelCode(rwIModel, \"newPhysicalModel1\");\n await IModelTestUtils.createAndInsertPhysicalPartitionAndModelAsync(rwIModel, code1, true);\n assert.isTrue(rwIModel.elements.getElement(code1) !== undefined); // throws if element is not found\n\n // create a local txn with that change\n rwIModel.saveChanges(\"inserted newPhysicalModel\");\n\n // Reverse that local txn\n rwIModel.txns.reverseSingleTxn();\n\n try {\n // The model that I just created with code1 should no longer be there.\n const theNewModel = rwIModel.elements.getElement(code1); // throws if element is not found\n assert.isTrue(theNewModel === undefined); // really should not be here.\n assert.fail(); // should not be here.\n } catch {\n // this is what I expect\n }\n\n // Create and insert a model with code2\n const code2 = IModelTestUtils.getUniqueModelCode(rwIModel, \"newPhysicalModel2\");\n await IModelTestUtils.createAndInsertPhysicalPartitionAndModelAsync(rwIModel, code2, true);\n rwIModel.saveChanges(\"inserted generic objects\");\n\n // The iModel should have a model with code1 and not code2\n assert.isTrue(rwIModel.elements.getElement(code2) !== undefined); // throws if element is not found\n\n // Push the changes to the hub\n const prePushChangeset = rwIModel.changeset;\n await rwIModel.pushChanges({ accessToken: adminAccessToken, description: \"test\" });\n const postPushChangeset = rwIModel.changeset;\n assert(!!postPushChangeset);\n expect(prePushChangeset !== postPushChangeset);\n\n rwIModel.close();\n });\n\n it(\"should be able to upgrade a briefcase with an older schema\", async () => {\n /**\n * Test validates that -\n * - User \"manager\" upgrades the BisCore schema in the briefcase from version 1.0.0 to 1.0.10+\n * - User \"super\" can get the upgrade \"manager\" made\n */\n\n /* Setup test - Push an iModel with an old BisCore schema up to the Hub */\n const pathname = IModelTestUtils.resolveAssetFile(\"CompatibilityTestSeed.bim\");\n const hubName = \"CompatibilityTest\";\n const iModelId = await HubWrappers.pushIModel(managerAccessToken, iTwinId, pathname, hubName, true);\n\n // Download two copies of the briefcase - manager and super\n const args: RequestNewBriefcaseProps = { iTwinId, iModelId };\n const managerBriefcaseProps = await BriefcaseManager.downloadBriefcase({ accessToken: managerAccessToken, ...args });\n const superBriefcaseProps = await BriefcaseManager.downloadBriefcase({ accessToken: superAccessToken, ...args });\n\n /* User \"manager\" upgrades the briefcase */\n\n // Validate the original state of the BisCore schema in the briefcase\n let iModel = await BriefcaseDb.open({ fileName: managerBriefcaseProps.fileName });\n const beforeVersion = iModel.querySchemaVersion(\"BisCore\");\n assert.isTrue(semver.satisfies(beforeVersion!, \"= 1.0.0\"));\n assert.isFalse(iModel[_nativeDb].hasPendingTxns());\n iModel.close();\n\n // Validate that the BisCore schema is recognized as a recommended upgrade\n let schemaState = BriefcaseDb.validateSchemas(managerBriefcaseProps.fileName, true);\n assert.strictEqual(schemaState, SchemaState.UpgradeRecommended);\n\n // Upgrade the schemas\n await BriefcaseDb.upgradeSchemas(managerBriefcaseProps);\n\n // Validate state after upgrade\n iModel = await BriefcaseDb.open({ fileName: managerBriefcaseProps.fileName });\n const afterVersion = iModel.querySchemaVersion(\"BisCore\");\n assert.isTrue(semver.satisfies(afterVersion!, \">= 1.0.10\"));\n assert.isFalse(iModel[_nativeDb].hasPendingTxns());\n assert.isFalse(iModel.holdsSchemaLock);\n assert.isFalse(iModel[_nativeDb].hasUnsavedChanges());\n iModel.close();\n\n /* User \"super\" can get the upgrade \"manager\" made */\n\n // Validate that the BisCore schema is recognized as a recommended upgrade\n schemaState = BriefcaseDb.validateSchemas(superBriefcaseProps.fileName, true);\n assert.strictEqual(schemaState, SchemaState.UpgradeRecommended);\n\n // Open briefcase and pull change sets to upgrade\n const superIModel = await BriefcaseDb.open({ fileName: superBriefcaseProps.fileName });\n (superBriefcaseProps.changeset as any) = await superIModel.pullChanges({ accessToken: superAccessToken });\n const superVersion = superIModel.querySchemaVersion(\"BisCore\");\n assert.isTrue(semver.satisfies(superVersion!, \">= 1.0.10\"));\n assert.isFalse(superIModel[_nativeDb].hasUnsavedChanges()); // Validate no changes were made\n assert.isFalse(superIModel[_nativeDb].hasPendingTxns()); // Validate no changes were made\n superIModel.close();\n\n // Validate that there are no upgrades required\n schemaState = BriefcaseDb.validateSchemas(superBriefcaseProps.fileName, true);\n assert.strictEqual(schemaState, SchemaState.UpToDate);\n\n // Upgrade the schemas - ensure this is a no-op\n await BriefcaseDb.upgradeSchemas(superBriefcaseProps);\n await HubMock.deleteIModel({ accessToken: managerAccessToken, iTwinId, iModelId });\n });\n\n it(\"changeset size and ec schema version change\", async () => {\n const adminToken = \"super manager token\";\n const iModelName = \"changeset_size\";\n const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: \"TestSubject\", accessToken: adminToken });\n assert.isNotEmpty(rwIModelId);\n const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });\n assert.equal(rwIModel[_nativeDb].enableChangesetSizeStats(true), DbResult.BE_SQLITE_OK);\n const schema = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"Test2dElement\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n <ECProperty propertyName=\"s\" typeName=\"string\"/>\n </ECEntityClass>\n </ECSchema>`;\n await rwIModel.importSchemaStrings([schema]);\n rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n rwIModel.saveChanges(\"user 1: schema changeset\");\n if (true || \"push changes\") {\n // Push the changes to the hub\n const prePushChangeSetId = rwIModel.changeset.id;\n await rwIModel.pushChanges({ description: \"push schema changeset\", accessToken: adminToken });\n const postPushChangeSetId = rwIModel.changeset.id;\n assert(!!postPushChangeSetId);\n expect(prePushChangeSetId !== postPushChangeSetId);\n const changesets = await HubMock.queryChangesets({ iModelId: rwIModelId, accessToken: superAccessToken });\n assert.equal(changesets.length, 1);\n }\n await rwIModel.locks.acquireLocks({ shared: IModel.dictionaryId });\n const codeProps = Code.createEmpty();\n codeProps.value = \"DrawingModel\";\n let totalEl = 0;\n const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(rwIModel, codeProps, true);\n let drawingCategoryId = DrawingCategory.queryCategoryIdByName(rwIModel, IModel.dictionaryId, \"MyDrawingCategory\");\n if (undefined === drawingCategoryId)\n drawingCategoryId = DrawingCategory.insert(rwIModel, IModel.dictionaryId, \"MyDrawingCategory\", new SubCategoryAppearance({ color: ColorDef.fromString(\"rgb(255,0,0)\").toJSON() }));\n\n const insertElements = (imodel: BriefcaseDb, className: string = \"Test2dElement\", noOfElements: number = 10, userProp: (n: number) => object) => {\n for (let m = 0; m < noOfElements; ++m) {\n const geomArray: Arc3d[] = [\n Arc3d.createXY(Point3d.create(0, 0), 5),\n Arc3d.createXY(Point3d.create(5, 5), 2),\n Arc3d.createXY(Point3d.create(-5, -5), 20),\n ];\n const geometryStream: GeometryStreamProps = [];\n for (const geom of geomArray) {\n const arcData = IModelJson.Writer.toIModelJson(geom);\n geometryStream.push(arcData);\n }\n const prop = userProp(++totalEl);\n // Create props\n const geomElement = {\n classFullName: `TestDomain:${className}`,\n model: drawingModelId,\n category: drawingCategoryId,\n code: Code.createEmpty(),\n geom: geometryStream,\n ...prop,\n };\n const id = imodel.elements.insertElement(geomElement);\n assert.isTrue(Id64.isValidId64(id), \"insert worked\");\n }\n };\n const str = new Array(1024).join(\"x\");\n insertElements(rwIModel, \"Test2dElement\", 1024, () => {\n return { s: str };\n });\n assert.equal(1357648, rwIModel[_nativeDb].getChangesetSize());\n\n rwIModel.saveChanges(\"user 1: data\");\n assert.equal(0, rwIModel[_nativeDb].getChangesetSize());\n await rwIModel.pushChanges({ description: \"schema changeset\", accessToken: adminToken });\n rwIModel.close();\n });\n\n it(\"should set a fake verifyCode for codeService that throws error for operations that affect code, if failed to open codeService \", async () => {\n const iModelProps = {\n iModelName: \"codeServiceTest\",\n iTwinId,\n };\n const iModelId = await HubMock.createNewIModel(iModelProps);\n const briefcaseProps = await BriefcaseManager.downloadBriefcase({ accessToken: \"codeServiceTest\", iTwinId, iModelId });\n const originalCreateForIModel = CodeService.createForIModel;\n // can be any errors except 'NoCodeIndex'\n CodeService.createForIModel = async () => {\n throw new CodeService.Error(\"MissingCode\", 0x10000 + 1, \" \");\n };\n const briefcaseDb = await BriefcaseDb.open({ fileName: briefcaseProps.fileName });\n briefcaseDb.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n let firstNonRootElement = { id: undefined, codeValue: \"test\" };\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n briefcaseDb.withPreparedStatement(\"SELECT * from Bis.Element LIMIT 1 OFFSET 1\", (stmt: ECSqlStatement) => {\n if (stmt.step() === DbResult.BE_SQLITE_ROW) {\n firstNonRootElement = stmt.getRow();\n }\n });\n // make change to the briefcaseDb that does not affect code, e.g., save file property\n // expect no error from verifyCode\n expect(() => briefcaseDb.saveFileProperty({ name: \"codeServiceProp\", namespace: \"codeService\", id: 1, subId: 1 }, \"codeService test\")).to.not.throw();\n // make change to the briefcaseDb that affects code that will invoke verifyCode, e.g., update an element with a non-null code\n // expect error from verifyCode\n let newProps = { id: firstNonRootElement.id, code: { ...Code.createEmpty(), value: firstNonRootElement.codeValue }, classFullName: undefined, model: undefined };\n await briefcaseDb.locks.acquireLocks({ exclusive: firstNonRootElement.id });\n expect(() => briefcaseDb.elements.updateElement(newProps)).to.throw(CodeService.Error);\n // make change to the briefcaseDb that will invoke verifyCode with a null(empty) code, e.g., update an element with a null(empty) code\n // expect no error from verifyCode\n newProps = { id: firstNonRootElement.id, code: Code.createEmpty(), classFullName: undefined, model: undefined };\n expect(() => briefcaseDb.elements.updateElement(newProps)).to.not.throw();\n briefcaseDb.close();\n // throw \"NoCodeIndex\", this error should get ignored because it means the iModel isn't enforcing codes. updating an element with an empty code and a non empty code should work without issue.\n CodeService.createForIModel = async () => {\n throw new CodeService.Error(\"NoCodeIndex\", 0x10000 + 1, \" \");\n };\n const briefcaseDb2 = await BriefcaseDb.open({ fileName: briefcaseProps.fileName });\n briefcaseDb2.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n await briefcaseDb2.locks.acquireLocks({ exclusive: firstNonRootElement.id });\n // expect no error from verifyCode for empty code\n expect(() => briefcaseDb2.elements.updateElement(newProps)).to.not.throw();\n newProps = { id: firstNonRootElement.id, code: { ...Code.createEmpty(), value: firstNonRootElement.codeValue }, classFullName: undefined, model: undefined };\n // make change to the briefcaseDb that affects code that will invoke verifyCode, e.g., update an element with a non-null code\n // expect no error from verifyCode\n expect(() => briefcaseDb2.elements.updateElement(newProps)).to.not.throw();\n // clean up\n CodeService.createForIModel = originalCreateForIModel;\n briefcaseDb2.close();\n });\n\n it(\"clear cache on schema changes\", async () => {\n const adminToken = await HubWrappers.getAccessToken(TestUserType.SuperManager);\n const userToken = await HubWrappers.getAccessToken(TestUserType.Super);\n // Delete any existing iModels with the same name as the OptimisticConcurrencyTest iModel\n const iModelName = \"SchemaChanges\";\n\n // Create a new empty iModel on the Hub & obtain a briefcase\n const rwIModelId = await HubMock.createNewIModel({ iTwinId, iModelName, description: \"TestSubject\" });\n assert.isNotEmpty(rwIModelId);\n const rwIModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: adminToken });\n\n const rwIModel2 = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId: rwIModelId, accessToken: userToken });\n\n // enable change tracking\n assert.equal(rwIModel[_nativeDb].enableChangesetSizeStats(true), DbResult.BE_SQLITE_OK);\n assert.equal(rwIModel2[_nativeDb].enableChangesetSizeStats(true), DbResult.BE_SQLITE_OK);\n\n const schema = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain\" alias=\"ts\" version=\"01.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"Test2dElement\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n <ECProperty propertyName=\"s\" typeName=\"string\"/>\n </ECEntityClass>\n </ECSchema>`;\n await rwIModel.importSchemaStrings([schema]);\n rwIModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n rwIModel2.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n\n rwIModel.saveChanges(\"user 1: schema changeset\");\n if (true || \"push changes\") {\n // Push the changes to the hub\n const prePushChangeSetId = rwIModel.changeset.id;\n await rwIModel.pushChanges({ description: \"schema changeset\", accessToken: adminToken });\n const postPushChangeSetId = rwIModel.changeset.id;\n assert(!!postPushChangeSetId);\n expect(prePushChangeSetId !== postPushChangeSetId);\n const changesets = await HubMock.queryChangesets({ iModelId: rwIModelId, accessToken: superAccessToken });\n assert.equal(changesets.length, 1);\n }\n const codeProps = Code.createEmpty();\n codeProps.value = \"DrawingModel\";\n let totalEl = 0;\n await rwIModel.locks.acquireLocks({ shared: IModel.dictionaryId });\n const [, drawingModelId] = IModelTestUtils.createAndInsertDrawingPartitionAndModel(rwIModel, codeProps, true);\n let drawingCategoryId = DrawingCategory.queryCategoryIdByName(rwIModel, IModel.dictionaryId, \"MyDrawingCategory\");\n if (undefined === drawingCategoryId)\n drawingCategoryId = DrawingCategory.insert(rwIModel, IModel.dictionaryId, \"MyDrawingCategory\", new SubCategoryAppearance({ color: ColorDef.fromString(\"rgb(255,0,0)\").toJSON() }));\n\n const insertElements = (imodel: BriefcaseDb, className: string = \"Test2dElement\", noOfElements: number = 10, userProp: (n: number) => object) => {\n for (let m = 0; m < noOfElements; ++m) {\n const geomArray: Arc3d[] = [\n Arc3d.createXY(Point3d.create(0, 0), 5),\n Arc3d.createXY(Point3d.create(5, 5), 2),\n Arc3d.createXY(Point3d.create(-5, -5), 20),\n ];\n const geometryStream: GeometryStreamProps = [];\n for (const geom of geomArray) {\n const arcData = IModelJson.Writer.toIModelJson(geom);\n geometryStream.push(arcData);\n }\n const prop = userProp(++totalEl);\n // Create props\n const geomElement = {\n classFullName: `TestDomain:${className}`,\n model: drawingModelId,\n category: drawingCategoryId,\n code: Code.createEmpty(),\n geom: geometryStream,\n ...prop,\n };\n const id = imodel.elements.insertElement(geomElement);\n assert.isTrue(Id64.isValidId64(id), \"insert worked\");\n }\n };\n\n insertElements(rwIModel, \"Test2dElement\", 10, (n: number) => {\n return { s: `s-${n}` };\n });\n\n assert.equal(3889, rwIModel[_nativeDb].getChangesetSize());\n rwIModel.saveChanges(\"user 1: data changeset\");\n\n if (true || \"push changes\") {\n // Push the changes to the hub\n const prePushChangeSetId = rwIModel.changeset.id;\n await rwIModel.pushChanges({ description: \"10 instances of test2dElement\", accessToken: adminToken });\n const postPushChangeSetId = rwIModel.changeset.id;\n assert(!!postPushChangeSetId);\n expect(prePushChangeSetId !== postPushChangeSetId);\n const changesets = await HubMock.queryChangesets({ iModelId: rwIModelId, accessToken: superAccessToken });\n assert.equal(changesets.length, 2);\n }\n let rows: any[] = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n rwIModel.withPreparedStatement(\"SELECT * FROM TestDomain.Test2dElement\", (stmt: ECSqlStatement) => {\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n rows.push(stmt.getRow());\n }\n });\n assert.equal(rows.length, 10);\n assert.equal(rows.map((r) => r.s).filter((v) => v).length, 10);\n rows = [];\n for await (const queryRow of rwIModel.createQueryReader(\"SELECT * FROM TestDomain.Test2dElement\", undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n rows.push(queryRow.toRow());\n }\n assert.equal(rows.length, 10);\n assert.equal(rows.map((r) => r.s).filter((v) => v).length, 10);\n if (true || \"user pull/merge\") {\n // pull and merge changes\n await rwIModel2.pullChanges({ accessToken: userToken });\n rows = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n rwIModel2.withPreparedStatement(\"SELECT * FROM TestDomain.Test2dElement\", (stmt: ECSqlStatement) => {\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n rows.push(stmt.getRow());\n }\n });\n assert.equal(rows.length, 10);\n assert.equal(rows.map((r) => r.s).filter((v) => v).length, 10);\n rows = [];\n for await (const queryRow of rwIModel2.createQueryReader(\"SELECT * FROM TestDomain.Test2dElement\", undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n rows.push(queryRow.toRow());\n }\n assert.equal(rows.length, 10);\n assert.equal(rows.map((r) => r.s).filter((v) => v).length, 10);\n // create some element and push those changes\n await rwIModel2.locks.acquireLocks({ shared: drawingModelId });\n insertElements(rwIModel2, \"Test2dElement\", 10, (n: number) => {\n return { s: `s-${n}` };\n });\n assert.equal(0, rwIModel[_nativeDb].getChangesetSize());\n rwIModel2.saveChanges(\"user 2: data changeset\");\n\n if (true || \"push changes\") {\n // Push the changes to the hub\n const prePushChangeSetId = rwIModel2.changeset.id;\n await rwIModel2.pushChanges({ accessToken: userToken, description: \"10 instances of test2dElement\" });\n const postPushChangeSetId = rwIModel2.changeset.id;\n assert(!!postPushChangeSetId);\n expect(prePushChangeSetId !== postPushChangeSetId);\n const changesets = await HubMock.queryChangesets({ iModelId: rwIModelId, accessToken: userToken });\n assert.equal(changesets.length, 3);\n }\n }\n await rwIModel.pullChanges({ accessToken: adminToken });\n // second schema import ==============================================================\n const schemaV2 = `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n <ECSchema schemaName=\"TestDomain\" alias=\"ts\" version=\"01.01\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.1\">\n <ECSchemaReference name=\"BisCore\" version=\"01.00\" alias=\"bis\"/>\n <ECEntityClass typeName=\"Test2dElement\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n <ECProperty propertyName=\"s\" typeName=\"string\"/>\n <ECProperty propertyName=\"v\" typeName=\"string\"/>\n </ECEntityClass>\n <ECEntityClass typeName=\"Test2dElement2nd\">\n <BaseClass>bis:GraphicalElement2d</BaseClass>\n <ECProperty propertyName=\"t\" typeName=\"string\"/>\n <ECProperty propertyName=\"r\" typeName=\"string\"/>\n </ECEntityClass>\n </ECSchema>`;\n await rwIModel.importSchemaStrings([schemaV2]);\n assert.equal(0, rwIModel[_nativeDb].getChangesetSize());\n rwIModel.saveChanges(\"user 1: schema changeset2\");\n if (true || \"push changes\") {\n // Push the changes to the hub\n const prePushChangeSetId = rwIModel.changeset.id;\n await rwIModel.pushChanges({ accessToken: adminToken, description: \"schema changeset\" });\n const postPushChangeSetId = rwIModel.changeset.id;\n assert(!!postPushChangeSetId);\n expect(prePushChangeSetId !== postPushChangeSetId);\n const changesets = await HubMock.queryChangesets({ iModelId: rwIModelId, accessToken: superAccessToken });\n assert.equal(changesets.length, 4);\n }\n // create some element and push those changes\n await rwIModel.locks.acquireLocks({ shared: drawingModelId });\n insertElements(rwIModel, \"Test2dElement\", 10, (n: number) => {\n return {\n s: `s-${n}`, v: `v-${n}`,\n };\n });\n\n // create some element and push those changes\n insertElements(rwIModel, \"Test2dElement2nd\", 10, (n: number) => {\n return {\n t: `t-${n}`, r: `r-${n}`,\n };\n });\n assert.equal(6266, rwIModel[_nativeDb].getChangesetSize());\n rwIModel.saveChanges(\"user 1: data changeset\");\n\n if (true || \"push changes\") {\n // Push the changes to the hub\n const prePushChangeSetId = rwIModel.changeset.id;\n await rwIModel.pushChanges({ accessToken: adminToken, description: \"10 instances of test2dElement\" });\n const postPushChangeSetId = rwIModel.changeset.id;\n assert(!!postPushChangeSetId);\n expect(prePushChangeSetId !== postPushChangeSetId);\n const changesets = await HubMock.queryChangesets({ iModelId: rwIModelId, accessToken: superAccessToken });\n assert.equal(changesets.length, 5);\n }\n rows = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n rwIModel.withPreparedStatement(\"SELECT * FROM TestDomain.Test2dElement\", (stmt: ECSqlStatement) => {\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n rows.push(stmt.getRow());\n }\n });\n assert.equal(rows.length, 30);\n assert.equal(rows.map((r) => r.s).filter((v) => v).length, 30);\n assert.equal(rows.map((r) => r.v).filter((v) => v).length, 10);\n rows = [];\n for await (const queryRow of rwIModel.createQueryReader(\"SELECT * FROM TestDomain.Test2dElement\", undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n rows.push(queryRow.toRow());\n }\n assert.equal(rows.length, 30);\n assert.equal(rows.map((r) => r.s).filter((v) => v).length, 30);\n assert.equal(rows.map((r) => r.v).filter((v) => v).length, 10);\n\n rows = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n rwIModel.withPreparedStatement(\"SELECT * FROM TestDomain.Test2dElement2nd\", (stmt: ECSqlStatement) => {\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n rows.push(stmt.getRow());\n }\n });\n assert.equal(rows.length, 10);\n assert.equal(rows.map((r) => r.t).filter((v) => v).length, 10);\n assert.equal(rows.map((r) => r.r).filter((v) => v).length, 10);\n rows = [];\n for await (const queryRow of rwIModel.createQueryReader(\"SELECT * FROM TestDomain.Test2dElement2nd\", undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n rows.push(queryRow.toRow());\n }\n assert.equal(rows.length, 10);\n assert.equal(rows.map((r) => r.t).filter((v) => v).length, 10);\n assert.equal(rows.map((r) => r.r).filter((v) => v).length, 10);\n\n if (true || \"user pull/merge\") {\n // pull and merge changes\n await rwIModel2.pullChanges({ accessToken: userToken });\n rows = [];\n // Following fail without the fix in briefcase manager where we clear statement cache on schema changeset apply\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n rwIModel2.withPreparedStatement(\"SELECT * FROM TestDomain.Test2dElement\", (stmt: ECSqlStatement) => {\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n rows.push(stmt.getRow());\n }\n });\n assert.equal(rows.length, 30);\n assert.equal(rows.map((r) => r.s).filter((v) => v).length, 30);\n assert.equal(rows.map((r) => r.v).filter((v) => v).length, 10);\n rows = [];\n // Following fail without native side fix where we clear concurrent query cache on schema changeset apply\n for await (const queryRow of rwIModel2.createQueryReader(\"SELECT * FROM TestDomain.Test2dElement\", undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n rows.push(queryRow.toRow());\n }\n assert.equal(rows.length, 30);\n assert.equal(rows.map((r) => r.s).filter((v) => v).length, 30);\n assert.equal(rows.map((r) => r.v).filter((v) => v).length, 10);\n for (const row of rows) {\n const el: any = rwIModel2.elements.getElementProps(row.id);\n assert.isDefined(el);\n if (row.s) {\n assert.equal(row.s, el.s);\n } else {\n assert.isUndefined(el.s);\n }\n if (row.v) {\n assert.equal(row.v, el.v);\n } else {\n assert.isUndefined(el.v);\n }\n }\n rows = [];\n // eslint-disable-next-line @typescript-eslint/no-deprecated\n rwIModel2.withPreparedStatement(\"SELECT * FROM TestDomain.Test2dElement2nd\", (stmt: ECSqlStatement) => {\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\n rows.push(stmt.getRow());\n }\n });\n assert.equal(rows.length, 10);\n assert.equal(rows.map((r) => r.t).filter((v) => v).length, 10);\n assert.equal(rows.map((r) => r.r).filter((v) => v).length, 10);\n for (const row of rows) {\n const el: any = rwIModel2.elements.getElementProps(row.id);\n assert.isDefined(el);\n if (row.s) {\n assert.equal(row.s, el.s);\n } else {\n assert.isUndefined(el.s);\n }\n if (row.v) {\n assert.equal(row.v, el.v);\n } else {\n assert.isUndefined(el.v);\n }\n }\n rows = [];\n for await (const queryRow of rwIModel2.createQueryReader(\"SELECT * FROM TestDomain.Test2dElement2nd\", undefined, { rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n rows.push(queryRow.toRow());\n }\n assert.equal(rows.length, 10);\n assert.equal(rows.map((r) => r.t).filter((v) => v).length, 10);\n assert.equal(rows.map((r) => r.r).filter((v) => v).length, 10);\n for (const row of rows) {\n const el: any = rwIModel2.elements.getElementProps(row.id);\n assert.isDefined(el);\n if (row.t) {\n assert.equal(row.t, el.t);\n } else {\n assert.isUndefined(el.t);\n }\n if (row.r) {\n assert.equal(row.r, el.r);\n } else {\n assert.isUndefined(el.r);\n }\n }\n }\n rwIModel.close();\n rwIModel2.close();\n });\n\n it(\"pulling a changeset with extents changes should update the extents of the opened imodel\", async () => {\n const accessToken = await HubWrappers.getAccessToken(TestUserType.Regular);\n const version0 = IModelTestUtils.resolveAssetFile(\"mirukuru.ibim\");\n const iModelId = await HubMock.createNewIModel({ iTwinId, iModelName: \"projectExtentsTest\", version0 });\n const iModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId });\n const changesetIdBeforeExtentsChange = iModel.changeset.id;\n const extents = iModel.projectExtents;\n const newExtents = extents.clone();\n newExtents.low.x += 100;\n newExtents.low.y += 100;\n newExtents.high.x += 100;\n newExtents.high.y += 100;\n iModel.updateProjectExtents(newExtents);\n iModel.saveChanges(\"update project extents\");\n await iModel.pushChanges({ description: \"update project extents\" });\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModel);\n const iModelBeforeExtentsChange = await HubWrappers.downloadAndOpenBriefcase({ accessToken, iTwinId, iModelId, asOf: IModelVersion.asOfChangeSet(changesetIdBeforeExtentsChange).toJSON() });\n const extentsBeforePull = iModelBeforeExtentsChange.projectExtents;\n // Read the extents fileProperty.\n const extentsStrBeforePull = iModelBeforeExtentsChange.queryFilePropertyString({name: \"Extents\", namespace: \"dgn_Db\"});\n const ecefLocationBeforeExtentsChange = iModelBeforeExtentsChange.ecefLocation;\n await iModelBeforeExtentsChange.pullChanges(); // Pulls the extents change.\n const extentsAfterPull = iModelBeforeExtentsChange.projectExtents;\n const extentsStrAfterPull = iModelBeforeExtentsChange.queryFilePropertyString({name: \"Extents\", namespace: \"dgn_Db\"});\n const ecefLocationAfterExtentsChange = iModelBeforeExtentsChange.ecefLocation;\n\n expect(ecefLocationBeforeExtentsChange).to.not.be.undefined;\n expect(ecefLocationAfterExtentsChange).to.not.be.undefined;\n expect(ecefLocationBeforeExtentsChange?.isAlmostEqual(ecefLocationAfterExtentsChange!)).to.be.false;\n expect(extentsStrAfterPull).to.not.equal(extentsStrBeforePull);\n expect(extentsAfterPull.isAlmostEqual(extentsBeforePull)).to.be.false;\n await HubWrappers.closeAndDeleteBriefcaseDb(accessToken, iModelBeforeExtentsChange);\n });\n\n it(\"parent lock should suffice when inserting into deeply nested sub-model\", async () => {\n const version0 = IModelTestUtils.resolveAssetFile(\"test.bim\");\n const iModelId = await HubMock.createNewIModel({ iTwinId, iModelName: \"subModelCoveredByParentLockTest\", version0 });\n let iModel = await HubWrappers.downloadAndOpenBriefcase({ iTwinId, iModelId });\n iModel.channels.addAllowedChannel(ChannelControl.sharedChannelName);\n\n /*\n Job Subject\n +- DefinitionPartition -- [DefinitionModel]\n */\n\n await iModel.locks.acquireLocks({ shared: IModel.repositoryModelId });\n const jobSubjectId = IModelTestUtils.createJobSubjectElement(iModel, \"JobSubject\").insert();\n const definitionModelId = DefinitionModel.insert(iModel, jobSubjectId, \"Definition\");\n\n iModel.saveChanges();\n const locks = iModel.locks;\n expect(locks.isServerBased).true;\n await iModel.pushChanges({ description: \"create model\" });\n expect(iModel.locks).equal(locks); // pushing should not change your locks\n\n /*\n Job Subject <--- Lock this\n +- DefinitionPartition -- [DefinitionModel]\n SpatialCategory <=== insert this\n DrawingCategory \"\n */\n assert.isFalse(iModel.locks.holdsExclusiveLock(jobSubjectId));\n assert.isFalse(iModel.locks.holdsExclusiveLock(definitionModelId));\n assert.isFalse(iModel.locks.holdsSharedLock(definitionModelId));\n await iModel.locks.acquireLocks({ exclusive: jobSubjectId });\n iModel.locks.checkExclusiveLock(jobSubjectId, \"\", \"\");\n iModel.locks.checkSharedLock(jobSubjectId, \"\", \"\");\n iModel.locks.checkSharedLock(definitionModelId, \"\", \"\");\n iModel.locks.checkExclusiveLock(definitionModelId, \"\", \"\");\n\n const spatialCategoryId = SpatialCategory.insert(iModel, definitionModelId, \"SpatialCategory\", new SubCategoryAppearance()); // throws if we get locking error\n const drawingCategoryId = DrawingCategory.insert(iModel, definitionModelId, \"DrawingCategory\", new SubCategoryAppearance());\n\n assert.isTrue(iModel.elements.getElement(spatialCategoryId).model === definitionModelId);\n assert.isTrue(iModel.elements.getElement(drawingCategoryId).model === definitionModelId);\n\n iModel.saveChanges();\n await iModel.pushChanges({ description: \"insert category\" });\n\n /*\n Create some more nesting.\n\n Job Subject <--- Lock this\n +- DefinitionPartition -- [DefinitionModel]\n | SpatialCategory\n +- Child Subject <== Insert\n +- DocumentList -- [DocumentListModel] \"\n Drawing -- [DrawingModel] \"\n */\n assert.isFalse(iModel.locks.holdsExclusiveLock(jobSubjectId));\n assert.isFalse(iModel.locks.holdsExclusiveLock(definitionModelId));\n assert.isFalse(iModel.locks.holdsSharedLock(definitionModelId));\n await iModel.locks.acquireLocks({ exclusive: jobSubjectId });\n iModel.locks.checkExclusiveLock(jobSubjectId, \"\", \"\");\n iModel.locks.checkSharedLock(IModel.repositoryModelId, \"\", \"\");\n\n const childSubjectId = Subject.insert(iModel, jobSubjectId, \"Child Subject\");\n\n const documentListModelId = DocumentListModel.insert(iModel, childSubjectId, \"Document\"); // creates DocumentList and DocumentListModel\n assert.isTrue(Id64.isValidId64(documentListModelId));\n const drawingModelId = Drawing.insert(iModel, documentListModelId, \"Drawing\"); // creates Drawing and DrawingModel\n\n assert.isTrue(iModel.elements.getElement(childSubjectId).parent?.id === jobSubjectId);\n assert.isTrue(iModel.elements.getElement(childSubjectId).model === IModel.repositoryModelId);\n assert.isTrue(iModel.elements.getElement(documentListModelId).parent?.id === childSubjectId);\n assert.isTrue(iModel.elements.getElement(documentListModelId).model === IModel.repositoryModelId);\n assert.isTrue(iModel.elements.getElement(drawingModelId).model === documentListModelId);\n\n iModel.saveChanges();\n await iModel.pushChanges({ description: \"insert doc list with nested drawing model\" });\n\n /*\n Verify that even a deeply nested insertion is covered by the exclusive lock on the top-level parent.\n\n Job Subject <--- Lock this\n +- DefinitionPartition -- DefinitionModel\n | SpatialCategory\n +- Child Subject\n +- DocumentList -- [DocumentListModel]\n Drawing -- [DrawingModel]\n DrawingGraphic <== Insert this\n */\n assert.isFalse(iModel.locks.holdsExclusiveLock(jobSubjectId));\n assert.isFalse(iModel.locks.holdsExclusiveLock(definitionModelId));\n assert.isFalse(iModel.locks.holdsSharedLock(definitionModelId));\n assert.isFalse(iModel.locks.holdsSharedLock(documentListModelId));\n assert.isFalse(iModel.locks.holdsSharedLock(drawingModelId));\n await iModel.locks.acquireLocks({ exclusive: jobSubjectId });\n iModel.locks.checkExclusiveLock(jobSubjectId, \"\", \"\");\n iModel.locks.checkSharedLock(IModel.repositoryModelId, \"\", \"\");\n iModel.locks.checkSharedLock(documentListModelId, \"\", \"\");\n iModel.locks.checkSharedLock(drawingModelId, \"\", \"\");\n\n const drawingGraphicProps1: GeometricElement2dProps = {\n classFullName: DrawingGraphic.classFullName,\n model: drawingModelId,\n category: drawingCategoryId,\n code: Code.createEmpty(),\n userLabel: \"DrawingGraphic1\",\n geom: IModelTestUtils.createRectangle(Point2d.create(1, 1)),\n placement: { origin: Point2d.create(2, 2), angle: 0 },\n };\n const drawingGraphicId1 = iModel.elements.insertElement(drawingGraphicProps1);\n\n assert.isTrue(iModel.elements.getElement(drawingGraphicId1).model === drawingModelId);\n iModel.saveChanges();\n expect(iModel.locks.holdsExclusiveLock(drawingModelId)).true;\n\n const fileName = iModel[_nativeDb].getFilePath();\n iModel.close(); // close rw\n iModel = await BriefcaseDb.open({ fileName, readonly: true }); // reopen readonly\n expect(iModel.locks.isServerBased).false; // readonly sessions should not have server based locks\n\n // verify we can push changes from a readonly briefcase\n await iModel.pushChanges({ description: \"insert graphic into nested sub-model\" });\n\n // try it again to verify we can get the ServerBasedLocks again\n await iModel.pushChanges({ description: \"should do nothing\" });\n iModel.close();\n\n // reopen readwrite to verify we released all locks from readonly briefcase\n iModel = await BriefcaseDb.open({ fileName });\n expect(iModel.locks.isServerBased).true;\n const serverLocks = iModel.locks as ServerBasedLocks;\n expect(serverLocks.holdsExclusiveLock(drawingModelId)).false;\n expect(serverLocks.getLockCount(LockState.Shared)).equal(0);\n expect(serverLocks.getLockCount(LockState.Exclusive)).equal(0);\n iModel.close();\n\n });\n\n});\n"]}
1
+ {"version":3,"file":"IModelWrite.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/IModelWrite.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"InlineGeometryPartReferences.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/InlineGeometryPartReferences.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { expect } from \"chai\";\nimport { Guid, Id64 } from \"@itwin/core-bentley\";\nimport { LineString3d, Loop, Point3d } from \"@itwin/core-geometry\";\nimport {\n AreaPattern,\n Code, ColorDef, GeometricElement3dProps, GeometryParams, GeometryPartProps, GeometryStreamBuilder, GeometryStreamIterator, IModel,\n} from \"@itwin/core-common\";\nimport {\n _nativeDb, GenericSchema, GeometricElement3d, GeometryPart, PhysicalModel, PhysicalObject, PhysicalPartition, RenderMaterialElement, SnapshotDb, SpatialCategory, SubCategory, SubjectOwnsPartitionElements,\n} from \"../../core-backend\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\n\n// The only geometry in our geometry streams will be squares of 1 meter in x and y, with origin at (pos, 0, 0).\ninterface Primitive { pos: number }\n\ninterface PartRef {\n partId: string;\n origin?: number; // origin in X. y and z are zero.\n}\n\ninterface Symbology {\n categoryId?: string;\n subCategoryId?: string;\n color?: ColorDef;\n materialId?: string;\n patternOrigin?: number;\n}\n\nfunction makeGeomParams(symb: Symbology): GeometryParams {\n const params = new GeometryParams(symb.categoryId ?? Id64.invalid, symb.subCategoryId);\n params.lineColor = symb.color;\n params.materialId = symb.materialId;\n if (symb.patternOrigin)\n params.pattern = AreaPattern.Params.fromJSON({ origin: [symb.patternOrigin, 0, 0] });\n\n return params;\n}\n\ninterface AppendSubRanges { appendSubRanges: true }\n\ntype UnionMember<T, U> = T & { [k in keyof U]?: never };\n\ntype GeomWriterEntry =\n UnionMember<PartRef, Symbology & Primitive & AppendSubRanges> |\n UnionMember<Symbology, PartRef & Primitive & AppendSubRanges> |\n UnionMember<Primitive, PartRef & Symbology & AppendSubRanges> |\n UnionMember<AppendSubRanges, Symbology & Primitive & PartRef>;\n\nclass GeomWriter {\n public readonly builder: GeometryStreamBuilder;\n\n public constructor(symbology?: Symbology) {\n this.builder = new GeometryStreamBuilder();\n if (symbology)\n this.append(symbology);\n }\n\n public append(entry: GeomWriterEntry): void {\n if (entry.partId)\n this.builder.appendGeometryPart3d(entry.partId, new Point3d(entry.origin, 0, 0));\n else if (entry.subCategoryId || entry.categoryId || entry.color || entry.materialId || entry.patternOrigin)\n this.builder.appendGeometryParamsChange(makeGeomParams(entry));\n else if (undefined !== entry.pos)\n this.builder.appendGeometry(Loop.createPolygon([new Point3d(entry.pos, 0, 0), new Point3d(entry.pos + 1, 0, 0), new Point3d(entry.pos + 1, 1, 0), new Point3d(entry.pos, 1, 0)]));\n else if (undefined !== entry.appendSubRanges)\n this.builder.appendGeometryRanges();\n }\n}\n\n// SubGraphicRange where x dimension is 1 meter and y and z are empty.\ninterface SubRange { low: number }\n\ntype GeomStreamEntry =\n UnionMember<PartRef, Symbology & SubRange & Primitive> |\n UnionMember<Symbology, PartRef & SubRange & Primitive> |\n UnionMember<SubRange, PartRef & Symbology & Primitive> |\n UnionMember<Primitive, PartRef & Symbology & SubRange>;\n\nfunction readGeomStream(iter: GeometryStreamIterator): GeomStreamEntry[] & { viewIndependent: boolean } {\n const result: GeomStreamEntry[] = [];\n for (const entry of iter) {\n const symb: Symbology = { categoryId: entry.geomParams.categoryId, subCategoryId: entry.geomParams.subCategoryId };\n\n if (undefined !== entry.geomParams.lineColor)\n symb.color = entry.geomParams.lineColor;\n\n if (undefined !== entry.geomParams.materialId)\n symb.materialId = entry.geomParams.materialId;\n\n if (entry.geomParams.pattern) {\n expect(entry.geomParams.pattern.origin).not.to.be.undefined;\n symb.patternOrigin = entry.geomParams.pattern.origin!.x;\n }\n\n result.push(symb);\n\n if (entry.localRange) {\n expect(entry.localRange.low.y).to.equal(0);\n expect(entry.localRange.low.z).to.equal(0);\n expect(entry.localRange.high.y).to.equal(1);\n expect(entry.localRange.high.z).to.equal(0);\n expect(entry.localRange.high.x - entry.localRange.low.x).to.equal(1);\n\n result.push({ low: entry.localRange.low.x });\n }\n\n if (entry.primitive.type === \"geometryQuery\") {\n expect(entry.primitive.geometry.geometryCategory).to.equal(\"curveCollection\");\n if (entry.primitive.geometry.geometryCategory === \"curveCollection\") {\n expect(entry.primitive.geometry.children.length).to.equal(1);\n expect(entry.primitive.geometry.children[0]).instanceOf(LineString3d);\n\n const pts = (entry.primitive.geometry.children[0] as LineString3d).points;\n expect(pts.length).to.equal(5);\n expect(pts[1].x).to.equal(pts[0].x + 1);\n\n result.push({ pos: pts[0].x });\n }\n } else {\n expect(entry.primitive.type).to.equal(\"partReference\");\n if (entry.primitive.type === \"partReference\") {\n const partRef: PartRef = { partId: entry.primitive.part.id };\n if (entry.primitive.part.toLocal)\n partRef.origin = entry.primitive.part.toLocal.origin.x;\n\n result.push(partRef);\n }\n }\n }\n\n (result as any).viewIndependent = iter.isViewIndependent;\n return result as GeomStreamEntry[] & { viewIndependent: boolean };\n}\n\ndescribe(\"DgnDb.inlineGeometryPartReferences\", () => {\n let imodel: SnapshotDb;\n let modelId: string;\n let categoryId: string;\n let blueSubCategoryId: string;\n let redSubCategoryId: string;\n let materialId: string;\n\n beforeEach(() => {\n imodel = SnapshotDb.createEmpty(IModelTestUtils.prepareOutputFile(\"InlineGeomParts\", `${Guid.createValue()}.bim`), {\n rootSubject: { name: \"InlineGeomParts\", description: \"InlineGeomParts\" },\n });\n\n GenericSchema.registerSchema();\n const partitionId = imodel.elements.insertElement({\n classFullName: PhysicalPartition.classFullName,\n model: IModel.repositoryModelId,\n parent: new SubjectOwnsPartitionElements(IModel.rootSubjectId),\n code: PhysicalPartition.createCode(imodel, IModel.rootSubjectId, `PhysicalPartition_${Guid.createValue()}`),\n });\n\n expect(Id64.isValidId64(partitionId)).to.be.true;\n const model = imodel.models.createModel({\n classFullName: PhysicalModel.classFullName,\n modeledElement: { id: partitionId },\n });\n\n expect(model).instanceOf(PhysicalModel);\n\n modelId = imodel.models.insertModel(model.toJSON());\n expect(Id64.isValidId64(modelId)).to.be.true;\n\n categoryId = SpatialCategory.insert(imodel, IModel.dictionaryId, \"ctgry\", { color: ColorDef.blue.toJSON() });\n expect(Id64.isValidId64(categoryId)).to.be.true;\n blueSubCategoryId = IModel.getDefaultSubCategoryId(categoryId);\n redSubCategoryId = SubCategory.insert(imodel, categoryId, \"red\", { color: ColorDef.red.toJSON() });\n expect(Id64.isValidId64(redSubCategoryId)).to.be.true;\n\n materialId = RenderMaterialElement.insert(imodel, IModel.dictionaryId, \"mat\", { paletteName: \"pal\" });\n expect(Id64.isValidId64(materialId)).to.be.true;\n });\n\n afterEach(() => {\n imodel.close();\n });\n\n function insertGeometryPart(geom: GeomWriterEntry[]): string {\n const writer = new GeomWriter();\n for (const entry of geom)\n writer.append(entry);\n\n const props: GeometryPartProps = {\n classFullName: GeometryPart.classFullName,\n model: IModel.dictionaryId,\n code: GeometryPart.createCode(imodel, IModel.dictionaryId, Guid.createValue()),\n geom: writer.builder.geometryStream,\n };\n\n const partId = imodel.elements.insertElement(props);\n expect(Id64.isValidId64(partId)).to.be.true;\n return partId;\n }\n\n function insertElement(geom: GeomWriterEntry[], viewIndependent = false): string {\n const writer = new GeomWriter({ categoryId });\n if (viewIndependent)\n writer.builder.isViewIndependent = true;\n\n for (const entry of geom)\n writer.append(entry);\n\n const props: GeometricElement3dProps = {\n classFullName: PhysicalObject.classFullName,\n model: modelId,\n code: Code.createEmpty(),\n category: categoryId,\n geom: writer.builder.geometryStream,\n placement: {\n origin: [0, 0, 0],\n angles: { },\n },\n };\n\n const elemId = imodel.elements.insertElement(props);\n expect(Id64.isValidId64(elemId)).to.be.true;\n return elemId;\n }\n\n function readElementGeom(id: string): GeomStreamEntry[] & { viewIndependent: boolean } {\n let iter;\n const elem = imodel.elements.getElement({ id, wantGeometry: true });\n if (elem instanceof GeometryPart) {\n iter = GeometryStreamIterator.fromGeometryPart(elem);\n } else {\n expect(elem).instanceOf(GeometricElement3d);\n iter = GeometryStreamIterator.fromGeometricElement3d(elem as GeometricElement3d);\n }\n\n return readGeomStream(iter);\n }\n\n function expectGeom(actual: GeomStreamEntry[], expected: GeomStreamEntry[]): void {\n expect(actual).to.deep.equal(expected);\n }\n\n function inlinePartRefs(): number {\n const result = imodel[_nativeDb].inlineGeometryPartReferences();\n expect(result.numCandidateParts).to.equal(result.numPartsDeleted);\n expect(result.numRefsInlined).to.equal(result.numCandidateParts);\n return result.numRefsInlined;\n }\n\n it(\"inlines and deletes a simple unique part reference\", () => {\n // Create single reference to a part and perform sanity checks on our geometry validation code.\n const partId = insertGeometryPart([{ pos: 123 }]);\n expectGeom(readElementGeom(partId), [\n { categoryId: \"0\", subCategoryId: \"0\" },\n { pos: 123 },\n ]);\n\n const elemId = insertElement([{ partId }]);\n expectGeom(readElementGeom(elemId), [\n { categoryId, subCategoryId: blueSubCategoryId },\n { partId },\n ]);\n\n // Inline and delete the part.\n expect(inlinePartRefs()).to.equal(1);\n expect(imodel.elements.tryGetElement(partId)).to.be.undefined;\n\n const geom = readElementGeom(elemId);\n expect(geom.viewIndependent).to.be.false;\n expectGeom(geom, [\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 123 },\n { pos: 123 },\n ]);\n });\n\n it(\"inlines and deletes unique parts, ignoring non-unique parts\", () => {\n const part1 = insertGeometryPart([{ pos: 1 }]);\n const part2 = insertGeometryPart([{ pos: 2 }]);\n const part3 = insertGeometryPart([{ pos: 3 }]);\n const part4 = insertGeometryPart([{ pos: 4 }]);\n\n const elem1 = insertElement([{ partId: part1 }]);\n const elem2 = insertElement([{ partId: part2 }, { partId: part3 }]);\n const elem3 = insertElement([{ partId: part3 }]);\n const elem4 = insertElement([{ partId: part4 }]);\n const elem5 = insertElement([{ partId: part4 }]);\n\n expect(inlinePartRefs()).to.equal(2);\n\n const symb = { categoryId, subCategoryId: blueSubCategoryId };\n expectGeom(readElementGeom(elem1), [symb, { low: 1 }, { pos: 1 }]);\n expectGeom(readElementGeom(elem2), [symb, { low: 2 }, { pos: 2 }, symb, { partId: part3 }]);\n expectGeom(readElementGeom(elem3), [symb, { partId: part3 }]);\n expectGeom(readElementGeom(elem4), [symb, { partId: part4 }]);\n expectGeom(readElementGeom(elem5), [symb, { partId: part4 }]);\n });\n\n it(\"applies part transform\", () => {\n const partId = insertGeometryPart([{ pos: -8 }]);\n const elemId = insertElement([{ partId, origin: 50 }]);\n expect(inlinePartRefs()).to.equal(1);\n expectGeom(readElementGeom(elemId), [\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 42 },\n { pos: 42 },\n ]);\n });\n\n it(\"applies element symbology to part and resets element symbology after embedding part\", () => {\n const part1 = insertGeometryPart([\n { pos: 1 },\n { color: ColorDef.green },\n { pos: 1.5},\n ]);\n\n const part2 = insertGeometryPart([\n { pos: 2 },\n { materialId },\n { pos: 2.5 },\n ]);\n\n // Sanity check.\n expectGeom(readElementGeom(part2), [\n { categoryId: \"0\", subCategoryId: \"0\" },\n { pos: 2 },\n { categoryId: \"0\", subCategoryId: \"0\", materialId },\n { pos: 2.5 },\n ]);\n\n const part3 = insertGeometryPart([\n { pos: 3 },\n { materialId: \"0\" },\n { pos: 3.5 },\n ]);\n\n const elemId = insertElement([\n { pos: -1 },\n { subCategoryId: redSubCategoryId },\n { partId: part1 },\n { pos: -2 },\n { color: ColorDef.black },\n { partId: part2 },\n { pos: -3 },\n { materialId, color: ColorDef.white },\n { partId: part3 },\n { pos: -4 },\n ]);\n\n expect(inlinePartRefs()).to.equal(3);\n\n expectGeom(readElementGeom(elemId), [\n { categoryId, subCategoryId: blueSubCategoryId },\n { pos: -1 },\n { categoryId, subCategoryId: redSubCategoryId },\n { low: 1},\n { pos: 1 },\n { categoryId, subCategoryId: redSubCategoryId, color: ColorDef.green },\n { low: 1.5 },\n { pos: 1.5 },\n { categoryId, subCategoryId: redSubCategoryId },\n { low: -2 },\n { pos: -2 },\n\n { categoryId, subCategoryId: redSubCategoryId, color: ColorDef.black },\n { low: 2 },\n { pos: 2 },\n { categoryId, subCategoryId: redSubCategoryId, materialId },\n { low: 2.5 },\n { pos: 2.5 },\n { categoryId, subCategoryId: redSubCategoryId, color: ColorDef.black },\n { low: -3 },\n { pos: -3 },\n\n { categoryId, subCategoryId: redSubCategoryId, color: ColorDef.white, materialId },\n { low: 3 },\n { pos: 3 },\n { categoryId, subCategoryId: redSubCategoryId, materialId: \"0\" },\n { low: 3.5 },\n { pos: 3.5 },\n {categoryId, subCategoryId: redSubCategoryId, color: ColorDef.white, materialId },\n { low: -4 },\n { pos: -4 },\n ]);\n });\n\n it(\"inserts subgraphic ranges for parts\", () => {\n const part1 = insertGeometryPart([{ pos: 1 }]);\n const part2 = insertGeometryPart([{ pos: 2 }]);\n const elem = insertElement([\n { pos: -1 },\n { partId: part1 },\n { partId: part2, origin: 5 },\n ]);\n\n expect(inlinePartRefs()).to.equal(2);\n\n expectGeom(readElementGeom(elem), [\n { categoryId, subCategoryId: blueSubCategoryId },\n { pos: -1 },\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 1 },\n { pos: 1 },\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 7 },\n { pos: 7 },\n ]);\n });\n\n it(\"preserves existing subgraphic ranges\", () => {\n const partId = insertGeometryPart([{ pos: 0 }]);\n const elem = insertElement([\n { appendSubRanges: true },\n { pos: -1 },\n { partId },\n { pos: 1 },\n ]);\n\n expectGeom(readElementGeom(elem), [\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: -1 },\n { pos: -1 },\n { categoryId, subCategoryId: blueSubCategoryId },\n { partId },\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 1 },\n { pos: 1 },\n ]);\n\n expect(inlinePartRefs()).to.equal(1);\n\n expectGeom(readElementGeom(elem), [\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: -1 },\n { pos: -1 },\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 0 },\n { pos: 0 },\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 1 },\n { pos: 1 },\n ]);\n });\n\n it(\"inserts subgraphic ranges geometry following part\", () => {\n const partId = insertGeometryPart([{ pos: 1 }]);\n const elem = insertElement([\n { pos: 0 },\n { partId },\n { pos: 2 },\n ]);\n\n expect(inlinePartRefs()).to.equal(1);\n\n expectGeom(readElementGeom(elem), [\n { categoryId, subCategoryId: blueSubCategoryId },\n { pos: 0 },\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 1 },\n { pos: 1 },\n { categoryId, subCategoryId: blueSubCategoryId },\n { low: 2 },\n { pos: 2 },\n ]);\n });\n\n it(\"applies transform to patterns\", () => {\n const part1 = insertGeometryPart([{ pos: 1 }]);\n const part2 = insertGeometryPart([{ patternOrigin: 123 }, { pos: 2 }]);\n\n expectGeom(readElementGeom(part2), [\n { categoryId: \"0\", subCategoryId: \"0\", patternOrigin: 123 },\n { pos: 2 },\n ]);\n\n const elemId = insertElement([\n { patternOrigin: 456 },\n { pos: -1 },\n { partId: part1, origin: 8 },\n { pos: -2 },\n { partId: part2, origin: 12 },\n { pos: -3 },\n ]);\n\n expectGeom(readElementGeom(elemId), [\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { pos: -1 },\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { partId: part1, origin: 8 },\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { pos: -2 },\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { partId: part2, origin: 12 },\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { pos: -3 },\n ]);\n\n expect(inlinePartRefs()).to.equal(2);\n\n expectGeom(readElementGeom(elemId), [\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { pos: -1 },\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { low: 1 + 8 },\n { pos: 1 + 8 },\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { low: -2 },\n { pos: -2 },\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 123 + 12 },\n { low: 2 + 12 },\n { pos: 2 + 12 },\n { categoryId, subCategoryId: blueSubCategoryId, patternOrigin: 456 },\n { low: -3 },\n { pos: -3 },\n ]);\n });\n\n it(\"preserves element header flags\", () => {\n const partId = insertGeometryPart([{ pos: 1 }]);\n const elemId = insertElement([{ partId }], true);\n expect(readElementGeom(elemId).viewIndependent).to.be.true;\n\n expect(inlinePartRefs()).to.equal(1);\n expect(readElementGeom(elemId).viewIndependent).to.be.true;\n });\n});\n"]}
1
+ {"version":3,"file":"InlineGeometryPartReferences.test.js","sourceRoot":"","sources":["../../../../src/test/standalone/InlineGeometryPartReferences.test.ts"],"names":[],"mappings":"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"}