@itwin/core-backend 5.1.0-dev.9 → 5.1.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 (671) hide show
  1. package/CHANGELOG.md +160 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +1 -1
  3. package/lib/cjs/BackendHubAccess.js +1 -1
  4. package/lib/cjs/BackendHubAccess.js.map +1 -1
  5. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  6. package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
  7. package/lib/cjs/BisCoreSchema.js +4 -2
  8. package/lib/cjs/BisCoreSchema.js.map +1 -1
  9. package/lib/cjs/BlobContainerService.js.map +1 -1
  10. package/lib/cjs/BriefcaseManager.d.ts +10 -2
  11. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  12. package/lib/cjs/BriefcaseManager.js +16 -0
  13. package/lib/cjs/BriefcaseManager.js.map +1 -1
  14. package/lib/cjs/CatalogDb.js.map +1 -1
  15. package/lib/cjs/Category.d.ts +4 -4
  16. package/lib/cjs/Category.js +4 -4
  17. package/lib/cjs/Category.js.map +1 -1
  18. package/lib/cjs/ChangeSummaryManager.js +2 -2
  19. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  20. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  21. package/lib/cjs/ChangesetECAdaptor.d.ts +67 -8
  22. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  23. package/lib/cjs/ChangesetECAdaptor.js +490 -275
  24. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  25. package/lib/cjs/ChannelControl.js.map +1 -1
  26. package/lib/cjs/CheckpointManager.js.map +1 -1
  27. package/lib/cjs/ClassRegistry.d.ts +9 -1
  28. package/lib/cjs/ClassRegistry.d.ts.map +1 -1
  29. package/lib/cjs/ClassRegistry.js +14 -6
  30. package/lib/cjs/ClassRegistry.js.map +1 -1
  31. package/lib/cjs/CloudSqlite.js +1 -1
  32. package/lib/cjs/CloudSqlite.js.map +1 -1
  33. package/lib/cjs/CodeService.js.map +1 -1
  34. package/lib/cjs/CodeSpecs.d.ts +1 -1
  35. package/lib/cjs/CodeSpecs.js +1 -1
  36. package/lib/cjs/CodeSpecs.js.map +1 -1
  37. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  38. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  39. package/lib/cjs/DevTools.js.map +1 -1
  40. package/lib/cjs/DisplayStyle.d.ts +4 -4
  41. package/lib/cjs/DisplayStyle.js +3 -3
  42. package/lib/cjs/DisplayStyle.js.map +1 -1
  43. package/lib/cjs/ECDb.d.ts +4 -4
  44. package/lib/cjs/ECDb.d.ts.map +1 -1
  45. package/lib/cjs/ECDb.js +4 -4
  46. package/lib/cjs/ECDb.js.map +1 -1
  47. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  48. package/lib/cjs/ECSqlStatement.d.ts +15 -6
  49. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  50. package/lib/cjs/ECSqlStatement.js +19 -4
  51. package/lib/cjs/ECSqlStatement.js.map +1 -1
  52. package/lib/cjs/Element.d.ts +54 -51
  53. package/lib/cjs/Element.d.ts.map +1 -1
  54. package/lib/cjs/Element.js +67 -52
  55. package/lib/cjs/Element.js.map +1 -1
  56. package/lib/cjs/ElementAspect.d.ts +8 -8
  57. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  58. package/lib/cjs/ElementAspect.js +8 -8
  59. package/lib/cjs/ElementAspect.js.map +1 -1
  60. package/lib/cjs/ElementGraphics.js.map +1 -1
  61. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  62. package/lib/cjs/Entity.d.ts +10 -7
  63. package/lib/cjs/Entity.d.ts.map +1 -1
  64. package/lib/cjs/Entity.js +35 -13
  65. package/lib/cjs/Entity.js.map +1 -1
  66. package/lib/cjs/EntityReferences.js.map +1 -1
  67. package/lib/cjs/ExportGraphics.d.ts +54 -8
  68. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  69. package/lib/cjs/ExportGraphics.js +158 -59
  70. package/lib/cjs/ExportGraphics.js.map +1 -1
  71. package/lib/cjs/ExternalSource.js.map +1 -1
  72. package/lib/cjs/FontFile.js.map +1 -1
  73. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  74. package/lib/cjs/GeographicCRSServices.d.ts +6 -2
  75. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  76. package/lib/cjs/GeographicCRSServices.js +1 -1
  77. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  78. package/lib/cjs/GeometrySummary.js +47 -47
  79. package/lib/cjs/GeometrySummary.js.map +1 -1
  80. package/lib/cjs/IModelDb.d.ts +37 -26
  81. package/lib/cjs/IModelDb.d.ts.map +1 -1
  82. package/lib/cjs/IModelDb.js +132 -55
  83. package/lib/cjs/IModelDb.js.map +1 -1
  84. package/lib/cjs/IModelDbFonts.js.map +1 -1
  85. package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
  86. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  87. package/lib/cjs/IModelElementCloneContext.js +1 -1
  88. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  89. package/lib/cjs/IModelHost.d.ts +2 -3
  90. package/lib/cjs/IModelHost.d.ts.map +1 -1
  91. package/lib/cjs/IModelHost.js +2 -3
  92. package/lib/cjs/IModelHost.js.map +1 -1
  93. package/lib/cjs/IModelIncrementalSchemaLocater.d.ts +36 -0
  94. package/lib/cjs/IModelIncrementalSchemaLocater.d.ts.map +1 -0
  95. package/lib/cjs/IModelIncrementalSchemaLocater.js +69 -0
  96. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -0
  97. package/lib/cjs/IModelJsFs.js.map +1 -1
  98. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  99. package/lib/cjs/IpcHost.js.map +1 -1
  100. package/lib/cjs/LineStyle.js.map +1 -1
  101. package/lib/cjs/LocalHub.d.ts.map +1 -1
  102. package/lib/cjs/LocalHub.js +6 -4
  103. package/lib/cjs/LocalHub.js.map +1 -1
  104. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  105. package/lib/cjs/LockControl.js.map +1 -1
  106. package/lib/cjs/Material.d.ts +4 -3
  107. package/lib/cjs/Material.d.ts.map +1 -1
  108. package/lib/cjs/Material.js +5 -5
  109. package/lib/cjs/Material.js.map +1 -1
  110. package/lib/cjs/Model.d.ts +22 -22
  111. package/lib/cjs/Model.js +22 -22
  112. package/lib/cjs/Model.js.map +1 -1
  113. package/lib/cjs/NativeAppStorage.js.map +1 -1
  114. package/lib/cjs/NativeHost.js.map +1 -1
  115. package/lib/cjs/NavigationRelationship.js.map +1 -1
  116. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  117. package/lib/cjs/PropertyStore.js.map +1 -1
  118. package/lib/cjs/Relationship.d.ts +3 -0
  119. package/lib/cjs/Relationship.d.ts.map +1 -1
  120. package/lib/cjs/Relationship.js +15 -0
  121. package/lib/cjs/Relationship.js.map +1 -1
  122. package/lib/cjs/RpcBackend.js.map +1 -1
  123. package/lib/cjs/SQLiteDb.d.ts +1 -1
  124. package/lib/cjs/SQLiteDb.js +1 -1
  125. package/lib/cjs/SQLiteDb.js.map +1 -1
  126. package/lib/cjs/Schema.d.ts +25 -0
  127. package/lib/cjs/Schema.d.ts.map +1 -1
  128. package/lib/cjs/Schema.js +25 -0
  129. package/lib/cjs/Schema.js.map +1 -1
  130. package/lib/cjs/SchemaSync.js.map +1 -1
  131. package/lib/cjs/SchemaUtils.js.map +1 -1
  132. package/lib/cjs/SheetIndex.js.map +1 -1
  133. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  134. package/lib/cjs/SqliteStatement.d.ts +1 -1
  135. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  136. package/lib/cjs/SqliteStatement.js +1 -1
  137. package/lib/cjs/SqliteStatement.js.map +1 -1
  138. package/lib/cjs/Texture.d.ts +1 -1
  139. package/lib/cjs/Texture.js +1 -1
  140. package/lib/cjs/Texture.js.map +1 -1
  141. package/lib/cjs/TileStorage.js.map +1 -1
  142. package/lib/cjs/TxnManager.d.ts +4 -4
  143. package/lib/cjs/TxnManager.js +1 -1
  144. package/lib/cjs/TxnManager.js.map +1 -1
  145. package/lib/cjs/ViewDefinition.d.ts +40 -14
  146. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  147. package/lib/cjs/ViewDefinition.js +42 -14
  148. package/lib/cjs/ViewDefinition.js.map +1 -1
  149. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  150. package/lib/cjs/ViewStore.js.map +1 -1
  151. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
  152. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
  153. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +110 -0
  154. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -0
  155. package/lib/cjs/annotations/FrameGeometry.d.ts +51 -0
  156. package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
  157. package/lib/cjs/annotations/FrameGeometry.js +249 -0
  158. package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
  159. package/lib/cjs/annotations/LeaderGeometry.d.ts +53 -0
  160. package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -0
  161. package/lib/cjs/annotations/LeaderGeometry.js +184 -0
  162. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -0
  163. package/lib/cjs/annotations/TextAnnotationElement.d.ts +204 -0
  164. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
  165. package/lib/cjs/annotations/TextAnnotationElement.js +411 -0
  166. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
  167. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +33 -0
  168. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  169. package/lib/cjs/annotations/TextAnnotationGeometry.js +137 -0
  170. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
  171. package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
  172. package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
  173. package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
  174. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
  175. package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
  176. package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
  177. package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +174 -49
  178. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
  179. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  180. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  181. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  182. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  183. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  184. package/lib/cjs/core-backend.d.ts +7 -3
  185. package/lib/cjs/core-backend.d.ts.map +1 -1
  186. package/lib/cjs/core-backend.js +27 -6
  187. package/lib/cjs/core-backend.js.map +1 -1
  188. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  189. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  190. package/lib/cjs/domains/GenericElements.js.map +1 -1
  191. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  192. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  193. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  194. package/lib/cjs/internal/ElementLRUCache.d.ts +23 -0
  195. package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
  196. package/lib/cjs/internal/ElementLRUCache.js +167 -3
  197. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  198. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  199. package/lib/cjs/internal/HubMock.js.map +1 -1
  200. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  201. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  202. package/lib/cjs/internal/NoLocks.js.map +1 -1
  203. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  204. package/lib/cjs/internal/Symbols.d.ts +1 -0
  205. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  206. package/lib/cjs/internal/Symbols.js +2 -1
  207. package/lib/cjs/internal/Symbols.js.map +1 -1
  208. package/lib/cjs/internal/annotations/fields.d.ts +22 -0
  209. package/lib/cjs/internal/annotations/fields.d.ts.map +1 -0
  210. package/lib/cjs/internal/annotations/fields.js +237 -0
  211. package/lib/cjs/internal/annotations/fields.js.map +1 -0
  212. package/lib/cjs/internal/cross-package.js.map +1 -1
  213. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  214. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  215. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  216. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  217. package/lib/cjs/rpc/multipart.js.map +1 -1
  218. package/lib/cjs/rpc/tracing.js.map +1 -1
  219. package/lib/cjs/rpc/web/logging.js.map +1 -1
  220. package/lib/cjs/rpc/web/request.js.map +1 -1
  221. package/lib/cjs/rpc/web/response.js.map +1 -1
  222. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  223. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  224. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +1 -1
  225. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  226. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  227. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  228. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  229. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  230. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  231. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  232. package/lib/cjs/workspace/Settings.js.map +1 -1
  233. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  234. package/lib/cjs/workspace/Workspace.d.ts +0 -1
  235. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  236. package/lib/cjs/workspace/Workspace.js.map +1 -1
  237. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  238. package/lib/esm/BackendHubAccess.d.ts +1 -1
  239. package/lib/esm/BackendHubAccess.js +1 -1
  240. package/lib/esm/BackendHubAccess.js.map +1 -1
  241. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  242. package/lib/esm/BisCoreSchema.d.ts.map +1 -1
  243. package/lib/esm/BisCoreSchema.js +4 -2
  244. package/lib/esm/BisCoreSchema.js.map +1 -1
  245. package/lib/esm/BlobContainerService.js.map +1 -1
  246. package/lib/esm/BriefcaseManager.d.ts +10 -2
  247. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  248. package/lib/esm/BriefcaseManager.js +17 -1
  249. package/lib/esm/BriefcaseManager.js.map +1 -1
  250. package/lib/esm/CatalogDb.js.map +1 -1
  251. package/lib/esm/Category.d.ts +4 -4
  252. package/lib/esm/Category.js +4 -4
  253. package/lib/esm/Category.js.map +1 -1
  254. package/lib/esm/ChangeSummaryManager.js +2 -2
  255. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  256. package/lib/esm/ChangedElementsDb.js.map +1 -1
  257. package/lib/esm/ChangesetECAdaptor.d.ts +67 -8
  258. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  259. package/lib/esm/ChangesetECAdaptor.js +490 -275
  260. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  261. package/lib/esm/ChannelControl.js.map +1 -1
  262. package/lib/esm/CheckpointManager.js.map +1 -1
  263. package/lib/esm/ClassRegistry.d.ts +9 -1
  264. package/lib/esm/ClassRegistry.d.ts.map +1 -1
  265. package/lib/esm/ClassRegistry.js +14 -6
  266. package/lib/esm/ClassRegistry.js.map +1 -1
  267. package/lib/esm/CloudSqlite.js +1 -1
  268. package/lib/esm/CloudSqlite.js.map +1 -1
  269. package/lib/esm/CodeService.js.map +1 -1
  270. package/lib/esm/CodeSpecs.d.ts +1 -1
  271. package/lib/esm/CodeSpecs.js +1 -1
  272. package/lib/esm/CodeSpecs.js.map +1 -1
  273. package/lib/esm/ConcurrentQuery.js.map +1 -1
  274. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  275. package/lib/esm/DevTools.js.map +1 -1
  276. package/lib/esm/DisplayStyle.d.ts +4 -4
  277. package/lib/esm/DisplayStyle.js +3 -3
  278. package/lib/esm/DisplayStyle.js.map +1 -1
  279. package/lib/esm/ECDb.d.ts +4 -4
  280. package/lib/esm/ECDb.d.ts.map +1 -1
  281. package/lib/esm/ECDb.js +4 -4
  282. package/lib/esm/ECDb.js.map +1 -1
  283. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  284. package/lib/esm/ECSqlStatement.d.ts +15 -6
  285. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  286. package/lib/esm/ECSqlStatement.js +19 -4
  287. package/lib/esm/ECSqlStatement.js.map +1 -1
  288. package/lib/esm/Element.d.ts +54 -51
  289. package/lib/esm/Element.d.ts.map +1 -1
  290. package/lib/esm/Element.js +67 -52
  291. package/lib/esm/Element.js.map +1 -1
  292. package/lib/esm/ElementAspect.d.ts +8 -8
  293. package/lib/esm/ElementAspect.d.ts.map +1 -1
  294. package/lib/esm/ElementAspect.js +8 -8
  295. package/lib/esm/ElementAspect.js.map +1 -1
  296. package/lib/esm/ElementGraphics.js.map +1 -1
  297. package/lib/esm/ElementTreeWalker.js.map +1 -1
  298. package/lib/esm/Entity.d.ts +10 -7
  299. package/lib/esm/Entity.d.ts.map +1 -1
  300. package/lib/esm/Entity.js +36 -14
  301. package/lib/esm/Entity.js.map +1 -1
  302. package/lib/esm/EntityReferences.js.map +1 -1
  303. package/lib/esm/ExportGraphics.d.ts +54 -8
  304. package/lib/esm/ExportGraphics.d.ts.map +1 -1
  305. package/lib/esm/ExportGraphics.js +156 -58
  306. package/lib/esm/ExportGraphics.js.map +1 -1
  307. package/lib/esm/ExternalSource.js.map +1 -1
  308. package/lib/esm/FontFile.js.map +1 -1
  309. package/lib/esm/GeoCoordConfig.js.map +1 -1
  310. package/lib/esm/GeographicCRSServices.d.ts +6 -2
  311. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  312. package/lib/esm/GeographicCRSServices.js +1 -1
  313. package/lib/esm/GeographicCRSServices.js.map +1 -1
  314. package/lib/esm/GeometrySummary.js +47 -47
  315. package/lib/esm/GeometrySummary.js.map +1 -1
  316. package/lib/esm/IModelDb.d.ts +37 -26
  317. package/lib/esm/IModelDb.d.ts.map +1 -1
  318. package/lib/esm/IModelDb.js +136 -59
  319. package/lib/esm/IModelDb.js.map +1 -1
  320. package/lib/esm/IModelDbFonts.js.map +1 -1
  321. package/lib/esm/IModelElementCloneContext.d.ts +1 -1
  322. package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
  323. package/lib/esm/IModelElementCloneContext.js +1 -1
  324. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  325. package/lib/esm/IModelHost.d.ts +2 -3
  326. package/lib/esm/IModelHost.d.ts.map +1 -1
  327. package/lib/esm/IModelHost.js +2 -3
  328. package/lib/esm/IModelHost.js.map +1 -1
  329. package/lib/esm/IModelIncrementalSchemaLocater.d.ts +36 -0
  330. package/lib/esm/IModelIncrementalSchemaLocater.d.ts.map +1 -0
  331. package/lib/esm/IModelIncrementalSchemaLocater.js +65 -0
  332. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -0
  333. package/lib/esm/IModelJsFs.js.map +1 -1
  334. package/lib/esm/ImageSourceConversion.js.map +1 -1
  335. package/lib/esm/IpcHost.js.map +1 -1
  336. package/lib/esm/LineStyle.js.map +1 -1
  337. package/lib/esm/LocalHub.d.ts.map +1 -1
  338. package/lib/esm/LocalHub.js +6 -4
  339. package/lib/esm/LocalHub.js.map +1 -1
  340. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  341. package/lib/esm/LockControl.js.map +1 -1
  342. package/lib/esm/Material.d.ts +4 -3
  343. package/lib/esm/Material.d.ts.map +1 -1
  344. package/lib/esm/Material.js +5 -5
  345. package/lib/esm/Material.js.map +1 -1
  346. package/lib/esm/Model.d.ts +22 -22
  347. package/lib/esm/Model.js +22 -22
  348. package/lib/esm/Model.js.map +1 -1
  349. package/lib/esm/NativeAppStorage.js.map +1 -1
  350. package/lib/esm/NativeHost.js.map +1 -1
  351. package/lib/esm/NavigationRelationship.js.map +1 -1
  352. package/lib/esm/PromiseMemoizer.js.map +1 -1
  353. package/lib/esm/PropertyStore.js.map +1 -1
  354. package/lib/esm/Relationship.d.ts +3 -0
  355. package/lib/esm/Relationship.d.ts.map +1 -1
  356. package/lib/esm/Relationship.js +15 -0
  357. package/lib/esm/Relationship.js.map +1 -1
  358. package/lib/esm/RpcBackend.js.map +1 -1
  359. package/lib/esm/SQLiteDb.d.ts +1 -1
  360. package/lib/esm/SQLiteDb.js +1 -1
  361. package/lib/esm/SQLiteDb.js.map +1 -1
  362. package/lib/esm/Schema.d.ts +25 -0
  363. package/lib/esm/Schema.d.ts.map +1 -1
  364. package/lib/esm/Schema.js +25 -0
  365. package/lib/esm/Schema.js.map +1 -1
  366. package/lib/esm/SchemaSync.js.map +1 -1
  367. package/lib/esm/SchemaUtils.js.map +1 -1
  368. package/lib/esm/SheetIndex.js.map +1 -1
  369. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  370. package/lib/esm/SqliteStatement.d.ts +1 -1
  371. package/lib/esm/SqliteStatement.d.ts.map +1 -1
  372. package/lib/esm/SqliteStatement.js +1 -1
  373. package/lib/esm/SqliteStatement.js.map +1 -1
  374. package/lib/esm/Texture.d.ts +1 -1
  375. package/lib/esm/Texture.js +1 -1
  376. package/lib/esm/Texture.js.map +1 -1
  377. package/lib/esm/TileStorage.js.map +1 -1
  378. package/lib/esm/TxnManager.d.ts +4 -4
  379. package/lib/esm/TxnManager.js +1 -1
  380. package/lib/esm/TxnManager.js.map +1 -1
  381. package/lib/esm/ViewDefinition.d.ts +40 -14
  382. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  383. package/lib/esm/ViewDefinition.js +42 -14
  384. package/lib/esm/ViewDefinition.js.map +1 -1
  385. package/lib/esm/ViewStateHydrator.js.map +1 -1
  386. package/lib/esm/ViewStore.js.map +1 -1
  387. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
  388. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
  389. package/lib/esm/annotations/ElementDrivesTextAnnotation.js +105 -0
  390. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -0
  391. package/lib/esm/annotations/FrameGeometry.d.ts +51 -0
  392. package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
  393. package/lib/esm/annotations/FrameGeometry.js +244 -0
  394. package/lib/esm/annotations/FrameGeometry.js.map +1 -0
  395. package/lib/esm/annotations/LeaderGeometry.d.ts +53 -0
  396. package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -0
  397. package/lib/esm/annotations/LeaderGeometry.js +179 -0
  398. package/lib/esm/annotations/LeaderGeometry.js.map +1 -0
  399. package/lib/esm/annotations/TextAnnotationElement.d.ts +204 -0
  400. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
  401. package/lib/esm/annotations/TextAnnotationElement.js +405 -0
  402. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
  403. package/lib/esm/annotations/TextAnnotationGeometry.d.ts +33 -0
  404. package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  405. package/lib/esm/annotations/TextAnnotationGeometry.js +134 -0
  406. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
  407. package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
  408. package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
  409. package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
  410. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
  411. package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
  412. package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
  413. package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +172 -48
  414. package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
  415. package/lib/esm/core-backend.d.ts +7 -3
  416. package/lib/esm/core-backend.d.ts.map +1 -1
  417. package/lib/esm/core-backend.js +27 -3
  418. package/lib/esm/core-backend.js.map +1 -1
  419. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  420. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  421. package/lib/esm/domains/GenericElements.js.map +1 -1
  422. package/lib/esm/domains/GenericSchema.js.map +1 -1
  423. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  424. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  425. package/lib/esm/internal/ElementLRUCache.d.ts +23 -0
  426. package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
  427. package/lib/esm/internal/ElementLRUCache.js +165 -2
  428. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  429. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  430. package/lib/esm/internal/HubMock.js.map +1 -1
  431. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  432. package/lib/esm/internal/NativePlatform.js.map +1 -1
  433. package/lib/esm/internal/NoLocks.js.map +1 -1
  434. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  435. package/lib/esm/internal/Symbols.d.ts +1 -0
  436. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  437. package/lib/esm/internal/Symbols.js +1 -0
  438. package/lib/esm/internal/Symbols.js.map +1 -1
  439. package/lib/esm/internal/annotations/fields.d.ts +22 -0
  440. package/lib/esm/internal/annotations/fields.d.ts.map +1 -0
  441. package/lib/esm/internal/annotations/fields.js +231 -0
  442. package/lib/esm/internal/annotations/fields.js.map +1 -0
  443. package/lib/esm/internal/cross-package.js.map +1 -1
  444. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  445. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  446. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  447. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  448. package/lib/esm/rpc/multipart.js.map +1 -1
  449. package/lib/esm/rpc/tracing.js.map +1 -1
  450. package/lib/esm/rpc/web/logging.js.map +1 -1
  451. package/lib/esm/rpc/web/request.js.map +1 -1
  452. package/lib/esm/rpc/web/response.js.map +1 -1
  453. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  454. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  455. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +1 -1
  456. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  457. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  458. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  459. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  460. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  461. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  462. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  463. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  464. package/lib/esm/test/AnnotationTestUtils.d.ts +15 -0
  465. package/lib/esm/test/AnnotationTestUtils.d.ts.map +1 -0
  466. package/lib/esm/test/AnnotationTestUtils.js +41 -0
  467. package/lib/esm/test/AnnotationTestUtils.js.map +1 -0
  468. package/lib/esm/test/AttachDb.test.js +11 -11
  469. package/lib/esm/test/AttachDb.test.js.map +1 -1
  470. package/lib/esm/test/ElementLRUCache.test.js +224 -1
  471. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  472. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  473. package/lib/esm/test/IModelHost.test.js.map +1 -1
  474. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  475. package/lib/esm/test/IModelTestUtils.js +1 -0
  476. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  477. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  478. package/lib/esm/test/IpcHost.test.js.map +1 -1
  479. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  480. package/lib/esm/test/PrintElementTree.js.map +1 -1
  481. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  482. package/lib/esm/test/RevisionUtility.js.map +1 -1
  483. package/lib/esm/test/SchemaUtils.test.js +25 -25
  484. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  485. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  486. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  487. package/lib/esm/test/TestUtils.d.ts +1 -1
  488. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  489. package/lib/esm/test/TestUtils.js +1 -1
  490. package/lib/esm/test/TestUtils.js.map +1 -1
  491. package/lib/esm/test/annotations/Fields.test.d.ts +2 -0
  492. package/lib/esm/test/annotations/Fields.test.d.ts.map +1 -0
  493. package/lib/esm/test/annotations/Fields.test.js +576 -0
  494. package/lib/esm/test/annotations/Fields.test.js.map +1 -0
  495. package/lib/esm/test/annotations/FrameGeometry.test.d.ts +2 -0
  496. package/lib/esm/test/annotations/FrameGeometry.test.d.ts.map +1 -0
  497. package/lib/esm/test/annotations/FrameGeometry.test.js +86 -0
  498. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -0
  499. package/lib/esm/test/annotations/LeaderGeometry.test.d.ts +2 -0
  500. package/lib/esm/test/annotations/LeaderGeometry.test.d.ts.map +1 -0
  501. package/lib/esm/test/annotations/LeaderGeometry.test.js +256 -0
  502. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -0
  503. package/lib/esm/test/annotations/TextAnnotation.test.js +269 -1047
  504. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  505. package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
  506. package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
  507. package/lib/esm/test/annotations/TextBlock.test.js +1199 -0
  508. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
  509. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts +60 -0
  510. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts.map +1 -0
  511. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js +69 -0
  512. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -0
  513. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts +1442 -0
  514. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts.map +1 -0
  515. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js +817 -0
  516. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -0
  517. package/lib/esm/test/categories/Category.test.js.map +1 -1
  518. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  519. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  520. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  521. package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts +2 -0
  522. package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts.map +1 -0
  523. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +164 -0
  524. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -0
  525. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +35 -45
  526. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  527. package/lib/esm/test/ecdb/ECDb.test.js +86 -65
  528. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  529. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  530. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  531. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  532. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  533. package/lib/esm/test/ecdb/ECSqlQuery.test.js +0 -55
  534. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  535. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  536. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  537. package/lib/esm/test/ecdb/ECSqlStatement.test.js +484 -292
  538. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  539. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  540. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  541. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  542. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  543. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  544. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  545. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  546. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  547. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  548. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  549. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  550. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  551. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  552. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  553. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  554. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  555. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  556. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  557. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  558. package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts +2 -0
  559. package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts.map +1 -0
  560. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +86 -0
  561. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -0
  562. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  563. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  564. package/lib/esm/test/imageData.js.map +1 -1
  565. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  566. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  567. package/lib/esm/test/imodel/IModel.test.js +313 -5
  568. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  569. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  570. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  571. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts +2 -0
  572. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts.map +1 -0
  573. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js +343 -0
  574. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -0
  575. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts +2 -0
  576. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts.map +1 -0
  577. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +207 -0
  578. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -0
  579. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts +11 -0
  580. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts.map +1 -0
  581. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js +36 -0
  582. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -0
  583. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +17 -0
  584. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +1 -0
  585. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +116 -0
  586. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -0
  587. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts +9 -0
  588. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts.map +1 -0
  589. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js +20 -0
  590. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -0
  591. package/lib/esm/test/index.js.map +1 -1
  592. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  593. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  594. package/lib/esm/test/misc/GeoServices.test.js +36 -10
  595. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  596. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  597. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  598. package/lib/esm/test/rpc/response.test.js.map +1 -1
  599. package/lib/esm/test/schema/ClassRegistry.test.js +175 -73
  600. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  601. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  602. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  603. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  604. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  605. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  606. package/lib/esm/test/standalone/ChangesetReader.test.js +575 -164
  607. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  608. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  609. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  610. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  611. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  612. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  613. package/lib/esm/test/standalone/ExportGraphics.test.js +67 -15
  614. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  615. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  616. package/lib/esm/test/standalone/GeometryStream.test.js +49 -1
  617. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  618. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  619. package/lib/esm/test/standalone/IModelLimits.test.d.ts +2 -0
  620. package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
  621. package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
  622. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
  623. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  624. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  625. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  626. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  627. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  628. package/lib/esm/test/standalone/RenderMaterialElement.test.js +24 -1
  629. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  630. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  631. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  632. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  633. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  634. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  635. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  636. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  637. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  638. package/lib/esm/test/standalone/SnapshotDb.test.js +19 -1
  639. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  640. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  641. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  642. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  643. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  644. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  645. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  646. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  647. package/lib/esm/workspace/Settings.js.map +1 -1
  648. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  649. package/lib/esm/workspace/Workspace.d.ts +0 -1
  650. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  651. package/lib/esm/workspace/Workspace.js.map +1 -1
  652. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  653. package/package.json +22 -16
  654. package/lib/cjs/TextAnnotationElement.d.ts +0 -54
  655. package/lib/cjs/TextAnnotationElement.d.ts.map +0 -1
  656. package/lib/cjs/TextAnnotationElement.js +0 -94
  657. package/lib/cjs/TextAnnotationElement.js.map +0 -1
  658. package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
  659. package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
  660. package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
  661. package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
  662. package/lib/cjs/TextAnnotationLayout.js.map +0 -1
  663. package/lib/esm/TextAnnotationElement.d.ts +0 -54
  664. package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
  665. package/lib/esm/TextAnnotationElement.js +0 -89
  666. package/lib/esm/TextAnnotationElement.js.map +0 -1
  667. package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
  668. package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
  669. package/lib/esm/TextAnnotationGeometry.js.map +0 -1
  670. package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
  671. package/lib/esm/TextAnnotationLayout.js.map +0 -1
@@ -0,0 +1,207 @@
1
+ import { SchemaContext, SchemaItem, SchemaItemKey, SchemaItemType, SchemaJsonLocater, SchemaKey, SchemaMatchType } from "@itwin/ecschema-metadata";
2
+ import { expect } from "chai";
3
+ import * as chai from "chai";
4
+ import * as chaiAsPromised from "chai-as-promised";
5
+ import { IModelIncrementalSchemaLocater } from "../../IModelIncrementalSchemaLocater";
6
+ import oldConfiguration from "../assets/IncrementalSchemaLocater/configs/old.config";
7
+ import simpleConfiguration from "../assets/IncrementalSchemaLocater/configs/simple.config";
8
+ import { IncrementalTestHelper } from "./utils/IncrementalTestHelper";
9
+ chai.use(chaiAsPromised);
10
+ function parseSchemaItemKey(itemKey) {
11
+ const [schemaName, itemName] = SchemaItem.parseFullName(itemKey);
12
+ const schemaKey = SchemaKey.parseString(`${schemaName}.0.0.0`);
13
+ return new SchemaItemKey(itemName, schemaKey);
14
+ }
15
+ describe("Incremental Schema Loading", function () {
16
+ describe("Simple iModel Incremental Loading Tests", () => {
17
+ let testSchemaKey;
18
+ let testSchemaConfiguration;
19
+ before("Setup", async function () {
20
+ await IncrementalTestHelper.setup();
21
+ testSchemaConfiguration = simpleConfiguration.schemas[0];
22
+ testSchemaKey = new SchemaKey(testSchemaConfiguration.name, 1, 0, 0);
23
+ await IncrementalTestHelper.importSchema(testSchemaKey);
24
+ });
25
+ after(async () => {
26
+ await IncrementalTestHelper.close();
27
+ });
28
+ const iModelSchemaJsonLocater = new SchemaJsonLocater((schemaName) => {
29
+ return IncrementalTestHelper.iModel.getSchemaProps(schemaName);
30
+ });
31
+ it("Get SchemaInfo (json props - iModel)", async () => {
32
+ const schemaContext = new SchemaContext();
33
+ schemaContext.addLocater(iModelSchemaJsonLocater);
34
+ const schemaInfo = await schemaContext.getSchemaInfo(testSchemaKey, SchemaMatchType.Exact);
35
+ expect(schemaInfo).to.be.not.undefined;
36
+ expect(schemaInfo).to.have.nested.property("schemaKey.name", testSchemaKey.name);
37
+ expect(schemaInfo).to.have.property("references").to.have.a.lengthOf(testSchemaConfiguration.references.length);
38
+ expect(schemaInfo).to.have.property("references").to.satisfy((refs) => {
39
+ for (const ref of refs) {
40
+ expect(testSchemaConfiguration.references, `Could not find referenced schema: ${ref.schemaKey.name}`).to.include(ref.schemaKey.name);
41
+ }
42
+ return true;
43
+ });
44
+ });
45
+ it("Get SchemaInfo (incremental - backend)", async () => {
46
+ const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });
47
+ const schemaContext = new SchemaContext();
48
+ schemaContext.addLocater(locater);
49
+ const schemaInfo = await schemaContext.getSchemaInfo(testSchemaKey, SchemaMatchType.Exact);
50
+ expect(schemaInfo).to.be.not.undefined;
51
+ expect(schemaInfo).to.have.nested.property("schemaKey.name", testSchemaKey.name);
52
+ expect(schemaInfo).to.have.property("references").to.have.a.lengthOf(testSchemaConfiguration.references.length);
53
+ expect(schemaInfo).to.have.property("references").to.satisfy((refs) => {
54
+ for (const ref of refs) {
55
+ expect(testSchemaConfiguration.references, `Could not find referenced schema: ${ref.schemaKey.name}`).to.include(ref.schemaKey.name);
56
+ }
57
+ return true;
58
+ });
59
+ });
60
+ it("Get Schema with item stubs (incremental - backend)", async () => {
61
+ const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });
62
+ const schemaContext = new SchemaContext();
63
+ schemaContext.addLocater(locater);
64
+ const schema = await schemaContext.getSchema(testSchemaKey);
65
+ expect(schema).to.be.not.undefined;
66
+ expect(schema).to.have.property("name", testSchemaKey.name);
67
+ expect(schema).to.have.property("references").to.have.a.lengthOf(testSchemaConfiguration.references.length);
68
+ for (const item of schema.getItems()) {
69
+ expect(item).to.have.property("name");
70
+ expect(item).to.have.property("schemaItemType").to.satisfy((type) => SchemaItemType[type] !== undefined);
71
+ }
72
+ expect(schema).to.be.not.undefined;
73
+ expect(schema).to.have.property("name", testSchemaKey.name);
74
+ const items = [...schema.getItems()];
75
+ expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);
76
+ for (const checkStub of testSchemaConfiguration.checkStubs) {
77
+ const item = await schema.lookupItem(checkStub.item);
78
+ expect(item).to.be.not.undefined;
79
+ const props = item.schemaItemType === SchemaItemType.KindOfQuantity
80
+ ? SchemaItem.prototype.toJSON.call(item)
81
+ : item.toJSON();
82
+ for (const [propertyName, propertyValue] of Object.entries(checkStub.properties)) {
83
+ expect(props).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);
84
+ }
85
+ }
86
+ });
87
+ it("Get Schema with class hierarchy (json props - iModel)", async () => {
88
+ const schemaContext = new SchemaContext();
89
+ schemaContext.addLocater(iModelSchemaJsonLocater);
90
+ const schema = await schemaContext.getSchema(testSchemaKey);
91
+ expect(schema).to.be.not.undefined;
92
+ expect(schema).to.have.property("name", testSchemaKey.name);
93
+ const derivedClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.derivedClass);
94
+ const derivedClass = await schemaContext.getSchemaItem(derivedClassKey);
95
+ expect(derivedClass, `${derivedClassKey.fullName} was not found`).to.be.not.undefined;
96
+ const baseClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.baseClass);
97
+ const baseClass = await schemaContext.getSchemaItem(baseClassKey);
98
+ expect(baseClass, `${baseClassKey.fullName} was not found`).to.be.not.undefined;
99
+ const isDerivedFrom = await derivedClass.is(baseClass);
100
+ expect(isDerivedFrom, `${derivedClass.name} is not derived from ${baseClass.name}`).to.be.true;
101
+ });
102
+ it("Get Schema with class hierarchy (incremental - backend)", async () => {
103
+ const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });
104
+ const schemaContext = new SchemaContext();
105
+ schemaContext.addLocater(locater);
106
+ const schema = await schemaContext.getSchema(testSchemaKey);
107
+ expect(schema).to.be.not.undefined;
108
+ expect(schema).to.have.property("name", testSchemaKey.name);
109
+ const derivedClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.derivedClass);
110
+ const derivedClass = await schemaContext.getSchemaItem(derivedClassKey);
111
+ expect(derivedClass, `${derivedClassKey.fullName} was not found`).to.be.not.undefined;
112
+ const baseClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.baseClass);
113
+ const baseClass = await schemaContext.getSchemaItem(baseClassKey);
114
+ expect(baseClass, `${baseClassKey.fullName} was not found`).to.be.not.undefined;
115
+ const isDerivedFrom = await derivedClass.is(baseClass);
116
+ expect(isDerivedFrom, `${derivedClass.name} is not derived from ${baseClass.name}`).to.be.true;
117
+ });
118
+ it("Get Schema full schema stack (json props - iModel)", async () => {
119
+ const schemaContext = new SchemaContext();
120
+ schemaContext.addLocater(iModelSchemaJsonLocater);
121
+ const schema = await schemaContext.getSchema(testSchemaKey);
122
+ expect(schema).to.be.not.undefined;
123
+ expect(schema).to.have.property("name", testSchemaKey.name);
124
+ expect(schema).to.have.property("references").to.have.a.lengthOf(testSchemaConfiguration.references.length);
125
+ for (const item of schema.getItems()) {
126
+ expect(item).to.have.property("name");
127
+ expect(item).to.have.property("schemaItemType").to.satisfy((type) => SchemaItemType[type] !== undefined);
128
+ }
129
+ });
130
+ it("Get Schema full schema stack (incremental - backend)", async () => {
131
+ const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel);
132
+ const schemaContext = new SchemaContext();
133
+ schemaContext.addLocater(locater);
134
+ const schema = await schemaContext.getSchema(testSchemaKey);
135
+ expect(schema).to.be.not.undefined;
136
+ expect(schema).to.have.property("name", testSchemaKey.name);
137
+ expect(schema).to.have.property("references").to.have.a.lengthOf(testSchemaConfiguration.references.length);
138
+ for (const item of schema.getItems()) {
139
+ expect(item).to.have.property("name");
140
+ expect(item).to.have.property("schemaItemType").to.satisfy((type) => SchemaItemType[type] !== undefined);
141
+ }
142
+ expect(schema).to.be.not.undefined;
143
+ expect(schema).to.have.property("name", testSchemaKey.name);
144
+ // Old meta profile fallback queries will not have a controller initialized.
145
+ if (schema.loadingController)
146
+ await schema.loadingController.wait();
147
+ const items = [...schema.getItems()];
148
+ expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);
149
+ for (const checkItem of testSchemaConfiguration.checkFullLoad) {
150
+ const item = await schema.lookupItem(checkItem.item);
151
+ expect(item).to.be.not.undefined;
152
+ const itemProps = item.toJSON();
153
+ for (const [propertyName, propertyValue] of Object.entries(checkItem.properties)) {
154
+ expect(itemProps).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);
155
+ }
156
+ }
157
+ });
158
+ });
159
+ describe("Old Schema profile in iModel Tests", () => {
160
+ let testSchemaKey;
161
+ let testSchemaConfiguration;
162
+ const resolveSchemaKey = async (schemaName) => {
163
+ const schemaFullName = (await IncrementalTestHelper.getSchemaNames()).find((name) => name.startsWith(schemaName));
164
+ if (schemaFullName === undefined) {
165
+ throw new Error(`Test schema '${schemaName}' not found`);
166
+ }
167
+ return SchemaKey.parseString(schemaFullName);
168
+ };
169
+ before("Setup", async function () {
170
+ await IncrementalTestHelper.setup(oldConfiguration.bimFile);
171
+ testSchemaConfiguration = oldConfiguration.schemas[0];
172
+ testSchemaKey = await resolveSchemaKey(testSchemaConfiguration.name);
173
+ });
174
+ after(async () => {
175
+ await IncrementalTestHelper.close();
176
+ });
177
+ it("Incremental Loading still succeeds.", async () => {
178
+ const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel);
179
+ const schemaContext = new SchemaContext();
180
+ schemaContext.addLocater(locater);
181
+ const schema = await schemaContext.getSchema(testSchemaKey);
182
+ expect(schema).to.be.not.undefined;
183
+ expect(schema).to.have.property("name", testSchemaKey.name);
184
+ expect(schema).to.have.property("references").to.have.a.lengthOf(testSchemaConfiguration.references.length);
185
+ for (const item of schema.getItems()) {
186
+ expect(item).to.have.property("name");
187
+ expect(item).to.have.property("schemaItemType").to.satisfy((type) => SchemaItemType[type] !== undefined);
188
+ }
189
+ expect(schema).to.be.not.undefined;
190
+ expect(schema).to.have.property("name", testSchemaKey.name);
191
+ // Old meta profile fallback queries will not have a controller initialized.
192
+ if (schema.loadingController)
193
+ await schema.loadingController.wait();
194
+ const items = [...schema.getItems()];
195
+ expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);
196
+ for (const checkItem of testSchemaConfiguration.checkFullLoad) {
197
+ const item = await schema.lookupItem(checkItem.item);
198
+ expect(item).to.be.not.undefined;
199
+ const itemProps = item.toJSON();
200
+ for (const [propertyName, propertyValue] of Object.entries(checkItem.properties)) {
201
+ expect(itemProps).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);
202
+ }
203
+ }
204
+ });
205
+ });
206
+ });
207
+ //# sourceMappingURL=IncrementalLoading.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IncrementalLoading.test.js","sourceRoot":"","sources":["../../../../src/test/incrementalSchemaLocater/IncrementalLoading.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { ECClass, Schema, SchemaContext, SchemaInfo, SchemaItem, SchemaItemKey,\r\n SchemaItemType, SchemaJsonLocater, SchemaKey, SchemaMatchType, SchemaProps, WithSchemaKey }\r\n from \"@itwin/ecschema-metadata\";\r\nimport { expect } from \"chai\";\r\nimport * as chai from \"chai\";\r\nimport * as chaiAsPromised from \"chai-as-promised\";\r\nimport { IModelIncrementalSchemaLocater } from \"../../IModelIncrementalSchemaLocater\";\r\n\r\nimport oldConfiguration from \"../assets/IncrementalSchemaLocater/configs/old.config\";\r\nimport simpleConfiguration from \"../assets/IncrementalSchemaLocater/configs/simple.config\";\r\nimport { IncrementalTestHelper } from \"./utils/IncrementalTestHelper\";\r\n\r\nchai.use(chaiAsPromised);\r\n\r\nfunction parseSchemaItemKey(itemKey: string): SchemaItemKey {\r\n const [schemaName, itemName] = SchemaItem.parseFullName(itemKey);\r\n const schemaKey = SchemaKey.parseString(`${schemaName}.0.0.0`);\r\n return new SchemaItemKey(itemName, schemaKey);\r\n}\r\n\r\ndescribe(\"Incremental Schema Loading\", function () {\r\n describe (\"Simple iModel Incremental Loading Tests\", () => {\r\n let testSchemaKey: SchemaKey;\r\n let testSchemaConfiguration: any;\r\n\r\n before(\"Setup\", async function () {\r\n await IncrementalTestHelper.setup();\r\n testSchemaConfiguration = simpleConfiguration.schemas[0];\r\n testSchemaKey = new SchemaKey(testSchemaConfiguration.name, 1, 0, 0);\r\n await IncrementalTestHelper.importSchema(testSchemaKey);\r\n\r\n });\r\n\r\n after(async () => {\r\n await IncrementalTestHelper.close();\r\n });\r\n\r\n const iModelSchemaJsonLocater = new SchemaJsonLocater((schemaName) => {\r\n return IncrementalTestHelper.iModel.getSchemaProps(schemaName) as SchemaProps;\r\n });\r\n\r\n it(\"Get SchemaInfo (json props - iModel)\", async () => {\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(iModelSchemaJsonLocater);\r\n\r\n const schemaInfo = await schemaContext.getSchemaInfo(testSchemaKey, SchemaMatchType.Exact) as SchemaInfo;\r\n expect(schemaInfo).to.be.not.undefined;\r\n expect(schemaInfo).to.have.nested.property(\"schemaKey.name\", testSchemaKey.name);\r\n\r\n expect(schemaInfo).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n expect(schemaInfo).to.have.property(\"references\").to.satisfy((refs: WithSchemaKey[]) => {\r\n for (const ref of refs) {\r\n expect(testSchemaConfiguration.references, `Could not find referenced schema: ${ref.schemaKey.name}`).to.include(ref.schemaKey.name);\r\n }\r\n return true;\r\n });\r\n });\r\n\r\n it(\"Get SchemaInfo (incremental - backend)\", async () => {\r\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\r\n\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(locater);\r\n\r\n const schemaInfo = await schemaContext.getSchemaInfo(testSchemaKey, SchemaMatchType.Exact) as SchemaInfo;\r\n expect(schemaInfo).to.be.not.undefined;\r\n expect(schemaInfo).to.have.nested.property(\"schemaKey.name\", testSchemaKey.name);\r\n\r\n expect(schemaInfo).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n expect(schemaInfo).to.have.property(\"references\").to.satisfy((refs: WithSchemaKey[]) => {\r\n for (const ref of refs) {\r\n expect(testSchemaConfiguration.references, `Could not find referenced schema: ${ref.schemaKey.name}`).to.include(ref.schemaKey.name);\r\n }\r\n return true;\r\n });\r\n });\r\n\r\n it(\"Get Schema with item stubs (incremental - backend)\", async () => {\r\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(locater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n for (const item of schema.getItems()) {\r\n expect(item).to.have.property(\"name\");\r\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\r\n }\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n const items = [...schema.getItems()];\r\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\r\n\r\n for (const checkStub of testSchemaConfiguration.checkStubs) {\r\n const item = await schema.lookupItem(checkStub.item);\r\n expect(item).to.be.not.undefined;\r\n const props = item!.schemaItemType === SchemaItemType.KindOfQuantity\r\n ? SchemaItem.prototype.toJSON.call(item)\r\n : item!.toJSON();\r\n for (const [propertyName, propertyValue] of Object.entries(checkStub.properties)) {\r\n expect(props).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\r\n }\r\n }\r\n });\r\n\r\n it(\"Get Schema with class hierarchy (json props - iModel)\", async () => {\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(iModelSchemaJsonLocater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n const derivedClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.derivedClass);\r\n const derivedClass = await schemaContext.getSchemaItem(derivedClassKey) as ECClass;\r\n expect(derivedClass, `${derivedClassKey.fullName} was not found`).to.be.not.undefined;\r\n\r\n const baseClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.baseClass);\r\n const baseClass = await schemaContext.getSchemaItem(baseClassKey) as ECClass;\r\n expect(baseClass, `${baseClassKey.fullName} was not found`).to.be.not.undefined;\r\n\r\n const isDerivedFrom = await derivedClass.is(baseClass);\r\n expect(isDerivedFrom, `${derivedClass.name} is not derived from ${baseClass.name}`).to.be.true;\r\n });\r\n\r\n it(\"Get Schema with class hierarchy (incremental - backend)\", async () => {\r\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel, { loadPartialSchemaOnly: true });\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(locater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n const derivedClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.derivedClass);\r\n const derivedClass = await schemaContext.getSchemaItem(derivedClassKey) as ECClass;\r\n expect(derivedClass, `${derivedClassKey.fullName} was not found`).to.be.not.undefined;\r\n\r\n const baseClassKey = parseSchemaItemKey(testSchemaConfiguration.checkHierachy.baseClass);\r\n const baseClass = await schemaContext.getSchemaItem(baseClassKey) as ECClass;\r\n expect(baseClass, `${baseClassKey.fullName} was not found`).to.be.not.undefined;\r\n\r\n const isDerivedFrom = await derivedClass.is(baseClass);\r\n expect(isDerivedFrom, `${derivedClass.name} is not derived from ${baseClass.name}`).to.be.true;\r\n });\r\n\r\n it(\"Get Schema full schema stack (json props - iModel)\", async () => {\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(iModelSchemaJsonLocater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n for (const item of schema.getItems()) {\r\n expect(item).to.have.property(\"name\");\r\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\r\n }\r\n });\r\n\r\n it(\"Get Schema full schema stack (incremental - backend)\", async () => {\r\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel);\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(locater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n for (const item of schema.getItems()) {\r\n expect(item).to.have.property(\"name\");\r\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\r\n }\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n // Old meta profile fallback queries will not have a controller initialized.\r\n if (schema.loadingController)\r\n await schema.loadingController.wait();\r\n\r\n const items = [...schema.getItems()];\r\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\r\n\r\n for (const checkItem of testSchemaConfiguration.checkFullLoad) {\r\n const item = await schema.lookupItem(checkItem.item);\r\n expect(item).to.be.not.undefined;\r\n\r\n const itemProps = item!.toJSON();\r\n for (const [propertyName, propertyValue] of Object.entries(checkItem.properties)) {\r\n expect(itemProps).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\r\n }\r\n }\r\n });\r\n });\r\n\r\n describe(\"Old Schema profile in iModel Tests\", () => {\r\n let testSchemaKey: SchemaKey;\r\n let testSchemaConfiguration: any;\r\n\r\n const resolveSchemaKey = async (schemaName: string): Promise<SchemaKey> => {\r\n const schemaFullName = (await IncrementalTestHelper.getSchemaNames()).find((name) => name.startsWith(schemaName));\r\n if (schemaFullName === undefined) {\r\n throw new Error(`Test schema '${schemaName}' not found`);\r\n }\r\n return SchemaKey.parseString(schemaFullName);\r\n }\r\n\r\n before(\"Setup\", async function () {\r\n await IncrementalTestHelper.setup(oldConfiguration.bimFile);\r\n testSchemaConfiguration = oldConfiguration.schemas[0];\r\n testSchemaKey = await resolveSchemaKey(testSchemaConfiguration.name);\r\n });\r\n\r\n after(async () => {\r\n await IncrementalTestHelper.close();\r\n });\r\n\r\n it(\"Incremental Loading still succeeds.\", async () => {\r\n const locater = new IModelIncrementalSchemaLocater(IncrementalTestHelper.iModel);\r\n const schemaContext = new SchemaContext();\r\n schemaContext.addLocater(locater);\r\n\r\n const schema = await schemaContext.getSchema(testSchemaKey) as Schema;\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n expect(schema).to.have.property(\"references\").to.have.a.lengthOf(testSchemaConfiguration.references.length);\r\n for (const item of schema.getItems()) {\r\n expect(item).to.have.property(\"name\");\r\n expect(item).to.have.property(\"schemaItemType\").to.satisfy((type: string) => SchemaItemType[type as keyof typeof SchemaItemType] !== undefined);\r\n }\r\n\r\n expect(schema).to.be.not.undefined;\r\n expect(schema).to.have.property(\"name\", testSchemaKey.name);\r\n\r\n // Old meta profile fallback queries will not have a controller initialized.\r\n if (schema.loadingController)\r\n await schema.loadingController.wait();\r\n\r\n const items = [...schema.getItems()];\r\n expect(items).to.have.a.lengthOf(testSchemaConfiguration.itemCount);\r\n\r\n for (const checkItem of testSchemaConfiguration.checkFullLoad) {\r\n const item = await schema.lookupItem(checkItem.item);\r\n expect(item).to.be.not.undefined;\r\n\r\n const itemProps = item!.toJSON();\r\n for (const [propertyName, propertyValue] of Object.entries(checkItem.properties)) {\r\n expect(itemProps).to.have.property(propertyName).deep.equalInAnyOrder(propertyValue);\r\n }\r\n }\r\n });\r\n });\r\n});\r\n"]}
@@ -0,0 +1,11 @@
1
+ import { ISchemaLocater, Schema, SchemaContext, SchemaKey, SchemaMatchType } from "@itwin/ecschema-metadata";
2
+ import { SchemaInfo } from "@itwin/ecschema-metadata/lib/cjs/Interfaces";
3
+ import { IModelDb } from "../../../IModelDb";
4
+ export declare class IModelSchemaLocater implements ISchemaLocater {
5
+ private _iModel;
6
+ constructor(iModel: IModelDb);
7
+ getSchema<T extends Schema>(schemaKey: SchemaKey, matchType: SchemaMatchType, context: SchemaContext): Promise<T | undefined>;
8
+ getSchemaInfo(schemaKey: SchemaKey, _matchType: SchemaMatchType, context: SchemaContext): Promise<SchemaInfo | undefined>;
9
+ getSchemaSync(schemaKey: SchemaKey, _matchType: SchemaMatchType, context: SchemaContext): Schema | undefined;
10
+ }
11
+ //# sourceMappingURL=IModelSchemaLocater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelSchemaLocater.d.ts","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IModelSchemaLocater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAC7G,OAAO,EAAE,UAAU,EAAE,MAAM,6CAA6C,CAAC;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,OAAO,CAAW;gBAEP,MAAM,EAAE,QAAQ;IAItB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAO7H,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;IAW/H,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,GAAG,SAAS;CAWpH"}
@@ -0,0 +1,36 @@
1
+ import { Schema } from "@itwin/ecschema-metadata";
2
+ export class IModelSchemaLocater {
3
+ _iModel;
4
+ constructor(iModel) {
5
+ this._iModel = iModel;
6
+ }
7
+ async getSchema(schemaKey, matchType, context) {
8
+ await this.getSchemaInfo(schemaKey, matchType, context);
9
+ const schema = await context.getCachedSchema(schemaKey, matchType);
10
+ return schema;
11
+ }
12
+ async getSchemaInfo(schemaKey, _matchType, context) {
13
+ try {
14
+ const schemaJson = this._iModel.getSchemaProps(schemaKey.name);
15
+ return await Schema.startLoadingFromJson(schemaJson, context);
16
+ }
17
+ catch (e) {
18
+ if (e.errorNumber === 65574)
19
+ return undefined;
20
+ throw e;
21
+ }
22
+ }
23
+ getSchemaSync(schemaKey, _matchType, context) {
24
+ try {
25
+ const schemaJson = this._iModel.getSchemaProps(schemaKey.name);
26
+ const schema = Schema.fromJsonSync(schemaJson, context);
27
+ return schema;
28
+ }
29
+ catch (e) {
30
+ if (e.errorNumber === 65574)
31
+ return undefined;
32
+ throw e;
33
+ }
34
+ }
35
+ }
36
+ //# sourceMappingURL=IModelSchemaLocater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelSchemaLocater.js","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IModelSchemaLocater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkB,MAAM,EAA6C,MAAM,0BAA0B,CAAC;AAI7G,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAW;IAE1B,YAAmB,MAAgB;QACjC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,SAAS,CAAmB,SAAoB,EAAE,SAA0B,EAAE,OAAsB;QAC/G,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;QAExD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,OAAO,MAAW,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,aAAa,CAAC,SAAoB,EAAE,UAA2B,EAAE,OAAsB;QAClG,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/D,OAAO,MAAM,MAAM,CAAC,oBAAoB,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QAChE,CAAC;QAAC,OAAM,CAAM,EAAC,CAAC;YACd,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK;gBACzB,OAAO,SAAS,CAAC;YACnB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;IAEM,aAAa,CAAC,SAAoB,EAAE,UAA2B,EAAE,OAAsB;QAC5F,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC/D,MAAM,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;YACxD,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAM,CAAM,EAAC,CAAC;YACd,IAAI,CAAC,CAAC,WAAW,KAAK,KAAK;gBACzB,OAAO,SAAS,CAAC;YACnB,MAAM,CAAC,CAAC;QACV,CAAC;IACH,CAAC;CACF","sourcesContent":["import { ISchemaLocater, Schema, SchemaContext, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { SchemaInfo } from \"@itwin/ecschema-metadata/lib/cjs/Interfaces\";\r\nimport { IModelDb } from \"../../../IModelDb\";\r\n\r\nexport class IModelSchemaLocater implements ISchemaLocater {\r\n private _iModel: IModelDb;\r\n\r\n public constructor(iModel: IModelDb) {\r\n this._iModel = iModel;\r\n }\r\n\r\n public async getSchema<T extends Schema>(schemaKey: SchemaKey, matchType: SchemaMatchType, context: SchemaContext): Promise<T | undefined> {\r\n await this.getSchemaInfo(schemaKey, matchType, context);\r\n\r\n const schema = await context.getCachedSchema(schemaKey, matchType);\r\n return schema as T;\r\n }\r\n\r\n public async getSchemaInfo(schemaKey: SchemaKey, _matchType: SchemaMatchType, context: SchemaContext): Promise<SchemaInfo | undefined> {\r\n try {\r\n const schemaJson = this._iModel.getSchemaProps(schemaKey.name);\r\n return await Schema.startLoadingFromJson(schemaJson, context);\r\n } catch(e: any){\r\n if (e.errorNumber === 65574)\r\n return undefined;\r\n throw e;\r\n }\r\n }\r\n\r\n public getSchemaSync(schemaKey: SchemaKey, _matchType: SchemaMatchType, context: SchemaContext): Schema | undefined {\r\n try {\r\n const schemaJson = this._iModel.getSchemaProps(schemaKey.name);\r\n const schema = Schema.fromJsonSync(schemaJson, context);\r\n return schema;\r\n } catch(e: any){\r\n if (e.errorNumber === 65574)\r\n return undefined;\r\n throw e;\r\n }\r\n }\r\n}"]}
@@ -0,0 +1,17 @@
1
+ import { Schema, SchemaContext, SchemaKey } from "@itwin/ecschema-metadata";
2
+ import { IModelDb } from "../../../IModelDb";
3
+ export declare class IncrementalTestHelper {
4
+ private static _iModel;
5
+ static context: SchemaContext;
6
+ static testBimFile: string;
7
+ static get iModel(): IModelDb;
8
+ static get isLoaded(): boolean;
9
+ static setup(bimName?: string): Promise<void>;
10
+ static getSchemaNames(): Promise<string[]>;
11
+ private static initializeTestIModel;
12
+ static importSchema(schemaKey: SchemaKey): Promise<void>;
13
+ static close(): Promise<void>;
14
+ static getOrderedSchemaStrings(insertSchema: Schema): Promise<string[]>;
15
+ static getSchemaString(schema: Schema): Promise<string>;
16
+ }
17
+ //# sourceMappingURL=IncrementalTestHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IncrementalTestHelper.d.ts","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IncrementalTestHelper.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,aAAa,EAAmB,SAAS,EAAmB,MAAM,0BAA0B,CAAC;AAI9G,OAAO,EAAe,QAAQ,EAAgB,MAAM,mBAAmB,CAAC;AAKxE,qBAAa,qBAAqB;IAChC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAuB;IAC7C,OAAc,OAAO,EAAE,aAAa,CAAC;IACrC,OAAc,WAAW,EAAE,MAAM,CAAC;IAClC,WAAkB,MAAM,IAAI,QAAQ,CAInC;IAED,WAAkB,QAAQ,IAAI,OAAO,CAEpC;WAEmB,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;WA0BtC,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAevD,OAAO,CAAC,MAAM,CAAC,oBAAoB;WAuBf,YAAY,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;WAwBjD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;WAOtB,uBAAuB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;WAMhE,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAUrE"}
@@ -0,0 +1,116 @@
1
+ import { OpenMode } from "@itwin/core-bentley";
2
+ import { ProfileOptions } from "@itwin/core-common";
3
+ import { SchemaXmlFileLocater } from "@itwin/ecschema-locaters";
4
+ import { SchemaContext, SchemaGraphUtil, SchemaMatchType } from "@itwin/ecschema-metadata";
5
+ import { DOMParser, XMLSerializer } from "@xmldom/xmldom";
6
+ import * as path from "path";
7
+ import { IModelSchemaLocater } from "./IModelSchemaLocater";
8
+ import { BriefcaseDb, IModelDb, StandaloneDb } from "../../../IModelDb";
9
+ import { IModelHost } from "../../../IModelHost";
10
+ import { IModelJsFs } from "../../../IModelJsFs";
11
+ import { KnownTestLocations } from "../../KnownTestLocations";
12
+ export class IncrementalTestHelper {
13
+ static _iModel;
14
+ static context;
15
+ static testBimFile;
16
+ static get iModel() {
17
+ if (this._iModel === undefined)
18
+ throw new Error("iModel not loaded");
19
+ return this._iModel;
20
+ }
21
+ static get isLoaded() {
22
+ return this._iModel !== undefined;
23
+ }
24
+ static async setup(bimName) {
25
+ if (!IModelHost.isValid)
26
+ await IModelHost.startup();
27
+ if (this._iModel !== undefined)
28
+ throw new Error("iModel already loaded");
29
+ if (bimName) {
30
+ const pathToBriefCase = path.join(KnownTestLocations.assetsDir, bimName);
31
+ this._iModel = await BriefcaseDb.open({
32
+ fileName: pathToBriefCase,
33
+ readonly: true,
34
+ key: "test-iModel",
35
+ });
36
+ }
37
+ else {
38
+ this.testBimFile = this.initializeTestIModel();
39
+ this._iModel = StandaloneDb.openFile(this.testBimFile, OpenMode.ReadWrite);
40
+ }
41
+ this.context = new SchemaContext();
42
+ this.context.addLocater(new IModelSchemaLocater(this._iModel));
43
+ const xmlLocater = new SchemaXmlFileLocater();
44
+ xmlLocater.addSchemaSearchPath(path.join(KnownTestLocations.assetsDir, "IncrementalSchemaLocater"));
45
+ this.context.addLocater(xmlLocater);
46
+ }
47
+ static async getSchemaNames() {
48
+ const result = new Array();
49
+ const sqlQuery = "SELECT Name, VersionMajor, VersionWrite, VersionMinor FROM meta.ECSchemaDef ORDER BY Name";
50
+ const reader = this.iModel.createQueryReader(sqlQuery);
51
+ while (await reader.step()) {
52
+ const name = reader.current[0];
53
+ const versionMajor = reader.current[1];
54
+ const versionWrite = reader.current[2];
55
+ const versionMinor = reader.current[3];
56
+ result.push(`${name}.${versionMajor}.${versionWrite}.${versionMinor}`);
57
+ }
58
+ return result;
59
+ }
60
+ static initializeTestIModel() {
61
+ const testBim = path.join(KnownTestLocations.assetsDir, "IncrementalSchemaLocater", "test-bim.bim");
62
+ if (IModelJsFs.existsSync(testBim)) {
63
+ ~IModelJsFs.removeSync(testBim);
64
+ }
65
+ const localBim = StandaloneDb.createEmpty(testBim, {
66
+ allowEdit: "true",
67
+ rootSubject: {
68
+ name: "IncrementalSchemaTestingDb"
69
+ },
70
+ });
71
+ localBim.close();
72
+ const nativeDb = IModelDb.openDgnDb({ path: testBim }, OpenMode.ReadWrite, { profile: ProfileOptions.Upgrade });
73
+ nativeDb.saveChanges();
74
+ nativeDb.closeFile();
75
+ return testBim;
76
+ }
77
+ static async importSchema(schemaKey) {
78
+ if (!this.isLoaded) {
79
+ throw new Error("iModel has not been loaded");
80
+ }
81
+ if (!this._iModel)
82
+ throw new Error("iModel is undefined");
83
+ if (undefined !== this._iModel.querySchemaVersion(schemaKey.name))
84
+ return;
85
+ const testSchema = await this.context.getSchema(schemaKey, SchemaMatchType.Exact);
86
+ if (undefined === testSchema)
87
+ throw new Error(`The schema '${schemaKey.name}' could not be found.`);
88
+ const schemaXml = await this.getOrderedSchemaStrings(testSchema);
89
+ await this._iModel.importSchemaStrings(schemaXml);
90
+ this._iModel.saveChanges();
91
+ if (this._iModel.isBriefcaseDb() && !this._iModel.isReadonly) {
92
+ await this.iModel.pushChanges({ description: "import test schema" });
93
+ }
94
+ }
95
+ static async close() {
96
+ if (this._iModel !== undefined) {
97
+ this._iModel.close();
98
+ this._iModel = undefined;
99
+ }
100
+ }
101
+ static async getOrderedSchemaStrings(insertSchema) {
102
+ const schemas = SchemaGraphUtil.buildDependencyOrderedSchemaList(insertSchema);
103
+ const schemaStrings = await Promise.all(schemas.map(async (schema) => IncrementalTestHelper.getSchemaString(schema)));
104
+ return schemaStrings;
105
+ }
106
+ static async getSchemaString(schema) {
107
+ // Serialize schema to the document object
108
+ let doc = new DOMParser().parseFromString(`<?xml version="1.0" encoding="UTF-8"?>`, "application/xml");
109
+ doc = await schema.toXml(doc);
110
+ const serializer = new XMLSerializer();
111
+ const xml = serializer.serializeToString(doc);
112
+ return xml;
113
+ }
114
+ }
115
+ ;
116
+ //# sourceMappingURL=IncrementalTestHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IncrementalTestHelper.js","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/IncrementalTestHelper.ts"],"names":[],"mappings":"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","sourcesContent":["\r\nimport { OpenMode } from \"@itwin/core-bentley\";\r\nimport { ProfileOptions } from \"@itwin/core-common\";\r\nimport { SchemaXmlFileLocater } from \"@itwin/ecschema-locaters\";\r\nimport { Schema, SchemaContext, SchemaGraphUtil, SchemaKey, SchemaMatchType } from \"@itwin/ecschema-metadata\";\r\nimport { DOMParser, XMLSerializer } from \"@xmldom/xmldom\";\r\nimport * as path from \"path\";\r\nimport { IModelSchemaLocater } from \"./IModelSchemaLocater\";\r\nimport { BriefcaseDb, IModelDb, StandaloneDb } from \"../../../IModelDb\";\r\nimport { IModelHost } from \"../../../IModelHost\";\r\nimport { IModelJsFs } from \"../../../IModelJsFs\";\r\nimport { KnownTestLocations } from \"../../KnownTestLocations\";\r\n\r\nexport class IncrementalTestHelper {\r\n private static _iModel: IModelDb | undefined;\r\n public static context: SchemaContext;\r\n public static testBimFile: string;\r\n public static get iModel(): IModelDb {\r\n if (this._iModel === undefined)\r\n throw new Error(\"iModel not loaded\");\r\n return this._iModel;\r\n }\r\n\r\n public static get isLoaded(): boolean {\r\n return this._iModel !== undefined;\r\n }\r\n\r\n public static async setup(bimName?: string): Promise<void> {\r\n if (!IModelHost.isValid)\r\n await IModelHost.startup();\r\n\r\n if (this._iModel !== undefined)\r\n throw new Error(\"iModel already loaded\");\r\n\r\n if (bimName) {\r\n const pathToBriefCase = path.join(KnownTestLocations.assetsDir, bimName);\r\n this._iModel = await BriefcaseDb.open({\r\n fileName: pathToBriefCase,\r\n readonly: true,\r\n key: \"test-iModel\",\r\n });\r\n } else {\r\n this.testBimFile = this.initializeTestIModel();\r\n this._iModel = StandaloneDb.openFile(this.testBimFile, OpenMode.ReadWrite);\r\n }\r\n\r\n this.context = new SchemaContext();\r\n this.context.addLocater(new IModelSchemaLocater(this._iModel));\r\n const xmlLocater = new SchemaXmlFileLocater();\r\n xmlLocater.addSchemaSearchPath(path.join(KnownTestLocations.assetsDir, \"IncrementalSchemaLocater\"));\r\n this.context.addLocater(xmlLocater);\r\n }\r\n\r\n public static async getSchemaNames(): Promise<string[]> {\r\n const result = new Array<string>();\r\n const sqlQuery = \"SELECT Name, VersionMajor, VersionWrite, VersionMinor FROM meta.ECSchemaDef ORDER BY Name\";\r\n const reader = this.iModel.createQueryReader(sqlQuery);\r\n while (await reader.step()) {\r\n const name = reader.current[0];\r\n const versionMajor = reader.current[1];\r\n const versionWrite = reader.current[2];\r\n const versionMinor = reader.current[3];\r\n\r\n result.push(`${name}.${versionMajor}.${versionWrite}.${versionMinor}`);\r\n }\r\n return result;\r\n }\r\n\r\n private static initializeTestIModel() {\r\n const testBim = path.join(KnownTestLocations.assetsDir, \"IncrementalSchemaLocater\", \"test-bim.bim\");\r\n\r\n if (IModelJsFs.existsSync(testBim)) {~\r\n IModelJsFs.removeSync(testBim);\r\n }\r\n\r\n const localBim = StandaloneDb.createEmpty(testBim, {\r\n allowEdit: \"true\",\r\n rootSubject: {\r\n name: \"IncrementalSchemaTestingDb\"\r\n },\r\n });\r\n\r\n localBim.close();\r\n\r\n const nativeDb = IModelDb.openDgnDb({ path: testBim }, OpenMode.ReadWrite, { profile: ProfileOptions.Upgrade });\r\n nativeDb.saveChanges();\r\n nativeDb.closeFile();\r\n\r\n return testBim;\r\n }\r\n\r\n public static async importSchema(schemaKey: SchemaKey): Promise<void> {\r\n if (!this.isLoaded) {\r\n throw new Error(\"iModel has not been loaded\")\r\n }\r\n\r\n if (!this._iModel)\r\n throw new Error(\"iModel is undefined\");\r\n\r\n if (undefined !== this._iModel.querySchemaVersion(schemaKey.name))\r\n return;\r\n\r\n const testSchema = await this.context.getSchema(schemaKey, SchemaMatchType.Exact);\r\n if (undefined === testSchema)\r\n throw new Error(`The schema '${schemaKey.name}' could not be found.`);\r\n const schemaXml = await this.getOrderedSchemaStrings(testSchema);\r\n\r\n await this._iModel.importSchemaStrings(schemaXml);\r\n this._iModel.saveChanges();\r\n\r\n if (this._iModel.isBriefcaseDb() && !this._iModel.isReadonly) {\r\n await (this.iModel as BriefcaseDb).pushChanges({ description: \"import test schema\" });\r\n }\r\n }\r\n\r\n public static async close(): Promise<void> {\r\n if (this._iModel !== undefined) {\r\n this._iModel.close();\r\n this._iModel = undefined;\r\n }\r\n }\r\n\r\n public static async getOrderedSchemaStrings(insertSchema: Schema): Promise<string[]> {\r\n const schemas = SchemaGraphUtil.buildDependencyOrderedSchemaList(insertSchema);\r\n const schemaStrings = await Promise.all(schemas.map(async (schema) => IncrementalTestHelper.getSchemaString(schema)));\r\n return schemaStrings;\r\n }\r\n\r\n public static async getSchemaString(schema: Schema): Promise<string> {\r\n // Serialize schema to the document object\r\n let doc = new DOMParser().parseFromString(`<?xml version=\"1.0\" encoding=\"UTF-8\"?>`, \"application/xml\");\r\n doc = await schema.toXml(doc);\r\n\r\n const serializer = new XMLSerializer();\r\n const xml = serializer.serializeToString(doc);\r\n\r\n return xml;\r\n }\r\n};"]}
@@ -0,0 +1,9 @@
1
+ import { ECSqlQueryOptions, ECSqlSchemaLocater, ECSqlSchemaLocaterOptions, SchemaKey, SchemaProps } from "@itwin/ecschema-metadata";
2
+ import { IModelDb } from "../../../IModelDb";
3
+ export declare class TestSqlSchemaLocater extends ECSqlSchemaLocater {
4
+ private _iModel;
5
+ constructor(iModel: IModelDb, queryOptions?: ECSqlSchemaLocaterOptions);
6
+ protected executeQuery<TRow>(query: string, options?: ECSqlQueryOptions): Promise<ReadonlyArray<TRow>>;
7
+ protected getSchemaProps(_schemaKey: SchemaKey): Promise<SchemaProps | undefined>;
8
+ }
9
+ //# sourceMappingURL=TestSqlSchemaLocater.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestSqlSchemaLocater.d.ts","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAEpI,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,qBAAa,oBAAqB,SAAQ,kBAAkB;IAC1D,OAAO,CAAC,OAAO,CAAW;gBAEP,MAAM,EAAE,QAAQ,EAAE,YAAY,CAAC,EAAE,yBAAyB;cAK7D,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;cAQ5F,cAAc,CAAC,UAAU,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,SAAS,CAAC;CAGxF"}
@@ -0,0 +1,20 @@
1
+ import { ECSqlSchemaLocater } from "@itwin/ecschema-metadata";
2
+ import { QueryBinder, QueryRowFormat } from "@itwin/core-common";
3
+ export class TestSqlSchemaLocater extends ECSqlSchemaLocater {
4
+ _iModel;
5
+ constructor(iModel, queryOptions) {
6
+ super(queryOptions);
7
+ this._iModel = iModel;
8
+ }
9
+ async executeQuery(query, options) {
10
+ const queryParameters = options && options.parameters ? QueryBinder.from(options.parameters) : undefined;
11
+ return this._iModel.createQueryReader(query, queryParameters, {
12
+ rowFormat: QueryRowFormat.UseECSqlPropertyNames
13
+ })
14
+ .toArray();
15
+ }
16
+ async getSchemaProps(_schemaKey) {
17
+ throw new Error("Method not implemented.");
18
+ }
19
+ }
20
+ //# sourceMappingURL=TestSqlSchemaLocater.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TestSqlSchemaLocater.js","sourceRoot":"","sources":["../../../../../src/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,kBAAkB,EAAqD,MAAM,0BAA0B,CAAC;AACpI,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGjE,MAAM,OAAO,oBAAqB,SAAQ,kBAAkB;IAClD,OAAO,CAAW;IAE1B,YAAmB,MAAgB,EAAE,YAAwC;QAC3E,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,YAAY,CAAO,KAAa,EAAE,OAA2B;QAC3E,MAAM,eAAe,GAAG,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzG,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,EAAE;YAC5D,SAAS,EAAE,cAAc,CAAC,qBAAqB;SAChD,CAAC;aACC,OAAO,EAAE,CAAC;IACf,CAAC;IACS,KAAK,CAAC,cAAc,CAAC,UAAqB;QAClD,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import { ECSqlQueryOptions, ECSqlSchemaLocater, ECSqlSchemaLocaterOptions, SchemaKey, SchemaProps } from \"@itwin/ecschema-metadata\";\r\nimport { QueryBinder, QueryRowFormat } from \"@itwin/core-common\";\r\nimport { IModelDb } from \"../../../IModelDb\";\r\n\r\nexport class TestSqlSchemaLocater extends ECSqlSchemaLocater {\r\n private _iModel: IModelDb;\r\n\r\n public constructor(iModel: IModelDb, queryOptions?: ECSqlSchemaLocaterOptions) {\r\n super(queryOptions);\r\n this._iModel = iModel;\r\n }\r\n\r\n protected async executeQuery<TRow>(query: string, options?: ECSqlQueryOptions): Promise<ReadonlyArray<TRow>> {\r\n const queryParameters = options && options.parameters ? QueryBinder.from(options.parameters) : undefined;\r\n\r\n return this._iModel.createQueryReader(query, queryParameters, {\r\n rowFormat: QueryRowFormat.UseECSqlPropertyNames\r\n })\r\n .toArray();\r\n }\r\n protected async getSchemaProps(_schemaKey: SchemaKey): Promise<SchemaProps | undefined> {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nexport * from \"./AdvancedEqual\";\nexport * from \"./IModelTestUtils\";\nexport * from \"./KnownTestLocations\";\nexport * from \"./RevisionUtility\";\nexport * from \"./TestChangeSetUtility\";\nexport * from \"./imageData\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/test/index.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,aAAa,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nexport * from \"./AdvancedEqual\";\r\nexport * from \"./IModelTestUtils\";\r\nexport * from \"./KnownTestLocations\";\r\nexport * from \"./RevisionUtility\";\r\nexport * from \"./TestChangeSetUtility\";\r\nexport * from \"./imageData\";\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"DevTools.test.js","sourceRoot":"","sources":["../../../../src/test/misc/DevTools.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 { assert } from \"chai\";\nimport * as os from \"os\";\nimport { Logger, LogLevel } from \"@itwin/core-bentley\";\nimport { DevTools, DevToolsStatsFormatter } from \"../../core-backend\";\n\ninterface StringIndexedObject<T> {\n [index: string]: T;\n}\n\ndescribe(\"DevTools\", () => {\n // we like to skip this test fixture for ios\n it(\"can fetch stats from backend\", () => {\n const stats = DevTools.stats();\n assert.isDefined(stats);\n assert.isDefined(stats.os);\n assert.isDefined(stats.os.totalmem);\n assert.isDefined(stats.os.freemem);\n assert.isDefined(stats.os.uptime);\n assert.isDefined(stats.os.cpus);\n assert.isDefined(stats.os.cpuUsage);\n assert.isTrue(stats.os.cpuUsage < 100);\n assert.isDefined(stats.process);\n assert.isDefined(stats.process.pid);\n assert.isDefined(stats.process.ppid);\n assert.isDefined(stats.process.memoryUsage);\n assert.isDefined(stats.process.uptime);\n\n assert.isTrue(Object.keys(stats.os.cpus).length > 0);\n for (const cpu of Object.values<os.CpuInfo>(stats.os.cpus)) {\n assert.isDefined(cpu.times);\n const cpuTimes = cpu.times as StringIndexedObject<number>;\n assert.isTrue(Object.keys(cpuTimes).length > 0);\n }\n });\n\n it(\"can serialize stats from backend appropriately\", () => {\n const stats = DevTools.stats();\n const formattedStats = DevToolsStatsFormatter.toFormattedJson(stats);\n\n assert.isTrue((formattedStats.os.totalmem as string).endsWith(\"MB\"));\n assert.isTrue((formattedStats.os.freemem as string).endsWith(\"MB\"));\n assert.isTrue((formattedStats.os.uptime as string).endsWith(\"secs\"));\n assert.isTrue((formattedStats.os.cpus[0].speed as string).endsWith(\"MHz\"));\n assert.isTrue((formattedStats.os.cpus[0].times.user as string).endsWith(\"%\"));\n assert.isTrue((formattedStats.os.cpus[0].times.nice as string).endsWith(\"%\"));\n assert.isTrue((formattedStats.os.cpus[0].times.sys as string).endsWith(\"%\"));\n assert.isTrue((formattedStats.os.cpus[0].times.idle as string).endsWith(\"%\"));\n assert.isTrue((formattedStats.os.cpus[0].times.irq as string).endsWith(\"%\"));\n assert.isTrue((formattedStats.os.cpuUsage! as string).endsWith(\"%\"));\n\n assert.isTrue((formattedStats.process.uptime as string).endsWith(\"secs\"));\n assert.isTrue((formattedStats.process.memoryUsage.rss as string).endsWith(\"MB\"));\n assert.isTrue((formattedStats.process.memoryUsage.heapTotal as string).endsWith(\"MB\"));\n assert.isTrue((formattedStats.process.memoryUsage.heapUsed as string).endsWith(\"MB\"));\n assert.isTrue((formattedStats.process.memoryUsage.external as string).endsWith(\"MB\"));\n });\n\n it(\"can ping backend\", () => {\n const ret = DevTools.ping();\n assert.isTrue(ret);\n });\n\n it(\"can set log level\", () => {\n const loggerCategory = \"test-category\";\n\n const expectedOldLevel = LogLevel.Info;\n Logger.setLevel(loggerCategory, expectedOldLevel);\n\n const expectedNewLevel = LogLevel.Warning;\n const actualOldLevel = DevTools.setLogLevel(loggerCategory, expectedNewLevel);\n assert.equal(actualOldLevel, expectedOldLevel);\n\n const actualNewLevel = Logger.getLevel(loggerCategory);\n assert.equal(actualNewLevel, expectedNewLevel);\n });\n\n it(\"Get the backend versions\", async () => {\n const versions = await DevTools.versions();\n assert.isDefined(versions.application);\n assert.isDefined(versions.iTwinJs);\n assert.isDefined(versions.availableRpcs);\n });\n},\n);\n"]}
1
+ {"version":3,"file":"DevTools.test.js","sourceRoot":"","sources":["../../../../src/test/misc/DevTools.test.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { assert } from \"chai\";\r\nimport * as os from \"os\";\r\nimport { Logger, LogLevel } from \"@itwin/core-bentley\";\r\nimport { DevTools, DevToolsStatsFormatter } from \"../../core-backend\";\r\n\r\ninterface StringIndexedObject<T> {\r\n [index: string]: T;\r\n}\r\n\r\ndescribe(\"DevTools\", () => {\r\n // we like to skip this test fixture for ios\r\n it(\"can fetch stats from backend\", () => {\r\n const stats = DevTools.stats();\r\n assert.isDefined(stats);\r\n assert.isDefined(stats.os);\r\n assert.isDefined(stats.os.totalmem);\r\n assert.isDefined(stats.os.freemem);\r\n assert.isDefined(stats.os.uptime);\r\n assert.isDefined(stats.os.cpus);\r\n assert.isDefined(stats.os.cpuUsage);\r\n assert.isTrue(stats.os.cpuUsage < 100);\r\n assert.isDefined(stats.process);\r\n assert.isDefined(stats.process.pid);\r\n assert.isDefined(stats.process.ppid);\r\n assert.isDefined(stats.process.memoryUsage);\r\n assert.isDefined(stats.process.uptime);\r\n\r\n assert.isTrue(Object.keys(stats.os.cpus).length > 0);\r\n for (const cpu of Object.values<os.CpuInfo>(stats.os.cpus)) {\r\n assert.isDefined(cpu.times);\r\n const cpuTimes = cpu.times as StringIndexedObject<number>;\r\n assert.isTrue(Object.keys(cpuTimes).length > 0);\r\n }\r\n });\r\n\r\n it(\"can serialize stats from backend appropriately\", () => {\r\n const stats = DevTools.stats();\r\n const formattedStats = DevToolsStatsFormatter.toFormattedJson(stats);\r\n\r\n assert.isTrue((formattedStats.os.totalmem as string).endsWith(\"MB\"));\r\n assert.isTrue((formattedStats.os.freemem as string).endsWith(\"MB\"));\r\n assert.isTrue((formattedStats.os.uptime as string).endsWith(\"secs\"));\r\n assert.isTrue((formattedStats.os.cpus[0].speed as string).endsWith(\"MHz\"));\r\n assert.isTrue((formattedStats.os.cpus[0].times.user as string).endsWith(\"%\"));\r\n assert.isTrue((formattedStats.os.cpus[0].times.nice as string).endsWith(\"%\"));\r\n assert.isTrue((formattedStats.os.cpus[0].times.sys as string).endsWith(\"%\"));\r\n assert.isTrue((formattedStats.os.cpus[0].times.idle as string).endsWith(\"%\"));\r\n assert.isTrue((formattedStats.os.cpus[0].times.irq as string).endsWith(\"%\"));\r\n assert.isTrue((formattedStats.os.cpuUsage! as string).endsWith(\"%\"));\r\n\r\n assert.isTrue((formattedStats.process.uptime as string).endsWith(\"secs\"));\r\n assert.isTrue((formattedStats.process.memoryUsage.rss as string).endsWith(\"MB\"));\r\n assert.isTrue((formattedStats.process.memoryUsage.heapTotal as string).endsWith(\"MB\"));\r\n assert.isTrue((formattedStats.process.memoryUsage.heapUsed as string).endsWith(\"MB\"));\r\n assert.isTrue((formattedStats.process.memoryUsage.external as string).endsWith(\"MB\"));\r\n });\r\n\r\n it(\"can ping backend\", () => {\r\n const ret = DevTools.ping();\r\n assert.isTrue(ret);\r\n });\r\n\r\n it(\"can set log level\", () => {\r\n const loggerCategory = \"test-category\";\r\n\r\n const expectedOldLevel = LogLevel.Info;\r\n Logger.setLevel(loggerCategory, expectedOldLevel);\r\n\r\n const expectedNewLevel = LogLevel.Warning;\r\n const actualOldLevel = DevTools.setLogLevel(loggerCategory, expectedNewLevel);\r\n assert.equal(actualOldLevel, expectedOldLevel);\r\n\r\n const actualNewLevel = Logger.getLevel(loggerCategory);\r\n assert.equal(actualNewLevel, expectedNewLevel);\r\n });\r\n\r\n it(\"Get the backend versions\", async () => {\r\n const versions = await DevTools.versions();\r\n assert.isDefined(versions.application);\r\n assert.isDefined(versions.iTwinJs);\r\n assert.isDefined(versions.availableRpcs);\r\n });\r\n},\r\n);\r\n"]}