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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (357) hide show
  1. package/CHANGELOG.md +11 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +19 -5
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.js.map +1 -1
  10. package/lib/cjs/Category.js.map +1 -1
  11. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  12. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  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.map +1 -1
  17. package/lib/cjs/CloudSqlite.js.map +1 -1
  18. package/lib/cjs/CodeService.js.map +1 -1
  19. package/lib/cjs/CodeSpecs.js.map +1 -1
  20. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  21. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  22. package/lib/cjs/DevTools.js.map +1 -1
  23. package/lib/cjs/DisplayStyle.js.map +1 -1
  24. package/lib/cjs/ECDb.js.map +1 -1
  25. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  26. package/lib/cjs/ECSqlStatement.js.map +1 -1
  27. package/lib/cjs/Element.js.map +1 -1
  28. package/lib/cjs/ElementAspect.js.map +1 -1
  29. package/lib/cjs/ElementGraphics.js.map +1 -1
  30. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  31. package/lib/cjs/Entity.js.map +1 -1
  32. package/lib/cjs/EntityReferences.js.map +1 -1
  33. package/lib/cjs/ExportGraphics.js.map +1 -1
  34. package/lib/cjs/ExternalSource.js.map +1 -1
  35. package/lib/cjs/FontFile.js.map +1 -1
  36. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  37. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  38. package/lib/cjs/GeometrySummary.js.map +1 -1
  39. package/lib/cjs/IModelDb.d.ts +22 -2
  40. package/lib/cjs/IModelDb.d.ts.map +1 -1
  41. package/lib/cjs/IModelDb.js +23 -3
  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.map +1 -1
  52. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  53. package/lib/cjs/LockControl.js.map +1 -1
  54. package/lib/cjs/Material.js.map +1 -1
  55. package/lib/cjs/Model.js.map +1 -1
  56. package/lib/cjs/NativeAppStorage.js.map +1 -1
  57. package/lib/cjs/NativeHost.js.map +1 -1
  58. package/lib/cjs/NavigationRelationship.js.map +1 -1
  59. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  60. package/lib/cjs/PropertyStore.js.map +1 -1
  61. package/lib/cjs/Relationship.js.map +1 -1
  62. package/lib/cjs/RpcBackend.js.map +1 -1
  63. package/lib/cjs/SQLiteDb.js.map +1 -1
  64. package/lib/cjs/Schema.js.map +1 -1
  65. package/lib/cjs/SchemaSync.js.map +1 -1
  66. package/lib/cjs/SchemaUtils.js.map +1 -1
  67. package/lib/cjs/SheetIndex.js.map +1 -1
  68. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  69. package/lib/cjs/SqliteStatement.js.map +1 -1
  70. package/lib/cjs/Texture.js.map +1 -1
  71. package/lib/cjs/TileStorage.js.map +1 -1
  72. package/lib/cjs/TxnManager.d.ts +57 -10
  73. package/lib/cjs/TxnManager.d.ts.map +1 -1
  74. package/lib/cjs/TxnManager.js +76 -13
  75. package/lib/cjs/TxnManager.js.map +1 -1
  76. package/lib/cjs/ViewDefinition.js.map +1 -1
  77. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  78. package/lib/cjs/ViewStore.js.map +1 -1
  79. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  80. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  81. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  82. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  83. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  84. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  85. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  86. package/lib/cjs/core-backend.js.map +1 -1
  87. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  88. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  89. package/lib/cjs/domains/GenericElements.js.map +1 -1
  90. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  91. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  92. package/lib/cjs/internal/ChannelAdmin.js +1 -1
  93. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  94. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  95. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  96. package/lib/cjs/internal/HubMock.js.map +1 -1
  97. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  98. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  99. package/lib/cjs/internal/NoLocks.js.map +1 -1
  100. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  101. package/lib/cjs/internal/Symbols.js.map +1 -1
  102. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  103. package/lib/cjs/internal/cross-package.js.map +1 -1
  104. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  105. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  106. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  107. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  108. package/lib/cjs/rpc/multipart.js.map +1 -1
  109. package/lib/cjs/rpc/tracing.js.map +1 -1
  110. package/lib/cjs/rpc/web/logging.js.map +1 -1
  111. package/lib/cjs/rpc/web/request.js.map +1 -1
  112. package/lib/cjs/rpc/web/response.js.map +1 -1
  113. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  114. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  115. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  116. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  117. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  118. package/lib/cjs/workspace/Settings.js.map +1 -1
  119. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  120. package/lib/cjs/workspace/Workspace.js.map +1 -1
  121. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  122. package/lib/esm/BackendHubAccess.js.map +1 -1
  123. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  124. package/lib/esm/BisCoreSchema.js.map +1 -1
  125. package/lib/esm/BlobContainerService.js.map +1 -1
  126. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  127. package/lib/esm/BriefcaseManager.js +20 -6
  128. package/lib/esm/BriefcaseManager.js.map +1 -1
  129. package/lib/esm/CatalogDb.js.map +1 -1
  130. package/lib/esm/Category.js.map +1 -1
  131. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  132. package/lib/esm/ChangedElementsDb.js.map +1 -1
  133. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  134. package/lib/esm/ChannelControl.js.map +1 -1
  135. package/lib/esm/CheckpointManager.js.map +1 -1
  136. package/lib/esm/ClassRegistry.js.map +1 -1
  137. package/lib/esm/CloudSqlite.js.map +1 -1
  138. package/lib/esm/CodeService.js.map +1 -1
  139. package/lib/esm/CodeSpecs.js.map +1 -1
  140. package/lib/esm/ConcurrentQuery.js.map +1 -1
  141. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  142. package/lib/esm/DevTools.js.map +1 -1
  143. package/lib/esm/DisplayStyle.js.map +1 -1
  144. package/lib/esm/ECDb.js.map +1 -1
  145. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  146. package/lib/esm/ECSqlStatement.js.map +1 -1
  147. package/lib/esm/Element.js.map +1 -1
  148. package/lib/esm/ElementAspect.js.map +1 -1
  149. package/lib/esm/ElementGraphics.js.map +1 -1
  150. package/lib/esm/ElementTreeWalker.js.map +1 -1
  151. package/lib/esm/Entity.js.map +1 -1
  152. package/lib/esm/EntityReferences.js.map +1 -1
  153. package/lib/esm/ExportGraphics.js.map +1 -1
  154. package/lib/esm/ExternalSource.js.map +1 -1
  155. package/lib/esm/FontFile.js.map +1 -1
  156. package/lib/esm/GeoCoordConfig.js.map +1 -1
  157. package/lib/esm/GeographicCRSServices.js.map +1 -1
  158. package/lib/esm/GeometrySummary.js.map +1 -1
  159. package/lib/esm/IModelDb.d.ts +22 -2
  160. package/lib/esm/IModelDb.d.ts.map +1 -1
  161. package/lib/esm/IModelDb.js +23 -3
  162. package/lib/esm/IModelDb.js.map +1 -1
  163. package/lib/esm/IModelDbFonts.js.map +1 -1
  164. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  165. package/lib/esm/IModelHost.js.map +1 -1
  166. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  167. package/lib/esm/IModelJsFs.js.map +1 -1
  168. package/lib/esm/ImageSourceConversion.js.map +1 -1
  169. package/lib/esm/IpcHost.js.map +1 -1
  170. package/lib/esm/LineStyle.js.map +1 -1
  171. package/lib/esm/LocalHub.js.map +1 -1
  172. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  173. package/lib/esm/LockControl.js.map +1 -1
  174. package/lib/esm/Material.js.map +1 -1
  175. package/lib/esm/Model.js.map +1 -1
  176. package/lib/esm/NativeAppStorage.js.map +1 -1
  177. package/lib/esm/NativeHost.js.map +1 -1
  178. package/lib/esm/NavigationRelationship.js.map +1 -1
  179. package/lib/esm/PromiseMemoizer.js.map +1 -1
  180. package/lib/esm/PropertyStore.js.map +1 -1
  181. package/lib/esm/Relationship.js.map +1 -1
  182. package/lib/esm/RpcBackend.js.map +1 -1
  183. package/lib/esm/SQLiteDb.js.map +1 -1
  184. package/lib/esm/Schema.js.map +1 -1
  185. package/lib/esm/SchemaSync.js.map +1 -1
  186. package/lib/esm/SchemaUtils.js.map +1 -1
  187. package/lib/esm/SheetIndex.js.map +1 -1
  188. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  189. package/lib/esm/SqliteStatement.js.map +1 -1
  190. package/lib/esm/Texture.js.map +1 -1
  191. package/lib/esm/TileStorage.js.map +1 -1
  192. package/lib/esm/TxnManager.d.ts +57 -10
  193. package/lib/esm/TxnManager.d.ts.map +1 -1
  194. package/lib/esm/TxnManager.js +77 -14
  195. package/lib/esm/TxnManager.js.map +1 -1
  196. package/lib/esm/ViewDefinition.js.map +1 -1
  197. package/lib/esm/ViewStateHydrator.js.map +1 -1
  198. package/lib/esm/ViewStore.js.map +1 -1
  199. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  200. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  201. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  202. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  203. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  204. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  205. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  206. package/lib/esm/core-backend.js.map +1 -1
  207. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  208. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  209. package/lib/esm/domains/GenericElements.js.map +1 -1
  210. package/lib/esm/domains/GenericSchema.js.map +1 -1
  211. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  212. package/lib/esm/internal/ChannelAdmin.js +1 -1
  213. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  214. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  215. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  216. package/lib/esm/internal/HubMock.js.map +1 -1
  217. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  218. package/lib/esm/internal/NativePlatform.js.map +1 -1
  219. package/lib/esm/internal/NoLocks.js.map +1 -1
  220. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  221. package/lib/esm/internal/Symbols.js.map +1 -1
  222. package/lib/esm/internal/annotations/fields.js.map +1 -1
  223. package/lib/esm/internal/cross-package.js.map +1 -1
  224. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  225. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  226. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  227. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  228. package/lib/esm/rpc/multipart.js.map +1 -1
  229. package/lib/esm/rpc/tracing.js.map +1 -1
  230. package/lib/esm/rpc/web/logging.js.map +1 -1
  231. package/lib/esm/rpc/web/request.js.map +1 -1
  232. package/lib/esm/rpc/web/response.js.map +1 -1
  233. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  234. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  235. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  236. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  237. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  238. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  239. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  240. package/lib/esm/test/AttachDb.test.js.map +1 -1
  241. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  242. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  243. package/lib/esm/test/IModelHost.test.js.map +1 -1
  244. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  245. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  246. package/lib/esm/test/IpcHost.test.js.map +1 -1
  247. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  248. package/lib/esm/test/PrintElementTree.js.map +1 -1
  249. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  250. package/lib/esm/test/RevisionUtility.js.map +1 -1
  251. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  252. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  253. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  254. package/lib/esm/test/TestUtils.js.map +1 -1
  255. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  256. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  257. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  258. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  259. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  260. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  261. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  262. package/lib/esm/test/categories/Category.test.js.map +1 -1
  263. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  264. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  265. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  266. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  267. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  268. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  269. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  270. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  271. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  272. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  273. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  274. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  275. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  276. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  277. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  278. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  279. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  280. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  281. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  282. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  283. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  284. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  285. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  286. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  287. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  288. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  289. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  290. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  291. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  292. package/lib/esm/test/hubaccess/Rebase.test.d.ts +2 -0
  293. package/lib/esm/test/hubaccess/Rebase.test.d.ts.map +1 -0
  294. package/lib/esm/test/hubaccess/Rebase.test.js +172 -0
  295. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -0
  296. package/lib/esm/test/imageData.js.map +1 -1
  297. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  298. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  299. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  300. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  301. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  302. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  303. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  304. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -1
  305. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -1
  306. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -1
  307. package/lib/esm/test/index.js.map +1 -1
  308. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  309. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  310. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  311. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  312. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  313. package/lib/esm/test/rpc/response.test.js.map +1 -1
  314. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  315. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  316. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  317. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  318. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  319. package/lib/esm/test/standalone/ChangeMerge.test.js +10 -10
  320. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  321. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  322. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  323. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  324. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  325. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  326. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  327. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  328. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  329. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  330. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  331. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  332. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  333. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  334. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  335. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  336. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  337. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  338. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  339. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  340. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  341. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  342. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  343. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  344. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  345. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  346. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  347. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  348. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  349. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  350. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  351. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  352. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  353. package/lib/esm/workspace/Settings.js.map +1 -1
  354. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  355. package/lib/esm/workspace/Workspace.js.map +1 -1
  356. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  357. package/package.json +13 -13
@@ -1 +1 @@
1
- {"version":3,"file":"SqliteStatement.test.js","sourceRoot":"","sources":["../../../../src/test/ecdb/SqliteStatement.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 path from \"path\";\r\nimport { DbResult } from \"@itwin/core-bentley\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\nimport { ECDb, ECDbOpenMode, SqliteStatement, SqliteValueType } from \"../../core-backend\";\r\nimport { KnownTestLocations } from \"../KnownTestLocations\";\r\nimport { ECDbTestHelper } from \"./ECDbTestHelper\";\r\nimport { SequentialLogMatcher } from \"../SequentialLogMatcher\";\r\n\r\ndescribe(\"SqliteStatement\", () => {\r\n const outDir = KnownTestLocations.outputDir;\r\n const stringVal: string = \"Hello world\";\r\n const intVal = 0;\r\n const doubleVal = -2.5;\r\n const blobVal = new Uint8Array(new Range3d(1.2, 2.3, 3.4, 4.5, 5.6, 6.7).toFloat64Array().buffer);\r\n\r\n it(\"create table, insert, select with ecdb\", () => {\r\n using ecdb = ECDbTestHelper.createECDb(outDir, \"sqlitestatement.ecdb\");\r\n assert.isTrue(ecdb.isOpen);\r\n\r\n ecdb.withSqliteStatement(\"CREATE TABLE MyTable(id INTEGER PRIMARY KEY, stringcol TEXT, intcol INTEGER, doublecol REAL, blobcol)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n const stmt1 = \"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(?,?,?,?)\";\r\n ecdb.withPreparedSqliteStatement(stmt1, (stmt) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValue(1, stringVal);\r\n stmt.bindValue(2, intVal);\r\n stmt.bindValue(3, doubleVal);\r\n stmt.bindValue(4, blobVal);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(stmt1, (stmt) => {\r\n stmt.maybeBindString(1, stringVal);\r\n stmt.maybeBindInteger(2, intVal);\r\n stmt.maybeBindDouble(3, doubleVal);\r\n stmt.maybeBindBlob(4, blobVal);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(stmt1, (stmt) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValues([stringVal, intVal, doubleVal, blobVal]);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n const stmt2 = \"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(:string,:int,:double,:blob)\";\r\n ecdb.withPreparedSqliteStatement(stmt2, (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValue(\":string\", stringVal);\r\n stmt.bindValue(\":int\", intVal);\r\n stmt.bindValue(\":double\", doubleVal);\r\n stmt.bindValue(\":blob\", blobVal);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(stmt2, (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValues({ \":string\": stringVal, \":int\": intVal, \":double\": doubleVal, \":blob\": blobVal });\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.saveChanges();\r\n\r\n ecdb.withPreparedSqliteStatement(\"SELECT id,stringcol,intcol,doublecol,blobcol FROM MyTable\", (stmt: SqliteStatement) => {\r\n assert.isTrue(stmt.isReadonly);\r\n let rowCount = 0;\r\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n rowCount++;\r\n assert.equal(stmt.getColumnCount(), 5);\r\n const idSqlVal = stmt.getValue(0);\r\n assert.isFalse(idSqlVal.isNull);\r\n assert.equal(idSqlVal.type, SqliteValueType.Integer);\r\n assert.isDefined(idSqlVal.value);\r\n assert.equal(idSqlVal.value, rowCount);\r\n assert.equal(idSqlVal.getInteger(), rowCount);\r\n assert.equal(idSqlVal.columnName, \"id\");\r\n\r\n const stringSqlVal = stmt.getValue(1);\r\n assert.isFalse(stringSqlVal.isNull);\r\n assert.equal(stringSqlVal.type, SqliteValueType.String);\r\n assert.isDefined(stringSqlVal.value);\r\n assert.equal(stringSqlVal.value, stringVal);\r\n assert.equal(stringSqlVal.getString(), stringVal);\r\n assert.equal(stringSqlVal.columnName, \"stringcol\");\r\n\r\n const intSqlVal = stmt.getValue(2);\r\n assert.isFalse(intSqlVal.isNull);\r\n assert.equal(intSqlVal.type, SqliteValueType.Integer);\r\n assert.isDefined(intSqlVal.value);\r\n assert.equal(intSqlVal.value, intVal);\r\n assert.equal(intSqlVal.getInteger(), intVal);\r\n assert.equal(intSqlVal.columnName, \"intcol\");\r\n\r\n const doubleSqlVal = stmt.getValue(3);\r\n assert.isFalse(doubleSqlVal.isNull);\r\n assert.equal(doubleSqlVal.type, SqliteValueType.Double);\r\n assert.isDefined(doubleSqlVal.value);\r\n assert.equal(doubleSqlVal.value, doubleVal);\r\n assert.equal(doubleSqlVal.getDouble(), doubleVal);\r\n assert.equal(doubleSqlVal.columnName, \"doublecol\");\r\n\r\n const blobSqlVal = stmt.getValue(4);\r\n assert.isFalse(blobSqlVal.isNull);\r\n assert.equal(blobSqlVal.type, SqliteValueType.Blob);\r\n assert.isDefined(blobSqlVal.value);\r\n assert.equal((blobSqlVal.value as Uint8Array).byteLength, blobVal.byteLength);\r\n assert.equal(blobSqlVal.getBlob().byteLength, blobVal.byteLength);\r\n assert.equal(blobSqlVal.columnName, \"blobcol\");\r\n }\r\n assert.equal(rowCount, 5);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"SELECT id,stringcol,intcol,doublecol,blobcol FROM MyTable\", (stmt: SqliteStatement) => {\r\n assert.isTrue(stmt.isReadonly);\r\n let rowCount = 0;\r\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n rowCount++;\r\n const row = stmt.getRow();\r\n assert.isDefined(row.id);\r\n assert.equal(row.id, rowCount);\r\n\r\n assert.isDefined(row.stringcol);\r\n assert.equal(row.stringcol, stringVal);\r\n\r\n assert.isDefined(row.intcol);\r\n assert.equal(row.intcol, intVal);\r\n\r\n assert.isDefined(row.doublecol);\r\n assert.equal(row.doublecol, doubleVal);\r\n\r\n assert.isDefined(row.blobcol);\r\n assert.equal((row.blobcol as Uint8Array).byteLength, blobVal.byteLength);\r\n }\r\n assert.equal(rowCount, 5);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"SELECT id,stringcol,intcol,doublecol,blobcol FROM MyTable\", (stmt: SqliteStatement) => {\r\n assert.isTrue(stmt.isReadonly);\r\n let rowCount = 0;\r\n for (const row of stmt) {\r\n rowCount++;\r\n assert.isDefined(row.id);\r\n assert.equal(row.id, rowCount);\r\n\r\n assert.isDefined(row.stringcol);\r\n assert.equal(row.stringcol, stringVal);\r\n\r\n assert.isDefined(row.intcol);\r\n assert.equal(row.intcol, intVal);\r\n\r\n assert.isDefined(row.doublecol);\r\n assert.equal(row.doublecol, doubleVal);\r\n\r\n assert.isDefined(row.blobcol);\r\n assert.equal((row.blobcol as Uint8Array).byteLength, blobVal.byteLength);\r\n }\r\n assert.equal(rowCount, 5);\r\n });\r\n });\r\n\r\n it(\"null values handling\", () => {\r\n using ecdb = ECDbTestHelper.createECDb(outDir, \"bindnull.ecdb\");\r\n assert.isTrue(ecdb.isOpen);\r\n\r\n ecdb.withSqliteStatement(\"CREATE TABLE MyTable(id INTEGER PRIMARY KEY, stringcol TEXT, intcol INTEGER, doublecol REAL, blobcol)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(?,?,?,?)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValue(1, undefined);\r\n stmt.bindValue(2, undefined);\r\n stmt.bindValue(3, undefined);\r\n stmt.bindValue(4, undefined);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(?,?,?,?)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValues([]);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(?,?,?,?)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValues([undefined, undefined]);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(:string,:int,:double,:blob)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValue(\":string\", undefined);\r\n stmt.bindValue(\":int\", undefined);\r\n stmt.bindValue(\":double\", undefined);\r\n stmt.bindValue(\":blob\", undefined);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(?,?,?,?)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValues({});\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(?,?,?,?)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValues({ \":string\": undefined, \":int\": undefined });\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withPreparedSqliteStatement(\"INSERT INTO MyTable(stringcol,intcol,doublecol,blobcol) VALUES(?,?,?,?)\", (stmt: SqliteStatement) => {\r\n stmt.maybeBindString(1, undefined);\r\n stmt.maybeBindInteger(2, undefined);\r\n stmt.maybeBindDouble(3, undefined);\r\n stmt.maybeBindBlob(4, undefined);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.saveChanges();\r\n\r\n ecdb.withPreparedSqliteStatement(\"SELECT id,stringcol,intcol,doublecol,blobcol FROM MyTable\", (stmt: SqliteStatement) => {\r\n assert.isTrue(stmt.isReadonly);\r\n let rowCount = 0;\r\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n rowCount++;\r\n for (let i = 0; i < stmt.getColumnCount(); i++) {\r\n const sqlVal = stmt.getValue(i);\r\n if (i === 0) {\r\n assert.isFalse(sqlVal.isNull);\r\n assert.equal(sqlVal.type, SqliteValueType.Integer);\r\n assert.equal(sqlVal.getInteger(), rowCount);\r\n } else {\r\n assert.isTrue(sqlVal.isNull);\r\n assert.equal(sqlVal.type, SqliteValueType.Null);\r\n }\r\n }\r\n }\r\n\r\n assert.equal(rowCount, 7);\r\n });\r\n });\r\n\r\n it(\"ids and guids\", () => {\r\n using ecdb = ECDbTestHelper.createECDb(outDir, \"idsandguids.ecdb\");\r\n assert.isTrue(ecdb.isOpen);\r\n\r\n ecdb.withSqliteStatement(\"CREATE TABLE MyTable(id INTEGER PRIMARY KEY, guid BLOB)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n ecdb.withSqliteStatement(\"INSERT INTO MyTable(id,guid) VALUES(?,?)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValue(1, { id: \"0x11\" });\r\n stmt.bindValue(2, { guid: \"370cea34-8415-4f81-b54c-85040eb3111e\" });\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n stmt.reset();\r\n stmt.clearBindings();\r\n\r\n stmt.bindValues([{ id: \"0x12\" }, { guid: \"f9f1eb6e-1171-4f45-ba90-55c856056341\" }]);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n stmt.reset();\r\n stmt.clearBindings();\r\n });\r\n\r\n ecdb.withSqliteStatement(\"INSERT INTO MyTable(id,guid) VALUES(:id,:guid)\", (stmt: SqliteStatement) => {\r\n assert.isFalse(stmt.isReadonly);\r\n stmt.bindValue(\":id\", { id: \"0x13\" });\r\n stmt.bindValue(\":guid\", { guid: \"370cea34-8415-4f81-b54c-85040eb3111e\" });\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n stmt.reset();\r\n stmt.clearBindings();\r\n\r\n stmt.bindValues({ \":id\": { id: \"0x14\" }, \":guid\": { guid: \"f9f1eb6e-1171-4f45-ba90-55c856056341\" } });\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n stmt.reset();\r\n stmt.clearBindings();\r\n });\r\n\r\n ecdb.withSqliteStatement(\"SELECT id,guid FROM MyTable\", (stmt: SqliteStatement) => {\r\n assert.isTrue(stmt.isReadonly);\r\n let rowCount = 0;\r\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n rowCount++;\r\n const expectedId = rowCount + 16;\r\n const idVal = stmt.getValue(0);\r\n assert.equal(expectedId, idVal.getInteger());\r\n assert.equal(typeof (idVal.value), \"number\");\r\n assert.equal(expectedId, idVal.value);\r\n assert.equal(expectedId, Number.parseInt(idVal.getId(), 16));\r\n\r\n const guidVal = stmt.getValue(1);\r\n assert.instanceOf(guidVal.value, Uint8Array);\r\n\r\n if (rowCount % 2 !== 0)\r\n assert.equal(\"370cea34-8415-4f81-b54c-85040eb3111e\", guidVal.getGuid());\r\n else\r\n assert.equal(\"f9f1eb6e-1171-4f45-ba90-55c856056341\", guidVal.getGuid());\r\n\r\n const row = stmt.getRow();\r\n assert.isDefined(row.id);\r\n assert.equal(typeof (row.id), \"number\");\r\n assert.equal(expectedId, row.id);\r\n\r\n assert.isDefined(row.guid);\r\n assert.instanceOf(row.guid, Uint8Array);\r\n }\r\n assert.equal(4, rowCount);\r\n });\r\n ecdb.saveChanges();\r\n });\r\n\r\n it(\"run cached sql\", () => {\r\n const fileName = \"sqlitesqlagainstreadonlyconnection.ecdb\";\r\n const ecdbPath = path.join(outDir, fileName);\r\n {\r\n using testEcdb = ECDbTestHelper.createECDb(outDir, fileName);\r\n assert.isTrue(testEcdb.isOpen);\r\n }\r\n\r\n using ecdb = new ECDb();\r\n ecdb.openDb(ecdbPath, ECDbOpenMode.Readonly);\r\n assert.isTrue(ecdb.isOpen);\r\n\r\n let stmt0: SqliteStatement | undefined;\r\n ecdb.withPreparedSqliteStatement(\"SELECT Name,StrData FROM be_Prop WHERE Namespace='ec_Db'\", (stmt: SqliteStatement) => {\r\n stmt0 = stmt;\r\n let rowCount = 0;\r\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n rowCount++;\r\n assert.equal(stmt.getColumnCount(), 2);\r\n const nameVal = stmt.getValue(0);\r\n assert.equal(nameVal.columnName, \"Name\");\r\n assert.equal(nameVal.type, SqliteValueType.String);\r\n assert.isFalse(nameVal.isNull);\r\n const name = nameVal.getString();\r\n\r\n const versionVal = stmt.getValue(1);\r\n assert.equal(versionVal.columnName, \"StrData\");\r\n assert.equal(versionVal.type, SqliteValueType.String);\r\n assert.isFalse(versionVal.isNull);\r\n const profileVersion: any = JSON.parse(versionVal.getString());\r\n\r\n assert.isTrue(name === \"SchemaVersion\" || name === \"InitialSchemaVersion\");\r\n if (name === \"SchemaVersion\") {\r\n assert.equal(profileVersion.major, 4);\r\n assert.equal(profileVersion.minor, 0);\r\n assert.equal(profileVersion.sub1, 0);\r\n assert.isAtLeast(profileVersion.sub2, 1);\r\n } else if (name === \"InitialSchemaVersion\") {\r\n assert.equal(profileVersion.major, 4);\r\n assert.equal(profileVersion.minor, 0);\r\n assert.equal(profileVersion.sub1, 0);\r\n assert.isAtLeast(profileVersion.sub2, 1);\r\n }\r\n }\r\n assert.equal(rowCount, 2);\r\n });\r\n assert.isTrue(stmt0?.isPrepared, \"stmt0 is in the cache\");\r\n\r\n ecdb.resetSqliteCache(3); // reset the statement cache to only hold 3 members so we can exercise overflowing it\r\n assert.isFalse(stmt0?.isPrepared, \"reset cache clears stmt0\");\r\n\r\n let stmt1: SqliteStatement | undefined;\r\n let stmt2: SqliteStatement | undefined;\r\n let stmt2a: SqliteStatement | undefined;\r\n let stmt3: SqliteStatement | undefined;\r\n let stmt4: SqliteStatement | undefined;\r\n let stmt5: SqliteStatement | undefined;\r\n ecdb.withPreparedSqliteStatement(\"SELECT 1\", (stmt) => stmt1 = stmt);\r\n assert.isTrue(stmt1?.isPrepared, \"stmt1 is in the cache\");\r\n ecdb.withPreparedSqliteStatement(\"SELECT 2\", (stmt) => stmt2 = stmt);\r\n assert.isTrue(stmt2?.isPrepared, \"stmt2 is in the cache\");\r\n ecdb.withPreparedSqliteStatement(\"SELECT 3\", (stmt) => stmt3 = stmt);\r\n assert.isTrue(stmt3?.isPrepared, \"stmt3 is in the cache\");\r\n ecdb.withPreparedSqliteStatement(\"SELECT 4\", (stmt) => stmt4 = stmt);\r\n assert.isTrue(stmt4?.isPrepared, \"stmt4 is in the cache\");\r\n assert.isFalse(stmt1?.isPrepared, \"stmt1 was cleared from the cache\");\r\n ecdb.withPreparedSqliteStatement(\"SELECT 2\", (stmt) => stmt2a = stmt);\r\n assert.equal(stmt2, stmt2a, \"statement 2 gets reused, moved to most recent\");\r\n assert.isTrue(stmt3?.isPrepared, \"statement 3 is still cached\");\r\n ecdb.withPreparedSqliteStatement(\"SELECT 5\", (stmt) => stmt5 = stmt);\r\n assert.isTrue(stmt5?.isPrepared, \"statement 5 is cached\");\r\n assert.isFalse(stmt3?.isPrepared, \"statement 3 was lru and was dropped\");\r\n\r\n let nested1: SqliteStatement | undefined;\r\n ecdb.withPreparedSqliteStatement(\"SELECT 1\", (stmt) => {\r\n stmt1 = stmt;\r\n ecdb.withPreparedSqliteStatement(\"SELECT 1\", (nested) => nested1 = nested);\r\n });\r\n assert.notEqual(stmt1, nested1, \"shouldn't reuse an in-use statement\");\r\n assert.isFalse(stmt1?.isPrepared, \"outer 1 is not cached\");\r\n assert.isTrue(nested1?.isPrepared, \"nested1 is cached\");\r\n assert.isTrue(stmt2?.isPrepared, \"stmt2 is in the cache\");\r\n assert.isTrue(stmt5?.isPrepared, \"stmt5 is in the cache\");\r\n });\r\n // This test generate no log when run as suite but is successful when only this fixture run.\r\n it(\"check prepare logErrors flag\", () => {\r\n const fileName = \"logErrors.ecdb\";\r\n const ecdbPath = path.join(outDir, fileName);\r\n {\r\n using testEcdb = ECDbTestHelper.createECDb(outDir, fileName);\r\n assert.isTrue(testEcdb.isOpen);\r\n }\r\n using ecdb = new ECDb();\r\n ecdb.openDb(ecdbPath, ECDbOpenMode.Readonly);\r\n assert.isTrue(ecdb.isOpen);\r\n // expect log message when statement fails\r\n let slm = new SequentialLogMatcher();\r\n slm.append().error().category(\"BeSQLite\").message(\"Error \\\"no such table: def (BE_SQLITE_ERROR)\\\" preparing SQL: SELECT abc FROM def\");\r\n assert.throw(() => ecdb.withSqliteStatement(\"SELECT abc FROM def\", () => { }), \"no such table: def (BE_SQLITE_ERROR)\");\r\n assert.isTrue(slm.finishAndDispose(), \"logMatcher should detect log\");\r\n\r\n // now pass suppress log error which mean we should not get the error\r\n slm = new SequentialLogMatcher();\r\n slm.append().error().category(\"BeSQLite\").message(\"Error \\\"no such table: def (BE_SQLITE_ERROR)\\\" preparing SQL: SELECT abc FROM def\");\r\n assert.throw(() => ecdb.withSqliteStatement(\"SELECT abc FROM def\", () => { }, /* logErrors = */ false), \"no such table: def (BE_SQLITE_ERROR)\");\r\n assert.isFalse(slm.finishAndDispose(), \"logMatcher should not detect log\");\r\n\r\n // expect log message when statement fails\r\n slm = new SequentialLogMatcher();\r\n slm.append().error().category(\"ECDb\").message(\"ECClass 'abc.def' does not exist or could not be loaded.\");\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n assert.throw(() => ecdb.withPreparedStatement(\"SELECT abc FROM abc.def\", () => { }), \"ECClass 'abc.def' does not exist or could not be loaded.\");\r\n assert.isTrue(slm.finishAndDispose(), \"logMatcher should detect log\");\r\n\r\n // now pass suppress log error which mean we should not get the error\r\n slm = new SequentialLogMatcher();\r\n slm.append().error().category(\"ECDb\").message(\"ECClass 'abc.def' does not exist or could not be loaded.\");\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n assert.throw(() => ecdb.withPreparedStatement(\"SELECT abc FROM abc.def\", () => { }, /* logErrors = */ false), \"\"); // BUG: we do not see error message\r\n assert.isFalse(slm.finishAndDispose(), \"logMatcher should not detect log\");\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"SqliteStatement.test.js","sourceRoot":"","sources":["../../../../src/test/ecdb/SqliteStatement.test.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlDatasets.js","sourceRoot":"","sources":["../../../../../src/test/ecsql/dataset/ECSqlDatasets.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 path from \"path\";\r\nimport { Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { _nativeDb, IModelDb, IModelHost, SnapshotDb, SpatialCategory } from \"../../../core-backend\";\r\nimport { IModelTestUtils } from \"../../IModelTestUtils\";\r\nimport { Code, ColorDef, ElementAspectProps, GeometryStreamProps, IModel, PhysicalElementProps, RelatedElementProps, SubCategoryAppearance } from \"@itwin/core-common\";\r\nimport { Arc3d, IModelJson, Point2d, Point3d } from \"@itwin/core-geometry\";\r\nimport { KnownTestLocations } from \"../../KnownTestLocations\";\r\n\r\n\r\ninterface IPrimitiveBase {\r\n i?: number;\r\n l?: number;\r\n d?: number;\r\n b?: boolean;\r\n dt?: string;\r\n s?: string;\r\n j?: string;\r\n bin?: Uint8Array;\r\n p2d?: Point2d;\r\n p3d?: Point3d;\r\n g?: GeometryStreamProps;\r\n}\r\n\r\ninterface IPrimitive extends IPrimitiveBase {\r\n st?: ComplexStruct;\r\n}\r\n\r\ninterface IPrimitiveArrayBase {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_i?: number[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_l?: number[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_d?: number[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_b?: boolean[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_dt?: string[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_s?: string[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_bin?: Uint8Array[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_p2d?: Point2d[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_p3d?: Point3d[];\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_g?: GeometryStreamProps[];\r\n}\r\n\r\ninterface IPrimitiveArray extends IPrimitiveArrayBase {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_st?: ComplexStruct[];\r\n}\r\n\r\ninterface ComplexStruct extends IPrimitiveArrayBase, IPrimitiveBase { }\r\n\r\ninterface TestElementProps extends PhysicalElementProps, IPrimitive, IPrimitiveArray {\r\n directStr?: string;\r\n directLong?: number;\r\n directDouble?: number;\r\n nullProp?: string;\r\n enumIntProp?: number;\r\n enumIntPropArr?: number[];\r\n enumStringProp?: string;\r\n enumStringPropArr?: string[];\r\n noCaseString?: string;\r\n}\r\n\r\nfunction createElemProps(className: string, _iModelName: IModelDb, modId: Id64String, catId: Id64String, index: number): TestElementProps {\r\n // add Geometry\r\n const geomArray: Arc3d[] = [\r\n Arc3d.createXY(Point3d.create(0, 0), 5),\r\n Arc3d.createXY(Point3d.create(5, 5), 2),\r\n Arc3d.createXY(Point3d.create(-5, -5), 20),\r\n ];\r\n const geometryStream: GeometryStreamProps = [];\r\n for (const geom of geomArray) {\r\n const arcData = IModelJson.Writer.toIModelJson(geom);\r\n geometryStream.push(arcData);\r\n }\r\n // Create props\r\n const elementProps: TestElementProps = {\r\n classFullName: `AllProperties:${className}`,\r\n model: modId,\r\n category: catId,\r\n code: Code.createEmpty(),\r\n geom: geometryStream,\r\n i: 100 + index,\r\n l: 1000 + index,\r\n d: 0.1 + index,\r\n s: `str${index}`,\r\n j: `{\"${String.fromCharCode(65 + index)}\": ${index}}`,\r\n dt: index%2 === 0? \"2017-01-01T00:00:00.000\" : \"2010-01-01T11:11:11.000\",\r\n bin: index%2 === 0 ? new Uint8Array([1, 2, 3]) : new Uint8Array([11, 21, 31, 34, 53, 21, 14, 14, 55, 22]),\r\n p2d: index%2 === 0 ? new Point2d(1.034, 2.034) : new Point2d(1111.11, 2222.22),\r\n p3d: index%2 === 0 ? new Point3d(-1.0, 2.3, 3.0001) : new Point3d(-111.11, -222.22, -333.33),\r\n b: true,\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_b: [true, false, true],\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_i: [0, 1, 2],\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_d: [0.0, 1.1, 2.2],\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_l: [10000, 20000, 30000],\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_s: [\"s0\", \"s1\", \"s2\"],\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_dt: [\"2017-01-01T00:00:00.000\", \"2010-01-01T11:11:11.000\"],\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_p2d: [new Point2d(1.034, 2.034) , new Point2d(1111.11, 2222.22)],\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_p3d: [new Point3d(-1.0, 2.3, 3.0001) , new Point3d(-111.11, -222.22, -333.33)],\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n array_bin: [new Uint8Array([1, 2, 3]) , new Uint8Array([11, 21, 31, 34, 53, 21, 14, 14, 55, 22])],\r\n directStr: `str${index}`,\r\n directLong: 1000 + index,\r\n directDouble: 0.1 + index,\r\n nullProp: (index % 2 === 0) ? undefined : \"NotNull\",\r\n noCaseString: (index % 2 === 0) ? \"abc\" : \"ABC\",\r\n enumIntProp: index % 2 === 0 ? 1 : 2,\r\n enumStringProp: index % 2 === 0 ? \"1\" : \"2\",\r\n enumIntPropArr: [1, 2, 3],\r\n enumStringPropArr: [\"1\", \"2\", \"3\"]\r\n };\r\n return elementProps;\r\n}\r\n\r\ninterface TestElementAspectProps extends ElementAspectProps, IPrimitive, IPrimitiveArray { }\r\n\r\nfunction createElemAspect(className: string, _iModelName: IModelDb, elementId: Id64String, autoHandledProp: any): TestElementAspectProps {\r\n // Create props\r\n const elementProps: ElementAspectProps = {\r\n classFullName: `AllProperties:${className}`,\r\n element: { id: elementId },\r\n };\r\n\r\n if (autoHandledProp)\r\n Object.assign(elementProps, autoHandledProp);\r\n\r\n return elementProps;\r\n}\r\n\r\ninterface TestElementWithNavProps extends TestElementProps {\r\n name: string;\r\n featureUsesElement: RelatedElementProps;\r\n}\r\n\r\nfunction createElemWithNavProp(className: string, _iModelName: IModelDb, modId: Id64String, catId: Id64String, index: number, elementId: Id64String): TestElementWithNavProps {\r\n const eProps = createElemProps(className, _iModelName, modId, catId, index);\r\n return {\r\n ...eProps,\r\n name: `Feature${elementId.toString()}`,\r\n featureUsesElement: {\r\n id: elementId,\r\n relClassName: \"AllProperties:TestFeatureUsesElement\",\r\n }\r\n } as TestElementWithNavProps;\r\n}\r\n\r\nexport class ECSqlDatasets {\r\n public static async generateFiles(): Promise<void> {\r\n const fileName = \"AllProperties.bim\";\r\n\r\n await IModelHost.startup();\r\n const filePath = IModelTestUtils.prepareOutputFile(\"ECSqlTests\", fileName);\r\n const iModel = SnapshotDb.createEmpty(filePath, { rootSubject: { name: \"AllPropertiesTest\" } });\r\n const testSchemaPath = path.join(KnownTestLocations.assetsDir, \"ECSqlTests\", \"AllProperties.ecschema.xml\");\r\n await iModel.importSchemas([testSchemaPath]);\r\n const [, newModelId] = IModelTestUtils.createAndInsertPhysicalPartitionAndModel(iModel, Code.createEmpty(), true);\r\n let spatialCategoryId = SpatialCategory.queryCategoryIdByName(iModel, IModel.dictionaryId, \"MySpatialCategory\");\r\n if (undefined === spatialCategoryId)\r\n spatialCategoryId = SpatialCategory.insert(iModel, IModel.dictionaryId, \"MySpatialCategory\", new SubCategoryAppearance({ color: ColorDef.fromString(\"rgb(255,0,0)\").toJSON() }));\r\n\r\n let index = 0;\r\n const elementIds: Id64String[] = [];\r\n for (index = 0; index < 10; ++index) {\r\n const elementProps = createElemProps(\"TestElement\", iModel, newModelId, spatialCategoryId, index);\r\n const testElement = iModel.elements.createElement(elementProps);\r\n const elementId = iModel.elements.insertElement(testElement.toJSON());\r\n assert.isTrue(Id64.isValidId64(elementId), \"element insert failed\");\r\n\r\n if (index % 2 === 0) {\r\n const aspectId = iModel.elements.insertAspect(createElemAspect(\"TestElementAspect\", iModel, elementId, undefined));\r\n assert.isTrue(Id64.isValidId64(aspectId), \"element aspect insert failed\");\r\n }\r\n elementIds.push(elementId);\r\n }\r\n\r\n // Add two instances of feature class instance with a navigation property\r\n const elementWithNavProp = iModel.elements.createElement(createElemWithNavProp(\"TestFeature\", iModel, newModelId, spatialCategoryId, ++index, elementIds.pop()!));\r\n assert.isTrue(Id64.isValidId64(iModel.elements.insertElement(elementWithNavProp.toJSON())), \"element with nav props insert failed\");\r\n\r\n const anotherElementWithNavProp = iModel.elements.createElement(createElemWithNavProp(\"TestFeature\", iModel, newModelId, spatialCategoryId, ++index, elementIds.pop()!));\r\n assert.isTrue(Id64.isValidId64(iModel.elements.insertElement(anotherElementWithNavProp.toJSON())), \"element with nav props insert failed\");\r\n\r\n iModel.saveChanges();\r\n iModel.close();\r\n }\r\n}"]}
1
+ {"version":3,"file":"ECSqlDatasets.js","sourceRoot":"","sources":["../../../../../src/test/ecsql/dataset/ECSqlDatasets.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlTestGenerator.js","sourceRoot":"","sources":["../../../../../src/test/ecsql/src/ECSqlTestGenerator.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\n\r\nimport { IModelDb, SnapshotDb } from \"../../../core-backend\";\r\nimport { DbResult } from \"@itwin/core-bentley\";\r\nimport { ECSqlValueType, QueryOptionsBuilder, QueryPropertyMetaData, QueryRowFormat } from \"@itwin/core-common\";\r\nimport * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport * as crypto from \"crypto\";\r\nimport { ECSqlDatasets } from \"../dataset/ECSqlDatasets\";\r\nimport { KnownTestLocations } from \"../../KnownTestLocations\";\r\nimport { format } from \"sql-formatter\";\r\n\r\n// Call like this:\r\n// node lib\\cjs\\test\\ecsql\\src\\ECSqlTestGenerator.js AllProperties.bim \"SELECT * FROM meta.ECSchemaDef LIMIT 2\" -t\r\n// node lib\\cjs\\test\\ecsql\\src\\ECSqlTestGenerator.js AllProperties.bim \"SELECT te.ECInstanceId [MyId], te.s, te.DT [Date], row_number() over(PARTITION BY te.DT ORDER BY te.ECInstanceId) as [RowNumber] from aps.TestElement te WHERE te.i < 106\" -t\r\nasync function runConcurrentQuery(imodel: IModelDb, sql: string): Promise<{ metadata: any[], rows: any[] }> {\r\n const queryOptions: QueryOptionsBuilder = new QueryOptionsBuilder();\r\n queryOptions.setRowFormat(QueryRowFormat.UseECSqlPropertyNames);\r\n const reader = imodel.createQueryReader(sql, undefined, queryOptions.getOptions());\r\n const rows = await reader.toArray();\r\n const metadata = await reader.getMetaData();\r\n metadata.forEach((value: QueryPropertyMetaData) => delete (value as any).extendType);\r\n return { metadata, rows };\r\n}\r\n\r\nfunction pullAdditionalMetadataThroughECSqlStatement(imodel: IModelDb, metadata: any[], sql: string): void {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n using stmt = imodel.prepareStatement(sql);\r\n if (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n const colCount = stmt.getColumnCount();\r\n if (colCount !== metadata.length) {\r\n // eslint-disable-next-line no-console\r\n console.error(`Column count mismatch: ${colCount} != ${metadata.length}. Not generating metadata from statement.`);\r\n return;\r\n }\r\n for (let i = 0; i < colCount; i++) {\r\n const colInfo = stmt.getValue(i).columnInfo;\r\n metadata[i].type = ECSqlValueType[colInfo.getType()];\r\n const originPropertyName = colInfo.getOriginPropertyName();\r\n if (originPropertyName !== undefined)\r\n metadata[i].originPropertyName = originPropertyName;\r\n }\r\n }\r\n}\r\n\r\nfunction arrayToMarkdownTable(data: any[]): string {\r\n if (data.length === 0) {\r\n return \"\";\r\n }\r\n\r\n const headers: string[] = Array.from(data.reduce((headersSet, row) => {\r\n Object.keys(row).forEach(header => headersSet.add(header));\r\n return headersSet;\r\n }, new Set<string>()));\r\n\r\n const columnWidths = headers.map(header =>\r\n Math.max(header.length, ...data.map(row => String(row[header]).length))\r\n );\r\n\r\n const formatRow = (row: any) =>\r\n `| ${headers.map((header, i) => String(row[header]).padEnd(columnWidths[i])).join(\" | \")} |`;\r\n\r\n const headerRow = formatRow(headers.reduce((acc, header) => ({ ...acc, [header]: header }), {}));\r\n const separatorRow = `| ${columnWidths.map(width => \"-\".repeat(width)).join(\" | \")} |`;\r\n const dataRows = data.map(formatRow);\r\n\r\n return [headerRow, separatorRow, ...dataRows].join(\"\\n\");\r\n}\r\n\r\nfunction generateHash(input: string): string {\r\n return crypto.createHash('sha256').update(input).digest('hex').substring(0, 8);\r\n}\r\n\r\nfunction writeMarkdownFile(dataset: string, sql: string, columns: any[], results: any[], useTables: boolean): void {\r\n const hash = generateHash(sql);\r\n if (sql.length > 100) { // we format the SQL if it's too long\r\n sql = format(sql, { language: \"sqlite\", keywordCase: \"upper\", \"tabWidth\": 2, indentStyle: \"standard\", logicalOperatorNewline: \"after\" });\r\n }\r\n\r\n let markdownContent = `# GeneratedTest #${dataset} - ${hash}\r\n\r\n- dataset: ${dataset}\r\n\r\n\\`\\`\\`sql\r\n${sql}\r\n\\`\\`\\`\r\n`;\r\n\r\n if (useTables) {\r\n markdownContent += `\r\n${arrayToMarkdownTable(columns)}\r\n\r\n${arrayToMarkdownTable(results)}\r\n\r\n`;\r\n } else {\r\n markdownContent += `\r\n\\`\\`\\`json\r\n${JSON.stringify({ columns }, null, 2)}\r\n\\`\\`\\`\r\n\r\n\\`\\`\\`json\r\n${JSON.stringify(results, null, 2)}\r\n\\`\\`\\`\r\n\r\n`;\r\n }\r\n\r\n const outputFilePath = path.join(__dirname, \"generated.ecsql.md\");\r\n fs.appendFileSync(outputFilePath, markdownContent, \"utf-8\");\r\n // eslint-disable-next-line no-console\r\n console.log(`Results written to ${outputFilePath}`);\r\n}\r\n\r\nasync function main() {\r\n const args = process.argv.slice(2);\r\n if (args.length < 2) {\r\n // eslint-disable-next-line no-console\r\n console.error(\"Usage: ts-node ECDbMarkdownTestGenerator.ts <dataset> <sql>\");\r\n process.exit(1);\r\n }\r\n\r\n const [dataset, sql, tablesFlag] = args;\r\n const useTables = tablesFlag === \"-t\";\r\n let imodel: IModelDb | undefined;\r\n try {\r\n await ECSqlDatasets.generateFiles();\r\n const datasetFilePath = path.join(KnownTestLocations.outputDir, \"ECSqlTests\", dataset);\r\n imodel = SnapshotDb.openFile(datasetFilePath);\r\n const { metadata, rows } = await runConcurrentQuery(imodel, sql);\r\n pullAdditionalMetadataThroughECSqlStatement(imodel, metadata, sql);\r\n writeMarkdownFile(dataset, sql, metadata, rows, useTables);\r\n imodel.close();\r\n imodel = undefined;\r\n } catch (error) {\r\n // eslint-disable-next-line no-console\r\n console.error(\"Error running query:\", error);\r\n if (imodel) {\r\n imodel.close();\r\n }\r\n process.exit(1);\r\n }\r\n}\r\n\r\nmain().catch((error) => {\r\n // eslint-disable-next-line no-console\r\n console.error(\"Unhandled error in main:\", error);\r\n process.exit(1);\r\n});"]}
1
+ {"version":3,"file":"ECSqlTestGenerator.js","sourceRoot":"","sources":["../../../../../src/test/ecsql/src/ECSqlTestGenerator.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlTestParser.js","sourceRoot":"","sources":["../../../../../src/test/ecsql/src/ECSqlTestParser.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 * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport { marked, Tokens } from \"marked\";\r\n\r\nexport interface ECDbTestProps {\r\n fileName: string;\r\n title: string;\r\n\r\n // Things from properties:\r\n only?: boolean; // This flag handles the only property to filter tests\r\n skip?: string; // This flag handles the skip property to filter tests\r\n dataset?: string;\r\n mode: ECDbTestMode;\r\n rowFormat: ECDbTestRowFormat;\r\n abbreviateBlobs: boolean;\r\n convertClassIdsToClassNames: boolean;\r\n errorDuringPrepare?: boolean;\r\n indexesToIncludeInResults?: number[]; // We now have the feature to check only certain columns of expected results\r\n // but if the rowFormat is ECSqlIndexes then there is no way to uniquely identify the columns, in that case this flag is used to include certain property indexes\r\n // for checking and ignore the rest, if this flag is not given while the rowFormat is ECSqlIndexes then the expected Results column\r\n // will assume an incremental 0 based indexing by default. This flag serves as a mapping for the actual results while checking with the expected results.\r\n\r\n // TODO: implement, it's currently being parsed but not used\r\n stepStatus?: string;\r\n\r\n // Things from code blocks or tables\r\n sql?: string;\r\n expectedResults?: { [key: string]: any }[] | any[];\r\n columnInfo?: ColumnInfoProps[];\r\n\r\n // Things from lists\r\n binders?: ECDbTestBinderProps[];\r\n}\r\n\r\nexport interface ECDbTestBinderProps {\r\n indexOrName: string;\r\n type: string;\r\n value: string;\r\n}\r\n\r\nexport interface ColumnInfoProps{\r\n name: string;\r\n className?: string;\r\n accessString?: string;\r\n generated?: boolean;\r\n index?: number;\r\n jsonName?: string;\r\n // expected extendedType value should be given when we know that the actual column info extendedType will be a valid non empty string for test to pass.\r\n // This extendedType value is internally used to check both extendType and extendedType values of column metadata.\r\n extendedType?: string;\r\n type?: string; // type is used on ECSqlStatement because it can differ from TypeName\r\n typeName?: string; // typeName is used on ConcurrentQuery\r\n originPropertyName?: string; // only supported for ECSqlStatement\r\n}\r\n\r\nexport const columnInfoPropsKeys: Set<keyof ColumnInfoProps> = new Set([\r\n \"name\",\r\n \"className\",\r\n \"accessString\",\r\n \"generated\",\r\n \"index\",\r\n \"jsonName\",\r\n \"extendedType\",\r\n \"type\",\r\n \"typeName\",\r\n \"originPropertyName\",\r\n]);\r\n\r\n/* interface QueryPropertyMetaData\r\n className: string;\r\n accessString?: string;\r\n generated: boolean;\r\n index: number;\r\n jsonName: string;\r\n name: string;\r\n extendType: string;\r\n typeName: string;\r\n*/\r\n\r\nfunction isColumnInfoProps(obj: any): obj is ColumnInfoProps {\r\n const numberOfKeys = typeof obj === \"object\" ? Object.keys(obj).length : 0;\r\n const isValid = typeof obj === \"object\" &&\r\n typeof obj.name === \"string\" &&\r\n (obj.className === undefined || typeof obj.className === \"string\") &&\r\n (obj.accessString === undefined || typeof obj.accessString === \"string\") &&\r\n (obj.generated === undefined || typeof obj.generated === \"boolean\") &&\r\n (obj.index === undefined || typeof obj.index === \"number\") &&\r\n (obj.jsonName === undefined || typeof obj.jsonName === \"string\") &&\r\n (obj.extendedType === undefined || typeof obj.extendedType === \"string\") &&\r\n (obj.type === undefined || typeof obj.type === \"string\") &&\r\n (obj.typeName === undefined || typeof obj.typeName === \"string\");\r\n\r\n if (!isValid) {\r\n const errors: string[] = [];\r\n if (typeof obj !== \"object\") errors.push(\"Object is not of type 'object'\");\r\n if (numberOfKeys < 1 || numberOfKeys > 7) errors.push(\"Number of keys is not between 1 and 7\");\r\n if (typeof obj.name !== \"string\") errors.push(\"Property 'name' is not of type 'string'\");\r\n if (obj.className !== undefined && typeof obj.className !== \"string\") errors.push(\"Property 'className' is not of type 'string'\");\r\n if (obj.accessString !== undefined && typeof obj.accessString !== \"string\") errors.push(\"Property 'accessString' is not of type 'string'\");\r\n if (obj.generated !== undefined && typeof obj.generated !== \"boolean\") errors.push(\"Property 'generated' is not of type 'boolean'\");\r\n if (obj.index !== undefined && typeof obj.index !== \"number\") errors.push(\"Property 'index' is not of type 'number'\");\r\n if (obj.jsonName !== undefined && typeof obj.jsonName !== \"string\") errors.push(\"Property 'jsonName' is not of type 'string'\");\r\n if (obj.extendedType !== undefined && typeof obj.extendedType !== \"string\") errors.push(\"Property 'extendedType' is not of type 'string'\");\r\n if (obj.type !== undefined && typeof obj.type !== \"string\") errors.push(\"Property 'type' is not of type 'string'\");\r\n if (obj.typeName !== undefined && typeof obj.typeName !== \"string\") errors.push(\"Property 'typeName' is not of type 'string'\");\r\n logWarning(`Validation failed for ColumnInfoProps. Object: ${JSON.stringify(obj)}. Errors: ${errors.join(\", \")}`);\r\n }\r\n\r\n return isValid;\r\n}\r\n\r\nexport enum ECDbTestMode{\r\n Both = \"Both\",\r\n Statement = \"Statement\",\r\n ConcurrentQuery = \"ConcurrentQuery\",\r\n};\r\n\r\nexport enum ECDbTestRowFormat {\r\n ECSqlNames = \"ECSqlNames\",\r\n ECSqlIndexes = \"ECSqlIndexes\",\r\n JsNames = \"JsNames\",\r\n}\r\n\r\nfunction tableTextToValue(text: string) : any {\r\n if(text.startsWith(\"\\\"\") && text.endsWith(\"\\\"\"))\r\n return text.slice(1,text.length-1);\r\n if(text === \"null\")\r\n return null;\r\n if(text === \"undefined\")\r\n return undefined;\r\n if(text.startsWith(\"{\") || text.startsWith(\"[\"))\r\n return JSON.parse(text);\r\n if(text === \"true\" || text === \"false\")\r\n return text === \"true\";\r\n if(text.startsWith(\"0x\"))\r\n return text; // we use this for IDs and they are handled as strings, the parseInt below would attempt to convert them to numbers\r\n if(/^-?\\d+(\\.\\d+)?$/.test(text)) {\r\n const flt = parseFloat(text);\r\n if(!Number.isNaN(flt))\r\n return flt;\r\n }\r\n\r\n if(/^-?\\d+$/.test(text)) {\r\n // eslint-disable-next-line radix\r\n const asInt = parseInt(text);\r\n if(!Number.isNaN(asInt))\r\n return asInt;\r\n }\r\n\r\n return text;\r\n}\r\n\r\nexport function buildBinaryData(obj: any): any { //TODO: we should do this during table parsing\r\n for(const key in obj) {\r\n if(typeof obj[key] === \"string\" && obj[key].startsWith(\"BIN(\") && obj[key].endsWith(\")\"))\r\n obj[key] = understandAndReplaceBinaryData(obj[key])\r\n else if(typeof obj[key] === \"object\" || Array.isArray(obj[key]))\r\n obj[key] = buildBinaryData(obj[key])\r\n }\r\n return obj;\r\n}\r\n\r\nfunction understandAndReplaceBinaryData(str: string): any{\r\n const startInd = str.indexOf(\"(\") + 1;\r\n const endInd = str.indexOf(\")\");\r\n str = str.slice(startInd, endInd);\r\n const ans: number[] = []\r\n const numbers: string[] = str.split(\",\");\r\n numbers.forEach((value:string)=>\r\n {\r\n value = value.trim();\r\n // eslint-disable-next-line radix\r\n ans.push(parseInt(value));\r\n }\r\n );\r\n return Uint8Array.of(...ans);\r\n}\r\n\r\n\r\nexport class ECDbMarkdownTestParser {\r\n public static parse(): ECDbTestProps[] {\r\n const testAssetsDir = path.join(__dirname ,\"..\",\"queries\");\r\n const testFiles = fs.readdirSync(testAssetsDir, \"utf-8\").filter((fileName) => fileName.toLowerCase().endsWith(\"ecsql.md\"));\r\n const out: ECDbTestProps[] = [];\r\n\r\n for (const fileName of testFiles) {\r\n try {\r\n const tests = this.parseFile(testAssetsDir, fileName);\r\n out.push(...tests);\r\n } catch (error) {\r\n logWarning(`Failed to parse file ${fileName}. Error: ${error instanceof Error ? error.message : \"Unknown error\"}`);\r\n }\r\n }\r\n return out;\r\n }\r\n\r\n private static parseFile(testAssetsDir: string, fileName: string): ECDbTestProps[] {\r\n const markdownFilePath = path.join(testAssetsDir, fileName);\r\n const baseFileName = fileName.replace(/\\.ecdbtest\\.md$/i, \"\");\r\n const markdownContent = fs.readFileSync(markdownFilePath, \"utf-8\");\r\n const tokens = marked.lexer(markdownContent);\r\n\r\n const out: ECDbTestProps[] = [];\r\n let currentTest: ECDbTestProps | undefined;\r\n\r\n for (const token of tokens) {\r\n switch (token.type) {\r\n case \"space\":\r\n case \"html\":\r\n case \"paragraph\":\r\n case \"hr\":\r\n continue;\r\n case \"heading\":\r\n if (currentTest !== undefined) {\r\n out.push(currentTest);\r\n }\r\n currentTest = { title: token.text, mode: ECDbTestMode.Both, fileName: baseFileName,\r\n rowFormat: ECDbTestRowFormat.ECSqlNames, abbreviateBlobs: false, convertClassIdsToClassNames: false };\r\n break;\r\n case \"list\":\r\n this.handleListToken(token as Tokens.List, currentTest, markdownFilePath);\r\n break;\r\n case \"code\":\r\n this.handleCodeToken(token as Tokens.Code, currentTest, markdownFilePath);\r\n break;\r\n case \"table\":\r\n this.handleTableToken(token as Tokens.Table, currentTest, markdownFilePath);\r\n break;\r\n default:\r\n logWarning(`Unknown token type ${token.type} found in file ${markdownFilePath}. Skipping.`);\r\n break;\r\n }\r\n }\r\n\r\n if (currentTest !== undefined) {\r\n out.push(currentTest);\r\n }\r\n return out;\r\n }\r\n\r\n\r\n private static handleListToken(token: Tokens.List, currentTest: ECDbTestProps | undefined, markdownFilePath: string) {\r\n if (currentTest === undefined) {\r\n logWarning(`List token found without a test title in file ${markdownFilePath}. Skipping.`);\r\n return;\r\n }\r\n\r\n const variableRegex = /^(\\w+):\\s*(.+)$/;\r\n const bindRegex = /^bind(\\w+)\\s([^,\\s]+),\\s?(.+)$/;\r\n for (const item of token.items) {\r\n const match = item.text.match(variableRegex);\r\n if (match) {\r\n const key = match[1];\r\n const value = match[2];\r\n switch (key.toLowerCase()) {\r\n case \"dataset\":\r\n currentTest.dataset = value;\r\n continue;\r\n case \"errorduringprepare\":\r\n currentTest.errorDuringPrepare = value.toLowerCase() === \"true\";\r\n continue;\r\n case \"stepstatus\":\r\n currentTest.stepStatus = value;\r\n continue;\r\n case \"only\":\r\n currentTest.only = value.toLowerCase() === \"true\";\r\n continue;\r\n case \"skip\":\r\n currentTest.skip = value;\r\n continue;\r\n case \"mode\":\r\n this.handleMode(value, currentTest, markdownFilePath);\r\n continue;\r\n case \"rowformat\":\r\n this.handleRowFormat(value, currentTest, markdownFilePath);\r\n continue;\r\n case \"abbreviateblobs\":\r\n currentTest.abbreviateBlobs = value.toLowerCase() === \"true\";\r\n continue;\r\n case \"convertclassidstoclassnames\":\r\n currentTest.convertClassIdsToClassNames = value.toLowerCase() === \"true\";\r\n continue;\r\n case \"indexestoinclude\":\r\n currentTest.indexesToIncludeInResults = this.handleValidIndexList(value);\r\n continue;\r\n }\r\n }\r\n const bindMatch = item.text.match(bindRegex);\r\n if (bindMatch) {\r\n currentTest.binders = currentTest.binders || [];\r\n currentTest.binders.push({ indexOrName: bindMatch[2], type: bindMatch[1], value: bindMatch[3] });\r\n continue;\r\n }\r\n }\r\n }\r\n\r\n private static handleMode(value: string, currentTest: ECDbTestProps, markdownFilePath: string) {\r\n switch(value.toLowerCase()) {\r\n case \"statement\":\r\n currentTest.mode = ECDbTestMode.Statement;\r\n break;\r\n case \"concurrentquery\":\r\n currentTest.mode = ECDbTestMode.ConcurrentQuery;\r\n break;\r\n case \"both\":\r\n currentTest.mode = ECDbTestMode.Both;\r\n break;\r\n default:\r\n logWarning(`Mode value (${value}) is not recognized in file ${markdownFilePath} and test ${currentTest.title}. Skipping.`);\r\n }\r\n }\r\n\r\n private static handleRowFormat(value: string, currentTest: ECDbTestProps, markdownFilePath: string) {\r\n switch(value.toLowerCase()) {\r\n case \"ecsqlnames\":\r\n currentTest.rowFormat = ECDbTestRowFormat.ECSqlNames;\r\n break;\r\n case \"ecsqlindexes\":\r\n currentTest.rowFormat = ECDbTestRowFormat.ECSqlIndexes;\r\n break;\r\n case \"jsnames\":\r\n currentTest.rowFormat = ECDbTestRowFormat.JsNames;\r\n break;\r\n default:\r\n logWarning(`Row Format value (${value}) is not recognized in file ${markdownFilePath} and test ${currentTest.title}. Skipping.`);\r\n }\r\n }\r\n\r\nprivate static handleValidIndexList(obj: string): number[] | undefined {\r\n try{\r\n const numsArr = JSON.parse(obj);\r\n if(Array.isArray(numsArr) && numsArr.every((val: any)=> typeof val === \"number\"))\r\n return numsArr;\r\n logWarning(\"The given value is not valid for the property indexestoinclude\");\r\n return undefined;\r\n }\r\n catch{\r\n logWarning(\"The given value is not valid for the property indexestoinclude\");\r\n return undefined;\r\n }\r\n}\r\n\r\n private static handleCodeToken(token: Tokens.Code, currentTest: ECDbTestProps | undefined, markdownFilePath: string) {\r\n if (currentTest === undefined) {\r\n logWarning(`Code token found without a test title in file ${markdownFilePath}. Skipping.`);\r\n return;\r\n }\r\n\r\n if (token.lang === \"sql\") {\r\n currentTest.sql = token.text;\r\n } else if (token.lang === \"json\") {\r\n let json: any;\r\n try {\r\n json = JSON.parse(token.text);\r\n } catch (error) {\r\n if (error instanceof Error) {\r\n logWarning(`Failed to parse JSON ${token.text} in file ${markdownFilePath}. ${error.message} Skipping.`);\r\n } else {\r\n logWarning(`Failed to parse SON ${token.text} in file ${markdownFilePath}. Unknown error. Skipping.`);\r\n }\r\n }\r\n\r\n if (typeof json === \"object\" && Array.isArray(json.columns)) {\r\n this.handleJSONColumnMetadata(json, currentTest, markdownFilePath);\r\n return;\r\n }\r\n\r\n this.handleJSONExpectedResults(json, currentTest); // TODO: validate the expected results\r\n } else {\r\n logWarning(`Unknown code language ${token.lang} found in file ${markdownFilePath}. Skipping.`);\r\n }\r\n }\r\n\r\n private static handleJSONColumnMetadata(json: any, currentTest: ECDbTestProps, markdownFilePath: string) {\r\n const extraProps: Set<string> = new Set();\r\n\r\n if (json.columns.every(isColumnInfoProps)) {\r\n currentTest.columnInfo = json.columns;\r\n for (const column of json.columns) {\r\n for (const key in column) {\r\n if (!columnInfoPropsKeys.has(key as keyof ColumnInfoProps)) {\r\n extraProps.add(key);\r\n }\r\n }\r\n }\r\n\r\n if (extraProps.size > 0) {\r\n logWarning(`Found extra properties in column infos: ${Array.from(extraProps).join(\", \")} in file '${markdownFilePath}' test '${currentTest.title}'.`);\r\n }\r\n } else {\r\n logWarning(`Columns format in file '${markdownFilePath}' test '${currentTest.title}' failed type guard. Skipping.`);\r\n }\r\n }\r\n\r\n private static handleJSONExpectedResults(json: any, currentTest: ECDbTestProps) {\r\n currentTest.expectedResults = json\r\n }\r\n\r\n private static handleTableToken(token: Tokens.Table, currentTest: ECDbTestProps | undefined, markdownFilePath: string) {\r\n if (currentTest === undefined) {\r\n logWarning(`Table token found without a test title in file ${markdownFilePath}. Skipping.`);\r\n return;\r\n }\r\n\r\n this.handleTable(token, currentTest, markdownFilePath);\r\n }\r\n\r\n private static handleTable(token: Tokens.Table, currentTest: ECDbTestProps, markdownFilePath: string) {\r\n if (token.header.length > 0 && currentTest.columnInfo === undefined && columnInfoPropsKeys.has(token.header[0].text as keyof ColumnInfoProps)) {\r\n this.handleColumnTable(token, currentTest, markdownFilePath);\r\n return;\r\n }\r\n else if(token.header.length > 0 && token.header[0].text === \"\"){\r\n this.handleExpectedResultsTableForECSqlPropertyIndexesOption(token, currentTest, markdownFilePath);\r\n } else {\r\n this.handleExpectedResultsTable(token, currentTest, markdownFilePath);\r\n }\r\n }\r\n\r\n private static handleColumnTable(token: Tokens.Table, currentTest: ECDbTestProps, markdownFilePath: string) {\r\n const columnInfos: any[] = [];\r\n for (const row of token.rows) {\r\n if (row.length < 1 || row.length !== token.header.length) {\r\n logWarning(`Rows in a expected result table must have a minimum of 1 cell, and as many cells as there are headers. ${markdownFilePath}. Skipping.`);\r\n continue;\r\n }\r\n const columnInfo: { [key: string]: any } = {};\r\n for (let i = 0; i < token.header.length; i++) {\r\n const header = token.header[i].text;\r\n const cell = row[i].text;\r\n columnInfo[header] = tableTextToValue(cell);\r\n }\r\n columnInfos.push(columnInfo);\r\n }\r\n\r\n this.handleJSONColumnMetadata({columns: columnInfos}, currentTest, markdownFilePath);\r\n }\r\n\r\n private static handleExpectedResultsTable(token: Tokens.Table, currentTest: ECDbTestProps, markdownFilePath: string) {\r\n if(currentTest.expectedResults !== undefined) {\r\n logWarning(`Expected results already set for test ${currentTest.title} in file ${markdownFilePath}. Skipping.`);\r\n return;\r\n }\r\n currentTest.expectedResults = [];\r\n for (const row of token.rows) {\r\n if (row.length < 1 || row.length !== token.header.length) {\r\n logWarning(`Rows in a expected result table must have a minimum of 1 cell, and as many cells as there are headers. ${markdownFilePath}. Skipping.`);\r\n continue;\r\n }\r\n\r\n const expectedResult: { [key: string]: any } = {};\r\n for (let i = 0; i < token.header.length; i++) {\r\n const header = token.header[i].text;\r\n const cell = row[i].text;\r\n const value = tableTextToValue(cell);\r\n if (value !== undefined)\r\n expectedResult[header] = value;\r\n }\r\n currentTest.expectedResults.push(expectedResult);\r\n }\r\n }\r\n\r\n private static handleExpectedResultsTableForECSqlPropertyIndexesOption(token: Tokens.Table, currentTest: ECDbTestProps, markdownFilePath: string) {\r\n if(currentTest.expectedResults !== undefined) {\r\n logWarning(`Expected results already set for test ${currentTest.title} in file ${markdownFilePath}. Skipping.`);\r\n return;\r\n }\r\n currentTest.expectedResults = [];\r\n for (const row of token.rows) {\r\n if (row.length < 1 || row.length !== token.header.length) {\r\n logWarning(`Rows in a expected result table must have a minimum of 1 cell, and as many cells as there are headers. ${markdownFilePath}. Skipping.`);\r\n continue;\r\n }\r\n\r\n const expectedResult: any[] = [];\r\n for (let i = 0; i < token.header.length; i++) {\r\n const cell = row[i].text;\r\n const value = tableTextToValue(cell);\r\n if (value !== undefined)\r\n expectedResult.push(value);\r\n }\r\n currentTest.expectedResults.push(expectedResult);\r\n }\r\n }\r\n}\r\n\r\nfunction logWarning(message: string) {\r\n // eslint-disable-next-line no-console\r\n console.log(`\\x1b[33m${message}\\x1b[0m`);\r\n}"]}
1
+ {"version":3,"file":"ECSqlTestParser.js","sourceRoot":"","sources":["../../../../../src/test/ecsql/src/ECSqlTestParser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ECSqlTestRunner.test.js","sourceRoot":"","sources":["../../../../../src/test/ecsql/src/ECSqlTestRunner.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 { DbResult } from \"@itwin/core-bentley\";\r\nimport { ECSqlRowArg, ECSqlStatement, SnapshotDb } from \"../../../core-backend\";\r\nimport { KnownTestLocations } from \"../../KnownTestLocations\";\r\nimport { ECSqlReader, ECSqlValueType, QueryBinder, QueryOptions, QueryRowFormat } from \"@itwin/core-common\";\r\nimport { buildBinaryData, ECDbMarkdownTestParser, ECDbTestMode, ECDbTestProps, ECDbTestRowFormat } from \"./ECSqlTestParser\";\r\nimport * as path from \"path\";\r\nimport * as fs from \"fs\";\r\nimport { ECSqlDatasets } from \"../dataset/ECSqlDatasets\";\r\nimport { Point2d, Point3d } from \"@itwin/core-geometry\";\r\n\r\nenum TestDataset {\r\n AllProperties = \"AllProperties.bim\"\r\n}\r\n\r\nconst snapshotDbs: { [key in TestDataset]?: SnapshotDb } = {};\r\n\r\ndescribe(\"Markdown based ECDb test runner\", async () => {\r\n before(async () => {\r\n await ECSqlDatasets.generateFiles();\r\n const datasetFilePath = path.join(KnownTestLocations.outputDir, \"ECSqlTests\", TestDataset.AllProperties);\r\n if (!fs.existsSync(datasetFilePath)) {\r\n throw new Error(`Dataset file ${datasetFilePath} does not exist`);\r\n }\r\n snapshotDbs[TestDataset.AllProperties] = SnapshotDb.openFile(datasetFilePath);\r\n });\r\n\r\n after(() => {\r\n for (const key in snapshotDbs) {\r\n if (snapshotDbs.hasOwnProperty(key)) {\r\n (snapshotDbs[key as keyof typeof snapshotDbs])?.close();\r\n }\r\n }\r\n });\r\n const tests: ECDbTestProps[] = ECDbMarkdownTestParser.parse();\r\n\r\n //TODO: Mechanism to run a single test, put something like it.only into the test md which causes this loop to only run those tests\r\n for (const test of tests) {\r\n if (!test.dataset) {\r\n logWarning(`Skipping test ${test.title} because it does not have a dataset`);\r\n continue;\r\n }\r\n\r\n if (test.dataset.toLowerCase() !== TestDataset.AllProperties.toLowerCase()) {\r\n logWarning(`Skipping test ${test.title} because dataset ${test.dataset} is not recognized`);\r\n continue;\r\n }\r\n const dataset = TestDataset.AllProperties;\r\n\r\n if (test.mode === ECDbTestMode.Both || test.mode === ECDbTestMode.Statement) {\r\n if (test.skip)\r\n it(`${test.fileName}: ${test.title} (Statement) skipped. Reason: ${test.skip}`);\r\n else if (test.only)\r\n it.only(`${test.fileName}: ${test.title} (Statement)`, () => {\r\n runECSqlStatementTest(test, dataset);\r\n });\r\n else\r\n it(`${test.fileName}: ${test.title} (Statement)`, () => {\r\n runECSqlStatementTest(test, dataset);\r\n });\r\n }\r\n\r\n if (test.mode === ECDbTestMode.Both || test.mode === ECDbTestMode.ConcurrentQuery) {\r\n if (test.skip)\r\n it(`${test.fileName}: ${test.title} (ConcurrentQuery) skipped. Reason: ${test.skip}`);\r\n else if (test.only)\r\n it.only(`${test.fileName}: ${test.title} (ConcurrentQuery)`, async () => {\r\n await runConcurrentQueryTest(test, dataset);\r\n });\r\n else\r\n it(`${test.fileName}: ${test.title} (ConcurrentQuery)`, async () => {\r\n await runConcurrentQueryTest(test, dataset);\r\n });\r\n }\r\n }\r\n});\r\n\r\nfunction runECSqlStatementTest(test: ECDbTestProps, dataset: TestDataset) {\r\n const imodel = snapshotDbs[dataset];\r\n if (!imodel) {\r\n assert.fail(`Dataset ${dataset} is not loaded`);\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n let stmt: ECSqlStatement | undefined;\r\n if (test.sql === undefined) {\r\n assert.fail(\"Test does not have an ECSql statement\");\r\n }\r\n\r\n try {\r\n // TODO: statement options should be exposed through the markdown\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n stmt = imodel.prepareStatement(test.sql); // TODO: Wire up logic for tests we expect to fail during prepare\r\n } catch (error: any) {\r\n if (test.errorDuringPrepare)\r\n return;\r\n else\r\n assert.fail(`Error during prepare of Statement: ${error.message}`);\r\n }\r\n\r\n if (test.errorDuringPrepare)\r\n assert.fail(`Statement is expected to fail during prepare`);\r\n\r\n try {\r\n if (test.binders !== undefined) {\r\n for (const binder of test.binders) {\r\n // eslint-disable-next-line radix\r\n let id: number | string = Number.parseInt(binder.indexOrName);\r\n if (isNaN(id))\r\n id = binder.indexOrName;\r\n\r\n switch (binder.type.toLowerCase()) { // TODO: replace props variables in binder.value\r\n case \"null\":\r\n stmt.bindNull(id);\r\n break;\r\n case \"string\":\r\n stmt.bindString(id, binder.value);\r\n break;\r\n case \"int\":\r\n // eslint-disable-next-line radix\r\n stmt.bindInteger(id, Number.parseInt(binder.value));\r\n break;\r\n case \"double\":\r\n stmt.bindDouble(id, Number.parseFloat(binder.value));\r\n break;\r\n case \"id\":\r\n stmt.bindId(id, binder.value);\r\n break;\r\n case \"idset\":\r\n const values: string[] = binder.value.slice(1, -1).split(\",\");\r\n const trimmedValues = values.map((value: string) =>\r\n value.trim()\r\n );\r\n stmt.bindIdSet(id, trimmedValues);\r\n break;\r\n case \"datetime\":\r\n stmt.bindDateTime(id, binder.value);\r\n break;\r\n case \"point2d\":\r\n const parsedVal2d = JSON.parse(binder.value);\r\n stmt.bindPoint2d(id, { x: parsedVal2d.X, y: parsedVal2d.Y });\r\n break;\r\n case \"point3d\":\r\n const parsedVal3d = JSON.parse(binder.value);\r\n stmt.bindPoint3d(id, { x: parsedVal3d.X, y: parsedVal3d.Y, z: parsedVal3d.Z });\r\n break;\r\n case \"blob\":\r\n const arrayValues: string[] = binder.value.slice(1, -1).split(\",\");\r\n const numbers = arrayValues.map((value: string) =>\r\n // eslint-disable-next-line radix\r\n parseInt(value.trim())\r\n );\r\n stmt.bindBlob(id, Uint8Array.of(...numbers));\r\n break;\r\n case \"navigation\":\r\n stmt.bindNavigation(id, JSON.parse(binder.value));\r\n break;\r\n case \"array\":\r\n stmt.bindArray(id, JSON.parse(binder.value));\r\n break;\r\n case \"struct\":\r\n stmt.bindStruct(id, JSON.parse(binder.value));\r\n break;\r\n default:\r\n assert.fail(`Unsupported binder type ${binder.type}`);\r\n } // switch binder.type\r\n } // for binder\r\n } // if test.binders\r\n\r\n let resultCount = 0;\r\n let stepResult: DbResult;\r\n while ((stepResult = stmt.step()) === DbResult.BE_SQLITE_ROW) {\r\n if (resultCount === 0 && test.columnInfo) {\r\n // Verify the columns on the first result row (TODO: for dynamic columns we have to do this every item)\r\n const colCount = stmt.getColumnCount();\r\n assert.strictEqual(colCount, test.columnInfo.length, `Expected ${test.columnInfo.length} columns but got ${colCount}`);\r\n for (let i = 0; i < colCount; i++) {\r\n const colInfo = stmt.getValue(i).columnInfo;\r\n const expectedColInfo = test.columnInfo[i];\r\n // cannot directly compare against colInfo because it has methods instead of getters\r\n assert.strictEqual(colInfo.getPropertyName(), expectedColInfo.name, `Expected property name ${expectedColInfo.name} but got ${colInfo.getPropertyName()} for column index ${i}`);\r\n //if (expectedColInfo.isDynamicProp !== undefined) TODO: Is this not exposed?\r\n // assert.strictEqual(colInfo..isDynamicProperty, expectedColInfo.isDynamicProp, `Expected dynamic property ${expectedColInfo.isDynamicProp} but got ${colInfo.isDynamicProperty} for column index ${i}`);\r\n // TODO: Extended type name not exposed??\r\n if (expectedColInfo.generated !== undefined)\r\n assert.strictEqual(colInfo.isGeneratedProperty(), expectedColInfo.generated, `Expected generated property ${expectedColInfo.generated} but got ${colInfo.isGeneratedProperty()} for column index ${i}`);\r\n if (expectedColInfo.accessString !== undefined)\r\n assert.strictEqual(colInfo.getAccessString(), expectedColInfo.accessString, `Expected access string ${expectedColInfo.accessString} but got ${colInfo.getAccessString()} for column index ${i}`);\r\n if (expectedColInfo.type !== undefined)\r\n assert.strictEqual(ECSqlValueType[colInfo.getType()], expectedColInfo.type, `Expected type ${expectedColInfo.type} but got ${ECSqlValueType[colInfo.getType()]} for column index ${i}`);\r\n if (expectedColInfo.originPropertyName !== undefined)\r\n assert.strictEqual(colInfo.getOriginPropertyName(), expectedColInfo.originPropertyName, `Expected Origin PropertyName ${expectedColInfo.originPropertyName} but got ${colInfo.getOriginPropertyName()} for column index ${i}`);\r\n }\r\n }\r\n\r\n if (test.expectedResults !== undefined && test.expectedResults.length > resultCount) {\r\n let expectedResult = test.expectedResults[resultCount];\r\n expectedResult = buildBinaryData(expectedResult);\r\n const rowArgs: ECSqlRowArg = { rowFormat: getRowFormat(test.rowFormat), classIdsToClassNames: test.convertClassIdsToClassNames };\r\n const actualResult = stmt.getRow(rowArgs);\r\n checkingExpectedResults(test.rowFormat, actualResult, expectedResult, test.indexesToIncludeInResults);\r\n }\r\n resultCount++;\r\n }\r\n stmt[Symbol.dispose]();\r\n stmt = undefined;\r\n\r\n if (resultCount === 0 && test.stepStatus) {\r\n const stepResultString = DbResult[stepResult];\r\n assert.strictEqual(stepResultString, test.stepStatus, `Expected step status ${test.stepStatus} but got ${stepResultString}`);\r\n }\r\n\r\n if (test.expectedResults && test.expectedResults.length !== resultCount) {\r\n assert.fail(`Expected ${test.expectedResults.length} rows but got ${resultCount}`);\r\n }\r\n } finally {\r\n if (stmt !== undefined)\r\n stmt[Symbol.dispose]();\r\n }\r\n}\r\n\r\nfunction getRowFormat(rowFormat: ECDbTestRowFormat): QueryRowFormat {\r\n switch (rowFormat) {\r\n case ECDbTestRowFormat.ECSqlNames:\r\n return QueryRowFormat.UseECSqlPropertyNames;\r\n case ECDbTestRowFormat.ECSqlIndexes:\r\n return QueryRowFormat.UseECSqlPropertyIndexes;\r\n case ECDbTestRowFormat.JsNames:\r\n return QueryRowFormat.UseJsPropertyNames;\r\n default:\r\n return QueryRowFormat.UseECSqlPropertyNames;\r\n }\r\n}\r\n\r\nasync function runConcurrentQueryTest(test: ECDbTestProps, dataset: TestDataset): Promise<void> {\r\n const imodel = snapshotDbs[dataset];\r\n if (!imodel) {\r\n assert.fail(`Dataset ${dataset} is not loaded`);\r\n }\r\n\r\n let reader: ECSqlReader;\r\n if (test.sql === undefined) {\r\n assert.fail(\"Test does not have an ECSql statement\");\r\n }\r\n let params: QueryBinder | undefined;\r\n if (test.binders !== undefined) {\r\n params = new QueryBinder();\r\n for (const binder of test.binders) {\r\n // eslint-disable-next-line radix\r\n let id: number | string = Number.parseInt(binder.indexOrName);\r\n if (isNaN(id))\r\n id = binder.indexOrName;\r\n\r\n switch (binder.type.toLowerCase()) { // TODO: replace props variables in binder.value\r\n case \"null\":\r\n params.bindNull(id);\r\n break;\r\n case \"string\":\r\n params.bindString(id, binder.value);\r\n break;\r\n case \"int\":\r\n // eslint-disable-next-line radix\r\n params.bindInt(id, Number.parseInt(binder.value));\r\n break;\r\n case \"long\":\r\n // eslint-disable-next-line radix\r\n params.bindLong(id, Number.parseInt(binder.value));\r\n break;\r\n case \"double\":\r\n params.bindDouble(id, Number.parseFloat(binder.value));\r\n break;\r\n case \"id\":\r\n params.bindId(id, binder.value);\r\n break;\r\n case \"idset\":\r\n const values: string[] = binder.value.slice(1, -1).split(\",\");\r\n const trimmedValues = values.map((value: string) =>\r\n value.trim()\r\n );\r\n params.bindIdSet(id, trimmedValues);\r\n break;\r\n case \"point2d\":\r\n const parsedVal2d = JSON.parse(binder.value);\r\n params.bindPoint2d(id, new Point2d(parsedVal2d.X, parsedVal2d.Y));\r\n break;\r\n case \"point3d\":\r\n const parsedVal3d = JSON.parse(binder.value);\r\n params.bindPoint3d(id, new Point3d(parsedVal3d.X, parsedVal3d.Y, parsedVal3d.Z));\r\n break;\r\n case \"blob\":\r\n const arrayValues: string[] = binder.value.slice(1, -1).split(\",\");\r\n const numbers = arrayValues.map((value: string) =>\r\n // eslint-disable-next-line radix\r\n parseInt(value.trim())\r\n );\r\n params.bindBlob(id, Uint8Array.of(...numbers));\r\n break;\r\n case \"struct\":\r\n params.bindStruct(id, JSON.parse(binder.value));\r\n break;\r\n default:\r\n assert.fail(`Unsupported binder type ${binder.type}`);\r\n } // switch binder.type\r\n } // for binder\r\n } // if test.binders\r\n\r\n const queryOptions: QueryOptions = {};\r\n queryOptions.rowFormat = getRowFormat(test.rowFormat);\r\n if (test.abbreviateBlobs)\r\n queryOptions.abbreviateBlobs = true;\r\n if (test.convertClassIdsToClassNames) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n queryOptions.convertClassIdsToClassNames = true;\r\n }\r\n try {\r\n reader = imodel.createQueryReader(test.sql, params, queryOptions); // TODO: Wire up logic for tests we expect to fail during prepare\r\n } catch (error: any) {\r\n assert.fail(`Error during creating QueryReader: ${error.message}`);\r\n }\r\n\r\n let resultCount = 0;\r\n let rows;\r\n try {\r\n rows = await reader.toArray();\r\n }\r\n catch (error: any) {\r\n if (test.errorDuringPrepare)\r\n return;\r\n else\r\n assert.fail(`Error during prepare of Concurrent Query: ${error.message}`);\r\n }\r\n\r\n if (test.errorDuringPrepare)\r\n assert.fail(`Statement is expected to fail during prepare`);\r\n\r\n const colMetaData = await reader.getMetaData();\r\n while (resultCount < rows.length) {\r\n if (resultCount === 0 && test.columnInfo) {\r\n // Verify the columns on the first result row (TODO: for dynamic columns we have to do this every item)\r\n assert.strictEqual(colMetaData.length, test.columnInfo.length, `Expected ${test.columnInfo.length} columns but got ${colMetaData.length}`);\r\n for (let i = 0; i < colMetaData.length; i++) {\r\n const colInfo = colMetaData[i];\r\n const expectedColInfo = test.columnInfo[i];\r\n // cannot directly compare against colInfo because it has methods instead of getters\r\n assert.strictEqual(colInfo.name, expectedColInfo.name, `Expected name ${expectedColInfo.name} but got ${colInfo.name} for column index ${i}`);\r\n if (expectedColInfo.generated !== undefined)\r\n assert.strictEqual(colInfo.generated, expectedColInfo.generated, `Expected generated property ${expectedColInfo.generated} but got ${colInfo.generated} for column index ${i}`);\r\n if (expectedColInfo.accessString !== undefined)\r\n assert.strictEqual(colInfo.accessString, expectedColInfo.accessString, `Expected access string ${expectedColInfo.accessString} but got ${colInfo.accessString} for column index ${i}`);\r\n if (expectedColInfo.typeName !== undefined)\r\n assert.strictEqual(colInfo.typeName, expectedColInfo.typeName, `Expected type name ${expectedColInfo.typeName} but got ${colInfo.typeName} for column index ${i}`);\r\n if (expectedColInfo.className !== undefined)\r\n assert.strictEqual(colInfo.className, expectedColInfo.className, `Expected class name ${expectedColInfo.className} but got ${colInfo.className} for column index ${i}`);\r\n assert.strictEqual(colInfo.extendedType, expectedColInfo.extendedType, `Expected extended type ${expectedColInfo.extendedType} but got ${colInfo.extendedType} for column index ${i}`);\r\n assert.strictEqual(colInfo.extendType, expectedColInfo.extendedType === undefined ? \"\" : expectedColInfo.extendedType, `Expected extend type ${expectedColInfo.extendedType === undefined ? \"\" : expectedColInfo.extendedType} but got ${colInfo.extendType} for column index ${i}`); // eslint-disable-line @typescript-eslint/no-deprecated\r\n }\r\n }\r\n\r\n if (test.expectedResults !== undefined && test.expectedResults.length > resultCount) {\r\n let expectedResult = test.expectedResults[resultCount];\r\n // replace props in expected result, TODO: optimize this\r\n expectedResult = buildBinaryData(expectedResult);\r\n\r\n const actualResult = rows[resultCount] // TODO: should we test getValue() as well?\r\n checkingExpectedResults(test.rowFormat, actualResult, expectedResult, test.indexesToIncludeInResults);\r\n }\r\n resultCount++;\r\n }\r\n\r\n // if (resultCount === 0 && test.stepStatus) {\r\n // const stepResultString = DbResult[stepResult];\r\n // assert.strictEqual(stepResultString, test.stepStatus, `Expected step status ${test.stepStatus} but got ${stepResultString}`);\r\n // }\r\n\r\n if (test.expectedResults && test.expectedResults.length !== resultCount) {\r\n assert.fail(`Expected ${test.expectedResults.length} rows but got ${resultCount}`);\r\n }\r\n}\r\n\r\nfunction checkingExpectedResults(rowFormat: ECDbTestRowFormat, actualResult: any, expectedResult: any, indexesToInclude?: number[]) {\r\n if (rowFormat === ECDbTestRowFormat.ECSqlIndexes && indexesToInclude) {\r\n let i: any = 0;\r\n for (const key of Object.keys(expectedResult)) {\r\n assert.deepEqual(actualResult[indexesToInclude[i]], expectedResult[key], `Expected ${JSON.stringify(expectedResult[key])} but got ${JSON.stringify(actualResult[indexesToInclude[i]])}`);\r\n i++;\r\n }\r\n }\r\n else {\r\n for (const key of Object.keys(expectedResult)) {\r\n assert.deepEqual(actualResult[key], expectedResult[key], `Expected ${JSON.stringify(expectedResult[key])} but got ${JSON.stringify(actualResult[key])}`);\r\n }\r\n }\r\n}\r\nfunction logWarning(message: string) {\r\n // eslint-disable-next-line no-console\r\n console.log(`\\x1b[33m${message}\\x1b[0m`);\r\n}"]}
1
+ {"version":3,"file":"ECSqlTestRunner.test.js","sourceRoot":"","sources":["../../../../../src/test/ecsql/src/ECSqlTestRunner.test.ts"],"names":[],"mappings":"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"}