@itwin/core-backend 5.5.0-dev.2 → 5.5.0-dev.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/CHANGELOG.md +19 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.js.map +1 -1
  9. package/lib/cjs/ChangeSummaryManager.js +2 -2
  10. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  11. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  12. package/lib/cjs/ChangesetECAdaptor.js +248 -248
  13. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  14. package/lib/cjs/ChannelControl.js.map +1 -1
  15. package/lib/cjs/CheckpointManager.js.map +1 -1
  16. package/lib/cjs/ClassRegistry.js +5 -5
  17. package/lib/cjs/ClassRegistry.js.map +1 -1
  18. package/lib/cjs/CloudSqlite.js.map +1 -1
  19. package/lib/cjs/CodeService.js.map +1 -1
  20. package/lib/cjs/CodeSpecs.js.map +1 -1
  21. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  22. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  23. package/lib/cjs/DevTools.js.map +1 -1
  24. package/lib/cjs/DisplayStyle.js.map +1 -1
  25. package/lib/cjs/ECDb.js.map +1 -1
  26. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  27. package/lib/cjs/ECSqlStatement.js.map +1 -1
  28. package/lib/cjs/Element.js.map +1 -1
  29. package/lib/cjs/ElementAspect.js.map +1 -1
  30. package/lib/cjs/ElementGraphics.js.map +1 -1
  31. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  32. package/lib/cjs/Entity.js.map +1 -1
  33. package/lib/cjs/EntityReferences.js.map +1 -1
  34. package/lib/cjs/ExportGraphics.js.map +1 -1
  35. package/lib/cjs/ExternalSource.js.map +1 -1
  36. package/lib/cjs/FontFile.js.map +1 -1
  37. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  38. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  39. package/lib/cjs/GeometrySummary.js +47 -47
  40. package/lib/cjs/GeometrySummary.js.map +1 -1
  41. package/lib/cjs/IModelDb.js +8 -8
  42. package/lib/cjs/IModelDb.js.map +1 -1
  43. package/lib/cjs/IModelDbFonts.js.map +1 -1
  44. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  45. package/lib/cjs/IModelHost.js.map +1 -1
  46. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  47. package/lib/cjs/IModelJsFs.js.map +1 -1
  48. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  49. package/lib/cjs/IpcHost.js.map +1 -1
  50. package/lib/cjs/LineStyle.js.map +1 -1
  51. package/lib/cjs/LocalHub.js +1 -1
  52. package/lib/cjs/LocalHub.js.map +1 -1
  53. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  54. package/lib/cjs/LockControl.js.map +1 -1
  55. package/lib/cjs/Material.js.map +1 -1
  56. package/lib/cjs/Model.js.map +1 -1
  57. package/lib/cjs/NativeAppStorage.js.map +1 -1
  58. package/lib/cjs/NativeHost.js.map +1 -1
  59. package/lib/cjs/NavigationRelationship.js.map +1 -1
  60. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  61. package/lib/cjs/PropertyStore.js.map +1 -1
  62. package/lib/cjs/Relationship.js.map +1 -1
  63. package/lib/cjs/RpcBackend.js.map +1 -1
  64. package/lib/cjs/SQLiteDb.js.map +1 -1
  65. package/lib/cjs/Schema.js.map +1 -1
  66. package/lib/cjs/SchemaSync.js.map +1 -1
  67. package/lib/cjs/SchemaUtils.js.map +1 -1
  68. package/lib/cjs/SheetIndex.js.map +1 -1
  69. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  70. package/lib/cjs/SqliteStatement.js.map +1 -1
  71. package/lib/cjs/StashManager.js.map +1 -1
  72. package/lib/cjs/Texture.js.map +1 -1
  73. package/lib/cjs/TileStorage.js.map +1 -1
  74. package/lib/cjs/TxnManager.js.map +1 -1
  75. package/lib/cjs/ViewDefinition.js.map +1 -1
  76. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  77. package/lib/cjs/ViewStore.js.map +1 -1
  78. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  79. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  80. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  81. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  82. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  83. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  84. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  85. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  86. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  87. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  88. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  89. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  90. package/lib/cjs/core-backend.js.map +1 -1
  91. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  92. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  93. package/lib/cjs/domains/GenericElements.js.map +1 -1
  94. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  95. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  96. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  97. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  98. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  99. package/lib/cjs/internal/HubMock.js.map +1 -1
  100. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  101. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  102. package/lib/cjs/internal/NoLocks.js.map +1 -1
  103. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  104. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  105. package/lib/cjs/internal/Symbols.js.map +1 -1
  106. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  107. package/lib/cjs/internal/cross-package.js.map +1 -1
  108. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  109. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  110. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  111. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  112. package/lib/cjs/rpc/multipart.js.map +1 -1
  113. package/lib/cjs/rpc/tracing.js.map +1 -1
  114. package/lib/cjs/rpc/web/logging.js.map +1 -1
  115. package/lib/cjs/rpc/web/request.js.map +1 -1
  116. package/lib/cjs/rpc/web/response.js.map +1 -1
  117. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  118. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  119. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  120. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  121. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  122. package/lib/cjs/workspace/Settings.js.map +1 -1
  123. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  124. package/lib/cjs/workspace/Workspace.js.map +1 -1
  125. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  126. package/lib/esm/BackendHubAccess.js.map +1 -1
  127. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  128. package/lib/esm/BisCoreSchema.js.map +1 -1
  129. package/lib/esm/BlobContainerService.js.map +1 -1
  130. package/lib/esm/BriefcaseManager.js.map +1 -1
  131. package/lib/esm/CatalogDb.js.map +1 -1
  132. package/lib/esm/Category.js.map +1 -1
  133. package/lib/esm/ChangeSummaryManager.js +2 -2
  134. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  135. package/lib/esm/ChangedElementsDb.js.map +1 -1
  136. package/lib/esm/ChangesetECAdaptor.js +248 -248
  137. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  138. package/lib/esm/ChannelControl.js.map +1 -1
  139. package/lib/esm/CheckpointManager.js.map +1 -1
  140. package/lib/esm/ClassRegistry.js +5 -5
  141. package/lib/esm/ClassRegistry.js.map +1 -1
  142. package/lib/esm/CloudSqlite.js.map +1 -1
  143. package/lib/esm/CodeService.js.map +1 -1
  144. package/lib/esm/CodeSpecs.js.map +1 -1
  145. package/lib/esm/ConcurrentQuery.js.map +1 -1
  146. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  147. package/lib/esm/DevTools.js.map +1 -1
  148. package/lib/esm/DisplayStyle.js.map +1 -1
  149. package/lib/esm/ECDb.js.map +1 -1
  150. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  151. package/lib/esm/ECSqlStatement.js.map +1 -1
  152. package/lib/esm/Element.js.map +1 -1
  153. package/lib/esm/ElementAspect.js.map +1 -1
  154. package/lib/esm/ElementGraphics.js.map +1 -1
  155. package/lib/esm/ElementTreeWalker.js.map +1 -1
  156. package/lib/esm/Entity.js.map +1 -1
  157. package/lib/esm/EntityReferences.js.map +1 -1
  158. package/lib/esm/ExportGraphics.js.map +1 -1
  159. package/lib/esm/ExternalSource.js.map +1 -1
  160. package/lib/esm/FontFile.js.map +1 -1
  161. package/lib/esm/GeoCoordConfig.js.map +1 -1
  162. package/lib/esm/GeographicCRSServices.js.map +1 -1
  163. package/lib/esm/GeometrySummary.js +47 -47
  164. package/lib/esm/GeometrySummary.js.map +1 -1
  165. package/lib/esm/IModelDb.js +8 -8
  166. package/lib/esm/IModelDb.js.map +1 -1
  167. package/lib/esm/IModelDbFonts.js.map +1 -1
  168. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  169. package/lib/esm/IModelHost.js.map +1 -1
  170. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  171. package/lib/esm/IModelJsFs.js.map +1 -1
  172. package/lib/esm/ImageSourceConversion.js.map +1 -1
  173. package/lib/esm/IpcHost.js.map +1 -1
  174. package/lib/esm/LineStyle.js.map +1 -1
  175. package/lib/esm/LocalHub.js +1 -1
  176. package/lib/esm/LocalHub.js.map +1 -1
  177. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  178. package/lib/esm/LockControl.js.map +1 -1
  179. package/lib/esm/Material.js.map +1 -1
  180. package/lib/esm/Model.js.map +1 -1
  181. package/lib/esm/NativeAppStorage.js.map +1 -1
  182. package/lib/esm/NativeHost.js.map +1 -1
  183. package/lib/esm/NavigationRelationship.js.map +1 -1
  184. package/lib/esm/PromiseMemoizer.js.map +1 -1
  185. package/lib/esm/PropertyStore.js.map +1 -1
  186. package/lib/esm/Relationship.js.map +1 -1
  187. package/lib/esm/RpcBackend.js.map +1 -1
  188. package/lib/esm/SQLiteDb.js.map +1 -1
  189. package/lib/esm/Schema.js.map +1 -1
  190. package/lib/esm/SchemaSync.js.map +1 -1
  191. package/lib/esm/SchemaUtils.js.map +1 -1
  192. package/lib/esm/SheetIndex.js.map +1 -1
  193. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  194. package/lib/esm/SqliteStatement.js.map +1 -1
  195. package/lib/esm/StashManager.js.map +1 -1
  196. package/lib/esm/Texture.js.map +1 -1
  197. package/lib/esm/TileStorage.js.map +1 -1
  198. package/lib/esm/TxnManager.js.map +1 -1
  199. package/lib/esm/ViewDefinition.js.map +1 -1
  200. package/lib/esm/ViewStateHydrator.js.map +1 -1
  201. package/lib/esm/ViewStore.js.map +1 -1
  202. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  203. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  204. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  205. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  206. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  207. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  208. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  209. package/lib/esm/core-backend.js.map +1 -1
  210. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  211. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  212. package/lib/esm/domains/GenericElements.js.map +1 -1
  213. package/lib/esm/domains/GenericSchema.js.map +1 -1
  214. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  215. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  216. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  217. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  218. package/lib/esm/internal/HubMock.js.map +1 -1
  219. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  220. package/lib/esm/internal/NativePlatform.js.map +1 -1
  221. package/lib/esm/internal/NoLocks.js.map +1 -1
  222. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  223. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  224. package/lib/esm/internal/Symbols.js.map +1 -1
  225. package/lib/esm/internal/annotations/fields.js.map +1 -1
  226. package/lib/esm/internal/cross-package.js.map +1 -1
  227. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  228. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  229. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  230. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  231. package/lib/esm/rpc/multipart.js.map +1 -1
  232. package/lib/esm/rpc/tracing.js.map +1 -1
  233. package/lib/esm/rpc/web/logging.js.map +1 -1
  234. package/lib/esm/rpc/web/request.js.map +1 -1
  235. package/lib/esm/rpc/web/response.js.map +1 -1
  236. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  237. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  238. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  239. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  240. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  241. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  242. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  243. package/lib/esm/test/AttachDb.test.js +11 -11
  244. package/lib/esm/test/AttachDb.test.js.map +1 -1
  245. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  246. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  247. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  248. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  249. package/lib/esm/test/IModelHost.test.js.map +1 -1
  250. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  251. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  252. package/lib/esm/test/IpcHost.test.js.map +1 -1
  253. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  254. package/lib/esm/test/PrintElementTree.js.map +1 -1
  255. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  256. package/lib/esm/test/RevisionUtility.js.map +1 -1
  257. package/lib/esm/test/SchemaUtils.test.js +25 -25
  258. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  259. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  260. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  261. package/lib/esm/test/TestUtils.js.map +1 -1
  262. package/lib/esm/test/annotations/Fields.test.js +53 -53
  263. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  264. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  265. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  266. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  267. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  268. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  269. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js +5 -5
  270. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  271. package/lib/esm/test/categories/Category.test.js.map +1 -1
  272. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  273. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  274. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  275. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +15 -15
  276. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  277. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  278. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  279. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  280. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  281. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  282. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  283. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  284. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  285. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  286. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  287. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  288. package/lib/esm/test/ecdb/ECSqlStatement.test.js +332 -332
  289. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  290. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  291. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  292. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  293. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  294. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  295. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  296. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  297. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  298. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  299. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  300. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  301. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  302. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  303. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  304. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  305. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  306. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  307. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  308. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  309. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  310. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  311. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  312. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  313. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  314. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  315. package/lib/esm/test/hubaccess/Rebase.test.js +40 -40
  316. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  317. package/lib/esm/test/imageData.js.map +1 -1
  318. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  319. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  320. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  321. package/lib/esm/test/imodel/IModel.test.js +44 -44
  322. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  323. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  324. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  325. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js +432 -198
  326. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  327. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +272 -190
  328. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  329. package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts +27 -0
  330. package/lib/esm/test/incrementalSchemaLocater/TestContext.d.ts.map +1 -0
  331. package/lib/esm/test/incrementalSchemaLocater/TestContext.js +136 -0
  332. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -0
  333. package/lib/esm/test/index.js.map +1 -1
  334. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  335. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  336. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  337. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  338. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  339. package/lib/esm/test/rpc/response.test.js.map +1 -1
  340. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  341. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  342. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  343. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  344. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  345. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  346. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  347. package/lib/esm/test/standalone/ChangesetReader.test.js +346 -127
  348. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  349. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  350. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  351. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  352. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  353. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  354. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  355. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  356. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  357. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  358. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  359. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  360. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  361. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  362. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  363. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  364. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  365. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  366. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  367. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  368. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  369. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  370. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  371. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  372. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  373. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  374. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  375. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  376. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  377. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  378. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  379. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  380. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  381. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  382. package/lib/esm/workspace/Settings.js.map +1 -1
  383. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  384. package/lib/esm/workspace/Workspace.js.map +1 -1
  385. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  386. package/package.json +14 -14
  387. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts +0 -11
  388. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts.map +0 -1
  389. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js +0 -36
  390. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +0 -1
  391. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +0 -20
  392. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +0 -1
  393. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +0 -126
  394. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +0 -1
  395. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts +0 -24
  396. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts.map +0 -1
  397. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js +0 -67
  398. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlReader.test.js","sourceRoot":"","sources":["../../../../src/test/ecdb/ECSqlReader.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert } from \"chai\";\n/*---------------------------------------------------------------------------------------------\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 { DbResult } from \"@itwin/core-bentley\";\nimport { ECSqlReader, QueryBinder, QueryOptionsBuilder, QueryRowFormat } from \"@itwin/core-common\";\nimport { SnapshotDb } from \"../../core-backend\";\nimport { ECSqlWriteStatement } from \"../../ECSqlStatement\";\nimport { IModelTestUtils } from \"../IModelTestUtils\";\nimport { KnownTestLocations } from \"../KnownTestLocations\";\nimport { ECDbTestHelper } from \"./ECDbTestHelper\";\n\ndescribe(\"ECSqlReader\", (() => {\n let iModel: SnapshotDb;\n let reader: ECSqlReader;\n\n before(async () => {\n iModel = SnapshotDb.openFile(IModelTestUtils.resolveAssetFile(\"test.bim\"));\n });\n\n after(async () => {\n iModel.close();\n });\n\n describe(\"bind Id64 enumerable\", async () => {\n const outDir = KnownTestLocations.outputDir;\n\n it(\"ecsql reader simple\", async () => {\n using ecdb = ECDbTestHelper.createECDb(outDir, \"test.ecdb\",\n `<ECSchema schemaName=\"Test\" alias=\"ts\" version=\"01.00.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\">\n <ECEntityClass typeName=\"Foo\" modifier=\"Sealed\">\n <ECProperty propertyName=\"n\" typeName=\"int\"/>\n </ECEntityClass>\n </ECSchema>`);\n assert.isTrue(ecdb.isOpen);\n ecdb.saveChanges();\n const params = new QueryBinder();\n params.bindIdSet(1, [\"0x32\"]);\n const optionBuilder = new QueryOptionsBuilder();\n optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);\n reader = ecdb.createQueryReader(\"SELECT ECInstanceId, Name FROM meta.ECClassDef WHERE InVirtualSet(?, ECInstanceId)\", params, optionBuilder.getOptions());\n const rows = await reader.toArray();\n assert.equal(rows[0].id, \"0x32\");\n assert.equal(rows.length, 1);\n });\n\n it(\"ecsql reader simple for IdSet\", async () => {\n using ecdb = ECDbTestHelper.createECDb(outDir, \"test.ecdb\",\n `<ECSchema schemaName=\"Test\" alias=\"ts\" version=\"01.00.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\">\n <ECEntityClass typeName=\"Foo\" modifier=\"Sealed\">\n <ECProperty propertyName=\"n\" typeName=\"int\"/>\n </ECEntityClass>\n </ECSchema>`);\n assert.isTrue(ecdb.isOpen);\n ecdb.saveChanges();\n const params = new QueryBinder();\n params.bindIdSet(1, [\"0x32\"]);\n const optionBuilder = new QueryOptionsBuilder();\n optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);\n reader = ecdb.createQueryReader(\"SELECT ECInstanceId, Name FROM meta.ECClassDef, IdSet(?) WHERE id = ECInstanceId ECSQLOPTIONS ENABLE_EXPERIMENTAL_FEATURES\", params, optionBuilder.getOptions());\n const rows = await reader.toArray();\n assert.equal(rows[0].id, \"0x32\");\n assert.equal(rows.length, 1);\n });\n\n it(\"bindIdSet not working with integer Ids\", async () => {\n using ecdb = ECDbTestHelper.createECDb(outDir, \"test.ecdb\",\n `<ECSchema schemaName=\"Test\" alias=\"ts\" version=\"01.00.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\">\n <ECEntityClass typeName=\"Foo\" modifier=\"Sealed\">\n <ECProperty propertyName=\"n\" typeName=\"int\"/>\n </ECEntityClass>\n </ECSchema>`)\n assert.isTrue(ecdb.isOpen);\n ecdb.saveChanges();\n const params = new QueryBinder();\n params.bindIdSet(1, [\"50\"]);\n const optionBuilder = new QueryOptionsBuilder();\n optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);\n reader = ecdb.createQueryReader(\"SELECT ECInstanceId, Name FROM meta.ECClassDef WHERE InVirtualSet(?, ECInstanceId)\", params, optionBuilder.getOptions());\n const rows = await reader.toArray();\n assert.equal(rows.length, 0);\n });\n\n it(\"ecsql reader simple using query reader\", async () => {\n using ecdb = ECDbTestHelper.createECDb(outDir, \"test.ecdb\",\n `<ECSchema schemaName=\"Test\" alias=\"ts\" version=\"01.00.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\">\n <ECEntityClass typeName=\"Foo\" modifier=\"Sealed\">\n <ECProperty propertyName=\"n\" typeName=\"int\"/>\n </ECEntityClass>\n </ECSchema>`);\n assert.isTrue(ecdb.isOpen);\n\n const r = await ecdb.withCachedWriteStatement(\"INSERT INTO ts.Foo(n) VALUES(20)\", async (stmt: ECSqlWriteStatement) => {\n return stmt.stepForInsert();\n });\n ecdb.saveChanges();\n assert.equal(r.status, DbResult.BE_SQLITE_DONE);\n assert.equal(r.id, \"0x1\");\n\n const params = new QueryBinder();\n params.bindId(\"firstId\", r.id!);\n\n reader = ecdb.createQueryReader(\"SELECT ECInstanceId, n FROM ts.Foo WHERE ECInstanceId=:firstId\", params, { limit: { count: 1 } });\n assert.isTrue(await reader.step());\n assert.equal(reader.current.id, \"0x1\");\n assert.equal(reader.current.ecinstanceid, \"0x1\");\n assert.equal(reader.current.n, 20);\n assert.equal(reader.current.ID, \"0x1\");\n assert.equal(reader.current.ECINSTANCEID, \"0x1\");\n assert.equal(reader.current[0], \"0x1\");\n assert.equal(reader.current[1], 20);\n\n const row0 = reader.current.toRow();\n assert.equal(row0.ECInstanceId, \"0x1\");\n assert.equal(row0.n, 20);\n\n assert.isFalse(await reader.step());\n });\n });\n\n describe(\"Works as iterable iterator\", () => {\n\n it(\"iterable in for loop\", async () => {\n let actualRowCount = 0;\n const expectedRowCount = 46; // 46 Elements in test.bim\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element\")) {\n actualRowCount++;\n assert.isDefined(row[0]);\n }\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"iterable with .next()\", async () => {\n let row: any;\n let actualRowCount = 0;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 } });\n while ((row = await reader.next()).done === false) {\n actualRowCount++;\n assert.equal(row.value[0], `0x${actualRowCount}`);\n }\n assert.equal(actualRowCount, 5);\n });\n });\n\n describe(\"Common usages\", () => {\n let actualRowCount: number;\n\n beforeEach(async () => {\n actualRowCount = 0;\n });\n\n describe(\"Get all rows\", () => {\n const expectedRowCount = 46; // 46 Elements in test.bim\n\n beforeEach(async () => {\n reader = iModel.createQueryReader(\"SELECT * FROM bis.Element\");\n });\n\n it(\"Get all rows using iterable iterator\", async () => {\n for await (const _row of reader) {\n actualRowCount++;\n }\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"Get all rows using step\", async () => {\n while (await reader.step()) {\n actualRowCount++;\n }\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"Get all rows using toArray\", async () => {\n const rows = await reader.toArray();\n actualRowCount = rows.length;\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n });\n\n describe(\"Get id from each row\", () => {\n\n it(\"Get id using iterable iterator with unspecified rowFormat\", async () => {\n let counter = 1;\n for await (const row of iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 } })) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(row[0], currentExpectedId);\n assert.equal(row.id, currentExpectedId);\n assert.equal(row.ecinstanceid, currentExpectedId);\n assert.equal(row.ECINSTANCEID, currentExpectedId);\n assert.equal(row.ECInstanceId, currentExpectedId);\n assert.equal(row.toArray()[0], currentExpectedId);\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get id using iterable iterator with UseJsPropertyNames rowFormat\", async () => {\n let counter = 1;\n for await (const row of iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(row[0], currentExpectedId);\n assert.equal(row.id, currentExpectedId);\n assert.equal(row.ecinstanceid, currentExpectedId);\n assert.equal(row.ECINSTANCEID, currentExpectedId);\n assert.equal(row.ECInstanceId, currentExpectedId);\n assert.equal(row.toArray()[0], currentExpectedId);\n assert.equal(row.toRow().id, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get id using iterable iterator with UseECSqlPropertyNames rowFormat\", async () => {\n let counter = 1;\n for await (const row of iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames })) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(row[0], currentExpectedId);\n assert.equal(row.id, currentExpectedId);\n assert.equal(row.ecinstanceid, currentExpectedId);\n assert.equal(row.ECINSTANCEID, currentExpectedId);\n assert.equal(row.ECInstanceId, currentExpectedId);\n assert.equal(row.toArray()[0], currentExpectedId);\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get id using iterable iterator with UseECSqlPropertyIndexes rowFormat\", async () => {\n let counter = 1;\n for await (const row of iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes })) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(row[0], currentExpectedId);\n assert.equal(row.id, currentExpectedId);\n assert.equal(row.ecinstanceid, currentExpectedId);\n assert.equal(row.ECINSTANCEID, currentExpectedId);\n assert.equal(row.ECInstanceId, currentExpectedId);\n assert.equal(row.toArray()[0], currentExpectedId);\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get id using step with unspecified rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 } });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.id, currentExpectedId);\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get id using step with UseJsPropertyNames rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.id, currentExpectedId);\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().id, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get id using step with UseECSqlPropertyNames rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.id, currentExpectedId);\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get id using step with UseECSqlPropertyIndexes rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.id, currentExpectedId);\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n });\n\n describe(\"Get duplicate property names\", () => {\n\n it(\"Get duplicate property names using iterable iterator with unspecified rowFormat\", async () => {\n const expectedIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\"];\n let counter = 1;\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId\", undefined, { limit: { count: 5 } })) {\n const currentExpectedId = expectedIds[counter - 1];\n assert.equal(row[0], currentExpectedId);\n assert.equal(row.id, currentExpectedId);\n assert.equal(row.ecinstanceid, currentExpectedId);\n assert.equal(row.ECINSTANCEID, currentExpectedId);\n assert.equal(row.ECInstanceId, currentExpectedId);\n assert.equal(row.toArray()[0], currentExpectedId);\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get duplicate property names using iterable iterator with UseJsPropertyNames rowFormat\", async () => {\n const expectedIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\"];\n let counter = 1;\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames })) {\n const currentExpectedId = expectedIds[counter - 1];\n assert.equal(row[0], currentExpectedId);\n assert.equal(row.id, currentExpectedId);\n assert.equal(row.ecinstanceid, currentExpectedId);\n assert.equal(row.ECINSTANCEID, currentExpectedId);\n assert.equal(row.ECInstanceId, currentExpectedId);\n assert.equal(row.toArray()[0], currentExpectedId);\n assert.equal(row.toRow().id, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get duplicate property names using iterable iterator with UseECSqlPropertyNames rowFormat\", async () => {\n const expectedIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\"];\n let counter = 1;\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames })) {\n const currentExpectedId = expectedIds[counter - 1];\n assert.equal(row[0], currentExpectedId);\n assert.equal(row.id, currentExpectedId);\n assert.equal(row.ecinstanceid, currentExpectedId);\n assert.equal(row.ECINSTANCEID, currentExpectedId);\n assert.equal(row.ECInstanceId, currentExpectedId);\n assert.equal(row.toArray()[0], currentExpectedId);\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get duplicate property names using iterable iterator with UseECSqlPropertyIndexes rowFormat\", async () => {\n const expectedIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\"];\n let counter = 1;\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes })) {\n const currentExpectedId = expectedIds[counter - 1];\n assert.equal(row[0], currentExpectedId);\n assert.equal(row.id, currentExpectedId);\n assert.equal(row.ecinstanceid, currentExpectedId);\n assert.equal(row.ECINSTANCEID, currentExpectedId);\n assert.equal(row.ECInstanceId, currentExpectedId);\n assert.equal(row.toArray()[0], currentExpectedId);\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n });\n\n describe(\"Get specific values\", () => {\n\n it(\"Get only ECInstanceId with unspecified rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 } });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.id, currentExpectedId);\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get only ECInstanceId with UseJsPropertyNames rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.id, currentExpectedId);\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().id, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get only ECInstanceId with UseECSqlPropertyNames rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.id, currentExpectedId);\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get only ECInstanceId with UseECSqlPropertyIndexes rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.id, currentExpectedId);\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get one column with custom name with unspecified rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 } });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.customColumnName, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().customColumnName, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get one column with custom name with UseJsPropertyNames rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.customColumnName, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().customColumnName, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get one column with custom name with UseECSqlPropertyNames rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.customColumnName, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().customColumnName, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n\n it(\"Get one column with custom name with UseECSqlPropertyIndexes rowFormat\", async () => {\n let counter = 1;\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes });\n while (await reader.step()) {\n const currentExpectedId = `0x${counter}`;\n assert.equal(reader.current[0], currentExpectedId);\n assert.equal(reader.current.customColumnName, currentExpectedId);\n assert.equal(reader.current.toArray()[0], currentExpectedId);\n assert.equal(reader.current.toRow().customColumnName, currentExpectedId);\n counter++;\n actualRowCount++;\n }\n assert.equal(actualRowCount, 5);\n });\n });\n\n describe(\"Get count of results\", () => {\n const expectedRowCount = 46; // 46 Elements in test.bim\n\n beforeEach(async () => {\n reader = iModel.createQueryReader(\"SELECT COUNT(*) numResults FROM (SELECT * FROM bis.Element)\");\n });\n\n it(\"Get count of rows using current index\", async () => {\n await reader.step();\n actualRowCount = reader.current[0] as number;\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"Get count of rows using current column name\", async () => {\n await reader.step();\n actualRowCount = reader.current.numResults as number;\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"Get count of rows using current and toRow\", async () => {\n await reader.step();\n actualRowCount = reader.current.toRow().numResults as number;\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"Get count of rows using toArray result itself\", async () => {\n await reader.step();\n actualRowCount = reader.current.toArray()[0] as number;\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"Get count of rows using iterable iterator and index\", async () => {\n for await (const row of reader) {\n actualRowCount = row[0] as number;\n }\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"Get count of rows using iterable iterator and column name\", async () => {\n for await (const row of reader) {\n actualRowCount = row.numResults as number;\n }\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n it(\"Get count of rows using iterable iterator and toRow\", async () => {\n for await (const row of reader) {\n actualRowCount = row.toRow().numResults;\n }\n assert.equal(actualRowCount, expectedRowCount);\n });\n\n });\n\n describe(\"Tests for extendedType and extendType property behaviour of QueryPropertyMetaData\", () => {\n\n it(\"Id type column with alias\", async () => {\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\");\n const metaData = await reader.getMetaData();\n assert.equal(\"Id\", metaData[0].extendedType);\n assert.equal(\"Id\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n });\n\n it(\"Id type column without alias\", async () => {\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\");\n const metaData = await reader.getMetaData();\n assert.equal(\"Id\", metaData[0].extendedType);\n assert.equal(\"Id\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n });\n\n it(\"ClassId type column\", async () => {\n reader = iModel.createQueryReader(\"SELECT ECClassId FROM bis.Element ORDER BY ECClassId ASC\");\n const metaData = await reader.getMetaData();\n assert.equal(\"ClassId\", metaData[0].extendedType);\n assert.equal(\"ClassId\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n });\n\n it(\"Column without extended type\", async () => {\n reader = iModel.createQueryReader(\"SELECT s.Name FROM meta.ECSchemaDef s ORDER BY s.Name ASC\");\n const metaData = await reader.getMetaData();\n assert.equal(undefined, metaData[0].extendedType);\n assert.equal(\"\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n });\n\n it(\"Column without extended type with alias\", async () => {\n reader = iModel.createQueryReader(\"SELECT s.Name a FROM meta.ECSchemaDef s ORDER BY a ASC\");\n const metaData = await reader.getMetaData();\n assert.equal(undefined, metaData[0].extendedType);\n assert.equal(\"\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n });\n\n it(\"Geometric type column with alias\", async () => {\n reader = iModel.createQueryReader(\"select GeometryStream A from bis.GeometricElement3d LIMIT 1\");\n const metaData = await reader.getMetaData();\n assert.equal(\"GeometryStream\", metaData[0].extendedType);\n assert.equal(\"GeometryStream\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n });\n\n it(\"Geometric type column without alias\", async () => {\n reader = iModel.createQueryReader(\"select GeometryStream from bis.GeometricElement3d LIMIT 1\");\n const metaData = await reader.getMetaData();\n assert.equal(\"GeometryStream\", metaData[0].extendedType);\n assert.equal(\"GeometryStream\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\n });\n\n });\n });\n}));\n"]}
1
+ {"version":3,"file":"ECSqlReader.test.js","sourceRoot":"","sources":["../../../../src/test/ecdb/ECSqlReader.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert } from \"chai\";\r\n/*---------------------------------------------------------------------------------------------\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 { DbResult } from \"@itwin/core-bentley\";\r\nimport { ECSqlReader, QueryBinder, QueryOptionsBuilder, QueryRowFormat } from \"@itwin/core-common\";\r\nimport { SnapshotDb } from \"../../core-backend\";\r\nimport { ECSqlWriteStatement } from \"../../ECSqlStatement\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\nimport { ECDbTestHelper } from \"./ECDbTestHelper\";\r\n\r\ndescribe(\"ECSqlReader\", (() => {\r\n let iModel: SnapshotDb;\r\n let reader: ECSqlReader;\r\n\r\n before(async () => {\r\n iModel = SnapshotDb.openFile(IModelTestUtils.resolveAssetFile(\"test.bim\"));\r\n });\r\n\r\n after(async () => {\r\n iModel.close();\r\n });\r\n\r\n describe(\"bind Id64 enumerable\", async () => {\r\n const outDir = KnownTestLocations.outputDir;\r\n\r\n it(\"ecsql reader simple\", async () => {\r\n using ecdb = ECDbTestHelper.createECDb(outDir, \"test.ecdb\",\r\n `<ECSchema schemaName=\"Test\" alias=\"ts\" version=\"01.00.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\">\r\n <ECEntityClass typeName=\"Foo\" modifier=\"Sealed\">\r\n <ECProperty propertyName=\"n\" typeName=\"int\"/>\r\n </ECEntityClass>\r\n </ECSchema>`);\r\n assert.isTrue(ecdb.isOpen);\r\n ecdb.saveChanges();\r\n const params = new QueryBinder();\r\n params.bindIdSet(1, [\"0x32\"]);\r\n const optionBuilder = new QueryOptionsBuilder();\r\n optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);\r\n reader = ecdb.createQueryReader(\"SELECT ECInstanceId, Name FROM meta.ECClassDef WHERE InVirtualSet(?, ECInstanceId)\", params, optionBuilder.getOptions());\r\n const rows = await reader.toArray();\r\n assert.equal(rows[0].id, \"0x32\");\r\n assert.equal(rows.length, 1);\r\n });\r\n\r\n it(\"ecsql reader simple for IdSet\", async () => {\r\n using ecdb = ECDbTestHelper.createECDb(outDir, \"test.ecdb\",\r\n `<ECSchema schemaName=\"Test\" alias=\"ts\" version=\"01.00.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\">\r\n <ECEntityClass typeName=\"Foo\" modifier=\"Sealed\">\r\n <ECProperty propertyName=\"n\" typeName=\"int\"/>\r\n </ECEntityClass>\r\n </ECSchema>`);\r\n assert.isTrue(ecdb.isOpen);\r\n ecdb.saveChanges();\r\n const params = new QueryBinder();\r\n params.bindIdSet(1, [\"0x32\"]);\r\n const optionBuilder = new QueryOptionsBuilder();\r\n optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);\r\n reader = ecdb.createQueryReader(\"SELECT ECInstanceId, Name FROM meta.ECClassDef, IdSet(?) WHERE id = ECInstanceId ECSQLOPTIONS ENABLE_EXPERIMENTAL_FEATURES\", params, optionBuilder.getOptions());\r\n const rows = await reader.toArray();\r\n assert.equal(rows[0].id, \"0x32\");\r\n assert.equal(rows.length, 1);\r\n });\r\n\r\n it(\"bindIdSet not working with integer Ids\", async () => {\r\n using ecdb = ECDbTestHelper.createECDb(outDir, \"test.ecdb\",\r\n `<ECSchema schemaName=\"Test\" alias=\"ts\" version=\"01.00.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\">\r\n <ECEntityClass typeName=\"Foo\" modifier=\"Sealed\">\r\n <ECProperty propertyName=\"n\" typeName=\"int\"/>\r\n </ECEntityClass>\r\n </ECSchema>`)\r\n assert.isTrue(ecdb.isOpen);\r\n ecdb.saveChanges();\r\n const params = new QueryBinder();\r\n params.bindIdSet(1, [\"50\"]);\r\n const optionBuilder = new QueryOptionsBuilder();\r\n optionBuilder.setRowFormat(QueryRowFormat.UseJsPropertyNames);\r\n reader = ecdb.createQueryReader(\"SELECT ECInstanceId, Name FROM meta.ECClassDef WHERE InVirtualSet(?, ECInstanceId)\", params, optionBuilder.getOptions());\r\n const rows = await reader.toArray();\r\n assert.equal(rows.length, 0);\r\n });\r\n\r\n it(\"ecsql reader simple using query reader\", async () => {\r\n using ecdb = ECDbTestHelper.createECDb(outDir, \"test.ecdb\",\r\n `<ECSchema schemaName=\"Test\" alias=\"ts\" version=\"01.00.00\" xmlns=\"http://www.bentley.com/schemas/Bentley.ECXML.3.2\">\r\n <ECEntityClass typeName=\"Foo\" modifier=\"Sealed\">\r\n <ECProperty propertyName=\"n\" typeName=\"int\"/>\r\n </ECEntityClass>\r\n </ECSchema>`);\r\n assert.isTrue(ecdb.isOpen);\r\n\r\n const r = await ecdb.withCachedWriteStatement(\"INSERT INTO ts.Foo(n) VALUES(20)\", async (stmt: ECSqlWriteStatement) => {\r\n return stmt.stepForInsert();\r\n });\r\n ecdb.saveChanges();\r\n assert.equal(r.status, DbResult.BE_SQLITE_DONE);\r\n assert.equal(r.id, \"0x1\");\r\n\r\n const params = new QueryBinder();\r\n params.bindId(\"firstId\", r.id!);\r\n\r\n reader = ecdb.createQueryReader(\"SELECT ECInstanceId, n FROM ts.Foo WHERE ECInstanceId=:firstId\", params, { limit: { count: 1 } });\r\n assert.isTrue(await reader.step());\r\n assert.equal(reader.current.id, \"0x1\");\r\n assert.equal(reader.current.ecinstanceid, \"0x1\");\r\n assert.equal(reader.current.n, 20);\r\n assert.equal(reader.current.ID, \"0x1\");\r\n assert.equal(reader.current.ECINSTANCEID, \"0x1\");\r\n assert.equal(reader.current[0], \"0x1\");\r\n assert.equal(reader.current[1], 20);\r\n\r\n const row0 = reader.current.toRow();\r\n assert.equal(row0.ECInstanceId, \"0x1\");\r\n assert.equal(row0.n, 20);\r\n\r\n assert.isFalse(await reader.step());\r\n });\r\n });\r\n\r\n describe(\"Works as iterable iterator\", () => {\r\n\r\n it(\"iterable in for loop\", async () => {\r\n let actualRowCount = 0;\r\n const expectedRowCount = 46; // 46 Elements in test.bim\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element\")) {\r\n actualRowCount++;\r\n assert.isDefined(row[0]);\r\n }\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"iterable with .next()\", async () => {\r\n let row: any;\r\n let actualRowCount = 0;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 } });\r\n while ((row = await reader.next()).done === false) {\r\n actualRowCount++;\r\n assert.equal(row.value[0], `0x${actualRowCount}`);\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n });\r\n\r\n describe(\"Common usages\", () => {\r\n let actualRowCount: number;\r\n\r\n beforeEach(async () => {\r\n actualRowCount = 0;\r\n });\r\n\r\n describe(\"Get all rows\", () => {\r\n const expectedRowCount = 46; // 46 Elements in test.bim\r\n\r\n beforeEach(async () => {\r\n reader = iModel.createQueryReader(\"SELECT * FROM bis.Element\");\r\n });\r\n\r\n it(\"Get all rows using iterable iterator\", async () => {\r\n for await (const _row of reader) {\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"Get all rows using step\", async () => {\r\n while (await reader.step()) {\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"Get all rows using toArray\", async () => {\r\n const rows = await reader.toArray();\r\n actualRowCount = rows.length;\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n });\r\n\r\n describe(\"Get id from each row\", () => {\r\n\r\n it(\"Get id using iterable iterator with unspecified rowFormat\", async () => {\r\n let counter = 1;\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 } })) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(row[0], currentExpectedId);\r\n assert.equal(row.id, currentExpectedId);\r\n assert.equal(row.ecinstanceid, currentExpectedId);\r\n assert.equal(row.ECINSTANCEID, currentExpectedId);\r\n assert.equal(row.ECInstanceId, currentExpectedId);\r\n assert.equal(row.toArray()[0], currentExpectedId);\r\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get id using iterable iterator with UseJsPropertyNames rowFormat\", async () => {\r\n let counter = 1;\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(row[0], currentExpectedId);\r\n assert.equal(row.id, currentExpectedId);\r\n assert.equal(row.ecinstanceid, currentExpectedId);\r\n assert.equal(row.ECINSTANCEID, currentExpectedId);\r\n assert.equal(row.ECInstanceId, currentExpectedId);\r\n assert.equal(row.toArray()[0], currentExpectedId);\r\n assert.equal(row.toRow().id, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get id using iterable iterator with UseECSqlPropertyNames rowFormat\", async () => {\r\n let counter = 1;\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames })) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(row[0], currentExpectedId);\r\n assert.equal(row.id, currentExpectedId);\r\n assert.equal(row.ecinstanceid, currentExpectedId);\r\n assert.equal(row.ECINSTANCEID, currentExpectedId);\r\n assert.equal(row.ECInstanceId, currentExpectedId);\r\n assert.equal(row.toArray()[0], currentExpectedId);\r\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get id using iterable iterator with UseECSqlPropertyIndexes rowFormat\", async () => {\r\n let counter = 1;\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes })) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(row[0], currentExpectedId);\r\n assert.equal(row.id, currentExpectedId);\r\n assert.equal(row.ecinstanceid, currentExpectedId);\r\n assert.equal(row.ECINSTANCEID, currentExpectedId);\r\n assert.equal(row.ECInstanceId, currentExpectedId);\r\n assert.equal(row.toArray()[0], currentExpectedId);\r\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get id using step with unspecified rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 } });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.id, currentExpectedId);\r\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\r\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\r\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get id using step with UseJsPropertyNames rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.id, currentExpectedId);\r\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\r\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\r\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().id, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get id using step with UseECSqlPropertyNames rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.id, currentExpectedId);\r\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\r\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\r\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get id using step with UseECSqlPropertyIndexes rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT * FROM meta.ECSchemaDef\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.id, currentExpectedId);\r\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\r\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\r\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n });\r\n\r\n describe(\"Get duplicate property names\", () => {\r\n\r\n it(\"Get duplicate property names using iterable iterator with unspecified rowFormat\", async () => {\r\n const expectedIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\"];\r\n let counter = 1;\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId\", undefined, { limit: { count: 5 } })) {\r\n const currentExpectedId = expectedIds[counter - 1];\r\n assert.equal(row[0], currentExpectedId);\r\n assert.equal(row.id, currentExpectedId);\r\n assert.equal(row.ecinstanceid, currentExpectedId);\r\n assert.equal(row.ECINSTANCEID, currentExpectedId);\r\n assert.equal(row.ECInstanceId, currentExpectedId);\r\n assert.equal(row.toArray()[0], currentExpectedId);\r\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get duplicate property names using iterable iterator with UseJsPropertyNames rowFormat\", async () => {\r\n const expectedIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\"];\r\n let counter = 1;\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames })) {\r\n const currentExpectedId = expectedIds[counter - 1];\r\n assert.equal(row[0], currentExpectedId);\r\n assert.equal(row.id, currentExpectedId);\r\n assert.equal(row.ecinstanceid, currentExpectedId);\r\n assert.equal(row.ECINSTANCEID, currentExpectedId);\r\n assert.equal(row.ECInstanceId, currentExpectedId);\r\n assert.equal(row.toArray()[0], currentExpectedId);\r\n assert.equal(row.toRow().id, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get duplicate property names using iterable iterator with UseECSqlPropertyNames rowFormat\", async () => {\r\n const expectedIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\"];\r\n let counter = 1;\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames })) {\r\n const currentExpectedId = expectedIds[counter - 1];\r\n assert.equal(row[0], currentExpectedId);\r\n assert.equal(row.id, currentExpectedId);\r\n assert.equal(row.ecinstanceid, currentExpectedId);\r\n assert.equal(row.ECINSTANCEID, currentExpectedId);\r\n assert.equal(row.ECInstanceId, currentExpectedId);\r\n assert.equal(row.toArray()[0], currentExpectedId);\r\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get duplicate property names using iterable iterator with UseECSqlPropertyIndexes rowFormat\", async () => {\r\n const expectedIds = [\"0x1\", \"0xe\", \"0x10\", \"0x11\", \"0x12\"];\r\n let counter = 1;\r\n for await (const row of iModel.createQueryReader(\"SELECT * FROM bis.Element c JOIN bis.Element p ON p.ECInstanceId = c.ECInstanceId\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes })) {\r\n const currentExpectedId = expectedIds[counter - 1];\r\n assert.equal(row[0], currentExpectedId);\r\n assert.equal(row.id, currentExpectedId);\r\n assert.equal(row.ecinstanceid, currentExpectedId);\r\n assert.equal(row.ECINSTANCEID, currentExpectedId);\r\n assert.equal(row.ECInstanceId, currentExpectedId);\r\n assert.equal(row.toArray()[0], currentExpectedId);\r\n assert.equal(row.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n });\r\n\r\n describe(\"Get specific values\", () => {\r\n\r\n it(\"Get only ECInstanceId with unspecified rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 } });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.id, currentExpectedId);\r\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\r\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\r\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get only ECInstanceId with UseJsPropertyNames rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.id, currentExpectedId);\r\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\r\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\r\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().id, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get only ECInstanceId with UseECSqlPropertyNames rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.id, currentExpectedId);\r\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\r\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\r\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get only ECInstanceId with UseECSqlPropertyIndexes rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.id, currentExpectedId);\r\n assert.equal(reader.current.ecinstanceid, currentExpectedId);\r\n assert.equal(reader.current.ECINSTANCEID, currentExpectedId);\r\n assert.equal(reader.current.ECInstanceId, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().ECInstanceId, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get one column with custom name with unspecified rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 } });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.customColumnName, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().customColumnName, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get one column with custom name with UseJsPropertyNames rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseJsPropertyNames });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.customColumnName, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().customColumnName, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get one column with custom name with UseECSqlPropertyNames rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyNames });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.customColumnName, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().customColumnName, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n\r\n it(\"Get one column with custom name with UseECSqlPropertyIndexes rowFormat\", async () => {\r\n let counter = 1;\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\", undefined, { limit: { count: 5 }, rowFormat: QueryRowFormat.UseECSqlPropertyIndexes });\r\n while (await reader.step()) {\r\n const currentExpectedId = `0x${counter}`;\r\n assert.equal(reader.current[0], currentExpectedId);\r\n assert.equal(reader.current.customColumnName, currentExpectedId);\r\n assert.equal(reader.current.toArray()[0], currentExpectedId);\r\n assert.equal(reader.current.toRow().customColumnName, currentExpectedId);\r\n counter++;\r\n actualRowCount++;\r\n }\r\n assert.equal(actualRowCount, 5);\r\n });\r\n });\r\n\r\n describe(\"Get count of results\", () => {\r\n const expectedRowCount = 46; // 46 Elements in test.bim\r\n\r\n beforeEach(async () => {\r\n reader = iModel.createQueryReader(\"SELECT COUNT(*) numResults FROM (SELECT * FROM bis.Element)\");\r\n });\r\n\r\n it(\"Get count of rows using current index\", async () => {\r\n await reader.step();\r\n actualRowCount = reader.current[0] as number;\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"Get count of rows using current column name\", async () => {\r\n await reader.step();\r\n actualRowCount = reader.current.numResults as number;\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"Get count of rows using current and toRow\", async () => {\r\n await reader.step();\r\n actualRowCount = reader.current.toRow().numResults as number;\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"Get count of rows using toArray result itself\", async () => {\r\n await reader.step();\r\n actualRowCount = reader.current.toArray()[0] as number;\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"Get count of rows using iterable iterator and index\", async () => {\r\n for await (const row of reader) {\r\n actualRowCount = row[0] as number;\r\n }\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"Get count of rows using iterable iterator and column name\", async () => {\r\n for await (const row of reader) {\r\n actualRowCount = row.numResults as number;\r\n }\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n it(\"Get count of rows using iterable iterator and toRow\", async () => {\r\n for await (const row of reader) {\r\n actualRowCount = row.toRow().numResults;\r\n }\r\n assert.equal(actualRowCount, expectedRowCount);\r\n });\r\n\r\n });\r\n\r\n describe(\"Tests for extendedType and extendType property behaviour of QueryPropertyMetaData\", () => {\r\n\r\n it(\"Id type column with alias\", async () => {\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId customColumnName FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\");\r\n const metaData = await reader.getMetaData();\r\n assert.equal(\"Id\", metaData[0].extendedType);\r\n assert.equal(\"Id\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n });\r\n\r\n it(\"Id type column without alias\", async () => {\r\n reader = iModel.createQueryReader(\"SELECT ECInstanceId FROM meta.ECSchemaDef ORDER BY ECInstanceId ASC\");\r\n const metaData = await reader.getMetaData();\r\n assert.equal(\"Id\", metaData[0].extendedType);\r\n assert.equal(\"Id\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n });\r\n\r\n it(\"ClassId type column\", async () => {\r\n reader = iModel.createQueryReader(\"SELECT ECClassId FROM bis.Element ORDER BY ECClassId ASC\");\r\n const metaData = await reader.getMetaData();\r\n assert.equal(\"ClassId\", metaData[0].extendedType);\r\n assert.equal(\"ClassId\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n });\r\n\r\n it(\"Column without extended type\", async () => {\r\n reader = iModel.createQueryReader(\"SELECT s.Name FROM meta.ECSchemaDef s ORDER BY s.Name ASC\");\r\n const metaData = await reader.getMetaData();\r\n assert.equal(undefined, metaData[0].extendedType);\r\n assert.equal(\"\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n });\r\n\r\n it(\"Column without extended type with alias\", async () => {\r\n reader = iModel.createQueryReader(\"SELECT s.Name a FROM meta.ECSchemaDef s ORDER BY a ASC\");\r\n const metaData = await reader.getMetaData();\r\n assert.equal(undefined, metaData[0].extendedType);\r\n assert.equal(\"\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n });\r\n\r\n it(\"Geometric type column with alias\", async () => {\r\n reader = iModel.createQueryReader(\"select GeometryStream A from bis.GeometricElement3d LIMIT 1\");\r\n const metaData = await reader.getMetaData();\r\n assert.equal(\"GeometryStream\", metaData[0].extendedType);\r\n assert.equal(\"GeometryStream\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n });\r\n\r\n it(\"Geometric type column without alias\", async () => {\r\n reader = iModel.createQueryReader(\"select GeometryStream from bis.GeometricElement3d LIMIT 1\");\r\n const metaData = await reader.getMetaData();\r\n assert.equal(\"GeometryStream\", metaData[0].extendedType);\r\n assert.equal(\"GeometryStream\", metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n assert.equal(metaData[0].extendedType, metaData[0].extendType); // eslint-disable-line @typescript-eslint/no-deprecated\r\n });\r\n\r\n });\r\n });\r\n}));\r\n"]}