@itwin/core-backend 5.13.0-dev.2 → 5.13.0-dev.20

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 (642) hide show
  1. package/CHANGELOG.md +50 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.js.map +1 -1
  8. package/lib/cjs/Category.d.ts +4 -4
  9. package/lib/cjs/Category.js.map +1 -1
  10. package/lib/cjs/ChangeSummaryManager.js +2 -2
  11. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  12. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  13. package/lib/cjs/ChangesetECAdaptor.d.ts +5 -0
  14. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  15. package/lib/cjs/ChangesetECAdaptor.js +261 -251
  16. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  17. package/lib/cjs/ChangesetReader.js +3 -3
  18. package/lib/cjs/ChangesetReader.js.map +1 -1
  19. package/lib/cjs/ChangesetReaderTypes.js.map +1 -1
  20. package/lib/cjs/ChannelControl.js.map +1 -1
  21. package/lib/cjs/CheckpointManager.d.ts +3 -0
  22. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  23. package/lib/cjs/CheckpointManager.js +8 -2
  24. package/lib/cjs/CheckpointManager.js.map +1 -1
  25. package/lib/cjs/ClassRegistry.js +10 -10
  26. package/lib/cjs/ClassRegistry.js.map +1 -1
  27. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  28. package/lib/cjs/CloudSqlite.js +19 -8
  29. package/lib/cjs/CloudSqlite.js.map +1 -1
  30. package/lib/cjs/CodeService.js.map +1 -1
  31. package/lib/cjs/CodeSpecs.d.ts +3 -3
  32. package/lib/cjs/CodeSpecs.js.map +1 -1
  33. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  34. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  35. package/lib/cjs/DevTools.js.map +1 -1
  36. package/lib/cjs/DisplayStyle.d.ts +2 -2
  37. package/lib/cjs/DisplayStyle.js.map +1 -1
  38. package/lib/cjs/ECDb.js.map +1 -1
  39. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  40. package/lib/cjs/ECSqlRowExecutor.js.map +1 -1
  41. package/lib/cjs/ECSqlStatement.js.map +1 -1
  42. package/lib/cjs/ECSqlSyncReader.js.map +1 -1
  43. package/lib/cjs/EditTxn.d.ts.map +1 -1
  44. package/lib/cjs/EditTxn.js +1 -0
  45. package/lib/cjs/EditTxn.js.map +1 -1
  46. package/lib/cjs/Element.d.ts +48 -12
  47. package/lib/cjs/Element.d.ts.map +1 -1
  48. package/lib/cjs/Element.js +120 -24
  49. package/lib/cjs/Element.js.map +1 -1
  50. package/lib/cjs/ElementAspect.js.map +1 -1
  51. package/lib/cjs/ElementGraphics.js.map +1 -1
  52. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  53. package/lib/cjs/Entity.js.map +1 -1
  54. package/lib/cjs/EntityReferences.js +2 -2
  55. package/lib/cjs/EntityReferences.js.map +1 -1
  56. package/lib/cjs/ExportGraphics.js.map +1 -1
  57. package/lib/cjs/ExternalSource.js.map +1 -1
  58. package/lib/cjs/FontFile.js.map +1 -1
  59. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  60. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  61. package/lib/cjs/GeometrySummary.js +47 -47
  62. package/lib/cjs/GeometrySummary.js.map +1 -1
  63. package/lib/cjs/IModelDb.d.ts +76 -23
  64. package/lib/cjs/IModelDb.d.ts.map +1 -1
  65. package/lib/cjs/IModelDb.js +150 -41
  66. package/lib/cjs/IModelDb.js.map +1 -1
  67. package/lib/cjs/IModelDbFonts.js.map +1 -1
  68. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  69. package/lib/cjs/IModelHost.d.ts.map +1 -1
  70. package/lib/cjs/IModelHost.js +3 -0
  71. package/lib/cjs/IModelHost.js.map +1 -1
  72. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -1
  73. package/lib/cjs/IModelJsFs.js.map +1 -1
  74. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  75. package/lib/cjs/IpcHost.js.map +1 -1
  76. package/lib/cjs/LineStyle.js.map +1 -1
  77. package/lib/cjs/LocalHub.js +1 -1
  78. package/lib/cjs/LocalHub.js.map +1 -1
  79. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  80. package/lib/cjs/LockControl.js.map +1 -1
  81. package/lib/cjs/Material.js.map +1 -1
  82. package/lib/cjs/Model.d.ts +5 -5
  83. package/lib/cjs/Model.d.ts.map +1 -1
  84. package/lib/cjs/Model.js.map +1 -1
  85. package/lib/cjs/NativeAppStorage.js.map +1 -1
  86. package/lib/cjs/NativeHost.js.map +1 -1
  87. package/lib/cjs/NavigationRelationship.js.map +1 -1
  88. package/lib/cjs/PartialChangeUnifier.js +7 -7
  89. package/lib/cjs/PartialChangeUnifier.js.map +1 -1
  90. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  91. package/lib/cjs/PropertyStore.js +1 -1
  92. package/lib/cjs/PropertyStore.js.map +1 -1
  93. package/lib/cjs/Relationship.js.map +1 -1
  94. package/lib/cjs/RpcBackend.js.map +1 -1
  95. package/lib/cjs/SQLiteDb.js.map +1 -1
  96. package/lib/cjs/Schema.js.map +1 -1
  97. package/lib/cjs/SchemaSync.d.ts +37 -9
  98. package/lib/cjs/SchemaSync.d.ts.map +1 -1
  99. package/lib/cjs/SchemaSync.js +125 -6
  100. package/lib/cjs/SchemaSync.js.map +1 -1
  101. package/lib/cjs/SchemaUtils.js.map +1 -1
  102. package/lib/cjs/SheetIndex.js.map +1 -1
  103. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  104. package/lib/cjs/SqliteStatement.js.map +1 -1
  105. package/lib/cjs/StashManager.js.map +1 -1
  106. package/lib/cjs/SynchronousChannel.d.ts +62 -0
  107. package/lib/cjs/SynchronousChannel.d.ts.map +1 -0
  108. package/lib/cjs/SynchronousChannel.js +11 -0
  109. package/lib/cjs/SynchronousChannel.js.map +1 -0
  110. package/lib/cjs/Texture.d.ts +1 -1
  111. package/lib/cjs/Texture.js.map +1 -1
  112. package/lib/cjs/TileStorage.js.map +1 -1
  113. package/lib/cjs/TxnManager.d.ts +44 -4
  114. package/lib/cjs/TxnManager.d.ts.map +1 -1
  115. package/lib/cjs/TxnManager.js +72 -14
  116. package/lib/cjs/TxnManager.js.map +1 -1
  117. package/lib/cjs/ViewDefinition.d.ts +6 -6
  118. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  119. package/lib/cjs/ViewDefinition.js.map +1 -1
  120. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  121. package/lib/cjs/ViewStore.js.map +1 -1
  122. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  123. package/lib/cjs/annotations/FrameGeometry.js.map +1 -1
  124. package/lib/cjs/annotations/LeaderGeometry.d.ts +22 -7
  125. package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -1
  126. package/lib/cjs/annotations/LeaderGeometry.js +104 -36
  127. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -1
  128. package/lib/cjs/annotations/TextAnnotationElement.d.ts +1 -1
  129. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -1
  130. package/lib/cjs/annotations/TextAnnotationElement.js +25 -10
  131. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -1
  132. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -1
  133. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -1
  134. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -1
  135. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  136. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +36 -36
  137. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +28 -28
  138. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  139. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  140. package/lib/cjs/core-backend.d.ts +1 -0
  141. package/lib/cjs/core-backend.d.ts.map +1 -1
  142. package/lib/cjs/core-backend.js +1 -0
  143. package/lib/cjs/core-backend.js.map +1 -1
  144. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  145. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  146. package/lib/cjs/domains/GenericElements.js.map +1 -1
  147. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  148. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  149. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  150. package/lib/cjs/internal/ECSqlInstanceReshaper.js.map +1 -1
  151. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  152. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  153. package/lib/cjs/internal/HubMock.js.map +1 -1
  154. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  155. package/lib/cjs/internal/IntegrityCheck.d.ts +22 -0
  156. package/lib/cjs/internal/IntegrityCheck.d.ts.map +1 -1
  157. package/lib/cjs/internal/IntegrityCheck.js +13 -0
  158. package/lib/cjs/internal/IntegrityCheck.js.map +1 -1
  159. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  160. package/lib/cjs/internal/NoLocks.js.map +1 -1
  161. package/lib/cjs/internal/NoReservations.d.ts +6 -0
  162. package/lib/cjs/internal/NoReservations.d.ts.map +1 -0
  163. package/lib/cjs/internal/NoReservations.js +21 -0
  164. package/lib/cjs/internal/NoReservations.js.map +1 -0
  165. package/lib/cjs/internal/OnlineStatus.js.map +1 -1
  166. package/lib/cjs/internal/SchemaSyncReservations.d.ts +4 -0
  167. package/lib/cjs/internal/SchemaSyncReservations.d.ts.map +1 -0
  168. package/lib/cjs/internal/SchemaSyncReservations.js +118 -0
  169. package/lib/cjs/internal/SchemaSyncReservations.js.map +1 -0
  170. package/lib/cjs/internal/ServerBasedLocks.js +33 -33
  171. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  172. package/lib/cjs/internal/Symbols.d.ts +1 -0
  173. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  174. package/lib/cjs/internal/Symbols.js +2 -1
  175. package/lib/cjs/internal/Symbols.js.map +1 -1
  176. package/lib/cjs/internal/annotations/fields.js.map +1 -1
  177. package/lib/cjs/internal/cross-package.js.map +1 -1
  178. package/lib/cjs/internal/workspace/SettingsEditorImpl.js.map +1 -1
  179. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  180. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  181. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  182. package/lib/cjs/internal/workspace/WorkspaceImpl.js +7 -2
  183. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  184. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  185. package/lib/cjs/rpc/multipart.js.map +1 -1
  186. package/lib/cjs/rpc/tracing.js.map +1 -1
  187. package/lib/cjs/rpc/web/logging.js.map +1 -1
  188. package/lib/cjs/rpc/web/request.js.map +1 -1
  189. package/lib/cjs/rpc/web/response.js.map +1 -1
  190. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  191. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  192. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  193. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  194. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  195. package/lib/cjs/workspace/Settings.js.map +1 -1
  196. package/lib/cjs/workspace/SettingsDb.js.map +1 -1
  197. package/lib/cjs/workspace/SettingsEditor.js.map +1 -1
  198. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  199. package/lib/cjs/workspace/Workspace.js.map +1 -1
  200. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  201. package/lib/esm/BackendHubAccess.js.map +1 -1
  202. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  203. package/lib/esm/BisCoreSchema.js.map +1 -1
  204. package/lib/esm/BlobContainerService.js.map +1 -1
  205. package/lib/esm/BriefcaseManager.js.map +1 -1
  206. package/lib/esm/CatalogDb.js.map +1 -1
  207. package/lib/esm/Category.d.ts +4 -4
  208. package/lib/esm/Category.js.map +1 -1
  209. package/lib/esm/ChangeSummaryManager.js +2 -2
  210. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  211. package/lib/esm/ChangedElementsDb.js.map +1 -1
  212. package/lib/esm/ChangesetECAdaptor.d.ts +5 -0
  213. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  214. package/lib/esm/ChangesetECAdaptor.js +261 -251
  215. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  216. package/lib/esm/ChangesetReader.js +3 -3
  217. package/lib/esm/ChangesetReader.js.map +1 -1
  218. package/lib/esm/ChangesetReaderTypes.js.map +1 -1
  219. package/lib/esm/ChannelControl.js.map +1 -1
  220. package/lib/esm/CheckpointManager.d.ts +3 -0
  221. package/lib/esm/CheckpointManager.d.ts.map +1 -1
  222. package/lib/esm/CheckpointManager.js +8 -2
  223. package/lib/esm/CheckpointManager.js.map +1 -1
  224. package/lib/esm/ClassRegistry.js +6 -6
  225. package/lib/esm/ClassRegistry.js.map +1 -1
  226. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  227. package/lib/esm/CloudSqlite.js +19 -8
  228. package/lib/esm/CloudSqlite.js.map +1 -1
  229. package/lib/esm/CodeService.js.map +1 -1
  230. package/lib/esm/CodeSpecs.d.ts +3 -3
  231. package/lib/esm/CodeSpecs.js.map +1 -1
  232. package/lib/esm/ConcurrentQuery.js.map +1 -1
  233. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  234. package/lib/esm/DevTools.js.map +1 -1
  235. package/lib/esm/DisplayStyle.d.ts +2 -2
  236. package/lib/esm/DisplayStyle.js.map +1 -1
  237. package/lib/esm/ECDb.js.map +1 -1
  238. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  239. package/lib/esm/ECSqlRowExecutor.js.map +1 -1
  240. package/lib/esm/ECSqlStatement.js.map +1 -1
  241. package/lib/esm/ECSqlSyncReader.js.map +1 -1
  242. package/lib/esm/EditTxn.d.ts.map +1 -1
  243. package/lib/esm/EditTxn.js +1 -0
  244. package/lib/esm/EditTxn.js.map +1 -1
  245. package/lib/esm/Element.d.ts +48 -12
  246. package/lib/esm/Element.d.ts.map +1 -1
  247. package/lib/esm/Element.js +121 -25
  248. package/lib/esm/Element.js.map +1 -1
  249. package/lib/esm/ElementAspect.js.map +1 -1
  250. package/lib/esm/ElementGraphics.js.map +1 -1
  251. package/lib/esm/ElementTreeWalker.js.map +1 -1
  252. package/lib/esm/Entity.js.map +1 -1
  253. package/lib/esm/EntityReferences.js +1 -1
  254. package/lib/esm/EntityReferences.js.map +1 -1
  255. package/lib/esm/ExportGraphics.js.map +1 -1
  256. package/lib/esm/ExternalSource.js.map +1 -1
  257. package/lib/esm/FontFile.js.map +1 -1
  258. package/lib/esm/GeoCoordConfig.js.map +1 -1
  259. package/lib/esm/GeographicCRSServices.js.map +1 -1
  260. package/lib/esm/GeometrySummary.js +47 -47
  261. package/lib/esm/GeometrySummary.js.map +1 -1
  262. package/lib/esm/IModelDb.d.ts +76 -23
  263. package/lib/esm/IModelDb.d.ts.map +1 -1
  264. package/lib/esm/IModelDb.js +152 -43
  265. package/lib/esm/IModelDb.js.map +1 -1
  266. package/lib/esm/IModelDbFonts.js.map +1 -1
  267. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  268. package/lib/esm/IModelHost.d.ts.map +1 -1
  269. package/lib/esm/IModelHost.js +3 -0
  270. package/lib/esm/IModelHost.js.map +1 -1
  271. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -1
  272. package/lib/esm/IModelJsFs.js.map +1 -1
  273. package/lib/esm/ImageSourceConversion.js.map +1 -1
  274. package/lib/esm/IpcHost.js.map +1 -1
  275. package/lib/esm/LineStyle.js.map +1 -1
  276. package/lib/esm/LocalHub.js +1 -1
  277. package/lib/esm/LocalHub.js.map +1 -1
  278. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  279. package/lib/esm/LockControl.js.map +1 -1
  280. package/lib/esm/Material.js.map +1 -1
  281. package/lib/esm/Model.d.ts +5 -5
  282. package/lib/esm/Model.d.ts.map +1 -1
  283. package/lib/esm/Model.js.map +1 -1
  284. package/lib/esm/NativeAppStorage.js.map +1 -1
  285. package/lib/esm/NativeHost.js.map +1 -1
  286. package/lib/esm/NavigationRelationship.js.map +1 -1
  287. package/lib/esm/PartialChangeUnifier.js +7 -7
  288. package/lib/esm/PartialChangeUnifier.js.map +1 -1
  289. package/lib/esm/PromiseMemoizer.js.map +1 -1
  290. package/lib/esm/PropertyStore.js +1 -1
  291. package/lib/esm/PropertyStore.js.map +1 -1
  292. package/lib/esm/Relationship.js.map +1 -1
  293. package/lib/esm/RpcBackend.js.map +1 -1
  294. package/lib/esm/SQLiteDb.js.map +1 -1
  295. package/lib/esm/Schema.js.map +1 -1
  296. package/lib/esm/SchemaSync.d.ts +37 -9
  297. package/lib/esm/SchemaSync.d.ts.map +1 -1
  298. package/lib/esm/SchemaSync.js +127 -8
  299. package/lib/esm/SchemaSync.js.map +1 -1
  300. package/lib/esm/SchemaUtils.js.map +1 -1
  301. package/lib/esm/SheetIndex.js.map +1 -1
  302. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  303. package/lib/esm/SqliteStatement.js.map +1 -1
  304. package/lib/esm/StashManager.js.map +1 -1
  305. package/lib/esm/SynchronousChannel.d.ts +62 -0
  306. package/lib/esm/SynchronousChannel.d.ts.map +1 -0
  307. package/lib/esm/SynchronousChannel.js +9 -0
  308. package/lib/esm/SynchronousChannel.js.map +1 -0
  309. package/lib/esm/Texture.d.ts +1 -1
  310. package/lib/esm/Texture.js.map +1 -1
  311. package/lib/esm/TileStorage.js.map +1 -1
  312. package/lib/esm/TxnManager.d.ts +44 -4
  313. package/lib/esm/TxnManager.d.ts.map +1 -1
  314. package/lib/esm/TxnManager.js +72 -14
  315. package/lib/esm/TxnManager.js.map +1 -1
  316. package/lib/esm/ViewDefinition.d.ts +6 -6
  317. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  318. package/lib/esm/ViewDefinition.js.map +1 -1
  319. package/lib/esm/ViewStateHydrator.js.map +1 -1
  320. package/lib/esm/ViewStore.js.map +1 -1
  321. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -1
  322. package/lib/esm/annotations/FrameGeometry.js.map +1 -1
  323. package/lib/esm/annotations/LeaderGeometry.d.ts +22 -7
  324. package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -1
  325. package/lib/esm/annotations/LeaderGeometry.js +104 -36
  326. package/lib/esm/annotations/LeaderGeometry.js.map +1 -1
  327. package/lib/esm/annotations/TextAnnotationElement.d.ts +1 -1
  328. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -1
  329. package/lib/esm/annotations/TextAnnotationElement.js +25 -10
  330. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -1
  331. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -1
  332. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -1
  333. package/lib/esm/annotations/TextBlockLayout.js.map +1 -1
  334. package/lib/esm/core-backend.d.ts +1 -0
  335. package/lib/esm/core-backend.d.ts.map +1 -1
  336. package/lib/esm/core-backend.js +1 -0
  337. package/lib/esm/core-backend.js.map +1 -1
  338. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  339. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  340. package/lib/esm/domains/GenericElements.js.map +1 -1
  341. package/lib/esm/domains/GenericSchema.js.map +1 -1
  342. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  343. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  344. package/lib/esm/internal/ECSqlInstanceReshaper.js.map +1 -1
  345. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  346. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  347. package/lib/esm/internal/HubMock.js.map +1 -1
  348. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  349. package/lib/esm/internal/IntegrityCheck.d.ts +22 -0
  350. package/lib/esm/internal/IntegrityCheck.d.ts.map +1 -1
  351. package/lib/esm/internal/IntegrityCheck.js +13 -0
  352. package/lib/esm/internal/IntegrityCheck.js.map +1 -1
  353. package/lib/esm/internal/NativePlatform.js.map +1 -1
  354. package/lib/esm/internal/NoLocks.js.map +1 -1
  355. package/lib/esm/internal/NoReservations.d.ts +6 -0
  356. package/lib/esm/internal/NoReservations.d.ts.map +1 -0
  357. package/lib/esm/internal/NoReservations.js +18 -0
  358. package/lib/esm/internal/NoReservations.js.map +1 -0
  359. package/lib/esm/internal/OnlineStatus.js.map +1 -1
  360. package/lib/esm/internal/SchemaSyncReservations.d.ts +4 -0
  361. package/lib/esm/internal/SchemaSyncReservations.d.ts.map +1 -0
  362. package/lib/esm/internal/SchemaSyncReservations.js +115 -0
  363. package/lib/esm/internal/SchemaSyncReservations.js.map +1 -0
  364. package/lib/esm/internal/ServerBasedLocks.js +33 -33
  365. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  366. package/lib/esm/internal/Symbols.d.ts +1 -0
  367. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  368. package/lib/esm/internal/Symbols.js +1 -0
  369. package/lib/esm/internal/Symbols.js.map +1 -1
  370. package/lib/esm/internal/annotations/fields.js.map +1 -1
  371. package/lib/esm/internal/cross-package.js.map +1 -1
  372. package/lib/esm/internal/workspace/SettingsEditorImpl.js.map +1 -1
  373. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  374. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  375. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  376. package/lib/esm/internal/workspace/WorkspaceImpl.js +7 -2
  377. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  378. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  379. package/lib/esm/rpc/multipart.js.map +1 -1
  380. package/lib/esm/rpc/tracing.js.map +1 -1
  381. package/lib/esm/rpc/web/logging.js.map +1 -1
  382. package/lib/esm/rpc/web/request.js.map +1 -1
  383. package/lib/esm/rpc/web/response.js.map +1 -1
  384. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  385. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  386. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  387. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  388. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  389. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  390. package/lib/esm/test/AnnotationTestUtils.js.map +1 -1
  391. package/lib/esm/test/AttachDb.test.js +11 -11
  392. package/lib/esm/test/AttachDb.test.js.map +1 -1
  393. package/lib/esm/test/ElementDrivesElement.test.js +23 -23
  394. package/lib/esm/test/ElementDrivesElement.test.js.map +1 -1
  395. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  396. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  397. package/lib/esm/test/IModelHost.test.js.map +1 -1
  398. package/lib/esm/test/IModelTestUtils.d.ts +1 -1
  399. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  400. package/lib/esm/test/IModelTestUtils.js +8 -3
  401. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  402. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  403. package/lib/esm/test/IpcHost.test.js.map +1 -1
  404. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  405. package/lib/esm/test/PrintElementTree.js.map +1 -1
  406. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  407. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js +51 -51
  408. package/lib/esm/test/SchemaChangesetCanBeReversed.test.js.map +1 -1
  409. package/lib/esm/test/SchemaUtils.test.js +25 -25
  410. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  411. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  412. package/lib/esm/test/SquashSchemaAndDataChanges.test.js +129 -129
  413. package/lib/esm/test/SquashSchemaAndDataChanges.test.js.map +1 -1
  414. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  415. package/lib/esm/test/TestEditTxn.js.map +1 -1
  416. package/lib/esm/test/TestUtils.js.map +1 -1
  417. package/lib/esm/test/annotations/Fields.test.js +53 -53
  418. package/lib/esm/test/annotations/Fields.test.js.map +1 -1
  419. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -1
  420. package/lib/esm/test/annotations/LeaderGeometry.test.js +178 -2
  421. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -1
  422. package/lib/esm/test/annotations/TextAnnotation.test.js +48 -18
  423. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  424. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -1
  425. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -1
  426. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -1
  427. package/lib/esm/test/categories/Category.test.js.map +1 -1
  428. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  429. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  430. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  431. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +19 -19
  432. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -1
  433. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  434. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  435. package/lib/esm/test/ecdb/ECDb.test.js +72 -72
  436. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  437. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  438. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  439. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  440. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  441. package/lib/esm/test/ecdb/ECSqlQuery.test.js +4 -4
  442. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  443. package/lib/esm/test/ecdb/ECSqlStatement.test.js +509 -332
  444. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  445. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js +4 -4
  446. package/lib/esm/test/ecdb/ECSqlSyncReader.test.js.map +1 -1
  447. package/lib/esm/test/ecdb/QueryReaders.test.js +33 -47
  448. package/lib/esm/test/ecdb/QueryReaders.test.js.map +1 -1
  449. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  450. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  451. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  452. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  453. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  454. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +2 -2
  455. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  456. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  457. package/lib/esm/test/element/ElementAspect.test.js +176 -24
  458. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  459. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  460. package/lib/esm/test/element/ElementRoundTrip.test.js +224 -141
  461. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  462. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  463. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  464. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  465. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  466. package/lib/esm/test/element/ProjectInformationRecord.test.js.map +1 -1
  467. package/lib/esm/test/element/SheetInformationAspect.test.js.map +1 -1
  468. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  469. package/lib/esm/test/example-code/EditTxn.test.d.ts +2 -0
  470. package/lib/esm/test/example-code/EditTxn.test.d.ts.map +1 -0
  471. package/lib/esm/test/example-code/EditTxn.test.js +47 -0
  472. package/lib/esm/test/example-code/EditTxn.test.js.map +1 -0
  473. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  474. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  475. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +32 -32
  476. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -1
  477. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  478. package/lib/esm/test/hubaccess/CheckpointManager.test.js +43 -1
  479. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  480. package/lib/esm/test/hubaccess/CodeSwap.test.js.map +1 -1
  481. package/lib/esm/test/hubaccess/Rebase.test.js +56 -56
  482. package/lib/esm/test/hubaccess/Rebase.test.js.map +1 -1
  483. package/lib/esm/test/hubaccess/SemanticRebase.test.js +345 -345
  484. package/lib/esm/test/hubaccess/SemanticRebase.test.js.map +1 -1
  485. package/lib/esm/test/imageData.js.map +1 -1
  486. package/lib/esm/test/imodel/Code.test.js.map +1 -1
  487. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  488. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  489. package/lib/esm/test/imodel/IModelECSql.test.d.ts +2 -0
  490. package/lib/esm/test/imodel/IModelECSql.test.d.ts.map +1 -0
  491. package/lib/esm/test/imodel/IModelECSql.test.js +367 -0
  492. package/lib/esm/test/imodel/IModelECSql.test.js.map +1 -0
  493. package/lib/esm/test/imodel/IModelElements.test.d.ts +2 -0
  494. package/lib/esm/test/imodel/IModelElements.test.d.ts.map +1 -0
  495. package/lib/esm/test/imodel/IModelElements.test.js +969 -0
  496. package/lib/esm/test/imodel/IModelElements.test.js.map +1 -0
  497. package/lib/esm/test/imodel/IModelGeolocation.test.d.ts +2 -0
  498. package/lib/esm/test/imodel/IModelGeolocation.test.d.ts.map +1 -0
  499. package/lib/esm/test/imodel/IModelGeolocation.test.js +539 -0
  500. package/lib/esm/test/imodel/IModelGeolocation.test.js.map +1 -0
  501. package/lib/esm/test/imodel/IModelLifecycle.test.d.ts +2 -0
  502. package/lib/esm/test/imodel/IModelLifecycle.test.d.ts.map +1 -0
  503. package/lib/esm/test/imodel/IModelLifecycle.test.js +499 -0
  504. package/lib/esm/test/imodel/IModelLifecycle.test.js.map +1 -0
  505. package/lib/esm/test/imodel/IModelMetadata.test.d.ts +2 -0
  506. package/lib/esm/test/imodel/IModelMetadata.test.d.ts.map +1 -0
  507. package/lib/esm/test/imodel/IModelMetadata.test.js +274 -0
  508. package/lib/esm/test/imodel/IModelMetadata.test.js.map +1 -0
  509. package/lib/esm/test/imodel/IModelModels.test.d.ts +2 -0
  510. package/lib/esm/test/imodel/IModelModels.test.d.ts.map +1 -0
  511. package/lib/esm/test/imodel/IModelModels.test.js +357 -0
  512. package/lib/esm/test/imodel/IModelModels.test.js.map +1 -0
  513. package/lib/esm/test/imodel/IModelRelationships.test.d.ts +2 -0
  514. package/lib/esm/test/imodel/IModelRelationships.test.d.ts.map +1 -0
  515. package/lib/esm/test/imodel/IModelRelationships.test.js +407 -0
  516. package/lib/esm/test/imodel/IModelRelationships.test.js.map +1 -0
  517. package/lib/esm/test/imodel/IModelTestFixtures.d.ts +53 -0
  518. package/lib/esm/test/imodel/IModelTestFixtures.d.ts.map +1 -0
  519. package/lib/esm/test/imodel/IModelTestFixtures.js +107 -0
  520. package/lib/esm/test/imodel/IModelTestFixtures.js.map +1 -0
  521. package/lib/esm/test/imodel/IModelViews.test.d.ts +2 -0
  522. package/lib/esm/test/imodel/IModelViews.test.d.ts.map +1 -0
  523. package/lib/esm/test/imodel/IModelViews.test.js +199 -0
  524. package/lib/esm/test/imodel/IModelViews.test.js.map +1 -0
  525. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  526. package/lib/esm/test/imodel/SchemaXmlImport.test.js +21 -21
  527. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  528. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -1
  529. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -1
  530. package/lib/esm/test/incrementalSchemaLocater/TestContext.js.map +1 -1
  531. package/lib/esm/test/index.d.ts +0 -1
  532. package/lib/esm/test/index.d.ts.map +1 -1
  533. package/lib/esm/test/index.js +0 -1
  534. package/lib/esm/test/index.js.map +1 -1
  535. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js +32 -32
  536. package/lib/esm/test/internal/ECSqlInstanceReshaper.test.js.map +1 -1
  537. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  538. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  539. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  540. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  541. package/lib/esm/test/rpc/response.test.js.map +1 -1
  542. package/lib/esm/test/schema/ClassRegistry.test.js +99 -99
  543. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  544. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  545. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  546. package/lib/esm/test/schema/IModelSchemaContext.test.js +9 -9
  547. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  548. package/lib/esm/test/schema/SchemaImportCallbacks.test.js +19 -19
  549. package/lib/esm/test/schema/SchemaImportCallbacks.test.js.map +1 -1
  550. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js +21 -21
  551. package/lib/esm/test/schema/SchemaViewFragmentLoading.test.js.map +1 -1
  552. package/lib/esm/test/schema/SchemaViewHidden.test.js +109 -109
  553. package/lib/esm/test/schema/SchemaViewHidden.test.js.map +1 -1
  554. package/lib/esm/test/schema/SchemaViewKoQ.test.js +13 -13
  555. package/lib/esm/test/schema/SchemaViewKoQ.test.js.map +1 -1
  556. package/lib/esm/test/schema/SchemaViewLifecycle.test.js +15 -15
  557. package/lib/esm/test/schema/SchemaViewLifecycle.test.js.map +1 -1
  558. package/lib/esm/test/schema/SchemaViewValidation.test.js +8 -8
  559. package/lib/esm/test/schema/SchemaViewValidation.test.js.map +1 -1
  560. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  561. package/lib/esm/test/standalone/ChangeElementParentModel.test.js.map +1 -1
  562. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  563. package/lib/esm/test/standalone/ChangesetReader.test.js +321 -339
  564. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  565. package/lib/esm/test/standalone/CloudSqlite.test.js +73 -0
  566. package/lib/esm/test/standalone/CloudSqlite.test.js.map +1 -1
  567. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  568. package/lib/esm/test/standalone/DeleteElements.test.js.map +1 -1
  569. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts +2 -0
  570. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.d.ts.map +1 -0
  571. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js +263 -0
  572. package/lib/esm/test/standalone/DgnDomainMergeConflict.test.js.map +1 -0
  573. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  574. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  575. package/lib/esm/test/standalone/EditTxn.test.js.map +1 -1
  576. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  577. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  578. package/lib/esm/test/standalone/ExportGraphics.test.js +14 -14
  579. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  580. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  581. package/lib/esm/test/standalone/GeometryStream.test.js +1 -3
  582. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  583. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  584. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -1
  585. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -1
  586. package/lib/esm/test/standalone/IModelWrite.test.js +105 -28
  587. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  588. package/lib/esm/test/standalone/ITwinWorkspace.test.js.map +1 -1
  589. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  590. package/lib/esm/test/standalone/IntegrityCheck.test.js +29 -10
  591. package/lib/esm/test/standalone/IntegrityCheck.test.js.map +1 -1
  592. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  593. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  594. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  595. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  596. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  597. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js +158 -135
  598. package/lib/esm/test/standalone/SQliteChangesetReaderAndChangesetECAdaptor.test.js.map +1 -1
  599. package/lib/esm/test/standalone/SchemaSyncDb.test.d.ts +2 -0
  600. package/lib/esm/test/standalone/SchemaSyncDb.test.d.ts.map +1 -0
  601. package/lib/esm/test/standalone/SchemaSyncDb.test.js +221 -0
  602. package/lib/esm/test/standalone/SchemaSyncDb.test.js.map +1 -0
  603. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.d.ts +2 -0
  604. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.d.ts.map +1 -0
  605. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js +459 -0
  606. package/lib/esm/test/standalone/SchemaSyncElementReservation.test.js.map +1 -0
  607. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  608. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  609. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  610. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  611. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  612. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  613. package/lib/esm/test/standalone/SnapshotDb.test.js +1 -0
  614. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  615. package/lib/esm/test/standalone/StandaloneDb.test.js +20 -20
  616. package/lib/esm/test/standalone/StandaloneDb.test.js.map +1 -1
  617. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  618. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  619. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  620. package/lib/esm/test/standalone/TxnManager.test.js +108 -8
  621. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  622. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  623. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  624. package/lib/esm/test/standalone/Workspace.test.js +52 -0
  625. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  626. package/lib/esm/test/standalone/iModelDb.test.js.map +1 -1
  627. package/lib/esm/test/workspace/SettingsDb.test.js.map +1 -1
  628. package/lib/esm/workspace/Settings.js.map +1 -1
  629. package/lib/esm/workspace/SettingsDb.js.map +1 -1
  630. package/lib/esm/workspace/SettingsEditor.js.map +1 -1
  631. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  632. package/lib/esm/workspace/Workspace.js.map +1 -1
  633. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  634. package/package.json +19 -23
  635. package/lib/esm/test/RevisionUtility.d.ts +0 -33
  636. package/lib/esm/test/RevisionUtility.d.ts.map +0 -1
  637. package/lib/esm/test/RevisionUtility.js +0 -52
  638. package/lib/esm/test/RevisionUtility.js.map +0 -1
  639. package/lib/esm/test/imodel/IModel.test.d.ts +0 -2
  640. package/lib/esm/test/imodel/IModel.test.d.ts.map +0 -1
  641. package/lib/esm/test/imodel/IModel.test.js +0 -3279
  642. package/lib/esm/test/imodel/IModel.test.js.map +0 -1
@@ -0,0 +1,367 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ /*---------------------------------------------------------------------------------------------
54
+ * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
55
+ * See LICENSE.md in the project root for license terms and full copyright notice.
56
+ *--------------------------------------------------------------------------------------------*/
57
+ import { assert } from "chai";
58
+ import { DbResult, Id64 } from "@itwin/core-bentley";
59
+ import { withEditTxn } from "../../EditTxn";
60
+ import { Category, Element, SnapshotDb, SqliteValueType } from "../../core-backend";
61
+ import { IModelTestUtils } from "../IModelTestUtils";
62
+ import { TestUtils } from "../TestUtils";
63
+ import { closeIfOpen, createIModelFromSeed, importTestBim, openReadonlySeedCopy } from "./IModelTestFixtures";
64
+ describe("iModel ECSQL and SQL", () => {
65
+ let testBimReadonly;
66
+ let compatibilityReadonly;
67
+ before(async () => {
68
+ await TestUtils.startBackend();
69
+ IModelTestUtils.registerTestBimSchema();
70
+ testBimReadonly = await openReadonlySeedCopy("ecsql-test.bim", "test.bim", { importTestBim: true });
71
+ compatibilityReadonly = await openReadonlySeedCopy("ecsql-CompatibilityTestSeed.bim", "CompatibilityTestSeed.bim");
72
+ });
73
+ after(() => {
74
+ closeIfOpen(testBimReadonly, compatibilityReadonly);
75
+ });
76
+ // NOTE: this test can be removed when the deprecated executeQuery method is removed
77
+ it("should produce an array of rows", () => {
78
+ const imodel1 = testBimReadonly;
79
+ const rows = IModelTestUtils.executeQuery(imodel1, `SELECT * FROM ${Category.classFullName}`);
80
+ assert.exists(rows);
81
+ assert.isArray(rows);
82
+ assert.isAtLeast(rows.length, 1);
83
+ assert.exists(rows[0].id);
84
+ assert.notEqual(rows[0].id.value, "");
85
+ });
86
+ it("queryEntityIds should skip undefined and null bindings", () => {
87
+ const imodel2 = compatibilityReadonly;
88
+ // Callers commonly build the WHERE clause conditionally but pass the bindings object
89
+ // unconditionally, relying on undefined entries being skipped (legacy bindValues semantics).
90
+ const baseline = imodel2.queryEntityIds({ from: "generic.PhysicalObject", where: "codevalue is null" });
91
+ assert.isAtLeast(baseline.size, 1);
92
+ const parent = undefined;
93
+ const where = "codevalue is null";
94
+ const withUnusedUndefined = imodel2.queryEntityIds({ from: "generic.PhysicalObject", where, bindings: { parent } });
95
+ assert.deepEqual(withUnusedUndefined, baseline);
96
+ const withUnusedNull = imodel2.queryEntityIds({ from: "generic.PhysicalObject", where: "codevalue is null", bindings: { parent: null } });
97
+ assert.deepEqual(withUnusedNull, baseline);
98
+ const someId = imodel2.queryEntityIds({ from: "bis.element", where: "CodeValue IS NOT NULL", limit: 1 }).values().next().value;
99
+ assert.isDefined(someId);
100
+ const codeValue = imodel2.elements.getElement(someId).code.value;
101
+ const mixed = imodel2.queryEntityIds({ from: "bis.element", where: "CodeValue=:cv", bindings: { cv: codeValue, parent: undefined } });
102
+ assert.isTrue(mixed.has(someId));
103
+ // positional form: trailing undefined beyond the parameter count must be skipped, not bound
104
+ const positional = imodel2.queryEntityIds({ from: "bis.element", where: "CodeValue=?", bindings: [codeValue, undefined] });
105
+ assert.isTrue(positional.has(someId));
106
+ });
107
+ it("should exercise ECSqlStatement (backend only)", () => {
108
+ const imodel2 = compatibilityReadonly;
109
+ // Reject an invalid statement
110
+ try {
111
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
112
+ imodel2.prepareStatement("select no_such_property, codeValue from bis.element", false);
113
+ assert.fail("prepare should have failed with an exception");
114
+ }
115
+ catch (err) {
116
+ assert.isTrue(err.constructor.name === "IModelError");
117
+ assert.notEqual(err.status, DbResult.BE_SQLITE_OK);
118
+ }
119
+ let lastId = "";
120
+ let firstCodeValue = "";
121
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
122
+ imodel2.withPreparedStatement("select ecinstanceid, codeValue from bis.element", (stmt) => {
123
+ assert.isNotNull(stmt);
124
+ // Reject an attempt to bind when there are no placeholders in the statement
125
+ try {
126
+ stmt.bindStruct(1, { foo: 1 });
127
+ assert.fail("bindStruct should have failed with an exception");
128
+ }
129
+ catch (err2) {
130
+ assert.isTrue(err2.constructor.name === "IModelError");
131
+ assert.notEqual(err2.status, DbResult.BE_SQLITE_OK);
132
+ }
133
+ // Verify that we get a bunch of rows with the expected shape
134
+ let count = 0;
135
+ while (DbResult.BE_SQLITE_ROW === stmt.step()) {
136
+ const row = stmt.getRow();
137
+ assert.isNotNull(row);
138
+ assert.isObject(row);
139
+ assert.isTrue(row.id !== undefined);
140
+ assert.isTrue(Id64.isValid(Id64.fromJSON(row.id)));
141
+ lastId = row.id;
142
+ if (row.codeValue !== undefined)
143
+ firstCodeValue = row.codeValue;
144
+ count = count + 1;
145
+ }
146
+ assert.isTrue(count > 1);
147
+ assert.notEqual(lastId, "");
148
+ assert.notEqual(firstCodeValue, "");
149
+ // Try iterator style
150
+ let firstCodeValueIter = "";
151
+ let iteratorCount = 0;
152
+ let lastIterId = "";
153
+ stmt.reset();
154
+ for (const row of stmt) {
155
+ assert.isNotNull(row);
156
+ assert.isObject(row);
157
+ assert.isTrue(row.id !== undefined);
158
+ assert.isTrue(Id64.isValid(Id64.fromJSON(row.id)));
159
+ lastIterId = row.id;
160
+ iteratorCount = iteratorCount + 1;
161
+ if (row.codeValue !== undefined)
162
+ firstCodeValueIter = row.codeValue;
163
+ }
164
+ assert.equal(iteratorCount, count, "iterator loop should find the same number of rows as the step loop");
165
+ assert.equal(lastIterId, lastId, "iterator loop should see the same last row as the step loop");
166
+ assert.equal(firstCodeValueIter, firstCodeValue, "iterator loop should find the first non-null code value as the step loop");
167
+ });
168
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
169
+ imodel2.withPreparedStatement("select ecinstanceid, codeValue from bis.element WHERE (ecinstanceid=?)", (stmt3) => {
170
+ // Now try a statement with a placeholder
171
+ const idToFind = Id64.fromJSON(lastId);
172
+ stmt3.bindId(1, idToFind);
173
+ let count = 0;
174
+ while (DbResult.BE_SQLITE_ROW === stmt3.step()) {
175
+ count = count + 1;
176
+ const row = stmt3.getRow();
177
+ // Verify that we got the row that we asked for
178
+ assert.isTrue(idToFind === Id64.fromJSON(row.id));
179
+ }
180
+ // Verify that we got the row that we asked for
181
+ assert.equal(count, 1);
182
+ });
183
+ let firstCodeValueId;
184
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
185
+ imodel2.withPreparedStatement("select ecinstanceid, codeValue from bis.element WHERE (codeValue = :codevalue)", (stmt4) => {
186
+ // Try a named placeholder
187
+ const codeValueToFind = firstCodeValue;
188
+ stmt4.bindString("codeValue", codeValueToFind);
189
+ let count = 0;
190
+ while (DbResult.BE_SQLITE_ROW === stmt4.step()) {
191
+ count = count + 1;
192
+ const row = stmt4.getRow();
193
+ // Verify that we got the row that we asked for
194
+ assert.equal(row.codeValue, codeValueToFind);
195
+ firstCodeValueId = row.id;
196
+ }
197
+ // Verify that we got the row that we asked for
198
+ assert.equal(count, 1);
199
+ });
200
+ // make sure we can use parameterized values for queryEnityId (test on parameterized codevalue)
201
+ const ids = imodel2.queryEntityIds({ from: "bis.element", where: "codevalue=:cv", bindings: { cv: firstCodeValue } });
202
+ assert.equal(ids.values().next().value, firstCodeValueId);
203
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
204
+ imodel2.withPreparedStatement("select ecinstanceid as id, codevalue from bis.element", (stmt5) => {
205
+ while (DbResult.BE_SQLITE_ROW === stmt5.step()) {
206
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
207
+ imodel2.withPreparedStatement("select codevalue from bis.element where ecinstanceid=?", (stmt6) => {
208
+ stmt6.bindId(1, stmt5.getRow().id);
209
+ while (DbResult.BE_SQLITE_ROW === stmt6.step()) {
210
+ assert.equal(stmt6.getRow().codevalue, stmt5.getRow().codevalue);
211
+ }
212
+ });
213
+ }
214
+ });
215
+ // make sure queryEnityIds works fine when all params are specified
216
+ const physicalObjectIds = imodel2.queryEntityIds({ from: "generic.PhysicalObject", where: "codevalue is null", limit: 1, offset: 1, only: true, orderBy: "ecinstanceid desc" });
217
+ assert.equal(physicalObjectIds.size, 1);
218
+ });
219
+ describe("with a writable test.bim seed", () => {
220
+ let imodel1;
221
+ beforeEach(async () => {
222
+ imodel1 = await importTestBim(createIModelFromSeed("ecsql-plain-sql.bim", "test.bim"));
223
+ });
224
+ afterEach(() => {
225
+ if (imodel1 !== undefined && imodel1.isOpen)
226
+ imodel1.close();
227
+ });
228
+ it("Run plain SQL", () => {
229
+ withEditTxn(imodel1, () => {
230
+ imodel1.withPreparedSqliteStatement("CREATE TABLE Test(Id INTEGER PRIMARY KEY, Name TEXT NOT NULL, Code INTEGER)", (stmt) => {
231
+ assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);
232
+ });
233
+ imodel1.withPreparedSqliteStatement("INSERT INTO Test(Name,Code) VALUES(?,?)", (stmt) => {
234
+ stmt.bindValue(1, "Dummy 1");
235
+ stmt.bindValue(2, 100);
236
+ assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);
237
+ });
238
+ imodel1.withPreparedSqliteStatement("INSERT INTO Test(Name,Code) VALUES(?,?)", (stmt) => {
239
+ stmt.bindValues(["Dummy 2", 200]);
240
+ assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);
241
+ });
242
+ imodel1.withPreparedSqliteStatement("INSERT INTO Test(Name,Code) VALUES(:p1,:p2)", (stmt) => {
243
+ stmt.bindValue(":p1", "Dummy 3");
244
+ stmt.bindValue(":p2", 300);
245
+ assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);
246
+ });
247
+ imodel1.withPreparedSqliteStatement("INSERT INTO Test(Name,Code) VALUES(:p1,:p2)", (stmt) => {
248
+ stmt.bindValues({ ":p1": "Dummy 4", ":p2": 400 });
249
+ assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);
250
+ });
251
+ });
252
+ imodel1.withPreparedSqliteStatement("SELECT Id,Name,Code FROM Test ORDER BY Id", (stmt) => {
253
+ for (let i = 1; i <= 4; i++) {
254
+ assert.equal(stmt.step(), DbResult.BE_SQLITE_ROW);
255
+ assert.equal(stmt.getColumnCount(), 3);
256
+ const val0 = stmt.getValue(0);
257
+ assert.equal(val0.columnName, "Id");
258
+ assert.equal(val0.type, SqliteValueType.Integer);
259
+ assert.isFalse(val0.isNull);
260
+ assert.equal(val0.getInteger(), i);
261
+ const val1 = stmt.getValue(1);
262
+ assert.equal(val1.columnName, "Name");
263
+ assert.equal(val1.type, SqliteValueType.String);
264
+ assert.isFalse(val1.isNull);
265
+ assert.equal(val1.getString(), `Dummy ${i}`);
266
+ const val2 = stmt.getValue(2);
267
+ assert.equal(val2.columnName, "Code");
268
+ assert.equal(val2.type, SqliteValueType.Integer);
269
+ assert.isFalse(val2.isNull);
270
+ assert.equal(val2.getInteger(), i * 100);
271
+ const row = stmt.getRow();
272
+ assert.equal(row.id, i);
273
+ assert.equal(row.name, `Dummy ${i}`);
274
+ assert.equal(row.code, i * 100);
275
+ }
276
+ assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);
277
+ });
278
+ imodel1.withPreparedSqliteStatement("SELECT 1 FROM ec_CustomAttribute WHERE ContainerId=? AND Instance LIKE '<IsMixin%' COLLATE NOCASE", (stmt) => {
279
+ stmt.bindValue(1, "0x1f");
280
+ assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);
281
+ });
282
+ });
283
+ });
284
+ it("Run plain SQL against readonly connection", () => {
285
+ let iModel = SnapshotDb.createEmpty(IModelTestUtils.prepareOutputFile("IModel", "sqlitesqlreadonlyconnection.bim"), { rootSubject: { name: "test" } });
286
+ const iModelPath = iModel.pathName;
287
+ iModel.close();
288
+ iModel = SnapshotDb.openFile(iModelPath);
289
+ try {
290
+ iModel.withPreparedSqliteStatement("SELECT Name,StrData FROM be_Prop WHERE Namespace='ec_Db'", (stmt) => {
291
+ let rowCount = 0;
292
+ while (stmt.step() === DbResult.BE_SQLITE_ROW) {
293
+ rowCount++;
294
+ assert.equal(stmt.getColumnCount(), 2);
295
+ const nameVal = stmt.getValue(0);
296
+ assert.equal(nameVal.columnName, "Name");
297
+ assert.equal(nameVal.type, SqliteValueType.String);
298
+ assert.isFalse(nameVal.isNull);
299
+ const name = nameVal.getString();
300
+ const versionVal = stmt.getValue(1);
301
+ assert.equal(versionVal.columnName, "StrData");
302
+ assert.equal(versionVal.type, SqliteValueType.String);
303
+ assert.isFalse(versionVal.isNull);
304
+ const profileVersion = JSON.parse(versionVal.getString());
305
+ assert.isTrue(name === "SchemaVersion" || name === "InitialSchemaVersion");
306
+ if (name === "SchemaVersion") {
307
+ assert.equal(profileVersion.major, 4);
308
+ assert.equal(profileVersion.minor, 0);
309
+ assert.equal(profileVersion.sub1, 0);
310
+ assert.isAtLeast(profileVersion.sub2, 1);
311
+ }
312
+ else if (name === "InitialSchemaVersion") {
313
+ assert.equal(profileVersion.major, 4);
314
+ assert.equal(profileVersion.minor, 0);
315
+ assert.equal(profileVersion.sub1, 0);
316
+ assert.isAtLeast(profileVersion.sub2, 1);
317
+ }
318
+ }
319
+ assert.equal(rowCount, 2);
320
+ });
321
+ }
322
+ finally {
323
+ iModel.close();
324
+ }
325
+ });
326
+ it("tryPrepareStatement", () => {
327
+ const env_1 = { stack: [], error: void 0, hasError: false };
328
+ try {
329
+ const imodel1 = testBimReadonly;
330
+ const sql = `SELECT * FROM ${Element.classFullName} LIMIT 1`;
331
+ const invalidSql = "SELECT * FROM InvalidSchemaName:InvalidClassName LIMIT 1";
332
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
333
+ assert.throws(() => imodel1.prepareStatement(invalidSql, false));
334
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
335
+ assert.isUndefined(imodel1.tryPrepareStatement(invalidSql));
336
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
337
+ const statement = __addDisposableResource(env_1, imodel1.tryPrepareStatement(sql), false);
338
+ assert.isDefined(statement);
339
+ assert.isTrue(statement?.isPrepared);
340
+ }
341
+ catch (e_1) {
342
+ env_1.error = e_1;
343
+ env_1.hasError = true;
344
+ }
345
+ finally {
346
+ __disposeResources(env_1);
347
+ }
348
+ });
349
+ it("containsClass", () => {
350
+ const imodel1 = testBimReadonly;
351
+ assert.isTrue(imodel1.containsClass(Element.classFullName));
352
+ assert.isTrue(imodel1.containsClass("BisCore:Element"));
353
+ assert.isTrue(imodel1.containsClass("BisCore.Element"));
354
+ assert.isTrue(imodel1.containsClass("biscore:element"));
355
+ assert.isTrue(imodel1.containsClass("biscore.element"));
356
+ assert.isTrue(imodel1.containsClass("bis:Element"));
357
+ assert.isTrue(imodel1.containsClass("bis.Element"));
358
+ assert.isTrue(imodel1.containsClass("bis:element"));
359
+ assert.isTrue(imodel1.containsClass("bis.element"));
360
+ assert.isFalse(imodel1.containsClass("BisCore:Element:InvalidExtra"));
361
+ assert.isFalse(imodel1.containsClass("BisCore"));
362
+ assert.isFalse(imodel1.containsClass(":Element"));
363
+ assert.isFalse(imodel1.containsClass("BisCore:InvalidClassName"));
364
+ assert.isFalse(imodel1.containsClass("InvalidSchemaName:Element"));
365
+ });
366
+ });
367
+ //# sourceMappingURL=IModelECSql.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelECSql.test.js","sourceRoot":"","sources":["../../../../src/test/imodel/IModelECSql.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, Id64, Id64String } from \"@itwin/core-bentley\";\r\nimport { withEditTxn } from \"../../EditTxn\";\r\nimport { Category, ECSqlStatement, Element, SnapshotDb, SqliteStatement, SqliteValue, SqliteValueType } from \"../../core-backend\";\r\nimport { IModelTestUtils } from \"../IModelTestUtils\";\r\nimport { TestUtils } from \"../TestUtils\";\r\nimport { closeIfOpen, createIModelFromSeed, importTestBim, openReadonlySeedCopy } from \"./IModelTestFixtures\";\r\n\r\n\r\ndescribe(\"iModel ECSQL and SQL\", () => {\r\n let testBimReadonly: SnapshotDb;\r\n let compatibilityReadonly: SnapshotDb;\r\n\r\n before(async () => {\r\n await TestUtils.startBackend();\r\n IModelTestUtils.registerTestBimSchema();\r\n\r\n testBimReadonly = await openReadonlySeedCopy(\"ecsql-test.bim\", \"test.bim\", { importTestBim: true });\r\n compatibilityReadonly = await openReadonlySeedCopy(\"ecsql-CompatibilityTestSeed.bim\", \"CompatibilityTestSeed.bim\");\r\n });\r\n\r\n after(() => {\r\n closeIfOpen(testBimReadonly, compatibilityReadonly);\r\n });\r\n\r\n // NOTE: this test can be removed when the deprecated executeQuery method is removed\r\n it(\"should produce an array of rows\", () => {\r\n const imodel1 = testBimReadonly;\r\n const rows: any[] = IModelTestUtils.executeQuery(imodel1, `SELECT * FROM ${Category.classFullName}`);\r\n assert.exists(rows);\r\n assert.isArray(rows);\r\n assert.isAtLeast(rows.length, 1);\r\n assert.exists(rows[0].id);\r\n assert.notEqual(rows[0].id.value, \"\");\r\n });\r\n\r\n it(\"queryEntityIds should skip undefined and null bindings\", () => {\r\n const imodel2 = compatibilityReadonly;\r\n // Callers commonly build the WHERE clause conditionally but pass the bindings object\r\n // unconditionally, relying on undefined entries being skipped (legacy bindValues semantics).\r\n const baseline = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\" });\r\n assert.isAtLeast(baseline.size, 1);\r\n\r\n const parent: string | undefined = undefined;\r\n const where = \"codevalue is null\";\r\n const withUnusedUndefined = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where, bindings: { parent } });\r\n assert.deepEqual(withUnusedUndefined, baseline);\r\n\r\n const withUnusedNull = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\", bindings: { parent: null } });\r\n assert.deepEqual(withUnusedNull, baseline);\r\n\r\n const someId = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue IS NOT NULL\", limit: 1 }).values().next().value as string;\r\n assert.isDefined(someId);\r\n const codeValue = imodel2.elements.getElement(someId).code.value;\r\n const mixed = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue=:cv\", bindings: { cv: codeValue, parent: undefined } });\r\n assert.isTrue(mixed.has(someId));\r\n\r\n // positional form: trailing undefined beyond the parameter count must be skipped, not bound\r\n const positional = imodel2.queryEntityIds({ from: \"bis.element\", where: \"CodeValue=?\", bindings: [codeValue, undefined] });\r\n assert.isTrue(positional.has(someId));\r\n });\r\n\r\n it(\"should exercise ECSqlStatement (backend only)\", () => {\r\n const imodel2 = compatibilityReadonly;\r\n // Reject an invalid statement\r\n try {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.prepareStatement(\"select no_such_property, codeValue from bis.element\", false);\r\n assert.fail(\"prepare should have failed with an exception\");\r\n } catch (err: any) {\r\n assert.isTrue(err.constructor.name === \"IModelError\");\r\n assert.notEqual(err.status, DbResult.BE_SQLITE_OK);\r\n }\r\n let lastId: string = \"\";\r\n let firstCodeValue: string = \"\";\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element\", (stmt: ECSqlStatement) => {\r\n assert.isNotNull(stmt);\r\n // Reject an attempt to bind when there are no placeholders in the statement\r\n try {\r\n stmt.bindStruct(1, { foo: 1 });\r\n assert.fail(\"bindStruct should have failed with an exception\");\r\n } catch (err2: any) {\r\n assert.isTrue(err2.constructor.name === \"IModelError\");\r\n assert.notEqual(err2.status, DbResult.BE_SQLITE_OK);\r\n }\r\n\r\n // Verify that we get a bunch of rows with the expected shape\r\n let count = 0;\r\n while (DbResult.BE_SQLITE_ROW === stmt.step()) {\r\n const row = stmt.getRow();\r\n assert.isNotNull(row);\r\n assert.isObject(row);\r\n assert.isTrue(row.id !== undefined);\r\n assert.isTrue(Id64.isValid(Id64.fromJSON(row.id)));\r\n lastId = row.id;\r\n if (row.codeValue !== undefined)\r\n firstCodeValue = row.codeValue;\r\n count = count + 1;\r\n }\r\n assert.isTrue(count > 1);\r\n assert.notEqual(lastId, \"\");\r\n assert.notEqual(firstCodeValue, \"\");\r\n\r\n // Try iterator style\r\n let firstCodeValueIter: string = \"\";\r\n let iteratorCount = 0;\r\n let lastIterId: string = \"\";\r\n stmt.reset();\r\n for (const row of stmt) {\r\n assert.isNotNull(row);\r\n assert.isObject(row);\r\n assert.isTrue(row.id !== undefined);\r\n assert.isTrue(Id64.isValid(Id64.fromJSON(row.id)));\r\n lastIterId = row.id;\r\n iteratorCount = iteratorCount + 1;\r\n if (row.codeValue !== undefined)\r\n firstCodeValueIter = row.codeValue;\r\n }\r\n assert.equal(iteratorCount, count, \"iterator loop should find the same number of rows as the step loop\");\r\n assert.equal(lastIterId, lastId, \"iterator loop should see the same last row as the step loop\");\r\n assert.equal(firstCodeValueIter, firstCodeValue, \"iterator loop should find the first non-null code value as the step loop\");\r\n });\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element WHERE (ecinstanceid=?)\", (stmt3: ECSqlStatement) => {\r\n // Now try a statement with a placeholder\r\n const idToFind = Id64.fromJSON(lastId);\r\n stmt3.bindId(1, idToFind);\r\n let count = 0;\r\n while (DbResult.BE_SQLITE_ROW === stmt3.step()) {\r\n count = count + 1;\r\n const row = stmt3.getRow();\r\n // Verify that we got the row that we asked for\r\n assert.isTrue(idToFind === Id64.fromJSON(row.id));\r\n }\r\n // Verify that we got the row that we asked for\r\n assert.equal(count, 1);\r\n });\r\n\r\n let firstCodeValueId: Id64String | undefined;\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select ecinstanceid, codeValue from bis.element WHERE (codeValue = :codevalue)\", (stmt4: ECSqlStatement) => {\r\n // Try a named placeholder\r\n const codeValueToFind = firstCodeValue;\r\n stmt4.bindString(\"codeValue\", codeValueToFind);\r\n let count = 0;\r\n while (DbResult.BE_SQLITE_ROW === stmt4.step()) {\r\n count = count + 1;\r\n const row = stmt4.getRow();\r\n // Verify that we got the row that we asked for\r\n assert.equal(row.codeValue, codeValueToFind);\r\n firstCodeValueId = row.id;\r\n }\r\n // Verify that we got the row that we asked for\r\n assert.equal(count, 1);\r\n });\r\n\r\n // make sure we can use parameterized values for queryEnityId (test on parameterized codevalue)\r\n const ids = imodel2.queryEntityIds({ from: \"bis.element\", where: \"codevalue=:cv\", bindings: { cv: firstCodeValue } });\r\n assert.equal(ids.values().next().value, firstCodeValueId);\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select ecinstanceid as id, codevalue from bis.element\", (stmt5: ECSqlStatement) => {\r\n while (DbResult.BE_SQLITE_ROW === stmt5.step()) {\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n imodel2.withPreparedStatement(\"select codevalue from bis.element where ecinstanceid=?\", (stmt6: ECSqlStatement) => {\r\n stmt6.bindId(1, stmt5.getRow().id);\r\n while (DbResult.BE_SQLITE_ROW === stmt6.step()) {\r\n assert.equal(stmt6.getRow().codevalue, stmt5.getRow().codevalue);\r\n }\r\n });\r\n }\r\n });\r\n\r\n // make sure queryEnityIds works fine when all params are specified\r\n const physicalObjectIds = imodel2.queryEntityIds({ from: \"generic.PhysicalObject\", where: \"codevalue is null\", limit: 1, offset: 1, only: true, orderBy: \"ecinstanceid desc\" });\r\n assert.equal(physicalObjectIds.size, 1);\r\n });\r\n\r\n describe(\"with a writable test.bim seed\", () => {\r\n let imodel1: SnapshotDb;\r\n\r\n beforeEach(async () => {\r\n imodel1 = await importTestBim(createIModelFromSeed(\"ecsql-plain-sql.bim\", \"test.bim\"));\r\n });\r\n\r\n afterEach(() => {\r\n if (imodel1 !== undefined && imodel1.isOpen)\r\n imodel1.close();\r\n });\r\n\r\n it(\"Run plain SQL\", () => {\r\n withEditTxn(imodel1, () => {\r\n imodel1.withPreparedSqliteStatement(\"CREATE TABLE Test(Id INTEGER PRIMARY KEY, Name TEXT NOT NULL, Code INTEGER)\", (stmt: SqliteStatement) => {\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(?,?)\", (stmt: SqliteStatement) => {\r\n stmt.bindValue(1, \"Dummy 1\");\r\n stmt.bindValue(2, 100);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(?,?)\", (stmt: SqliteStatement) => {\r\n stmt.bindValues([\"Dummy 2\", 200]);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(:p1,:p2)\", (stmt: SqliteStatement) => {\r\n stmt.bindValue(\":p1\", \"Dummy 3\");\r\n stmt.bindValue(\":p2\", 300);\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"INSERT INTO Test(Name,Code) VALUES(:p1,:p2)\", (stmt: SqliteStatement) => {\r\n stmt.bindValues({ \":p1\": \"Dummy 4\", \":p2\": 400 });\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"SELECT Id,Name,Code FROM Test ORDER BY Id\", (stmt: SqliteStatement) => {\r\n for (let i: number = 1; i <= 4; i++) {\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_ROW);\r\n assert.equal(stmt.getColumnCount(), 3);\r\n const val0: SqliteValue = stmt.getValue(0);\r\n assert.equal(val0.columnName, \"Id\");\r\n assert.equal(val0.type, SqliteValueType.Integer);\r\n assert.isFalse(val0.isNull);\r\n assert.equal(val0.getInteger(), i);\r\n\r\n const val1: SqliteValue = stmt.getValue(1);\r\n assert.equal(val1.columnName, \"Name\");\r\n assert.equal(val1.type, SqliteValueType.String);\r\n assert.isFalse(val1.isNull);\r\n assert.equal(val1.getString(), `Dummy ${i}`);\r\n\r\n const val2: SqliteValue = stmt.getValue(2);\r\n assert.equal(val2.columnName, \"Code\");\r\n assert.equal(val2.type, SqliteValueType.Integer);\r\n assert.isFalse(val2.isNull);\r\n assert.equal(val2.getInteger(), i * 100);\r\n\r\n const row: any = stmt.getRow();\r\n assert.equal(row.id, i);\r\n assert.equal(row.name, `Dummy ${i}`);\r\n assert.equal(row.code, i * 100);\r\n }\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n\r\n imodel1.withPreparedSqliteStatement(\"SELECT 1 FROM ec_CustomAttribute WHERE ContainerId=? AND Instance LIKE '<IsMixin%' COLLATE NOCASE\", (stmt: SqliteStatement) => {\r\n stmt.bindValue(1, \"0x1f\");\r\n assert.equal(stmt.step(), DbResult.BE_SQLITE_DONE);\r\n });\r\n });\r\n });\r\n\r\n it(\"Run plain SQL against readonly connection\", () => {\r\n let iModel = SnapshotDb.createEmpty(IModelTestUtils.prepareOutputFile(\"IModel\", \"sqlitesqlreadonlyconnection.bim\"), { rootSubject: { name: \"test\" } });\r\n const iModelPath = iModel.pathName;\r\n iModel.close();\r\n iModel = SnapshotDb.openFile(iModelPath);\r\n\r\n try {\r\n iModel.withPreparedSqliteStatement(\"SELECT Name,StrData FROM be_Prop WHERE Namespace='ec_Db'\", (stmt: SqliteStatement) => {\r\n let rowCount: number = 0;\r\n while (stmt.step() === DbResult.BE_SQLITE_ROW) {\r\n rowCount++;\r\n assert.equal(stmt.getColumnCount(), 2);\r\n const nameVal: SqliteValue = 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: string = nameVal.getString();\r\n\r\n const versionVal: SqliteValue = 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 } finally {\r\n iModel.close();\r\n }\r\n });\r\n\r\n it(\"tryPrepareStatement\", () => {\r\n const imodel1 = testBimReadonly;\r\n const sql = `SELECT * FROM ${Element.classFullName} LIMIT 1`;\r\n const invalidSql = \"SELECT * FROM InvalidSchemaName:InvalidClassName LIMIT 1\";\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n assert.throws(() => imodel1.prepareStatement(invalidSql, false));\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n assert.isUndefined(imodel1.tryPrepareStatement(invalidSql));\r\n // eslint-disable-next-line @typescript-eslint/no-deprecated\r\n using statement: ECSqlStatement | undefined = imodel1.tryPrepareStatement(sql);\r\n assert.isDefined(statement);\r\n assert.isTrue(statement?.isPrepared);\r\n });\r\n\r\n it(\"containsClass\", () => {\r\n const imodel1 = testBimReadonly;\r\n assert.isTrue(imodel1.containsClass(Element.classFullName));\r\n assert.isTrue(imodel1.containsClass(\"BisCore:Element\"));\r\n assert.isTrue(imodel1.containsClass(\"BisCore.Element\"));\r\n assert.isTrue(imodel1.containsClass(\"biscore:element\"));\r\n assert.isTrue(imodel1.containsClass(\"biscore.element\"));\r\n assert.isTrue(imodel1.containsClass(\"bis:Element\"));\r\n assert.isTrue(imodel1.containsClass(\"bis.Element\"));\r\n assert.isTrue(imodel1.containsClass(\"bis:element\"));\r\n assert.isTrue(imodel1.containsClass(\"bis.element\"));\r\n assert.isFalse(imodel1.containsClass(\"BisCore:Element:InvalidExtra\"));\r\n assert.isFalse(imodel1.containsClass(\"BisCore\"));\r\n assert.isFalse(imodel1.containsClass(\":Element\"));\r\n assert.isFalse(imodel1.containsClass(\"BisCore:InvalidClassName\"));\r\n assert.isFalse(imodel1.containsClass(\"InvalidSchemaName:Element\"));\r\n });\r\n});\r\n"]}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=IModelElements.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IModelElements.test.d.ts","sourceRoot":"","sources":["../../../../src/test/imodel/IModelElements.test.ts"],"names":[],"mappings":""}