@itwin/core-backend 5.0.0-dev.11 → 5.0.0-dev.111

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 (1102) hide show
  1. package/CHANGELOG.md +90 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +15 -35
  3. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  4. package/lib/cjs/BackendHubAccess.js +2 -0
  5. package/lib/cjs/BackendHubAccess.js.map +1 -1
  6. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  7. package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
  8. package/lib/cjs/BisCoreSchema.js +2 -0
  9. package/lib/cjs/BisCoreSchema.js.map +1 -1
  10. package/lib/cjs/BlobContainerService.d.ts +4 -4
  11. package/lib/cjs/BlobContainerService.d.ts.map +1 -1
  12. package/lib/cjs/BlobContainerService.js.map +1 -1
  13. package/lib/cjs/BriefcaseManager.d.ts +10 -0
  14. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  15. package/lib/cjs/BriefcaseManager.js +63 -20
  16. package/lib/cjs/BriefcaseManager.js.map +1 -1
  17. package/lib/cjs/CatalogDb.d.ts +103 -0
  18. package/lib/cjs/CatalogDb.d.ts.map +1 -0
  19. package/lib/cjs/CatalogDb.js +271 -0
  20. package/lib/cjs/CatalogDb.js.map +1 -0
  21. package/lib/cjs/Category.d.ts +37 -0
  22. package/lib/cjs/Category.d.ts.map +1 -1
  23. package/lib/cjs/Category.js +79 -1
  24. package/lib/cjs/Category.js.map +1 -1
  25. package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
  26. package/lib/cjs/ChangeSummaryManager.js +104 -29
  27. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  28. package/lib/cjs/ChangedElementsDb.d.ts +3 -3
  29. package/lib/cjs/ChangedElementsDb.d.ts.map +1 -1
  30. package/lib/cjs/ChangedElementsDb.js +8 -7
  31. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  32. package/lib/cjs/ChangesetECAdaptor.d.ts +3 -3
  33. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  34. package/lib/cjs/ChangesetECAdaptor.js +274 -261
  35. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  36. package/lib/cjs/ChannelControl.js.map +1 -1
  37. package/lib/cjs/CheckpointManager.d.ts +12 -17
  38. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  39. package/lib/cjs/CheckpointManager.js +40 -92
  40. package/lib/cjs/CheckpointManager.js.map +1 -1
  41. package/lib/cjs/ClassRegistry.d.ts +46 -2
  42. package/lib/cjs/ClassRegistry.d.ts.map +1 -1
  43. package/lib/cjs/ClassRegistry.js +98 -42
  44. package/lib/cjs/ClassRegistry.js.map +1 -1
  45. package/lib/cjs/CloudSqlite.d.ts +104 -20
  46. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  47. package/lib/cjs/CloudSqlite.js +172 -54
  48. package/lib/cjs/CloudSqlite.js.map +1 -1
  49. package/lib/cjs/CodeService.d.ts +2 -0
  50. package/lib/cjs/CodeService.d.ts.map +1 -1
  51. package/lib/cjs/CodeService.js +4 -0
  52. package/lib/cjs/CodeService.js.map +1 -1
  53. package/lib/cjs/CodeSpecs.js +3 -2
  54. package/lib/cjs/CodeSpecs.js.map +1 -1
  55. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  56. package/lib/cjs/CustomViewState3dCreator.js +7 -6
  57. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  58. package/lib/cjs/DevTools.js +16 -16
  59. package/lib/cjs/DevTools.js.map +1 -1
  60. package/lib/cjs/DisplayStyle.d.ts +5 -0
  61. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  62. package/lib/cjs/DisplayStyle.js +29 -0
  63. package/lib/cjs/DisplayStyle.js.map +1 -1
  64. package/lib/cjs/ECDb.d.ts +53 -60
  65. package/lib/cjs/ECDb.d.ts.map +1 -1
  66. package/lib/cjs/ECDb.js +115 -73
  67. package/lib/cjs/ECDb.js.map +1 -1
  68. package/lib/cjs/ECSchemaXmlContext.d.ts +1 -1
  69. package/lib/cjs/ECSchemaXmlContext.js +2 -1
  70. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  71. package/lib/cjs/ECSqlStatement.d.ts +185 -4
  72. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  73. package/lib/cjs/ECSqlStatement.js +237 -9
  74. package/lib/cjs/ECSqlStatement.js.map +1 -1
  75. package/lib/cjs/Element.d.ts +194 -35
  76. package/lib/cjs/Element.d.ts.map +1 -1
  77. package/lib/cjs/Element.js +683 -57
  78. package/lib/cjs/Element.js.map +1 -1
  79. package/lib/cjs/ElementAspect.d.ts +0 -5
  80. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  81. package/lib/cjs/ElementAspect.js +25 -16
  82. package/lib/cjs/ElementAspect.js.map +1 -1
  83. package/lib/cjs/ElementGraphics.js.map +1 -1
  84. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  85. package/lib/cjs/ElementTreeWalker.js +17 -12
  86. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  87. package/lib/cjs/Entity.d.ts +91 -11
  88. package/lib/cjs/Entity.d.ts.map +1 -1
  89. package/lib/cjs/Entity.js +137 -16
  90. package/lib/cjs/Entity.js.map +1 -1
  91. package/lib/cjs/EntityReferences.js.map +1 -1
  92. package/lib/cjs/ExportGraphics.js +4 -0
  93. package/lib/cjs/ExportGraphics.js.map +1 -1
  94. package/lib/cjs/ExternalSource.js +22 -0
  95. package/lib/cjs/ExternalSource.js.map +1 -1
  96. package/lib/cjs/FontFile.d.ts +68 -0
  97. package/lib/cjs/FontFile.d.ts.map +1 -0
  98. package/lib/cjs/FontFile.js +36 -0
  99. package/lib/cjs/FontFile.js.map +1 -0
  100. package/lib/cjs/GeoCoordConfig.js +8 -8
  101. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  102. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  103. package/lib/cjs/GeometrySummary.js +53 -50
  104. package/lib/cjs/GeometrySummary.js.map +1 -1
  105. package/lib/cjs/IModelDb.d.ts +231 -108
  106. package/lib/cjs/IModelDb.d.ts.map +1 -1
  107. package/lib/cjs/IModelDb.js +516 -249
  108. package/lib/cjs/IModelDb.js.map +1 -1
  109. package/lib/cjs/IModelDbFonts.d.ts +54 -0
  110. package/lib/cjs/IModelDbFonts.d.ts.map +1 -0
  111. package/lib/cjs/{IModelCloneContext.js → IModelDbFonts.js} +2 -7
  112. package/lib/cjs/IModelDbFonts.js.map +1 -0
  113. package/lib/cjs/IModelElementCloneContext.d.ts +2 -0
  114. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  115. package/lib/cjs/IModelElementCloneContext.js +12 -1
  116. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  117. package/lib/cjs/IModelHost.d.ts +28 -15
  118. package/lib/cjs/IModelHost.d.ts.map +1 -1
  119. package/lib/cjs/IModelHost.js +82 -43
  120. package/lib/cjs/IModelHost.js.map +1 -1
  121. package/lib/cjs/IModelJsFs.d.ts.map +1 -1
  122. package/lib/cjs/IModelJsFs.js +17 -1
  123. package/lib/cjs/IModelJsFs.js.map +1 -1
  124. package/lib/cjs/ImageSourceConversion.d.ts +49 -0
  125. package/lib/cjs/ImageSourceConversion.d.ts.map +1 -0
  126. package/lib/cjs/ImageSourceConversion.js +37 -0
  127. package/lib/cjs/ImageSourceConversion.js.map +1 -0
  128. package/lib/cjs/IpcHost.d.ts.map +1 -1
  129. package/lib/cjs/IpcHost.js +19 -33
  130. package/lib/cjs/IpcHost.js.map +1 -1
  131. package/lib/cjs/LineStyle.js.map +1 -1
  132. package/lib/cjs/LocalHub.js +9 -3
  133. package/lib/cjs/LocalHub.js.map +1 -1
  134. package/lib/cjs/LocalhostIpcHost.js +5 -6
  135. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  136. package/lib/cjs/LockControl.js.map +1 -1
  137. package/lib/cjs/Material.d.ts +19 -0
  138. package/lib/cjs/Material.d.ts.map +1 -1
  139. package/lib/cjs/Material.js +69 -0
  140. package/lib/cjs/Material.js.map +1 -1
  141. package/lib/cjs/Model.d.ts +43 -7
  142. package/lib/cjs/Model.d.ts.map +1 -1
  143. package/lib/cjs/Model.js +120 -7
  144. package/lib/cjs/Model.js.map +1 -1
  145. package/lib/cjs/NativeAppStorage.js +5 -3
  146. package/lib/cjs/NativeAppStorage.js.map +1 -1
  147. package/lib/cjs/NativeHost.d.ts.map +1 -1
  148. package/lib/cjs/NativeHost.js +10 -4
  149. package/lib/cjs/NativeHost.js.map +1 -1
  150. package/lib/cjs/NavigationRelationship.js +25 -25
  151. package/lib/cjs/NavigationRelationship.js.map +1 -1
  152. package/lib/cjs/PromiseMemoizer.d.ts +2 -3
  153. package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
  154. package/lib/cjs/PromiseMemoizer.js +12 -5
  155. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  156. package/lib/cjs/PropertyStore.js +1 -4
  157. package/lib/cjs/PropertyStore.js.map +1 -1
  158. package/lib/cjs/Relationship.d.ts.map +1 -1
  159. package/lib/cjs/Relationship.js +15 -1
  160. package/lib/cjs/Relationship.js.map +1 -1
  161. package/lib/cjs/RpcBackend.js.map +1 -1
  162. package/lib/cjs/SQLiteDb.d.ts +6 -4
  163. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  164. package/lib/cjs/SQLiteDb.js +79 -19
  165. package/lib/cjs/SQLiteDb.js.map +1 -1
  166. package/lib/cjs/Schema.d.ts +25 -1
  167. package/lib/cjs/Schema.d.ts.map +1 -1
  168. package/lib/cjs/Schema.js +44 -8
  169. package/lib/cjs/Schema.js.map +1 -1
  170. package/lib/cjs/SchemaSync.js +1 -4
  171. package/lib/cjs/SchemaSync.js.map +1 -1
  172. package/lib/cjs/SchemaUtils.js.map +1 -1
  173. package/lib/cjs/SheetIndex.js +6 -0
  174. package/lib/cjs/SheetIndex.js.map +1 -1
  175. package/lib/cjs/SqliteChangesetReader.d.ts +11 -3
  176. package/lib/cjs/SqliteChangesetReader.d.ts.map +1 -1
  177. package/lib/cjs/SqliteChangesetReader.js +21 -5
  178. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  179. package/lib/cjs/SqliteStatement.d.ts +4 -2
  180. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  181. package/lib/cjs/SqliteStatement.js +13 -1
  182. package/lib/cjs/SqliteStatement.js.map +1 -1
  183. package/lib/cjs/TextAnnotationElement.js.map +1 -1
  184. package/lib/cjs/TextAnnotationGeometry.d.ts.map +1 -1
  185. package/lib/cjs/TextAnnotationGeometry.js +38 -11
  186. package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
  187. package/lib/cjs/TextAnnotationLayout.d.ts +10 -3
  188. package/lib/cjs/TextAnnotationLayout.d.ts.map +1 -1
  189. package/lib/cjs/TextAnnotationLayout.js +56 -18
  190. package/lib/cjs/TextAnnotationLayout.js.map +1 -1
  191. package/lib/cjs/Texture.js +3 -0
  192. package/lib/cjs/Texture.js.map +1 -1
  193. package/lib/cjs/TileStorage.js +6 -1
  194. package/lib/cjs/TileStorage.js.map +1 -1
  195. package/lib/cjs/TxnManager.d.ts +55 -4
  196. package/lib/cjs/TxnManager.d.ts.map +1 -1
  197. package/lib/cjs/TxnManager.js +235 -58
  198. package/lib/cjs/TxnManager.js.map +1 -1
  199. package/lib/cjs/ViewDefinition.d.ts +106 -6
  200. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  201. package/lib/cjs/ViewDefinition.js +289 -26
  202. package/lib/cjs/ViewDefinition.js.map +1 -1
  203. package/lib/cjs/ViewStateHydrator.d.ts +0 -1
  204. package/lib/cjs/ViewStateHydrator.d.ts.map +1 -1
  205. package/lib/cjs/ViewStateHydrator.js +4 -14
  206. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  207. package/lib/cjs/ViewStore.d.ts.map +1 -1
  208. package/lib/cjs/ViewStore.js +32 -29
  209. package/lib/cjs/ViewStore.js.map +1 -1
  210. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  211. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  212. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  213. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  214. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  215. package/lib/cjs/core-backend.d.ts +8 -2
  216. package/lib/cjs/core-backend.d.ts.map +1 -1
  217. package/lib/cjs/core-backend.js +8 -2
  218. package/lib/cjs/core-backend.js.map +1 -1
  219. package/lib/cjs/domains/FunctionalElements.js +1 -1
  220. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  221. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  222. package/lib/cjs/domains/GenericElements.js.map +1 -1
  223. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  224. package/lib/cjs/internal/ChangesetConflictArgs.d.ts +40 -2
  225. package/lib/cjs/internal/ChangesetConflictArgs.d.ts.map +1 -1
  226. package/lib/cjs/internal/ChangesetConflictArgs.js +101 -0
  227. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  228. package/lib/cjs/internal/ChannelAdmin.d.ts +1 -1
  229. package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
  230. package/lib/cjs/internal/ChannelAdmin.js +16 -13
  231. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  232. package/lib/cjs/internal/ElementLRUCache.d.ts +28 -0
  233. package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -0
  234. package/lib/cjs/internal/ElementLRUCache.js +120 -0
  235. package/lib/cjs/internal/ElementLRUCache.js.map +1 -0
  236. package/lib/cjs/internal/FontFileImpl.d.ts +34 -0
  237. package/lib/cjs/internal/FontFileImpl.d.ts.map +1 -0
  238. package/lib/cjs/internal/FontFileImpl.js +143 -0
  239. package/lib/cjs/internal/FontFileImpl.js.map +1 -0
  240. package/lib/cjs/{HubMock.d.ts → internal/HubMock.d.ts} +6 -7
  241. package/lib/cjs/internal/HubMock.d.ts.map +1 -0
  242. package/lib/cjs/{HubMock.js → internal/HubMock.js} +40 -15
  243. package/lib/cjs/internal/HubMock.js.map +1 -0
  244. package/lib/cjs/internal/IModelDbFontsImpl.d.ts +7 -0
  245. package/lib/cjs/internal/IModelDbFontsImpl.d.ts.map +1 -0
  246. package/lib/cjs/internal/IModelDbFontsImpl.js +186 -0
  247. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -0
  248. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  249. package/lib/cjs/internal/NoLocks.js +2 -5
  250. package/lib/cjs/internal/NoLocks.js.map +1 -1
  251. package/lib/cjs/internal/ServerBasedLocks.d.ts.map +1 -1
  252. package/lib/cjs/internal/ServerBasedLocks.js +6 -6
  253. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  254. package/lib/cjs/internal/Symbols.d.ts +9 -0
  255. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  256. package/lib/cjs/internal/Symbols.js +10 -1
  257. package/lib/cjs/internal/Symbols.js.map +1 -1
  258. package/lib/cjs/internal/cross-package.js.map +1 -1
  259. package/lib/cjs/internal/workspace/SettingsImpl.js +6 -9
  260. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  261. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js +8 -12
  262. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  263. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts +2 -16
  264. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  265. package/lib/cjs/internal/workspace/WorkspaceImpl.js +57 -121
  266. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  267. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js +1 -4
  268. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  269. package/lib/cjs/rpc/multipart.d.ts.map +1 -1
  270. package/lib/cjs/rpc/multipart.js +2 -1
  271. package/lib/cjs/rpc/multipart.js.map +1 -1
  272. package/lib/cjs/rpc/tracing.js +2 -2
  273. package/lib/cjs/rpc/tracing.js.map +1 -1
  274. package/lib/cjs/rpc/web/logging.js.map +1 -1
  275. package/lib/cjs/rpc/web/request.d.ts.map +1 -1
  276. package/lib/cjs/rpc/web/request.js +2 -1
  277. package/lib/cjs/rpc/web/request.js.map +1 -1
  278. package/lib/cjs/rpc/web/response.js.map +1 -1
  279. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  280. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
  281. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +8 -4
  282. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  283. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +5 -3
  284. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  285. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -1
  286. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +15 -25
  287. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  288. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  289. package/lib/cjs/workspace/Settings.js.map +1 -1
  290. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  291. package/lib/cjs/workspace/Workspace.d.ts +6 -13
  292. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  293. package/lib/cjs/workspace/Workspace.js.map +1 -1
  294. package/lib/cjs/workspace/WorkspaceEditor.d.ts +2 -7
  295. package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
  296. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  297. package/lib/esm/BackendHubAccess.d.ts +209 -0
  298. package/lib/esm/BackendHubAccess.d.ts.map +1 -0
  299. package/lib/esm/BackendHubAccess.js +41 -0
  300. package/lib/esm/BackendHubAccess.js.map +1 -0
  301. package/lib/esm/BackendLoggerCategory.d.ts +88 -0
  302. package/lib/esm/BackendLoggerCategory.d.ts.map +1 -0
  303. package/lib/esm/BackendLoggerCategory.js +93 -0
  304. package/lib/esm/BackendLoggerCategory.js.map +1 -0
  305. package/lib/esm/BisCoreSchema.d.ts +22 -0
  306. package/lib/esm/BisCoreSchema.d.ts.map +1 -0
  307. package/lib/esm/BisCoreSchema.js +61 -0
  308. package/lib/esm/BisCoreSchema.js.map +1 -0
  309. package/lib/esm/BlobContainerService.d.ts +159 -0
  310. package/lib/esm/BlobContainerService.d.ts.map +1 -0
  311. package/lib/esm/BlobContainerService.js +15 -0
  312. package/lib/esm/BlobContainerService.js.map +1 -0
  313. package/lib/esm/BriefcaseManager.d.ts +213 -0
  314. package/lib/esm/BriefcaseManager.d.ts.map +1 -0
  315. package/lib/esm/BriefcaseManager.js +520 -0
  316. package/lib/esm/BriefcaseManager.js.map +1 -0
  317. package/lib/esm/CatalogDb.d.ts +103 -0
  318. package/lib/esm/CatalogDb.d.ts.map +1 -0
  319. package/lib/esm/CatalogDb.js +267 -0
  320. package/lib/esm/CatalogDb.js.map +1 -0
  321. package/lib/esm/Category.d.ts +173 -0
  322. package/lib/esm/Category.d.ts.map +1 -0
  323. package/lib/esm/Category.js +297 -0
  324. package/lib/esm/Category.js.map +1 -0
  325. package/lib/esm/ChangeSummaryManager.d.ts +161 -0
  326. package/lib/esm/ChangeSummaryManager.d.ts.map +1 -0
  327. package/lib/esm/ChangeSummaryManager.js +421 -0
  328. package/lib/esm/ChangeSummaryManager.js.map +1 -0
  329. package/lib/esm/ChangedElementsDb.d.ts +101 -0
  330. package/lib/esm/ChangedElementsDb.d.ts.map +1 -0
  331. package/lib/esm/ChangedElementsDb.js +165 -0
  332. package/lib/esm/ChangedElementsDb.js.map +1 -0
  333. package/lib/esm/ChangesetECAdaptor.d.ts +203 -0
  334. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -0
  335. package/lib/esm/ChangesetECAdaptor.js +815 -0
  336. package/lib/esm/ChangesetECAdaptor.js.map +1 -0
  337. package/lib/esm/ChannelControl.d.ts +68 -0
  338. package/lib/esm/ChannelControl.d.ts.map +1 -0
  339. package/lib/esm/ChannelControl.js +15 -0
  340. package/lib/esm/ChannelControl.js.map +1 -0
  341. package/lib/esm/CheckpointManager.d.ts +118 -0
  342. package/lib/esm/CheckpointManager.d.ts.map +1 -0
  343. package/lib/esm/CheckpointManager.js +321 -0
  344. package/lib/esm/CheckpointManager.js.map +1 -0
  345. package/lib/esm/ClassRegistry.d.ts +134 -0
  346. package/lib/esm/ClassRegistry.d.ts.map +1 -0
  347. package/lib/esm/ClassRegistry.js +324 -0
  348. package/lib/esm/ClassRegistry.js.map +1 -0
  349. package/lib/esm/CloudSqlite.d.ts +766 -0
  350. package/lib/esm/CloudSqlite.d.ts.map +1 -0
  351. package/lib/esm/CloudSqlite.js +622 -0
  352. package/lib/esm/CloudSqlite.js.map +1 -0
  353. package/lib/esm/CodeService.d.ts +402 -0
  354. package/lib/esm/CodeService.d.ts.map +1 -0
  355. package/lib/esm/CodeService.js +65 -0
  356. package/lib/esm/CodeService.js.map +1 -0
  357. package/lib/esm/CodeSpecs.d.ts +59 -0
  358. package/lib/esm/CodeSpecs.d.ts.map +1 -0
  359. package/lib/esm/CodeSpecs.js +152 -0
  360. package/lib/esm/CodeSpecs.js.map +1 -0
  361. package/lib/esm/ConcurrentQuery.d.ts +14 -0
  362. package/lib/esm/ConcurrentQuery.d.ts.map +1 -0
  363. package/lib/esm/ConcurrentQuery.js +33 -0
  364. package/lib/esm/ConcurrentQuery.js.map +1 -0
  365. package/lib/esm/CustomViewState3dCreator.d.ts +22 -0
  366. package/lib/esm/CustomViewState3dCreator.d.ts.map +1 -0
  367. package/lib/esm/CustomViewState3dCreator.js +78 -0
  368. package/lib/esm/CustomViewState3dCreator.js.map +1 -0
  369. package/lib/esm/DevTools.d.ts +73 -0
  370. package/lib/esm/DevTools.d.ts.map +1 -0
  371. package/lib/esm/DevTools.js +153 -0
  372. package/lib/esm/DevTools.js.map +1 -0
  373. package/lib/esm/DisplayStyle.d.ts +104 -0
  374. package/lib/esm/DisplayStyle.d.ts.map +1 -0
  375. package/lib/esm/DisplayStyle.js +291 -0
  376. package/lib/esm/DisplayStyle.js.map +1 -0
  377. package/lib/esm/ECDb.d.ts +206 -0
  378. package/lib/esm/ECDb.d.ts.map +1 -0
  379. package/lib/esm/ECDb.js +410 -0
  380. package/lib/esm/ECDb.js.map +1 -0
  381. package/lib/esm/ECSchemaXmlContext.d.ts +46 -0
  382. package/lib/esm/ECSchemaXmlContext.d.ts.map +1 -0
  383. package/lib/esm/ECSchemaXmlContext.js +66 -0
  384. package/lib/esm/ECSchemaXmlContext.js.map +1 -0
  385. package/lib/esm/ECSqlStatement.d.ts +671 -0
  386. package/lib/esm/ECSqlStatement.d.ts.map +1 -0
  387. package/lib/esm/ECSqlStatement.js +1028 -0
  388. package/lib/esm/ECSqlStatement.js.map +1 -0
  389. package/lib/esm/Element.d.ts +1155 -0
  390. package/lib/esm/Element.d.ts.map +1 -0
  391. package/lib/esm/Element.js +1876 -0
  392. package/lib/esm/Element.js.map +1 -0
  393. package/lib/esm/ElementAspect.d.ts +164 -0
  394. package/lib/esm/ElementAspect.d.ts.map +1 -0
  395. package/lib/esm/ElementAspect.js +205 -0
  396. package/lib/esm/ElementAspect.js.map +1 -0
  397. package/lib/esm/ElementGraphics.d.ts +7 -0
  398. package/lib/esm/ElementGraphics.d.ts.map +1 -0
  399. package/lib/esm/ElementGraphics.js +36 -0
  400. package/lib/esm/ElementGraphics.js.map +1 -0
  401. package/lib/esm/ElementTreeWalker.d.ts +182 -0
  402. package/lib/esm/ElementTreeWalker.d.ts.map +1 -0
  403. package/lib/esm/ElementTreeWalker.js +425 -0
  404. package/lib/esm/ElementTreeWalker.js.map +1 -0
  405. package/lib/esm/Entity.d.ts +186 -0
  406. package/lib/esm/Entity.d.ts.map +1 -0
  407. package/lib/esm/Entity.js +244 -0
  408. package/lib/esm/Entity.js.map +1 -0
  409. package/lib/esm/EntityReferences.d.ts +50 -0
  410. package/lib/esm/EntityReferences.d.ts.map +1 -0
  411. package/lib/esm/EntityReferences.js +92 -0
  412. package/lib/esm/EntityReferences.js.map +1 -0
  413. package/lib/esm/ExportGraphics.d.ts +318 -0
  414. package/lib/esm/ExportGraphics.d.ts.map +1 -0
  415. package/lib/esm/ExportGraphics.js +209 -0
  416. package/lib/esm/ExportGraphics.js.map +1 -0
  417. package/lib/esm/ExternalSource.d.ts +89 -0
  418. package/lib/esm/ExternalSource.d.ts.map +1 -0
  419. package/lib/esm/ExternalSource.js +139 -0
  420. package/lib/esm/ExternalSource.js.map +1 -0
  421. package/lib/esm/FontFile.d.ts +68 -0
  422. package/lib/esm/FontFile.d.ts.map +1 -0
  423. package/lib/esm/FontFile.js +33 -0
  424. package/lib/esm/FontFile.js.map +1 -0
  425. package/lib/esm/GeoCoordConfig.d.ts +30 -0
  426. package/lib/esm/GeoCoordConfig.d.ts.map +1 -0
  427. package/lib/esm/GeoCoordConfig.js +78 -0
  428. package/lib/esm/GeoCoordConfig.js.map +1 -0
  429. package/lib/esm/GeographicCRSServices.d.ts +40 -0
  430. package/lib/esm/GeographicCRSServices.d.ts.map +1 -0
  431. package/lib/esm/GeographicCRSServices.js +17 -0
  432. package/lib/esm/GeographicCRSServices.js.map +1 -0
  433. package/lib/esm/GeometrySummary.d.ts +5 -0
  434. package/lib/esm/GeometrySummary.d.ts.map +1 -0
  435. package/lib/esm/GeometrySummary.js +381 -0
  436. package/lib/esm/GeometrySummary.js.map +1 -0
  437. package/lib/esm/IModelDb.d.ts +1390 -0
  438. package/lib/esm/IModelDb.d.ts.map +1 -0
  439. package/lib/esm/IModelDb.js +3327 -0
  440. package/lib/esm/IModelDb.js.map +1 -0
  441. package/lib/esm/IModelDbFonts.d.ts +54 -0
  442. package/lib/esm/IModelDbFonts.d.ts.map +1 -0
  443. package/lib/esm/IModelDbFonts.js +9 -0
  444. package/lib/esm/IModelDbFonts.js.map +1 -0
  445. package/lib/esm/IModelElementCloneContext.d.ts +92 -0
  446. package/lib/esm/IModelElementCloneContext.d.ts.map +1 -0
  447. package/lib/esm/IModelElementCloneContext.js +168 -0
  448. package/lib/esm/IModelElementCloneContext.js.map +1 -0
  449. package/lib/esm/IModelHost.d.ts +400 -0
  450. package/lib/esm/IModelHost.d.ts.map +1 -0
  451. package/lib/esm/IModelHost.js +508 -0
  452. package/lib/esm/IModelHost.js.map +1 -0
  453. package/lib/esm/IModelJsFs.d.ts +62 -0
  454. package/lib/esm/IModelJsFs.d.ts.map +1 -0
  455. package/lib/esm/IModelJsFs.js +151 -0
  456. package/lib/esm/IModelJsFs.js.map +1 -0
  457. package/lib/esm/ImageSourceConversion.d.ts +49 -0
  458. package/lib/esm/ImageSourceConversion.d.ts.map +1 -0
  459. package/lib/esm/ImageSourceConversion.js +33 -0
  460. package/lib/esm/ImageSourceConversion.js.map +1 -0
  461. package/lib/esm/IpcHost.d.ts +111 -0
  462. package/lib/esm/IpcHost.d.ts.map +1 -0
  463. package/lib/esm/IpcHost.js +292 -0
  464. package/lib/esm/IpcHost.js.map +1 -0
  465. package/lib/esm/LineStyle.d.ts +312 -0
  466. package/lib/esm/LineStyle.d.ts.map +1 -0
  467. package/lib/esm/LineStyle.js +293 -0
  468. package/lib/esm/LineStyle.js.map +1 -0
  469. package/lib/esm/LocalHub.d.ts +163 -0
  470. package/lib/esm/LocalHub.d.ts.map +1 -0
  471. package/lib/esm/LocalHub.js +583 -0
  472. package/lib/esm/LocalHub.js.map +1 -0
  473. package/lib/esm/LocalhostIpcHost.d.ts +22 -0
  474. package/lib/esm/LocalhostIpcHost.d.ts.map +1 -0
  475. package/lib/esm/LocalhostIpcHost.js +74 -0
  476. package/lib/esm/LocalhostIpcHost.js.map +1 -0
  477. package/lib/esm/LockControl.d.ts +73 -0
  478. package/lib/esm/LockControl.d.ts.map +1 -0
  479. package/lib/esm/LockControl.js +9 -0
  480. package/lib/esm/LockControl.js.map +1 -0
  481. package/lib/esm/Material.d.ts +150 -0
  482. package/lib/esm/Material.d.ts.map +1 -0
  483. package/lib/esm/Material.js +264 -0
  484. package/lib/esm/Material.js.map +1 -0
  485. package/lib/esm/Model.d.ts +411 -0
  486. package/lib/esm/Model.d.ts.map +1 -0
  487. package/lib/esm/Model.js +572 -0
  488. package/lib/esm/Model.js.map +1 -0
  489. package/lib/esm/NativeAppStorage.d.ts +52 -0
  490. package/lib/esm/NativeAppStorage.d.ts.map +1 -0
  491. package/lib/esm/NativeAppStorage.js +205 -0
  492. package/lib/esm/NativeAppStorage.js.map +1 -0
  493. package/lib/esm/NativeHost.d.ts +53 -0
  494. package/lib/esm/NativeHost.d.ts.map +1 -0
  495. package/lib/esm/NativeHost.js +161 -0
  496. package/lib/esm/NativeHost.js.map +1 -0
  497. package/lib/esm/NavigationRelationship.d.ts +185 -0
  498. package/lib/esm/NavigationRelationship.d.ts.map +1 -0
  499. package/lib/esm/NavigationRelationship.js +238 -0
  500. package/lib/esm/NavigationRelationship.js.map +1 -0
  501. package/lib/esm/PromiseMemoizer.d.ts +48 -0
  502. package/lib/esm/PromiseMemoizer.d.ts.map +1 -0
  503. package/lib/esm/PromiseMemoizer.js +101 -0
  504. package/lib/esm/PromiseMemoizer.js.map +1 -0
  505. package/lib/esm/PropertyStore.d.ts +134 -0
  506. package/lib/esm/PropertyStore.d.ts.map +1 -0
  507. package/lib/esm/PropertyStore.js +177 -0
  508. package/lib/esm/PropertyStore.js.map +1 -0
  509. package/lib/esm/Relationship.d.ts +399 -0
  510. package/lib/esm/Relationship.d.ts.map +1 -0
  511. package/lib/esm/Relationship.js +476 -0
  512. package/lib/esm/Relationship.js.map +1 -0
  513. package/lib/esm/RpcBackend.d.ts +6 -0
  514. package/lib/esm/RpcBackend.d.ts.map +1 -0
  515. package/lib/esm/RpcBackend.js +28 -0
  516. package/lib/esm/RpcBackend.js.map +1 -0
  517. package/lib/esm/SQLiteDb.d.ts +324 -0
  518. package/lib/esm/SQLiteDb.d.ts.map +1 -0
  519. package/lib/esm/SQLiteDb.js +380 -0
  520. package/lib/esm/SQLiteDb.js.map +1 -0
  521. package/lib/esm/Schema.d.ts +79 -0
  522. package/lib/esm/Schema.d.ts.map +1 -0
  523. package/lib/esm/Schema.js +113 -0
  524. package/lib/esm/Schema.js.map +1 -0
  525. package/lib/esm/SchemaSync.d.ts +47 -0
  526. package/lib/esm/SchemaSync.d.ts.map +1 -0
  527. package/lib/esm/SchemaSync.js +148 -0
  528. package/lib/esm/SchemaSync.js.map +1 -0
  529. package/lib/esm/SchemaUtils.d.ts +19 -0
  530. package/lib/esm/SchemaUtils.d.ts.map +1 -0
  531. package/lib/esm/SchemaUtils.js +37 -0
  532. package/lib/esm/SchemaUtils.js.map +1 -0
  533. package/lib/esm/SheetIndex.d.ts +148 -0
  534. package/lib/esm/SheetIndex.d.ts.map +1 -0
  535. package/lib/esm/SheetIndex.js +228 -0
  536. package/lib/esm/SheetIndex.js.map +1 -0
  537. package/lib/esm/SqliteChangesetReader.d.ts +278 -0
  538. package/lib/esm/SqliteChangesetReader.d.ts.map +1 -0
  539. package/lib/esm/SqliteChangesetReader.js +337 -0
  540. package/lib/esm/SqliteChangesetReader.js.map +1 -0
  541. package/lib/esm/SqliteStatement.d.ts +375 -0
  542. package/lib/esm/SqliteStatement.d.ts.map +1 -0
  543. package/lib/esm/SqliteStatement.js +615 -0
  544. package/lib/esm/SqliteStatement.js.map +1 -0
  545. package/lib/esm/TextAnnotationElement.d.ts +54 -0
  546. package/lib/esm/TextAnnotationElement.d.ts.map +1 -0
  547. package/lib/esm/TextAnnotationElement.js +89 -0
  548. package/lib/esm/TextAnnotationElement.js.map +1 -0
  549. package/lib/esm/TextAnnotationGeometry.d.ts +32 -0
  550. package/lib/esm/TextAnnotationGeometry.d.ts.map +1 -0
  551. package/lib/esm/TextAnnotationGeometry.js +181 -0
  552. package/lib/esm/TextAnnotationGeometry.js.map +1 -0
  553. package/lib/esm/TextAnnotationLayout.d.ts +177 -0
  554. package/lib/esm/TextAnnotationLayout.d.ts.map +1 -0
  555. package/lib/esm/TextAnnotationLayout.js +513 -0
  556. package/lib/esm/TextAnnotationLayout.js.map +1 -0
  557. package/lib/esm/Texture.d.ts +58 -0
  558. package/lib/esm/Texture.d.ts.map +1 -0
  559. package/lib/esm/Texture.js +81 -0
  560. package/lib/esm/Texture.js.map +1 -0
  561. package/lib/esm/TileStorage.d.ts +59 -0
  562. package/lib/esm/TileStorage.d.ts.map +1 -0
  563. package/lib/esm/TileStorage.js +158 -0
  564. package/lib/esm/TileStorage.js.map +1 -0
  565. package/lib/esm/TxnManager.d.ts +296 -0
  566. package/lib/esm/TxnManager.d.ts.map +1 -0
  567. package/lib/esm/TxnManager.js +620 -0
  568. package/lib/esm/TxnManager.js.map +1 -0
  569. package/lib/esm/ViewDefinition.d.ts +492 -0
  570. package/lib/esm/ViewDefinition.d.ts.map +1 -0
  571. package/lib/esm/ViewDefinition.js +846 -0
  572. package/lib/esm/ViewDefinition.js.map +1 -0
  573. package/lib/esm/ViewStateHydrator.d.ts +14 -0
  574. package/lib/esm/ViewStateHydrator.d.ts.map +1 -0
  575. package/lib/esm/ViewStateHydrator.js +89 -0
  576. package/lib/esm/ViewStateHydrator.js.map +1 -0
  577. package/lib/esm/ViewStore.d.ts +502 -0
  578. package/lib/esm/ViewStore.d.ts.map +1 -0
  579. package/lib/esm/ViewStore.js +1260 -0
  580. package/lib/esm/ViewStore.js.map +1 -0
  581. package/lib/esm/core-backend.d.ts +183 -0
  582. package/lib/esm/core-backend.d.ts.map +1 -0
  583. package/lib/esm/core-backend.js +187 -0
  584. package/lib/esm/core-backend.js.map +1 -0
  585. package/lib/esm/domains/FunctionalElements.d.ts +86 -0
  586. package/lib/esm/domains/FunctionalElements.d.ts.map +1 -0
  587. package/lib/esm/domains/FunctionalElements.js +117 -0
  588. package/lib/esm/domains/FunctionalElements.js.map +1 -0
  589. package/lib/esm/domains/FunctionalSchema.d.ts +14 -0
  590. package/lib/esm/domains/FunctionalSchema.d.ts.map +1 -0
  591. package/lib/esm/domains/FunctionalSchema.js +37 -0
  592. package/lib/esm/domains/FunctionalSchema.js.map +1 -0
  593. package/lib/esm/domains/GenericElements.d.ts +160 -0
  594. package/lib/esm/domains/GenericElements.d.ts.map +1 -0
  595. package/lib/esm/domains/GenericElements.js +225 -0
  596. package/lib/esm/domains/GenericElements.js.map +1 -0
  597. package/lib/esm/domains/GenericSchema.d.ts +11 -0
  598. package/lib/esm/domains/GenericSchema.d.ts.map +1 -0
  599. package/lib/esm/domains/GenericSchema.js +25 -0
  600. package/lib/esm/domains/GenericSchema.js.map +1 -0
  601. package/lib/esm/internal/ChangesetConflictArgs.d.ts +62 -0
  602. package/lib/esm/internal/ChangesetConflictArgs.d.ts.map +1 -0
  603. package/lib/esm/internal/ChangesetConflictArgs.js +104 -0
  604. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -0
  605. package/lib/esm/internal/ChannelAdmin.d.ts +34 -0
  606. package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -0
  607. package/lib/esm/internal/ChannelAdmin.js +116 -0
  608. package/lib/esm/internal/ChannelAdmin.js.map +1 -0
  609. package/lib/esm/internal/ElementLRUCache.d.ts +28 -0
  610. package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -0
  611. package/lib/esm/internal/ElementLRUCache.js +116 -0
  612. package/lib/esm/internal/ElementLRUCache.js.map +1 -0
  613. package/lib/esm/internal/FontFileImpl.d.ts +34 -0
  614. package/lib/esm/internal/FontFileImpl.d.ts.map +1 -0
  615. package/lib/esm/internal/FontFileImpl.js +135 -0
  616. package/lib/esm/internal/FontFileImpl.js.map +1 -0
  617. package/lib/esm/internal/HubMock.d.ts +94 -0
  618. package/lib/esm/internal/HubMock.d.ts.map +1 -0
  619. package/lib/esm/internal/HubMock.js +242 -0
  620. package/lib/esm/internal/HubMock.js.map +1 -0
  621. package/lib/esm/internal/IModelDbFontsImpl.d.ts +7 -0
  622. package/lib/esm/internal/IModelDbFontsImpl.d.ts.map +1 -0
  623. package/lib/esm/internal/IModelDbFontsImpl.js +183 -0
  624. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -0
  625. package/lib/esm/internal/NativePlatform.d.ts +15 -0
  626. package/lib/esm/internal/NativePlatform.d.ts.map +1 -0
  627. package/lib/esm/internal/NativePlatform.js +43 -0
  628. package/lib/esm/internal/NativePlatform.js.map +1 -0
  629. package/lib/esm/internal/NoLocks.d.ts +6 -0
  630. package/lib/esm/internal/NoLocks.d.ts.map +1 -0
  631. package/lib/esm/internal/NoLocks.js +24 -0
  632. package/lib/esm/internal/NoLocks.js.map +1 -0
  633. package/lib/esm/internal/ServerBasedLocks.d.ts +52 -0
  634. package/lib/esm/internal/ServerBasedLocks.d.ts.map +1 -0
  635. package/lib/esm/internal/ServerBasedLocks.js +175 -0
  636. package/lib/esm/internal/ServerBasedLocks.js.map +1 -0
  637. package/lib/esm/internal/Symbols.d.ts +20 -0
  638. package/lib/esm/internal/Symbols.d.ts.map +1 -0
  639. package/lib/esm/internal/Symbols.js +27 -0
  640. package/lib/esm/internal/Symbols.js.map +1 -0
  641. package/lib/esm/internal/cross-package.d.ts +4 -0
  642. package/lib/esm/internal/cross-package.d.ts.map +1 -0
  643. package/lib/esm/internal/cross-package.js +8 -0
  644. package/lib/esm/internal/cross-package.js.map +1 -0
  645. package/lib/esm/internal/workspace/SettingsImpl.d.ts +43 -0
  646. package/lib/esm/internal/workspace/SettingsImpl.d.ts.map +1 -0
  647. package/lib/esm/internal/workspace/SettingsImpl.js +154 -0
  648. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -0
  649. package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts +6 -0
  650. package/lib/esm/internal/workspace/SettingsSchemasImpl.d.ts.map +1 -0
  651. package/lib/esm/internal/workspace/SettingsSchemasImpl.js +268 -0
  652. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -0
  653. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +27 -0
  654. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -0
  655. package/lib/esm/internal/workspace/WorkspaceImpl.js +627 -0
  656. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -0
  657. package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts +10 -0
  658. package/lib/esm/internal/workspace/WorkspaceSqliteDb.d.ts.map +1 -0
  659. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js +35 -0
  660. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -0
  661. package/lib/esm/rpc/multipart.d.ts +12 -0
  662. package/lib/esm/rpc/multipart.d.ts.map +1 -0
  663. package/lib/esm/rpc/multipart.js +67 -0
  664. package/lib/esm/rpc/multipart.js.map +1 -0
  665. package/lib/esm/rpc/tracing.d.ts +29 -0
  666. package/lib/esm/rpc/tracing.d.ts.map +1 -0
  667. package/lib/esm/rpc/tracing.js +71 -0
  668. package/lib/esm/rpc/tracing.js.map +1 -0
  669. package/lib/esm/rpc/web/logging.d.ts +10 -0
  670. package/lib/esm/rpc/web/logging.d.ts.map +1 -0
  671. package/lib/esm/rpc/web/logging.js +41 -0
  672. package/lib/esm/rpc/web/logging.js.map +1 -0
  673. package/lib/esm/rpc/web/request.d.ts +7 -0
  674. package/lib/esm/rpc/web/request.d.ts.map +1 -0
  675. package/lib/esm/rpc/web/request.js +71 -0
  676. package/lib/esm/rpc/web/request.js.map +1 -0
  677. package/lib/esm/rpc/web/response.d.ts +7 -0
  678. package/lib/esm/rpc/web/response.d.ts.map +1 -0
  679. package/lib/esm/rpc/web/response.js +136 -0
  680. package/lib/esm/rpc/web/response.js.map +1 -0
  681. package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts +16 -0
  682. package/lib/esm/rpc-impl/DevToolsRpcImpl.d.ts.map +1 -0
  683. package/lib/esm/rpc-impl/DevToolsRpcImpl.js +29 -0
  684. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -0
  685. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +51 -0
  686. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -0
  687. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +314 -0
  688. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -0
  689. package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts +21 -0
  690. package/lib/esm/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -0
  691. package/lib/esm/rpc-impl/IModelTileRpcImpl.js +193 -0
  692. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -0
  693. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +45 -0
  694. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -0
  695. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js +155 -0
  696. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -0
  697. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +18 -0
  698. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts.map +1 -0
  699. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +41 -0
  700. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -0
  701. package/lib/esm/test/AdvancedEqual.d.ts +38 -0
  702. package/lib/esm/test/AdvancedEqual.d.ts.map +1 -0
  703. package/lib/esm/test/AdvancedEqual.js +67 -0
  704. package/lib/esm/test/AdvancedEqual.js.map +1 -0
  705. package/lib/esm/test/AttachDb.test.d.ts +2 -0
  706. package/lib/esm/test/AttachDb.test.d.ts.map +1 -0
  707. package/lib/esm/test/AttachDb.test.js +157 -0
  708. package/lib/esm/test/AttachDb.test.js.map +1 -0
  709. package/lib/esm/test/ElementLRUCache.test.d.ts +2 -0
  710. package/lib/esm/test/ElementLRUCache.test.d.ts.map +1 -0
  711. package/lib/esm/test/ElementLRUCache.test.js +212 -0
  712. package/lib/esm/test/ElementLRUCache.test.js.map +1 -0
  713. package/lib/esm/test/GeometryTestUtil.d.ts +7 -0
  714. package/lib/esm/test/GeometryTestUtil.d.ts.map +1 -0
  715. package/lib/esm/test/GeometryTestUtil.js +25 -0
  716. package/lib/esm/test/GeometryTestUtil.js.map +1 -0
  717. package/lib/esm/test/IModelHost.test.d.ts +2 -0
  718. package/lib/esm/test/IModelHost.test.d.ts.map +1 -0
  719. package/lib/esm/test/IModelHost.test.js +187 -0
  720. package/lib/esm/test/IModelHost.test.js.map +1 -0
  721. package/lib/esm/test/IModelTestUtils.d.ts +177 -0
  722. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -0
  723. package/lib/esm/test/IModelTestUtils.js +1146 -0
  724. package/lib/esm/test/IModelTestUtils.js.map +1 -0
  725. package/lib/esm/test/ImageSourceConversion.test.d.ts +2 -0
  726. package/lib/esm/test/ImageSourceConversion.test.d.ts.map +1 -0
  727. package/lib/esm/test/ImageSourceConversion.test.js +171 -0
  728. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -0
  729. package/lib/esm/test/IpcHost.test.d.ts +2 -0
  730. package/lib/esm/test/IpcHost.test.d.ts.map +1 -0
  731. package/lib/esm/test/IpcHost.test.js +55 -0
  732. package/lib/esm/test/IpcHost.test.js.map +1 -0
  733. package/lib/esm/test/KnownTestLocations.d.ts +7 -0
  734. package/lib/esm/test/KnownTestLocations.d.ts.map +1 -0
  735. package/lib/esm/test/KnownTestLocations.js +27 -0
  736. package/lib/esm/test/KnownTestLocations.js.map +1 -0
  737. package/lib/esm/test/PrintElementTree.d.ts +7 -0
  738. package/lib/esm/test/PrintElementTree.d.ts.map +1 -0
  739. package/lib/esm/test/PrintElementTree.js +36 -0
  740. package/lib/esm/test/PrintElementTree.js.map +1 -0
  741. package/lib/esm/test/PropertyDb.test.d.ts +2 -0
  742. package/lib/esm/test/PropertyDb.test.d.ts.map +1 -0
  743. package/lib/esm/test/PropertyDb.test.js +71 -0
  744. package/lib/esm/test/PropertyDb.test.js.map +1 -0
  745. package/lib/esm/test/RevisionUtility.d.ts +33 -0
  746. package/lib/esm/test/RevisionUtility.d.ts.map +1 -0
  747. package/lib/esm/test/RevisionUtility.js +52 -0
  748. package/lib/esm/test/RevisionUtility.js.map +1 -0
  749. package/lib/esm/test/SchemaUtils.test.d.ts +2 -0
  750. package/lib/esm/test/SchemaUtils.test.d.ts.map +1 -0
  751. package/lib/esm/test/SchemaUtils.test.js +99 -0
  752. package/lib/esm/test/SchemaUtils.test.js.map +1 -0
  753. package/lib/esm/test/SequentialLogMatcher.d.ts +35 -0
  754. package/lib/esm/test/SequentialLogMatcher.d.ts.map +1 -0
  755. package/lib/esm/test/SequentialLogMatcher.js +130 -0
  756. package/lib/esm/test/SequentialLogMatcher.js.map +1 -0
  757. package/lib/esm/test/TestChangeSetUtility.d.ts +23 -0
  758. package/lib/esm/test/TestChangeSetUtility.d.ts.map +1 -0
  759. package/lib/esm/test/TestChangeSetUtility.js +65 -0
  760. package/lib/esm/test/TestChangeSetUtility.js.map +1 -0
  761. package/lib/esm/test/TestUtils.d.ts +38 -0
  762. package/lib/esm/test/TestUtils.d.ts.map +1 -0
  763. package/lib/esm/test/TestUtils.js +99 -0
  764. package/lib/esm/test/TestUtils.js.map +1 -0
  765. package/lib/esm/test/annotations/TextAnnotation.test.d.ts +2 -0
  766. package/lib/esm/test/annotations/TextAnnotation.test.d.ts.map +1 -0
  767. package/lib/esm/test/annotations/TextAnnotation.test.js +1135 -0
  768. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -0
  769. package/lib/esm/test/categories/Category.test.d.ts +2 -0
  770. package/lib/esm/test/categories/Category.test.d.ts.map +1 -0
  771. package/lib/esm/test/categories/Category.test.js +51 -0
  772. package/lib/esm/test/categories/Category.test.js.map +1 -0
  773. package/lib/esm/test/codespec/CodeSpec.test.d.ts +2 -0
  774. package/lib/esm/test/codespec/CodeSpec.test.d.ts.map +1 -0
  775. package/lib/esm/test/codespec/CodeSpec.test.js +51 -0
  776. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -0
  777. package/lib/esm/test/ecdb/CTE.test.d.ts +2 -0
  778. package/lib/esm/test/ecdb/CTE.test.d.ts.map +1 -0
  779. package/lib/esm/test/ecdb/CTE.test.js +177 -0
  780. package/lib/esm/test/ecdb/CTE.test.js.map +1 -0
  781. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts +2 -0
  782. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.d.ts.map +1 -0
  783. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +167 -0
  784. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -0
  785. package/lib/esm/test/ecdb/ECDb.test.d.ts +2 -0
  786. package/lib/esm/test/ecdb/ECDb.test.d.ts.map +1 -0
  787. package/lib/esm/test/ecdb/ECDb.test.js +653 -0
  788. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -0
  789. package/lib/esm/test/ecdb/ECDbTestHelper.d.ts +5 -0
  790. package/lib/esm/test/ecdb/ECDbTestHelper.d.ts.map +1 -0
  791. package/lib/esm/test/ecdb/ECDbTestHelper.js +28 -0
  792. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -0
  793. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts +2 -0
  794. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.d.ts.map +1 -0
  795. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +63 -0
  796. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -0
  797. package/lib/esm/test/ecdb/ECSqlAst.test.d.ts +5 -0
  798. package/lib/esm/test/ecdb/ECSqlAst.test.d.ts.map +1 -0
  799. package/lib/esm/test/ecdb/ECSqlAst.test.js +972 -0
  800. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -0
  801. package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts +2 -0
  802. package/lib/esm/test/ecdb/ECSqlQuery.test.d.ts.map +1 -0
  803. package/lib/esm/test/ecdb/ECSqlQuery.test.js +753 -0
  804. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -0
  805. package/lib/esm/test/ecdb/ECSqlReader.test.d.ts +2 -0
  806. package/lib/esm/test/ecdb/ECSqlReader.test.d.ts.map +1 -0
  807. package/lib/esm/test/ecdb/ECSqlReader.test.js +669 -0
  808. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -0
  809. package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts +2 -0
  810. package/lib/esm/test/ecdb/ECSqlStatement.test.d.ts.map +1 -0
  811. package/lib/esm/test/ecdb/ECSqlStatement.test.js +3329 -0
  812. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -0
  813. package/lib/esm/test/ecdb/SqliteStatement.test.d.ts +2 -0
  814. package/lib/esm/test/ecdb/SqliteStatement.test.d.ts.map +1 -0
  815. package/lib/esm/test/ecdb/SqliteStatement.test.js +510 -0
  816. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -0
  817. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts +4 -0
  818. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.d.ts.map +1 -0
  819. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js +127 -0
  820. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -0
  821. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts +2 -0
  822. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.d.ts.map +1 -0
  823. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +197 -0
  824. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -0
  825. package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts +66 -0
  826. package/lib/esm/test/ecsql/src/ECSqlTestParser.d.ts.map +1 -0
  827. package/lib/esm/test/ecsql/src/ECSqlTestParser.js +420 -0
  828. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -0
  829. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts +2 -0
  830. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.d.ts.map +1 -0
  831. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +369 -0
  832. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -0
  833. package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts +2 -0
  834. package/lib/esm/test/element/DeleteDefinitionElements.test.d.ts.map +1 -0
  835. package/lib/esm/test/element/DeleteDefinitionElements.test.js +208 -0
  836. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -0
  837. package/lib/esm/test/element/ElementAspect.test.d.ts +2 -0
  838. package/lib/esm/test/element/ElementAspect.test.d.ts.map +1 -0
  839. package/lib/esm/test/element/ElementAspect.test.js +363 -0
  840. package/lib/esm/test/element/ElementAspect.test.js.map +1 -0
  841. package/lib/esm/test/element/ElementDependencyGraph.test.d.ts +2 -0
  842. package/lib/esm/test/element/ElementDependencyGraph.test.d.ts.map +1 -0
  843. package/lib/esm/test/element/ElementDependencyGraph.test.js +383 -0
  844. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -0
  845. package/lib/esm/test/element/ElementRoundTrip.test.d.ts +2 -0
  846. package/lib/esm/test/element/ElementRoundTrip.test.d.ts.map +1 -0
  847. package/lib/esm/test/element/ElementRoundTrip.test.js +926 -0
  848. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -0
  849. package/lib/esm/test/element/ExcludedElements.test.d.ts +2 -0
  850. package/lib/esm/test/element/ExcludedElements.test.d.ts.map +1 -0
  851. package/lib/esm/test/element/ExcludedElements.test.js +57 -0
  852. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -0
  853. package/lib/esm/test/element/ExternalSource.test.d.ts +2 -0
  854. package/lib/esm/test/element/ExternalSource.test.d.ts.map +1 -0
  855. package/lib/esm/test/element/ExternalSource.test.js +107 -0
  856. package/lib/esm/test/element/ExternalSource.test.js.map +1 -0
  857. package/lib/esm/test/element/NullStructArray.test.d.ts +2 -0
  858. package/lib/esm/test/element/NullStructArray.test.d.ts.map +1 -0
  859. package/lib/esm/test/element/NullStructArray.test.js +77 -0
  860. package/lib/esm/test/element/NullStructArray.test.js.map +1 -0
  861. package/lib/esm/test/element/UrlLink.test.d.ts +2 -0
  862. package/lib/esm/test/element/UrlLink.test.d.ts.map +1 -0
  863. package/lib/esm/test/element/UrlLink.test.js +36 -0
  864. package/lib/esm/test/element/UrlLink.test.js.map +1 -0
  865. package/lib/esm/test/font/FontFile.test.d.ts +2 -0
  866. package/lib/esm/test/font/FontFile.test.d.ts.map +1 -0
  867. package/lib/esm/test/font/FontFile.test.js +139 -0
  868. package/lib/esm/test/font/FontFile.test.js.map +1 -0
  869. package/lib/esm/test/font/IModelDbFonts.test.d.ts +2 -0
  870. package/lib/esm/test/font/IModelDbFonts.test.d.ts.map +1 -0
  871. package/lib/esm/test/font/IModelDbFonts.test.js +266 -0
  872. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -0
  873. package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts +2 -0
  874. package/lib/esm/test/hubaccess/BriefcaseManager.test.d.ts.map +1 -0
  875. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +176 -0
  876. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -0
  877. package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts +2 -0
  878. package/lib/esm/test/hubaccess/CheckpointManager.test.d.ts.map +1 -0
  879. package/lib/esm/test/hubaccess/CheckpointManager.test.js +52 -0
  880. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -0
  881. package/lib/esm/test/imageData.d.ts +9 -0
  882. package/lib/esm/test/imageData.d.ts.map +1 -0
  883. package/lib/esm/test/imageData.js +16 -0
  884. package/lib/esm/test/imageData.js.map +1 -0
  885. package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts +2 -0
  886. package/lib/esm/test/imodel/ElementTreeWalker.test.d.ts.map +1 -0
  887. package/lib/esm/test/imodel/ElementTreeWalker.test.js +383 -0
  888. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -0
  889. package/lib/esm/test/imodel/GetTextureImage.test.d.ts +2 -0
  890. package/lib/esm/test/imodel/GetTextureImage.test.d.ts.map +1 -0
  891. package/lib/esm/test/imodel/GetTextureImage.test.js +29 -0
  892. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -0
  893. package/lib/esm/test/imodel/IModel.test.d.ts +2 -0
  894. package/lib/esm/test/imodel/IModel.test.d.ts.map +1 -0
  895. package/lib/esm/test/imodel/IModel.test.js +2626 -0
  896. package/lib/esm/test/imodel/IModel.test.js.map +1 -0
  897. package/lib/esm/test/imodel/ProjectExtents.test.d.ts +2 -0
  898. package/lib/esm/test/imodel/ProjectExtents.test.d.ts.map +1 -0
  899. package/lib/esm/test/imodel/ProjectExtents.test.js +66 -0
  900. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -0
  901. package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts +2 -0
  902. package/lib/esm/test/imodel/SchemaXmlImport.test.d.ts.map +1 -0
  903. package/lib/esm/test/imodel/SchemaXmlImport.test.js +74 -0
  904. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -0
  905. package/lib/esm/test/index.d.ts +7 -0
  906. package/lib/esm/test/index.d.ts.map +1 -0
  907. package/lib/esm/test/index.js +11 -0
  908. package/lib/esm/test/index.js.map +1 -0
  909. package/lib/esm/test/misc/DevTools.test.d.ts +2 -0
  910. package/lib/esm/test/misc/DevTools.test.d.ts.map +1 -0
  911. package/lib/esm/test/misc/DevTools.test.js +72 -0
  912. package/lib/esm/test/misc/DevTools.test.js.map +1 -0
  913. package/lib/esm/test/misc/EntitySubClasses.test.d.ts +2 -0
  914. package/lib/esm/test/misc/EntitySubClasses.test.d.ts.map +1 -0
  915. package/lib/esm/test/misc/EntitySubClasses.test.js +106 -0
  916. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -0
  917. package/lib/esm/test/misc/GeoServices.test.d.ts +2 -0
  918. package/lib/esm/test/misc/GeoServices.test.d.ts.map +1 -0
  919. package/lib/esm/test/misc/GeoServices.test.js +850 -0
  920. package/lib/esm/test/misc/GeoServices.test.js.map +1 -0
  921. package/lib/esm/test/misc/PromiseMemoizer.test.d.ts +2 -0
  922. package/lib/esm/test/misc/PromiseMemoizer.test.d.ts.map +1 -0
  923. package/lib/esm/test/misc/PromiseMemoizer.test.js +111 -0
  924. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -0
  925. package/lib/esm/test/native/DgnDbWorker.test.d.ts +2 -0
  926. package/lib/esm/test/native/DgnDbWorker.test.d.ts.map +1 -0
  927. package/lib/esm/test/native/DgnDbWorker.test.js +159 -0
  928. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -0
  929. package/lib/esm/test/rpc/response.test.d.ts +2 -0
  930. package/lib/esm/test/rpc/response.test.d.ts.map +1 -0
  931. package/lib/esm/test/rpc/response.test.js +112 -0
  932. package/lib/esm/test/rpc/response.test.js.map +1 -0
  933. package/lib/esm/test/schema/ClassRegistry.test.d.ts +2 -0
  934. package/lib/esm/test/schema/ClassRegistry.test.d.ts.map +1 -0
  935. package/lib/esm/test/schema/ClassRegistry.test.js +679 -0
  936. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -0
  937. package/lib/esm/test/schema/FunctionalDomain.test.d.ts +2 -0
  938. package/lib/esm/test/schema/FunctionalDomain.test.d.ts.map +1 -0
  939. package/lib/esm/test/schema/FunctionalDomain.test.js +490 -0
  940. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -0
  941. package/lib/esm/test/schema/GenericDomain.test.d.ts +2 -0
  942. package/lib/esm/test/schema/GenericDomain.test.d.ts.map +1 -0
  943. package/lib/esm/test/schema/GenericDomain.test.js +133 -0
  944. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -0
  945. package/lib/esm/test/schema/IModelSchemaContext.test.d.ts +2 -0
  946. package/lib/esm/test/schema/IModelSchemaContext.test.d.ts.map +1 -0
  947. package/lib/esm/test/schema/IModelSchemaContext.test.js +95 -0
  948. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -0
  949. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts +4 -0
  950. package/lib/esm/test/sheetindex/SheetIndex.test.d.ts.map +1 -0
  951. package/lib/esm/test/sheetindex/SheetIndex.test.js +312 -0
  952. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -0
  953. package/lib/esm/test/standalone/ChangeMerge.test.d.ts +2 -0
  954. package/lib/esm/test/standalone/ChangeMerge.test.d.ts.map +1 -0
  955. package/lib/esm/test/standalone/ChangeMerge.test.js +409 -0
  956. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -0
  957. package/lib/esm/test/standalone/ChangesetReader.test.d.ts +2 -0
  958. package/lib/esm/test/standalone/ChangesetReader.test.d.ts.map +1 -0
  959. package/lib/esm/test/standalone/ChangesetReader.test.js +891 -0
  960. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -0
  961. package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts +2 -0
  962. package/lib/esm/test/standalone/CustomViewState3dCreator.test.d.ts.map +1 -0
  963. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js +49 -0
  964. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -0
  965. package/lib/esm/test/standalone/DisplayStyle.test.d.ts +2 -0
  966. package/lib/esm/test/standalone/DisplayStyle.test.d.ts.map +1 -0
  967. package/lib/esm/test/standalone/DisplayStyle.test.js +136 -0
  968. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -0
  969. package/lib/esm/test/standalone/Drawing.test.d.ts +2 -0
  970. package/lib/esm/test/standalone/Drawing.test.d.ts.map +1 -0
  971. package/lib/esm/test/standalone/Drawing.test.js +120 -0
  972. package/lib/esm/test/standalone/Drawing.test.js.map +1 -0
  973. package/lib/esm/test/standalone/ElementGraphics.test.d.ts +2 -0
  974. package/lib/esm/test/standalone/ElementGraphics.test.d.ts.map +1 -0
  975. package/lib/esm/test/standalone/ElementGraphics.test.js +127 -0
  976. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -0
  977. package/lib/esm/test/standalone/ElementMesh.test.d.ts +2 -0
  978. package/lib/esm/test/standalone/ElementMesh.test.d.ts.map +1 -0
  979. package/lib/esm/test/standalone/ElementMesh.test.js +142 -0
  980. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -0
  981. package/lib/esm/test/standalone/ExportGraphics.test.d.ts +2 -0
  982. package/lib/esm/test/standalone/ExportGraphics.test.d.ts.map +1 -0
  983. package/lib/esm/test/standalone/ExportGraphics.test.js +1005 -0
  984. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -0
  985. package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts +2 -0
  986. package/lib/esm/test/standalone/GeometryChangeEvents.test.d.ts.map +1 -0
  987. package/lib/esm/test/standalone/GeometryChangeEvents.test.js +139 -0
  988. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -0
  989. package/lib/esm/test/standalone/GeometryStream.test.d.ts +2 -0
  990. package/lib/esm/test/standalone/GeometryStream.test.d.ts.map +1 -0
  991. package/lib/esm/test/standalone/GeometryStream.test.js +2869 -0
  992. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -0
  993. package/lib/esm/test/standalone/HubMock.test.d.ts +2 -0
  994. package/lib/esm/test/standalone/HubMock.test.d.ts.map +1 -0
  995. package/lib/esm/test/standalone/HubMock.test.js +343 -0
  996. package/lib/esm/test/standalone/HubMock.test.js.map +1 -0
  997. package/lib/esm/test/standalone/IModelWrite.test.d.ts +7 -0
  998. package/lib/esm/test/standalone/IModelWrite.test.d.ts.map +1 -0
  999. package/lib/esm/test/standalone/IModelWrite.test.js +907 -0
  1000. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -0
  1001. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts +2 -0
  1002. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.d.ts.map +1 -0
  1003. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js +417 -0
  1004. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -0
  1005. package/lib/esm/test/standalone/MergeConflict.test.d.ts +7 -0
  1006. package/lib/esm/test/standalone/MergeConflict.test.d.ts.map +1 -0
  1007. package/lib/esm/test/standalone/MergeConflict.test.js +345 -0
  1008. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -0
  1009. package/lib/esm/test/standalone/NativeAppStorage.test.d.ts +2 -0
  1010. package/lib/esm/test/standalone/NativeAppStorage.test.d.ts.map +1 -0
  1011. package/lib/esm/test/standalone/NativeAppStorage.test.js +121 -0
  1012. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -0
  1013. package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts +2 -0
  1014. package/lib/esm/test/standalone/RenderMaterialElement.test.d.ts.map +1 -0
  1015. package/lib/esm/test/standalone/RenderMaterialElement.test.js +399 -0
  1016. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -0
  1017. package/lib/esm/test/standalone/RenderTimeline.test.d.ts +2 -0
  1018. package/lib/esm/test/standalone/RenderTimeline.test.d.ts.map +1 -0
  1019. package/lib/esm/test/standalone/RenderTimeline.test.js +71 -0
  1020. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -0
  1021. package/lib/esm/test/standalone/SQLiteDb.test.d.ts +2 -0
  1022. package/lib/esm/test/standalone/SQLiteDb.test.d.ts.map +1 -0
  1023. package/lib/esm/test/standalone/SQLiteDb.test.js +63 -0
  1024. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -0
  1025. package/lib/esm/test/standalone/SchemaUtils.test.d.ts +2 -0
  1026. package/lib/esm/test/standalone/SchemaUtils.test.d.ts.map +1 -0
  1027. package/lib/esm/test/standalone/SchemaUtils.test.js +25 -0
  1028. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -0
  1029. package/lib/esm/test/standalone/SectionDrawing.test.d.ts +2 -0
  1030. package/lib/esm/test/standalone/SectionDrawing.test.d.ts.map +1 -0
  1031. package/lib/esm/test/standalone/SectionDrawing.test.js +83 -0
  1032. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -0
  1033. package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts +2 -0
  1034. package/lib/esm/test/standalone/ServerBasedLocks.test.d.ts.map +1 -0
  1035. package/lib/esm/test/standalone/ServerBasedLocks.test.js +279 -0
  1036. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -0
  1037. package/lib/esm/test/standalone/Setting.test.d.ts +2 -0
  1038. package/lib/esm/test/standalone/Setting.test.d.ts.map +1 -0
  1039. package/lib/esm/test/standalone/Setting.test.js +76 -0
  1040. package/lib/esm/test/standalone/Setting.test.js.map +1 -0
  1041. package/lib/esm/test/standalone/Settings.test.d.ts +2 -0
  1042. package/lib/esm/test/standalone/Settings.test.d.ts.map +1 -0
  1043. package/lib/esm/test/standalone/Settings.test.js +349 -0
  1044. package/lib/esm/test/standalone/Settings.test.js.map +1 -0
  1045. package/lib/esm/test/standalone/SettingsSchemas.test.d.ts +2 -0
  1046. package/lib/esm/test/standalone/SettingsSchemas.test.d.ts.map +1 -0
  1047. package/lib/esm/test/standalone/SettingsSchemas.test.js +31 -0
  1048. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -0
  1049. package/lib/esm/test/standalone/SnapshotDb.test.d.ts +2 -0
  1050. package/lib/esm/test/standalone/SnapshotDb.test.d.ts.map +1 -0
  1051. package/lib/esm/test/standalone/SnapshotDb.test.js +156 -0
  1052. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -0
  1053. package/lib/esm/test/standalone/Texture.test.d.ts +2 -0
  1054. package/lib/esm/test/standalone/Texture.test.d.ts.map +1 -0
  1055. package/lib/esm/test/standalone/Texture.test.js +90 -0
  1056. package/lib/esm/test/standalone/Texture.test.js.map +1 -0
  1057. package/lib/esm/test/standalone/TileCache.test.d.ts +9 -0
  1058. package/lib/esm/test/standalone/TileCache.test.d.ts.map +1 -0
  1059. package/lib/esm/test/standalone/TileCache.test.js +127 -0
  1060. package/lib/esm/test/standalone/TileCache.test.js.map +1 -0
  1061. package/lib/esm/test/standalone/TileTree.test.d.ts +2 -0
  1062. package/lib/esm/test/standalone/TileTree.test.d.ts.map +1 -0
  1063. package/lib/esm/test/standalone/TileTree.test.js +241 -0
  1064. package/lib/esm/test/standalone/TileTree.test.js.map +1 -0
  1065. package/lib/esm/test/standalone/TxnManager.test.d.ts +2 -0
  1066. package/lib/esm/test/standalone/TxnManager.test.d.ts.map +1 -0
  1067. package/lib/esm/test/standalone/TxnManager.test.js +878 -0
  1068. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -0
  1069. package/lib/esm/test/standalone/ViewDefinition.test.d.ts +2 -0
  1070. package/lib/esm/test/standalone/ViewDefinition.test.d.ts.map +1 -0
  1071. package/lib/esm/test/standalone/ViewDefinition.test.js +279 -0
  1072. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -0
  1073. package/lib/esm/test/standalone/ViewStoreDb.test.d.ts +2 -0
  1074. package/lib/esm/test/standalone/ViewStoreDb.test.d.ts.map +1 -0
  1075. package/lib/esm/test/standalone/ViewStoreDb.test.js +288 -0
  1076. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -0
  1077. package/lib/esm/test/standalone/Workspace.test.d.ts +2 -0
  1078. package/lib/esm/test/standalone/Workspace.test.d.ts.map +1 -0
  1079. package/lib/esm/test/standalone/Workspace.test.js +162 -0
  1080. package/lib/esm/test/standalone/Workspace.test.js.map +1 -0
  1081. package/lib/esm/workspace/Settings.d.ts +216 -0
  1082. package/lib/esm/workspace/Settings.d.ts.map +1 -0
  1083. package/lib/esm/workspace/Settings.js +83 -0
  1084. package/lib/esm/workspace/Settings.js.map +1 -0
  1085. package/lib/esm/workspace/SettingsSchemas.d.ts +135 -0
  1086. package/lib/esm/workspace/SettingsSchemas.d.ts.map +1 -0
  1087. package/lib/esm/workspace/SettingsSchemas.js +9 -0
  1088. package/lib/esm/workspace/SettingsSchemas.js.map +1 -0
  1089. package/lib/esm/workspace/Workspace.d.ts +500 -0
  1090. package/lib/esm/workspace/Workspace.d.ts.map +1 -0
  1091. package/lib/esm/workspace/Workspace.js +97 -0
  1092. package/lib/esm/workspace/Workspace.js.map +1 -0
  1093. package/lib/esm/workspace/WorkspaceEditor.d.ts +240 -0
  1094. package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -0
  1095. package/lib/esm/workspace/WorkspaceEditor.js +31 -0
  1096. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -0
  1097. package/package.json +37 -29
  1098. package/lib/cjs/HubMock.d.ts.map +0 -1
  1099. package/lib/cjs/HubMock.js.map +0 -1
  1100. package/lib/cjs/IModelCloneContext.d.ts +0 -9
  1101. package/lib/cjs/IModelCloneContext.d.ts.map +0 -1
  1102. package/lib/cjs/IModelCloneContext.js.map +0 -1
@@ -46,7 +46,11 @@ const WorkspaceImpl_1 = require("./internal/workspace/WorkspaceImpl");
46
46
  const SettingsImpl_1 = require("./internal/workspace/SettingsImpl");
47
47
  const NativePlatform_1 = require("./internal/NativePlatform");
48
48
  const NoLocks_1 = require("./internal/NoLocks");
49
+ const IModelDbFontsImpl_1 = require("./internal/IModelDbFontsImpl");
49
50
  const Symbols_1 = require("./internal/Symbols");
51
+ const ecschema_metadata_1 = require("@itwin/ecschema-metadata");
52
+ const Schema_1 = require("./Schema");
53
+ const ElementLRUCache_1 = require("./internal/ElementLRUCache");
50
54
  // spell:ignore fontid fontmap
51
55
  const loggerCategory = BackendLoggerCategory_1.BackendLoggerCategory.IModelDb;
52
56
  /** @internal */
@@ -85,10 +89,45 @@ class IModelSettings extends SettingsImpl_1.SettingsImpl {
85
89
  * @public
86
90
  */
87
91
  class IModelDb extends core_common_1.IModel {
92
+ _initialized = false;
93
+ /** Keep track of open imodels to support `tryFind` for RPC purposes */
94
+ static _openDbs = new Map();
95
+ static defaultLimit = 1000; // default limit for batching queries
96
+ static maxLimit = 10000; // maximum limit for batching queries
97
+ models = new IModelDb.Models(this);
98
+ elements = new IModelDb.Elements(this);
99
+ views = new IModelDb.Views(this);
100
+ tiles = new IModelDb.Tiles(this);
101
+ /** @beta */
102
+ channels = (0, ChannelAdmin_1.createChannelControl)(this);
103
+ _relationships;
104
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
105
+ _statementCache = new SqliteStatement_1.StatementCache();
106
+ _sqliteStatementCache = new SqliteStatement_1.StatementCache();
107
+ _codeSpecs;
108
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
109
+ _classMetaDataRegistry;
110
+ _jsClassMap;
111
+ _schemaMap;
112
+ _schemaContext;
113
+ /** @deprecated in 5.0.0. Use [[fonts]]. */
114
+ _fontMap; // eslint-disable-line @typescript-eslint/no-deprecated
115
+ _fonts = (0, IModelDbFontsImpl_1.createIModelDbFonts)(this);
116
+ _workspace;
117
+ _snaps = new Map();
118
+ static _shutdownListener; // so we only register listener once
119
+ /** @internal */
120
+ _locks = (0, NoLocks_1.createNoOpLockControl)();
121
+ /** @internal */
122
+ _codeService;
88
123
  /** @alpha */
89
124
  get codeService() { return this._codeService; }
90
125
  /** The [[LockControl]] that orchestrates [concurrent editing]($docs/learning/backend/ConcurrencyControl.md) of this iModel. */
91
126
  get locks() { return this._locks; } // eslint-disable-line @typescript-eslint/no-non-null-assertion
127
+ /** Provides methods for interacting with [font-related information]($docs/learning/backend/Fonts.md) stored in this iModel.
128
+ * @beta
129
+ */
130
+ get fonts() { return this._fonts; }
92
131
  /**
93
132
  * Get the [[Workspace]] for this iModel.
94
133
  * @beta
@@ -98,6 +137,13 @@ class IModelDb extends core_common_1.IModel {
98
137
  this._workspace = (0, WorkspaceImpl_1.constructWorkspace)(new IModelSettings());
99
138
  return this._workspace;
100
139
  }
140
+ /**
141
+ * get the cloud container for this iModel, if it was opened from one
142
+ * @beta
143
+ */
144
+ get cloudContainer() {
145
+ return this[Symbols_1._nativeDb].cloudContainer;
146
+ }
101
147
  /** Acquire the exclusive schema lock on this iModel.
102
148
  * @note: To acquire the schema lock, all other briefcases must first release *all* their locks. No other briefcases
103
149
  * will be able to acquire *any* locks while the schema lock is held.
@@ -109,6 +155,8 @@ class IModelDb extends core_common_1.IModel {
109
155
  get holdsSchemaLock() {
110
156
  return this.locks.holdsExclusiveLock(core_common_1.IModel.repositoryModelId);
111
157
  }
158
+ /** Event called after a changeset is applied to this IModelDb. */
159
+ onChangesetApplied = new core_bentley_1.BeEvent();
112
160
  /** @internal */
113
161
  notifyChangesetApplied() {
114
162
  this.changeset = this[Symbols_1._nativeDb].getCurrentChangeset();
@@ -118,25 +166,14 @@ class IModelDb extends core_common_1.IModel {
118
166
  restartDefaultTxn() {
119
167
  this[Symbols_1._nativeDb].restartDefaultTxn();
120
168
  }
169
+ /** @deprecated in 5.0.0. Use [[fonts]]. */
121
170
  get fontMap() {
122
- return this._fontMap ?? (this._fontMap = new core_common_1.FontMap(this[Symbols_1._nativeDb].readFontMap()));
171
+ return this._fontMap ?? (this._fontMap = new core_common_1.FontMap(this[Symbols_1._nativeDb].readFontMap())); // eslint-disable-line @typescript-eslint/no-deprecated
123
172
  }
124
173
  /** @internal */
125
174
  clearFontMap() {
126
- this._fontMap = undefined;
127
- }
128
- /**
129
- * Add a new font name/type to the FontMap for this iModel and return its FontId.
130
- * @param name The name of the font to add
131
- * @param type The type of the font. Default is TrueType.
132
- * @returns The FontId for the newly added font. If a font by that name/type already exists, this method does not fail, it returns the existing Id.
133
- * @see [FontId and FontMap]($docs/learning/backend/Fonts.md#fontid-and-fontmap)
134
- * @beta
135
- */
136
- addNewFont(name, type) {
137
- this.locks.checkExclusiveLock(core_common_1.IModel.repositoryModelId, "schema", "addNewFont");
138
- this.clearFontMap();
139
- return this[Symbols_1._nativeDb].addNewFont({ name, type: type ?? core_common_1.FontType.TrueType });
175
+ this._fontMap = undefined; // eslint-disable-line @typescript-eslint/no-deprecated
176
+ this[Symbols_1._nativeDb].invalidateFontMap();
140
177
  }
141
178
  /** Check if this iModel has been opened read-only or not. */
142
179
  get isReadonly() { return this.openMode === core_bentley_1.OpenMode.Readonly; }
@@ -145,10 +182,8 @@ class IModelDb extends core_common_1.IModel {
145
182
  (0, core_bentley_1.assert)(undefined !== super.iModelId);
146
183
  return super.iModelId;
147
184
  } // GuidString | undefined for the IModel superclass, but required for all IModelDb subclasses
148
- /** @internal
149
- * @deprecated in 4.8. This internal API will be removed in 5.0. Use IModelDb's public API instead.
150
- */
151
- get nativeDb() { return this[Symbols_1._nativeDb]; }
185
+ /** @internal*/
186
+ [Symbols_1._nativeDb];
152
187
  /** Get the full path fileName of this iModelDb
153
188
  * @note this member is only valid while the iModel is opened.
154
189
  */
@@ -164,22 +199,6 @@ class IModelDb extends core_common_1.IModel {
164
199
  /** @internal */
165
200
  constructor(args) {
166
201
  super({ ...args, iTwinId: args.nativeDb.getITwinId(), iModelId: args.nativeDb.getIModelId() });
167
- this._initialized = false;
168
- this.models = new IModelDb.Models(this);
169
- this.elements = new IModelDb.Elements(this);
170
- this.views = new IModelDb.Views(this);
171
- this.tiles = new IModelDb.Tiles(this);
172
- /** @beta */
173
- this.channels = (0, ChannelAdmin_1.createChannelControl)(this);
174
- this._statementCache = new SqliteStatement_1.StatementCache();
175
- this._sqliteStatementCache = new SqliteStatement_1.StatementCache();
176
- this._snaps = new Map();
177
- /** @internal */
178
- this._locks = (0, NoLocks_1.createNoOpLockControl)();
179
- /** Event called after a changeset is applied to this IModelDb. */
180
- this.onChangesetApplied = new core_bentley_1.BeEvent();
181
- /** Event called when the iModel is about to be closed. */
182
- this.onBeforeClose = new core_bentley_1.BeEvent();
183
202
  this[Symbols_1._nativeDb] = args.nativeDb;
184
203
  // it is illegal to create an IModelDb unless the nativeDb has been opened. Throw otherwise.
185
204
  if (!this.isOpen)
@@ -209,6 +228,40 @@ class IModelDb extends core_common_1.IModel {
209
228
  });
210
229
  }
211
230
  }
231
+ /**
232
+ * Attach an iModel file to this connection and load and register its schemas.
233
+ * @note There are some reserve tablespace names that cannot be used. They are 'main', 'schema_sync_db', 'ecchange' & 'temp'
234
+ * @param fileName IModel file name
235
+ * @param alias identifier for the attached file. This identifer is used to access schema from the attached file. e.g. if alias is 'abc' then schema can be accessed using 'abc.MySchema.MyClass'
236
+ *
237
+ * *Example:*
238
+ * ``` ts
239
+ * [[include:IModelDb_attachDb.code]]
240
+ * ```
241
+ */
242
+ attachDb(fileName, alias) {
243
+ if (alias.toLowerCase() === "main" || alias.toLowerCase() === "schema_sync_db" || alias.toLowerCase() === "ecchange" || alias.toLowerCase() === "temp") {
244
+ throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Reserved tablespace name cannot be used");
245
+ }
246
+ this[Symbols_1._nativeDb].attachDb(fileName, alias);
247
+ }
248
+ /**
249
+ * Detach the attached file from this connection. The attached file is closed and its schemas are unregistered.
250
+ * @note There are some reserve tablespace names that cannot be used. They are 'main', 'schema_sync_db', 'ecchange' & 'temp'
251
+ * @param alias identifer that was used in the call to [[attachDb]]
252
+ *
253
+ * *Example:*
254
+ * ``` ts
255
+ * [[include:IModelDb_attachDb.code]]
256
+ * ```
257
+ */
258
+ detachDb(alias) {
259
+ if (alias.toLowerCase() === "main" || alias.toLowerCase() === "schema_sync_db" || alias.toLowerCase() === "ecchange" || alias.toLowerCase() === "temp") {
260
+ throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Reserved tablespace name cannot be used");
261
+ }
262
+ this.clearCaches();
263
+ this[Symbols_1._nativeDb].detachDb(alias);
264
+ }
212
265
  /** Close this IModel, if it is currently open, and save changes if it was opened in ReadWrite mode. */
213
266
  close() {
214
267
  if (!this.isOpen)
@@ -226,6 +279,8 @@ class IModelDb extends core_common_1.IModel {
226
279
  }
227
280
  /** @internal */
228
281
  async refreshContainerForRpc(_userAccessToken) { }
282
+ /** Event called when the iModel is about to be closed. */
283
+ onBeforeClose = new core_bentley_1.BeEvent();
229
284
  /**
230
285
  * Called by derived classes before closing the connection
231
286
  * @internal
@@ -235,8 +290,8 @@ class IModelDb extends core_common_1.IModel {
235
290
  this.clearCaches();
236
291
  }
237
292
  /** @internal */
238
- initializeIModelDb() {
239
- const props = this[Symbols_1._nativeDb].getIModelProps();
293
+ initializeIModelDb(when) {
294
+ const props = this[Symbols_1._nativeDb].getIModelProps(when);
240
295
  super.initialize(props.rootSubject.name, props);
241
296
  if (this._initialized)
242
297
  return;
@@ -288,8 +343,11 @@ class IModelDb extends core_common_1.IModel {
288
343
  * @returns the value returned by `callback`.
289
344
  * @see [[withStatement]]
290
345
  * @public
346
+ * @deprecated in 4.11. Use [[createQueryReader]] instead.
291
347
  */
348
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
292
349
  withPreparedStatement(ecsql, callback, logErrors = true) {
350
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
293
351
  const stmt = this._statementCache.findAndRemove(ecsql) ?? this.prepareStatement(ecsql, logErrors);
294
352
  const release = () => this._statementCache.addOrDispose(stmt);
295
353
  try {
@@ -317,10 +375,13 @@ class IModelDb extends core_common_1.IModel {
317
375
  * @returns the value returned by `callback`.
318
376
  * @see [[withPreparedStatement]]
319
377
  * @public
378
+ * @deprecated in 4.11. Use [[createQueryReader]] instead.
320
379
  */
380
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
321
381
  withStatement(ecsql, callback, logErrors = true) {
382
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
322
383
  const stmt = this.prepareStatement(ecsql, logErrors);
323
- const release = () => stmt.dispose();
384
+ const release = () => stmt[Symbol.dispose]();
324
385
  try {
325
386
  const val = callback(stmt);
326
387
  if (val instanceof Promise) {
@@ -358,70 +419,6 @@ class IModelDb extends core_common_1.IModel {
358
419
  };
359
420
  return new core_common_1.ECSqlReader(executor, ecsql, params, config);
360
421
  }
361
- /** Execute a query and stream its results
362
- * The result of the query is async iterator over the rows. The iterator will get next page automatically once rows in current page has been read.
363
- * [ECSQL row]($docs/learning/ECSQLRowFormat).
364
- *
365
- * See also:
366
- * - [ECSQL Overview]($docs/learning/backend/ExecutingECSQL)
367
- * - [Code Examples]($docs/learning/backend/ECSQLCodeExamples)
368
- *
369
- * @param ecsql The ECSQL statement to execute
370
- * @param params The values to bind to the parameters (if the ECSQL has any).
371
- * @param options Allow to specify certain flags which control how query is executed.
372
- * @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
373
- * See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
374
- * @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
375
- * @deprecated in 3.7. Use [[createQueryReader]] instead; it accepts the same parameters.
376
- */
377
- async *query(ecsql, params, options) {
378
- const builder = new core_common_1.QueryOptionsBuilder(options);
379
- const reader = this.createQueryReader(ecsql, params, builder.getOptions());
380
- while (await reader.step())
381
- yield reader.formatCurrentRow();
382
- }
383
- /** Compute number of rows that would be returned by the ECSQL.
384
- *
385
- * See also:
386
- * - [ECSQL Overview]($docs/learning/backend/ExecutingECSQL)
387
- * - [Code Examples]($docs/learning/backend/ECSQLCodeExamples)
388
- *
389
- * @param ecsql The ECSQL statement to execute
390
- * @param params The values to bind to the parameters (if the ECSQL has any).
391
- * See "[iTwin.js Types used in ECSQL Parameter Bindings]($docs/learning/ECSQLParameterTypes)" for details.
392
- * @returns Return row count.
393
- * @throws [IModelError]($common) If the statement is invalid
394
- * @deprecated in 3.7. Count the number of results using `count(*)` where the original query is a subquery instead. E.g., `SELECT count(*) FROM (<query-whose-rows-to-count>)`.
395
- */
396
- async queryRowCount(ecsql, params) {
397
- for await (const row of this.createQueryReader(`SELECT count(*) FROM (${ecsql})`, params)) {
398
- return row[0];
399
- }
400
- throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Failed to get row count");
401
- }
402
- /** Cancel any previous query with same token and run execute the current specified query.
403
- * The result of the query is async iterator over the rows. The iterator will get next page automatically once rows in current page has been read.
404
- * [ECSQL row]($docs/learning/ECSQLRowFormat).
405
- *
406
- * See also:
407
- * - [ECSQL Overview]($docs/learning/backend/ExecutingECSQL)
408
- * - [Code Examples]($docs/learning/backend/ECSQLCodeExamples)
409
- *
410
- * @param ecsql The ECSQL statement to execute
411
- * @param token None empty restart token. The previous query with same token would be cancelled. This would cause
412
- * exception which user code must handle.
413
- * @param params The values to bind to the parameters (if the ECSQL has any).
414
- * @param options Allow to specify certain flags which control how query is executed.
415
- * @returns Returns the query result as an *AsyncIterableIterator<any>* which lazy load result as needed. The row format is determined by *rowFormat* parameter.
416
- * See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
417
- * @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
418
- * @deprecated in 3.7. Use [[createQueryReader]] instead. Pass in the restart token as part of the `config` argument; e.g., `{ restartToken: myToken }` or `new QueryOptionsBuilder().setRestartToken(myToken).getOptions()`.
419
- */
420
- async *restartQuery(token, ecsql, params, options) {
421
- for await (const row of this.createQueryReader(ecsql, params, new core_common_1.QueryOptionsBuilder(options).setRestartToken(token).getOptions())) {
422
- yield row;
423
- }
424
- }
425
422
  /**
426
423
  * Use a prepared SQL statement, potentially from the statement cache. If the requested statement doesn't exist
427
424
  * in the statement cache, a new statement is prepared. After the callback completes, the statement is reset and saved
@@ -465,7 +462,7 @@ class IModelDb extends core_common_1.IModel {
465
462
  */
466
463
  withSqliteStatement(sql, callback, logErrors = true) {
467
464
  const stmt = this.prepareSqliteStatement(sql, logErrors);
468
- const release = () => stmt.dispose();
465
+ const release = () => stmt[Symbol.dispose]();
469
466
  try {
470
467
  const val = callback(stmt);
471
468
  if (val instanceof Promise) {
@@ -560,6 +557,7 @@ class IModelDb extends core_common_1.IModel {
560
557
  if (typeof params.offset === "number" && params.offset > 0)
561
558
  sql += ` OFFSET ${params.offset}`;
562
559
  const ids = new Set();
560
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
563
561
  this.withPreparedStatement(sql, (stmt) => {
564
562
  if (params.bindings)
565
563
  stmt.bindValues(params.bindings);
@@ -579,6 +577,11 @@ class IModelDb extends core_common_1.IModel {
579
577
  this._statementCache.clear();
580
578
  this._sqliteStatementCache.clear();
581
579
  this._classMetaDataRegistry = undefined;
580
+ this._jsClassMap = undefined;
581
+ this._schemaMap = undefined;
582
+ this._schemaContext = undefined;
583
+ this.elements[Symbols_1._cache].clear();
584
+ this.models[Symbols_1._cache].clear();
582
585
  }
583
586
  /** Update the project extents for this iModel.
584
587
  * <p><em>Example:</em>
@@ -617,9 +620,11 @@ class IModelDb extends core_common_1.IModel {
617
620
  updateIModelProps() {
618
621
  this[Symbols_1._nativeDb].updateIModelProps(this.toJSON());
619
622
  }
620
- /** Commit pending changes to this iModel.
623
+ /** Commit unsaved changes in memory as a Txn to this iModelDb.
621
624
  * @param description Optional description of the changes
622
625
  * @throws [[IModelError]] if there is a problem saving changes or if there are pending, un-processed lock or code requests.
626
+ * @note This will not push changes to the iModelHub.
627
+ * @see [[IModelDb.pushChanges]] to push changes to the iModelHub.
623
628
  */
624
629
  saveChanges(description) {
625
630
  if (this.openMode === core_bentley_1.OpenMode.Readonly)
@@ -628,7 +633,9 @@ class IModelDb extends core_common_1.IModel {
628
633
  if (core_bentley_1.DbResult.BE_SQLITE_OK !== stat)
629
634
  throw new core_common_1.IModelError(stat, `Could not save changes (${description})`);
630
635
  }
631
- /** Abandon pending changes in this iModel. */
636
+ /** Abandon changes in memory that have not been saved as a Txn to this iModelDb.
637
+ * @note This will not delete Txns that have already been saved, even if they have not yet been pushed.
638
+ */
632
639
  abandonChanges() {
633
640
  this[Symbols_1._nativeDb].abandonChanges();
634
641
  }
@@ -873,12 +880,54 @@ class IModelDb extends core_common_1.IModel {
873
880
  }
874
881
  /** The registry of entity metadata for this iModel.
875
882
  * @internal
883
+ * @deprecated in 5.0. Please use `schemaContext` from the `iModel` instead.
884
+ *
885
+ * @example
886
+ * ```typescript
887
+ * // Current usage:
888
+ * const classMetaData: EntityMetaData | undefined = iModel.classMetaDataRegistry.find("SchemaName:ClassName");
889
+ *
890
+ * // Replacement:
891
+ * const metaData: EntityClass | undefined = imodel.schemaContext.getSchemaItemSync("SchemaName.ClassName", EntityClass);
892
+ * ```
876
893
  */
894
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
877
895
  get classMetaDataRegistry() {
878
896
  if (this._classMetaDataRegistry === undefined)
897
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
879
898
  this._classMetaDataRegistry = new ClassRegistry_1.MetaDataRegistry();
880
899
  return this._classMetaDataRegistry;
881
900
  }
901
+ /**
902
+ * Allows registering js classes mapped to ECClasses
903
+ */
904
+ get jsClassMap() {
905
+ if (this._jsClassMap === undefined)
906
+ this._jsClassMap = new ClassRegistry_1.EntityJsClassMap();
907
+ return this._jsClassMap;
908
+ }
909
+ /**
910
+ * Allows locally registering a schema for this imodel, in constrast to [Schemas.registerSchema] which is a global operation
911
+ */
912
+ get schemaMap() {
913
+ if (this._schemaMap === undefined)
914
+ this._schemaMap = new Schema_1.SchemaMap();
915
+ return this._schemaMap;
916
+ }
917
+ /**
918
+ * Gets the context that allows accessing the metadata (ecschema-metadata package) of this iModel
919
+ * @public @preview
920
+ */
921
+ get schemaContext() {
922
+ if (this._schemaContext === undefined) {
923
+ const context = new ecschema_metadata_1.SchemaContext();
924
+ // TODO: We probably need a more optimized locater for here
925
+ const locater = new ecschema_metadata_1.SchemaJsonLocater((name) => this.getSchemaProps(name));
926
+ context.addLocater(locater);
927
+ this._schemaContext = context;
928
+ }
929
+ return this._schemaContext;
930
+ }
882
931
  /** Get the linkTableRelationships for this IModel */
883
932
  get relationships() {
884
933
  return this._relationships || (this._relationships = new Relationship_1.Relationships(this));
@@ -891,8 +940,11 @@ class IModelDb extends core_common_1.IModel {
891
940
  * @param sql The ECSQL statement to prepare
892
941
  * @param logErrors Determines if error will be logged if statement fail to prepare
893
942
  * @throws [[IModelError]] if there is a problem preparing the statement.
943
+ * @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
894
944
  */
945
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
895
946
  prepareStatement(sql, logErrors = true) {
947
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
896
948
  const stmt = new ECSqlStatement_1.ECSqlStatement();
897
949
  stmt.prepare(this[Symbols_1._nativeDb], sql, logErrors);
898
950
  return stmt;
@@ -900,8 +952,11 @@ class IModelDb extends core_common_1.IModel {
900
952
  /** Prepare an ECSQL statement.
901
953
  * @param sql The ECSQL statement to prepare
902
954
  * @returns `undefined` if there is a problem preparing the statement.
955
+ * @deprecated in 4.11. Use [IModelDb.createQueryReader]($backend) or [ECDb.createQueryReader]($backend) to query.
903
956
  */
957
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
904
958
  tryPrepareStatement(sql) {
959
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
905
960
  const statement = new ECSqlStatement_1.ECSqlStatement();
906
961
  const result = statement.tryPrepare(this[Symbols_1._nativeDb], sql);
907
962
  return core_bentley_1.DbResult.BE_SQLITE_OK === result.status ? statement : undefined;
@@ -922,26 +977,72 @@ class IModelDb extends core_common_1.IModel {
922
977
  if (!ClassRegistry_1.ClassRegistry.isNotFoundError(err)) {
923
978
  throw err;
924
979
  }
980
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
925
981
  this.loadMetaData(classFullName);
926
982
  return ClassRegistry_1.ClassRegistry.getClass(classFullName, this);
927
983
  }
928
984
  }
985
+ /** Constructs a ResolveInstanceKeyArgs from given parameters
986
+ * @throws [[IModelError]] if the combination of supplied parameters is invalid.
987
+ * @internal
988
+ */
989
+ getInstanceArgs(instanceId, baseClassName, federationGuid, code) {
990
+ if (instanceId && baseClassName) {
991
+ return { partialKey: { id: instanceId, baseClassName } };
992
+ }
993
+ else if (federationGuid) {
994
+ return { federationGuid };
995
+ }
996
+ else if (code) {
997
+ return { code };
998
+ }
999
+ else {
1000
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Either instanceId and baseClassName or federationGuid or code must be specified");
1001
+ }
1002
+ }
929
1003
  /** Get metadata for a class. This method will load the metadata from the iModel into the cache as a side-effect, if necessary.
930
1004
  * @throws [[IModelError]] if the metadata cannot be found nor loaded.
1005
+ * @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
1006
+ *
1007
+ * @example
1008
+ * * ```typescript
1009
+ * // Current usage:
1010
+ * const metaData: EntityMetaData = imodel.getMetaData("SchemaName:ClassName");
1011
+ *
1012
+ * // Replacement:
1013
+ * const metaData: EntityClass | undefined = imodel.schemaContext.getSchemaItemSync("SchemaName", "ClassName", EntityClass);
1014
+ * ```
931
1015
  */
1016
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
932
1017
  getMetaData(classFullName) {
1018
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
933
1019
  let metadata = this.classMetaDataRegistry.find(classFullName);
934
1020
  if (metadata === undefined) {
1021
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
935
1022
  this.loadMetaData(classFullName);
1023
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
936
1024
  metadata = this.classMetaDataRegistry.find(classFullName);
937
1025
  if (metadata === undefined)
938
1026
  throw ClassRegistry_1.ClassRegistry.makeMetaDataNotFoundError(classFullName); // do not log
939
1027
  }
940
1028
  return metadata;
941
1029
  }
942
- /** Identical to [[getMetaData]], except it returns `undefined` instead of throwing an error if the metadata cannot be found nor loaded. */
1030
+ /** Identical to [[getMetaData]], except it returns `undefined` instead of throwing an error if the metadata cannot be found nor loaded.
1031
+ * @deprecated in 5.0. Please use `getSchemaItem` from `SchemaContext` class instead.
1032
+ *
1033
+ * @example
1034
+ * * ```typescript
1035
+ * // Current usage:
1036
+ * const metaData: EntityMetaData | undefined = imodel.tryGetMetaData("SchemaName:ClassName");
1037
+ *
1038
+ * // Replacement:
1039
+ * const metaData: EntityClass | undefined = imodel.schemaContext.getSchemaItemSync("SchemaName.ClassName", EntityClass);
1040
+ * ```
1041
+ */
1042
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
943
1043
  tryGetMetaData(classFullName) {
944
1044
  try {
1045
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
945
1046
  return this.getMetaData(classFullName);
946
1047
  }
947
1048
  catch {
@@ -955,8 +1056,24 @@ class IModelDb extends core_common_1.IModel {
955
1056
  * @param func The callback to be invoked on each property
956
1057
  * @param includeCustom If true (default), include custom-handled properties in the iteration. Otherwise, skip custom-handled properties.
957
1058
  * @note Custom-handled properties are core properties that have behavior enforced by C++ handlers.
1059
+ * @deprecated in 5.0. Please use `forEachProperty` instead.
1060
+ *
1061
+ * @example
1062
+ * ```typescript
1063
+ * // Current usage:
1064
+ * IModelDb.forEachMetaData(imodel, "BisCore:Element", true, (name: string, propMetaData: PropertyMetaData) => {
1065
+ * console.log(`Property name: ${name}, Property type: ${propMetaData.primitiveType}`);
1066
+ * }, false);
1067
+ *
1068
+ * // Replacement:
1069
+ * await IModelDb.forEachProperty(imodel, "TestDomain.TestDomainClass", true, (propName: string, property: Property) => {
1070
+ * console.log(`Property name: ${propName}, Property type: ${property.propertyType}`);
1071
+ * }, false);
1072
+ * ```
958
1073
  */
1074
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
959
1075
  static forEachMetaData(iModel, classFullName, wantSuper, func, includeCustom = true) {
1076
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
960
1077
  iModel.forEachMetaData(classFullName, wantSuper, func, includeCustom);
961
1078
  }
962
1079
  /** Invoke a callback on each property of the specified class, optionally including superclass properties.
@@ -965,8 +1082,24 @@ class IModelDb extends core_common_1.IModel {
965
1082
  * @param func The callback to be invoked on each property
966
1083
  * @param includeCustom If true (default), include custom-handled properties in the iteration. Otherwise, skip custom-handled properties.
967
1084
  * @note Custom-handled properties are core properties that have behavior enforced by C++ handlers.
1085
+ * @deprecated in 5.0. Use `forEachProperty` from `SchemaContext` class instead.
1086
+ *
1087
+ * @example
1088
+ * ```typescript
1089
+ * // Current usage:
1090
+ * iModel.forEachMetaData("BisCore:Element", true, (name: string, propMetaData: PropertyMetaData) => {
1091
+ * console.log(`Property name: ${name}, Property type: ${propMetaData.primitiveType}`);
1092
+ * });
1093
+ *
1094
+ * // Replacement:
1095
+ * imodel.schemaContext.forEachProperty("BisCore:Element", true, (propName: string, property: Property) => {
1096
+ * console.log(`Property name: ${propName}, Property type: ${property.propertyType}`);
1097
+ * });
1098
+ * ```
968
1099
  */
1100
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
969
1101
  forEachMetaData(classFullName, wantSuper, func, includeCustom = true) {
1102
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
970
1103
  const meta = this.getMetaData(classFullName); // will load if necessary
971
1104
  for (const propName in meta.properties) { // eslint-disable-line guard-for-in
972
1105
  const propMeta = meta.properties[propName];
@@ -974,10 +1107,15 @@ class IModelDb extends core_common_1.IModel {
974
1107
  func(propName, propMeta);
975
1108
  }
976
1109
  if (wantSuper && meta.baseClasses && meta.baseClasses.length > 0)
1110
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
977
1111
  meta.baseClasses.forEach((baseClass) => this.forEachMetaData(baseClass, true, func, includeCustom));
978
1112
  }
979
- /** @internal */
1113
+ /**
1114
+ * @internal
1115
+ * @deprecated in 5.0. Please use `schemaContext` from `iModel` instead to get metadata.
1116
+ */
980
1117
  loadMetaData(classFullName) {
1118
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
981
1119
  if (this.classMetaDataRegistry.find(classFullName))
982
1120
  return;
983
1121
  const className = classFullName.split(":");
@@ -987,10 +1125,13 @@ class IModelDb extends core_common_1.IModel {
987
1125
  if (val.error)
988
1126
  throw new core_common_1.IModelError(val.error.status, `Error getting class meta data for: ${classFullName}`);
989
1127
  (0, core_bentley_1.assert)(undefined !== val.result);
1128
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
990
1129
  const metaData = new core_common_1.EntityMetaData(JSON.parse(val.result));
1130
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
991
1131
  this.classMetaDataRegistry.add(classFullName, metaData);
992
1132
  // Recursive, to make sure that base classes are cached.
993
1133
  if (metaData.baseClasses !== undefined && metaData.baseClasses.length > 0)
1134
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
994
1135
  metaData.baseClasses.forEach((baseClassName) => this.loadMetaData(baseClassName));
995
1136
  }
996
1137
  /** Returns the full schema for the input name.
@@ -1016,6 +1157,7 @@ class IModelDb extends core_common_1.IModel {
1016
1157
  */
1017
1158
  querySchemaVersion(schemaName) {
1018
1159
  const sql = `SELECT VersionMajor,VersionWrite,VersionMinor FROM ECDbMeta.ECSchemaDef WHERE Name=:schemaName LIMIT 1`;
1160
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1019
1161
  return this.withPreparedStatement(sql, (statement) => {
1020
1162
  statement.bindString("schemaName", schemaName);
1021
1163
  if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
@@ -1192,6 +1334,7 @@ class IModelDb extends core_common_1.IModel {
1192
1334
  async generateElementGraphics(request) {
1193
1335
  return (0, ElementGraphics_1.generateElementGraphics)(request, this);
1194
1336
  }
1337
+ static _settingPropNamespace = "settings";
1195
1338
  /** Save a `SettingDictionary` in this iModel that will be loaded into [[workspace.settings]] every time this iModel is opened in future sessions.
1196
1339
  * @param name The name for the SettingDictionary. If a dictionary by that name already exists in the iModel, its value is replaced.
1197
1340
  * @param dict The SettingDictionary object to stringify and save.
@@ -1284,19 +1427,63 @@ class IModelDb extends core_common_1.IModel {
1284
1427
  justification: core_geometry_1.Range2d.fromJSON(props.justification),
1285
1428
  };
1286
1429
  }
1430
+ /** Writes the contents of a single ECSchema to a file on the local file system.
1431
+ * @beta
1432
+ */
1433
+ exportSchema(args) {
1434
+ processSchemaWriteStatus(this[Symbols_1._nativeDb].exportSchema(args.schemaName, args.outputDirectory, args.outputFileName));
1435
+ }
1436
+ /** Writes the contents of all ECSchemas in this iModel to files in a directory on the local file system.
1437
+ * @beta
1438
+ */
1439
+ exportSchemas(outputDirectory) {
1440
+ processSchemaWriteStatus(this[Symbols_1._nativeDb].exportSchemas(outputDirectory));
1441
+ }
1442
+ /** Attempt to simplify the geometry stream of a single [[GeometricElement]] or [[GeometryPart]] as specified by `args`.
1443
+ * @beta
1444
+ */
1445
+ simplifyElementGeometry(args) {
1446
+ return this[Symbols_1._nativeDb].simplifyElementGeometry(args);
1447
+ }
1448
+ /** Attempts to optimize all of the geometry in this iModel by identifying [[GeometryPart]]s that are referenced by exactly one
1449
+ * element's geometry stream. Each such reference is replaced by inserting the part's geometry directly into the element's geometry stream.
1450
+ * Then, the no-longer-used geometry part is deleted.
1451
+ * This can improve performance when a connector inadvertently creates large numbers of parts that are each only used once.
1452
+ * @beta
1453
+ */
1454
+ inlineGeometryParts() {
1455
+ return this[Symbols_1._nativeDb].inlineGeometryPartReferences();
1456
+ }
1457
+ /** Returns a string representation of the error that most recently arose during an operation on the underlying SQLite database.
1458
+ * If no errors have occurred, an empty string is returned.
1459
+ * Otherwise, a string of the format `message (code)` is returned, where `message` is a human-readable diagnostic string and `code` is an integer status code.
1460
+ * See [SQLite error codes and messages](https://www.sqlite.org/c3ref/errcode.html)
1461
+ * @note Do not rely upon this value or its specific contents in error handling logic. It is only intended for use in debugging.
1462
+ */
1463
+ getLastError() {
1464
+ return this[Symbols_1._nativeDb].getLastError();
1465
+ }
1287
1466
  }
1288
1467
  exports.IModelDb = IModelDb;
1289
- /** Keep track of open imodels to support `tryFind` for RPC purposes */
1290
- IModelDb._openDbs = new Map();
1291
- IModelDb.defaultLimit = 1000; // default limit for batching queries
1292
- IModelDb.maxLimit = 10000; // maximum limit for batching queries
1293
- IModelDb._settingPropNamespace = "settings";
1468
+ function processSchemaWriteStatus(status) {
1469
+ switch (status) {
1470
+ case 0 /* SchemaWriteStatus.Success */: return;
1471
+ case 1 /* SchemaWriteStatus.FailedToSaveXml */: throw new Error("Failed to save schema XML");
1472
+ case 2 /* SchemaWriteStatus.FailedToCreateXml */: throw new Error("Failed to create schema XML");
1473
+ case 3 /* SchemaWriteStatus.FailedToCreateJson */: throw new Error("Failed to create schema JSON");
1474
+ case 4 /* SchemaWriteStatus.FailedToWriteFile */: throw new Error("Failed to write schema file");
1475
+ default: throw new Error("Unknown error while exporting schema");
1476
+ }
1477
+ }
1294
1478
  /** @public */
1295
1479
  (function (IModelDb) {
1296
1480
  /** The collection of models in an [[IModelDb]].
1297
1481
  * @public
1298
1482
  */
1299
1483
  class Models {
1484
+ _iModel;
1485
+ /** @internal */
1486
+ [Symbols_1._cache] = new core_bentley_1.LRUMap(500);
1300
1487
  /** @internal */
1301
1488
  constructor(_iModel) {
1302
1489
  this._iModel = _iModel;
@@ -1307,7 +1494,10 @@ IModelDb._settingPropNamespace = "settings";
1307
1494
  * @see tryGetModelProps
1308
1495
  */
1309
1496
  getModelProps(id) {
1310
- return this.getModelJson({ id });
1497
+ const model = this.tryGetModelProps(id);
1498
+ if (undefined === model)
1499
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model=${id}`);
1500
+ return model;
1311
1501
  }
1312
1502
  /** Get the ModelProps with the specified identifier.
1313
1503
  * @param modelId The Model identifier.
@@ -1317,7 +1507,25 @@ IModelDb._settingPropNamespace = "settings";
1317
1507
  * @see getModelProps
1318
1508
  */
1319
1509
  tryGetModelProps(id) {
1320
- return this.tryGetModelJson({ id });
1510
+ try {
1511
+ if (IModelHost_1.IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
1512
+ return this._iModel[Symbols_1._nativeDb].getModel({ id });
1513
+ }
1514
+ const cachedMdl = this[Symbols_1._cache].get(id);
1515
+ if (cachedMdl) {
1516
+ return cachedMdl;
1517
+ }
1518
+ const options = { useJsNames: true };
1519
+ const instanceKey = this.resolveModelKey({ id });
1520
+ const rawInstance = this._iModel[Symbols_1._nativeDb].readInstance(instanceKey, options);
1521
+ const classDef = this._iModel.getJsClass(rawInstance.classFullName);
1522
+ const modelProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel });
1523
+ this[Symbols_1._cache].set(id, modelProps);
1524
+ return modelProps;
1525
+ }
1526
+ catch {
1527
+ return undefined;
1528
+ }
1321
1529
  }
1322
1530
  /** Query for the last modified time for a [[Model]].
1323
1531
  * @param modelId The Id of the model.
@@ -1325,6 +1533,7 @@ IModelDb._settingPropNamespace = "settings";
1325
1533
  */
1326
1534
  queryLastModifiedTime(modelId) {
1327
1535
  const sql = `SELECT LastMod FROM ${Model_1.Model.classFullName} WHERE ECInstanceId=:modelId`;
1536
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1328
1537
  return this._iModel.withPreparedStatement(sql, (statement) => {
1329
1538
  statement.bindId("modelId", modelId);
1330
1539
  if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
@@ -1363,32 +1572,22 @@ IModelDb._settingPropNamespace = "settings";
1363
1572
  return model; // modelClass was not specified, cannot call instanceof to validate
1364
1573
  return model instanceof modelClass ? model : undefined;
1365
1574
  }
1366
- /** Read the properties for a Model as a json string.
1367
- * @param modelIdArg a json string with the identity of the model to load. Must have either "id" or "code".
1368
- * @returns a json string with the properties of the model.
1369
- * @throws [[IModelError]] if the model is not found or cannot be loaded.
1370
- * @see tryGetModelJson
1371
- * @internal
1372
- */
1373
- getModelJson(modelIdArg) {
1374
- const modelJson = this.tryGetModelJson(modelIdArg);
1375
- if (undefined === modelJson) {
1376
- throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model=(id: ${modelIdArg.id}, code: ${modelIdArg.code})`);
1575
+ resolveModelKey(modelIdArg) {
1576
+ const baseClassName = "BisCore:Model";
1577
+ let args;
1578
+ if (modelIdArg.id) {
1579
+ args = { partialKey: { id: modelIdArg.id, baseClassName } };
1377
1580
  }
1378
- return modelJson;
1379
- }
1380
- /** Read the properties for a Model as a json string.
1381
- * @param modelIdArg a json string with the identity of the model to load. Must have either "id" or "code".
1382
- * @returns a json string with the properties of the model or `undefined` if the model is not found.
1383
- * @see getModelJson
1384
- */
1385
- tryGetModelJson(modelIdArg) {
1386
- try {
1387
- return this._iModel[Symbols_1._nativeDb].getModel(modelIdArg);
1581
+ else if (modelIdArg.code) {
1582
+ const modelId = this._iModel.elements.getElementProps({ code: modelIdArg.code }).id;
1583
+ if (!modelId)
1584
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `Model not found with code: [spec:${modelIdArg.code.spec}, scope:${modelIdArg.code.scope}, value:${modelIdArg.code.value}])`);
1585
+ args = { partialKey: { id: modelId, baseClassName } };
1388
1586
  }
1389
- catch {
1390
- return undefined;
1587
+ else {
1588
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, `Invalid model identifier: ${JSON.stringify(modelIdArg)}`);
1391
1589
  }
1590
+ return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
1392
1591
  }
1393
1592
  /** Get the sub-model of the specified Element.
1394
1593
  * See [[IModelDb.Elements.queryElementIdByCode]] for more on how to find an element by Code.
@@ -1441,6 +1640,8 @@ IModelDb._settingPropNamespace = "settings";
1441
1640
  */
1442
1641
  updateModel(props) {
1443
1642
  try {
1643
+ if (props.id)
1644
+ this[Symbols_1._cache].delete(props.id);
1444
1645
  this._iModel[Symbols_1._nativeDb].updateModel(props);
1445
1646
  }
1446
1647
  catch (err) {
@@ -1457,6 +1658,7 @@ IModelDb._settingPropNamespace = "settings";
1457
1658
  * @see [[TxnManager.onModelGeometryChanged]] for the event emitted in response to such a change.
1458
1659
  */
1459
1660
  updateGeometryGuid(modelId) {
1661
+ this._iModel.models[Symbols_1._cache].delete(modelId);
1460
1662
  const error = this._iModel[Symbols_1._nativeDb].updateModelGeometryGuid(modelId);
1461
1663
  if (error !== core_bentley_1.IModelStatus.Success)
1462
1664
  throw new core_common_1.IModelError(error, `updating geometry guid for model ${modelId}`);
@@ -1468,6 +1670,7 @@ IModelDb._settingPropNamespace = "settings";
1468
1670
  deleteModel(ids) {
1469
1671
  core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
1470
1672
  try {
1673
+ this[Symbols_1._cache].delete(id);
1471
1674
  this._iModel[Symbols_1._nativeDb].deleteModel(id);
1472
1675
  }
1473
1676
  catch (err) {
@@ -1504,6 +1707,9 @@ IModelDb._settingPropNamespace = "settings";
1504
1707
  * @public
1505
1708
  */
1506
1709
  class Elements {
1710
+ _iModel;
1711
+ /** @internal */
1712
+ [Symbols_1._cache] = new ElementLRUCache_1.ElementLRUCache();
1507
1713
  /** @internal */
1508
1714
  constructor(_iModel) {
1509
1715
  this._iModel = _iModel;
@@ -1520,50 +1726,40 @@ IModelDb._settingPropNamespace = "settings";
1520
1726
  return !stmt.nextRow() ? undefined : stmt.getValueId(0);
1521
1727
  }) : undefined;
1522
1728
  }
1523
- /** Read element data from the iModel as JSON
1524
- * @param elementIdArg a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
1525
- * @returns The JSON properties of the element.
1526
- * @throws [[IModelError]] if the element is not found or cannot be loaded.
1527
- * @see tryGetElementJson
1528
- * @internal
1529
- */
1530
- getElementJson(elementId) {
1531
- const elementProps = this.tryGetElementJson(elementId);
1532
- if (undefined === elementProps)
1533
- throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `reading element={id: ${elementId.id} federationGuid: ${elementId.federationGuid}, code: ${elementId.code}}`);
1534
- return elementProps;
1535
- }
1536
- /** Read element data from the iModel as JSON
1537
- * @param loadProps - a json string with the identity of the element to load. Must have one of "id", "federationGuid", or "code".
1538
- * @returns The JSON properties of the element or `undefined` if the element is not found.
1539
- * @throws [[IModelError]] if the element exists, but cannot be loaded.
1540
- * @see getElementJson
1541
- */
1542
- tryGetElementJson(loadProps) {
1543
- try {
1544
- return this._iModel[Symbols_1._nativeDb].getElement(loadProps);
1545
- }
1546
- catch {
1547
- return undefined;
1548
- }
1549
- }
1550
1729
  /** Get properties of an Element by Id, FederationGuid, or Code
1551
1730
  * @throws [[IModelError]] if the element is not found or cannot be loaded.
1552
1731
  * @see tryGetElementProps
1553
1732
  */
1554
1733
  getElementProps(props) {
1734
+ const elProp = this.tryGetElementProps(props);
1735
+ if (undefined === elProp)
1736
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.NotFound, `element not found`);
1737
+ return elProp;
1738
+ }
1739
+ resolveElementKey(props) {
1740
+ const baseClassName = "BisCore:Element";
1741
+ let args;
1555
1742
  if (typeof props === "string") {
1556
- props = core_bentley_1.Id64.isId64(props) ? { id: props } : { federationGuid: props };
1743
+ args = core_bentley_1.Id64.isId64(props) ? { partialKey: { id: props, baseClassName } } : { federationGuid: props };
1557
1744
  }
1558
1745
  else if (props instanceof core_common_1.Code) {
1559
- props = { code: props };
1746
+ args = { code: props };
1560
1747
  }
1561
- try {
1562
- return this._iModel[Symbols_1._nativeDb].getElement(props);
1563
- }
1564
- catch (err) {
1565
- throw new core_common_1.IModelError(err.errorNumber, err.message);
1748
+ else {
1749
+ if (props.id) {
1750
+ args = { partialKey: { id: props.id, baseClassName } };
1751
+ }
1752
+ else if (props.federationGuid) {
1753
+ args = { federationGuid: props.federationGuid };
1754
+ }
1755
+ else if (props.code) {
1756
+ args = { code: props.code };
1757
+ }
1758
+ else {
1759
+ throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidId, "Element Id or FederationGuid or Code is required");
1760
+ }
1566
1761
  }
1762
+ return this._iModel[Symbols_1._nativeDb].resolveInstanceKey(args);
1567
1763
  }
1568
1764
  /** Get properties of an Element by Id, FederationGuid, or Code
1569
1765
  * @returns The properties of the element or `undefined` if the element is not found.
@@ -1571,14 +1767,32 @@ IModelDb._settingPropNamespace = "settings";
1571
1767
  * @note Useful for cases when an element may or may not exist and throwing an `Error` would be overkill.
1572
1768
  * @see getElementProps
1573
1769
  */
1574
- tryGetElementProps(elementId) {
1575
- if (typeof elementId === "string") {
1576
- elementId = core_bentley_1.Id64.isId64(elementId) ? { id: elementId } : { federationGuid: elementId };
1770
+ tryGetElementProps(props) {
1771
+ if (typeof props === "string") {
1772
+ props = core_bentley_1.Id64.isId64(props) ? { id: props } : { federationGuid: props };
1577
1773
  }
1578
- else if (elementId instanceof core_common_1.Code) {
1579
- elementId = { code: elementId };
1774
+ else if (props instanceof core_common_1.Code) {
1775
+ props = { code: props };
1776
+ }
1777
+ try {
1778
+ if (IModelHost_1.IModelHost.configuration?.disableThinnedNativeInstanceWorkflow) {
1779
+ return this._iModel[Symbols_1._nativeDb].getElement(props);
1780
+ }
1781
+ const cachedElm = this[Symbols_1._cache].get(props);
1782
+ if (cachedElm) {
1783
+ return cachedElm.elProps;
1784
+ }
1785
+ const options = { ...props, useJsNames: true };
1786
+ const instanceKey = this.resolveElementKey(props);
1787
+ const rawInstance = this._iModel[Symbols_1._nativeDb].readInstance(instanceKey, options);
1788
+ const classDef = this._iModel.getJsClass(rawInstance.classFullName);
1789
+ const elementProps = classDef.deserialize({ row: rawInstance, iModel: this._iModel, options: { element: props } });
1790
+ this[Symbols_1._cache].set({ elProps: elementProps, loadOptions: props });
1791
+ return elementProps;
1792
+ }
1793
+ catch {
1794
+ return undefined;
1580
1795
  }
1581
- return this.tryGetElementJson(elementId);
1582
1796
  }
1583
1797
  /** Get an element by Id, FederationGuid, or Code
1584
1798
  * @param elementId either the element's Id, Code, or FederationGuid, or an ElementLoadProps
@@ -1611,7 +1825,7 @@ IModelDb._settingPropNamespace = "settings";
1611
1825
  elementId = { code: elementId };
1612
1826
  else
1613
1827
  elementId.onlyBaseProperties = false; // we must load all properties to construct the element.
1614
- const elementProps = this.tryGetElementJson(elementId);
1828
+ const elementProps = this.tryGetElementProps(elementId);
1615
1829
  if (undefined === elementProps)
1616
1830
  return undefined; // no Element with that elementId found
1617
1831
  const element = this._iModel.constructEntity(elementProps);
@@ -1635,6 +1849,7 @@ IModelDb._settingPropNamespace = "settings";
1635
1849
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidCodeSpec, "Invalid CodeSpec");
1636
1850
  if (code.value === undefined)
1637
1851
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.InvalidCode, "Invalid Code");
1852
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1638
1853
  return this._iModel.withPreparedStatement("SELECT ECInstanceId FROM BisCore:Element WHERE CodeSpec.Id=? AND CodeScope.Id=? AND CodeValue=?", (stmt) => {
1639
1854
  stmt.bindId(1, code.spec);
1640
1855
  stmt.bindId(2, core_bentley_1.Id64.fromString(code.scope));
@@ -1650,6 +1865,7 @@ IModelDb._settingPropNamespace = "settings";
1650
1865
  */
1651
1866
  queryLastModifiedTime(elementId) {
1652
1867
  const sql = "SELECT LastMod FROM BisCore:Element WHERE ECInstanceId=:elementId";
1868
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1653
1869
  return this._iModel.withPreparedStatement(sql, (statement) => {
1654
1870
  statement.bindId("elementId", elementId);
1655
1871
  if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step())
@@ -1671,9 +1887,14 @@ IModelDb._settingPropNamespace = "settings";
1671
1887
  * the value of `elProps.federationGuid` is *not* updated. Generally, it is best to re-read the element after inserting (e.g. via [[getElementProps]])
1672
1888
  * if you intend to continue working with it. That will ensure its values reflect the persistent state.
1673
1889
  */
1674
- insertElement(elProps) {
1890
+ insertElement(elProps, options) {
1675
1891
  try {
1676
- return elProps.id = this._iModel[Symbols_1._nativeDb].insertElement(elProps);
1892
+ this[Symbols_1._cache].delete({
1893
+ id: elProps.id,
1894
+ federationGuid: elProps.federationGuid,
1895
+ code: elProps.code,
1896
+ });
1897
+ return elProps.id = this._iModel[Symbols_1._nativeDb].insertElement(elProps, options);
1677
1898
  }
1678
1899
  catch (err) {
1679
1900
  err.message = `Error inserting element [${err.message}]`;
@@ -1694,6 +1915,11 @@ IModelDb._settingPropNamespace = "settings";
1694
1915
  */
1695
1916
  updateElement(elProps) {
1696
1917
  try {
1918
+ this[Symbols_1._cache].delete({
1919
+ id: elProps.id,
1920
+ federationGuid: elProps.federationGuid,
1921
+ code: elProps.code,
1922
+ });
1697
1923
  this._iModel[Symbols_1._nativeDb].updateElement(elProps);
1698
1924
  }
1699
1925
  catch (err) {
@@ -1711,6 +1937,7 @@ IModelDb._settingPropNamespace = "settings";
1711
1937
  const iModel = this._iModel;
1712
1938
  core_bentley_1.Id64.toIdSet(ids).forEach((id) => {
1713
1939
  try {
1940
+ this[Symbols_1._cache].delete({ id });
1714
1941
  iModel[Symbols_1._nativeDb].deleteElement(id);
1715
1942
  }
1716
1943
  catch (err) {
@@ -1801,6 +2028,7 @@ IModelDb._settingPropNamespace = "settings";
1801
2028
  */
1802
2029
  queryChildren(elementId) {
1803
2030
  const sql = "SELECT ECInstanceId FROM BisCore:Element WHERE Parent.Id=:elementId";
2031
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1804
2032
  return this._iModel.withPreparedStatement(sql, (statement) => {
1805
2033
  statement.bindId("elementId", elementId);
1806
2034
  const childIds = [];
@@ -1816,6 +2044,7 @@ IModelDb._settingPropNamespace = "settings";
1816
2044
  * @throws [[IModelError]] if the element does not exist
1817
2045
  */
1818
2046
  queryParent(elementId) {
2047
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1819
2048
  return this._iModel.withPreparedStatement(`select parent.id from ${Element_1.Element.classFullName} where ecinstanceid=?`, (stmt) => {
1820
2049
  stmt.bindId(1, elementId);
1821
2050
  if (stmt.step() !== core_bentley_1.DbResult.BE_SQLITE_ROW)
@@ -1832,6 +2061,7 @@ IModelDb._settingPropNamespace = "settings";
1832
2061
  return false; // Special case since the RepositoryModel does not sub-model the root Subject
1833
2062
  // A sub-model will have the same Id value as the element it is describing
1834
2063
  const sql = "SELECT ECInstanceId FROM BisCore:Model WHERE ECInstanceId=:elementId";
2064
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1835
2065
  return this._iModel.withPreparedStatement(sql, (statement) => {
1836
2066
  statement.bindId("elementId", elementId);
1837
2067
  return core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step();
@@ -1846,6 +2076,7 @@ IModelDb._settingPropNamespace = "settings";
1846
2076
  */
1847
2077
  _queryAspects(elementId, fromClassFullName, excludedClassFullNames) {
1848
2078
  const sql = `SELECT ECInstanceId,ECClassId FROM ${fromClassFullName} WHERE Element.Id=:elementId ORDER BY ECClassId,ECInstanceId`; // ORDER BY to maximize statement reuse
2079
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1849
2080
  return this._iModel.withPreparedStatement(sql, (statement) => {
1850
2081
  statement.bindId("elementId", elementId);
1851
2082
  const aspects = [];
@@ -1864,6 +2095,7 @@ IModelDb._settingPropNamespace = "settings";
1864
2095
  */
1865
2096
  _queryAspect(aspectInstanceId, aspectClassName) {
1866
2097
  const sql = `SELECT * FROM ${aspectClassName} WHERE ECInstanceId=:aspectInstanceId`;
2098
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1867
2099
  const aspect = this._iModel.withPreparedStatement(sql, (statement) => {
1868
2100
  statement.bindId("aspectInstanceId", aspectInstanceId);
1869
2101
  if (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) {
@@ -1884,6 +2116,7 @@ IModelDb._settingPropNamespace = "settings";
1884
2116
  */
1885
2117
  getAspect(aspectInstanceId) {
1886
2118
  const sql = "SELECT ECClassId FROM BisCore:ElementAspect WHERE ECInstanceId=:aspectInstanceId";
2119
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1887
2120
  const aspectClassFullName = this._iModel.withPreparedStatement(sql, (statement) => {
1888
2121
  statement.bindId("aspectInstanceId", aspectInstanceId);
1889
2122
  return (core_bentley_1.DbResult.BE_SQLITE_ROW === statement.step()) ? statement.getValue(0).getClassNameForClassId().replace(".", ":") : undefined;
@@ -1893,7 +2126,9 @@ IModelDb._settingPropNamespace = "settings";
1893
2126
  }
1894
2127
  return this._queryAspect(aspectInstanceId, aspectClassFullName);
1895
2128
  }
2129
+ static classMap = new Map();
1896
2130
  runInstanceQuery(sql, elementId, excludedClassFullNames) {
2131
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1897
2132
  return this._iModel.withPreparedStatement(sql, (statement) => {
1898
2133
  statement.bindId("elementId", elementId);
1899
2134
  const aspects = [];
@@ -1922,9 +2157,9 @@ IModelDb._settingPropNamespace = "settings";
1922
2157
  */
1923
2158
  getAspects(elementId, aspectClassFullName, excludedClassFullNames) {
1924
2159
  if (aspectClassFullName === undefined) {
1925
- const allAspects = this.runInstanceQuery(`SELECT $ FROM (
1926
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
1927
- UNION ALL
2160
+ const allAspects = this.runInstanceQuery(`SELECT $ FROM (
2161
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId
2162
+ UNION ALL
1928
2163
  SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
1929
2164
  if (allAspects.length === 0)
1930
2165
  core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -1934,6 +2169,7 @@ IModelDb._settingPropNamespace = "settings";
1934
2169
  const fullClassName = aspectClassFullName.replace(".", ":").split(":");
1935
2170
  const val = this._iModel[Symbols_1._nativeDb].getECClassMetaData(fullClassName[0], fullClassName[1]);
1936
2171
  if (val.result !== undefined) {
2172
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
1937
2173
  const metaData = new core_common_1.EntityMetaData(JSON.parse(val.result));
1938
2174
  if (metaData.modifier !== "Abstract") // Class is not abstract, use normal query to retrieve aspects
1939
2175
  return this._queryAspects(elementId, aspectClassFullName, excludedClassFullNames);
@@ -1942,8 +2178,11 @@ IModelDb._settingPropNamespace = "settings";
1942
2178
  let classIdList = IModelDb.Elements.classMap.get(aspectClassFullName);
1943
2179
  if (classIdList === undefined) {
1944
2180
  const classIds = [];
1945
- this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
1946
- and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`, (statement) => {
2181
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
2182
+ this._iModel.withPreparedStatement(`select SourceECInstanceId from meta.ClassHasAllBaseClasses where TargetECInstanceId = (select ECInstanceId from meta.ECClassDef where Name='${fullClassName[1]}'
2183
+ and Schema.Id = (select ECInstanceId from meta.ECSchemaDef where Name='${fullClassName[0]}')) and SourceECInstanceId != TargetECInstanceId`,
2184
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
2185
+ (statement) => {
1947
2186
  while (statement.step() === core_bentley_1.DbResult.BE_SQLITE_ROW)
1948
2187
  classIds.push(statement.getValue(0).getId());
1949
2188
  });
@@ -1957,10 +2196,10 @@ IModelDb._settingPropNamespace = "settings";
1957
2196
  return [];
1958
2197
  }
1959
2198
  // Execute an instance query to retrieve all aspects from all the derived classes
1960
- const aspects = this.runInstanceQuery(`SELECT $ FROM (
1961
- SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1962
- UNION ALL
1963
- SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2199
+ const aspects = this.runInstanceQuery(`SELECT $ FROM (
2200
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementMultiAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
2201
+ UNION ALL
2202
+ SELECT ECInstanceId, ECClassId FROM Bis.ElementUniqueAspect WHERE Element.Id = :elementId AND ECClassId IN (${classIdList})
1964
2203
  ) OPTIONS USE_JS_PROP_NAMES DO_NOT_TRUNCATE_BLOB`, elementId, excludedClassFullNames);
1965
2204
  if (aspects.length === 0)
1966
2205
  core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.ECDb, `No aspects found for class ${aspectClassFullName} and element ${elementId}`);
@@ -2009,16 +2248,18 @@ IModelDb._settingPropNamespace = "settings";
2009
2248
  });
2010
2249
  }
2011
2250
  }
2012
- Elements.classMap = new Map();
2013
2251
  IModelDb.Elements = Elements;
2014
2252
  /** The collection of views in an [[IModelDb]].
2015
2253
  * @public
2016
2254
  */
2017
2255
  class Views {
2256
+ _iModel;
2018
2257
  /** @internal */
2019
2258
  constructor(_iModel) {
2020
2259
  this._iModel = _iModel;
2021
2260
  }
2261
+ static viewStoreProperty = { namespace: "itwinjs", name: "DefaultViewStore" };
2262
+ _viewStore;
2022
2263
  get hasViewStore() { return undefined !== this._viewStore; }
2023
2264
  /** @beta */
2024
2265
  get viewStore() {
@@ -2070,6 +2311,8 @@ IModelDb._settingPropNamespace = "settings";
2070
2311
  });
2071
2312
  return props;
2072
2313
  }
2314
+ /** Default parameters for iterating/querying ViewDefinitions. Includes all subclasses of ViewDefinition, excluding only those marked 'private'. */
2315
+ static defaultQueryParams = { from: "BisCore.ViewDefinition", where: "IsPrivate=FALSE" };
2073
2316
  /** Iterate all ViewDefinitions matching the supplied query.
2074
2317
  * @param params Specifies the query by which views are selected.
2075
2318
  * @param callback Function invoked for each ViewDefinition matching the query. Return false to terminate iteration, true to continue.
@@ -2141,17 +2384,6 @@ IModelDb._settingPropNamespace = "settings";
2141
2384
  }
2142
2385
  return props;
2143
2386
  }
2144
- /** @deprecated in 3.x. use [[getViewStateProps]]. */
2145
- getViewStateData(viewDefinitionId, options) {
2146
- const viewStateData = this.loadViewData(viewDefinitionId, options);
2147
- const baseModelId = viewStateData.viewDefinitionProps.baseModelId;
2148
- if (baseModelId) {
2149
- const drawingExtents = core_geometry_1.Range3d.fromJSON(this._iModel[Symbols_1._nativeDb].queryModelExtents({ id: baseModelId }).modelExtents);
2150
- if (!drawingExtents.isNull)
2151
- viewStateData.modelExtents = drawingExtents.toJSON();
2152
- }
2153
- return viewStateData;
2154
- }
2155
2387
  /** Obtain a [ViewStateProps]($common) for a [[ViewDefinition]] specified by ViewIdString. */
2156
2388
  async getViewStateProps(viewDefinitionId, options) {
2157
2389
  const viewStateData = this.loadViewData(viewDefinitionId, options);
@@ -2206,14 +2438,11 @@ IModelDb._settingPropNamespace = "settings";
2206
2438
  this._iModel.saveFileProperty(spec, undefined, blob8);
2207
2439
  }
2208
2440
  }
2209
- Views.viewStoreProperty = { namespace: "itwinjs", name: "DefaultViewStore" };
2210
- /** Default parameters for iterating/querying ViewDefinitions. Includes all subclasses of ViewDefinition, excluding only those marked 'private'. */
2211
- Views.defaultQueryParams = { from: "BisCore.ViewDefinition", where: "IsPrivate=FALSE" };
2212
2441
  IModelDb.Views = Views;
2213
2442
  /** Represents the current state of a pollable tile content request.
2214
- * Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
2215
- * @internal
2216
- */
2443
+ * Note: lack of a "completed" state because polling a completed request returns the content as a Uint8Array.
2444
+ * @internal
2445
+ */
2217
2446
  let TileContentState;
2218
2447
  (function (TileContentState) {
2219
2448
  TileContentState[TileContentState["New"] = 0] = "New";
@@ -2222,6 +2451,7 @@ IModelDb._settingPropNamespace = "settings";
2222
2451
  })(TileContentState = IModelDb.TileContentState || (IModelDb.TileContentState = {}));
2223
2452
  /** @internal */
2224
2453
  class Tiles {
2454
+ _iModel;
2225
2455
  /** @internal */
2226
2456
  constructor(_iModel) {
2227
2457
  this._iModel = _iModel;
@@ -2296,10 +2526,38 @@ IModelDb._settingPropNamespace = "settings";
2296
2526
  * @public
2297
2527
  */
2298
2528
  class BriefcaseDb extends IModelDb {
2529
+ /** Manages local changes to this briefcase. */
2530
+ txns = new TxnManager_1.TxnManager(this);
2299
2531
  /** override superclass method */
2300
2532
  get isBriefcase() { return true; }
2533
+ /* the BriefcaseId of the briefcase opened with this BriefcaseDb */
2534
+ briefcaseId;
2535
+ _skipSyncSchemasOnPullAndPush;
2301
2536
  /** @internal */
2302
2537
  get skipSyncSchemasOnPullAndPush() { return this._skipSyncSchemasOnPullAndPush ?? false; }
2538
+ /**
2539
+ * Event raised just before a BriefcaseDb is opened. Supplies the arguments that will be used to open the BriefcaseDb.
2540
+ * Throw an exception to stop the open.
2541
+ *
2542
+ * **Example:**
2543
+ * ``` ts
2544
+ * [[include:BriefcaseDb.onOpen]]
2545
+ * ```
2546
+ */
2547
+ static onOpen = new core_bentley_1.BeEvent();
2548
+ /**
2549
+ * Event raised just after a BriefcaseDb is opened. Supplies the newly opened BriefcaseDb and the arguments that were used to open it.
2550
+ *
2551
+ * **Example:**
2552
+ * ``` ts
2553
+ * [[include:BriefcaseDb.onOpened]]
2554
+ * ```
2555
+ */
2556
+ static onOpened = new core_bentley_1.BeEvent();
2557
+ /** Event raised after a BriefcaseDb has been closed. */
2558
+ onClosed = new core_bentley_1.BeEvent();
2559
+ /** @alpha */
2560
+ static onCodeServiceCreated = new core_bentley_1.BeEvent();
2303
2561
  static findByKey(key) {
2304
2562
  return super.findByKey(key);
2305
2563
  }
@@ -2329,10 +2587,6 @@ class BriefcaseDb extends IModelDb {
2329
2587
  }
2330
2588
  constructor(args) {
2331
2589
  super({ ...args, changeset: args.nativeDb.getCurrentChangeset() });
2332
- /** Manages local changes to this briefcase. */
2333
- this.txns = new TxnManager_1.TxnManager(this);
2334
- /** Event raised after a BriefcaseDb has been closed. */
2335
- this.onClosed = new core_bentley_1.BeEvent();
2336
2590
  this._openMode = args.openMode;
2337
2591
  this.briefcaseId = args.briefcaseId;
2338
2592
  this.makeLockControl();
@@ -2415,6 +2669,7 @@ class BriefcaseDb extends IModelDb {
2415
2669
  finally {
2416
2670
  await withBriefcaseDb(briefcase, async (db) => db.locks[Symbols_1._releaseAllLocks]());
2417
2671
  }
2672
+ return;
2418
2673
  }
2419
2674
  throw error;
2420
2675
  }
@@ -2427,7 +2682,7 @@ class BriefcaseDb extends IModelDb {
2427
2682
  const file = { path: args.fileName, key: args.key };
2428
2683
  const openMode = (args.readonly || args.watchForChanges) ? core_bentley_1.OpenMode.Readonly : core_bentley_1.OpenMode.ReadWrite;
2429
2684
  const nativeDb = this.openDgnDb(file, openMode, undefined, args);
2430
- const briefcaseDb = new BriefcaseDb({ nativeDb, key: file.key ?? core_bentley_1.Guid.createValue(), openMode, briefcaseId: nativeDb.getBriefcaseId() });
2685
+ const briefcaseDb = new this({ nativeDb, key: file.key ?? core_bentley_1.Guid.createValue(), openMode, briefcaseId: nativeDb.getBriefcaseId() });
2431
2686
  // If they asked to watch for changes, set an fs.watch on the "-watch" file (only it is modified while we hold this connection.)
2432
2687
  // Whenever there are changes, restart our defaultTxn. That loads the changes from the other connection and sends
2433
2688
  // notifications as if they happened on this connection. Note: the watcher is called only when the backend event loop cycles.
@@ -2436,6 +2691,7 @@ class BriefcaseDb extends IModelDb {
2436
2691
  touch.sync(briefcaseDb.watchFilePathName);
2437
2692
  // Restart default txn to trigger events when watch file is changed by some other process.
2438
2693
  const watcher = fs.watch(briefcaseDb.watchFilePathName, { persistent: false }, () => {
2694
+ nativeDb.clearECDbCache();
2439
2695
  nativeDb.restartDefaultTxn();
2440
2696
  briefcaseDb.changeset = briefcaseDb[Symbols_1._nativeDb].getCurrentChangeset();
2441
2697
  });
@@ -2659,7 +2915,7 @@ class BriefcaseDb extends IModelDb {
2659
2915
  await BriefcaseManager_1.BriefcaseManager.pullAndApplyChangesets(this, arg ?? {});
2660
2916
  if (!this.skipSyncSchemasOnPullAndPush)
2661
2917
  await SchemaSync_1.SchemaSync.pull(this);
2662
- this.initializeIModelDb();
2918
+ this.initializeIModelDb("pullMerge");
2663
2919
  });
2664
2920
  IpcHost_1.IpcHost.notifyTxns(this, "notifyPulledChanges", this.changeset);
2665
2921
  this.txns.touchWatchFile();
@@ -2741,46 +2997,32 @@ class BriefcaseDb extends IModelDb {
2741
2997
  // pushing changes requires a writeable briefcase
2742
2998
  await this.executeWritable(async () => {
2743
2999
  await BriefcaseManager_1.BriefcaseManager.pullMergePush(this, arg);
2744
- this.initializeIModelDb();
3000
+ this.initializeIModelDb("pullMerge");
2745
3001
  });
2746
3002
  const changeset = this.changeset;
2747
3003
  IpcHost_1.IpcHost.notifyTxns(this, "notifyPushedChanges", changeset);
2748
3004
  this.txns.touchWatchFile();
2749
3005
  }
2750
3006
  close() {
3007
+ if (this.isBriefcase && this.isOpen && !this.isReadonly && this.txns.changeMergeManager.inProgress()) {
3008
+ this.abandonChanges();
3009
+ }
2751
3010
  super.close();
2752
3011
  this.onClosed.raiseEvent();
2753
3012
  }
2754
3013
  }
2755
3014
  exports.BriefcaseDb = BriefcaseDb;
2756
- /**
2757
- * Event raised just before a BriefcaseDb is opened. Supplies the arguments that will be used to open the BriefcaseDb.
2758
- * Throw an exception to stop the open.
2759
- *
2760
- * **Example:**
2761
- * ``` ts
2762
- * [[include:BriefcaseDb.onOpen]]
2763
- * ```
2764
- */
2765
- BriefcaseDb.onOpen = new core_bentley_1.BeEvent();
2766
- /**
2767
- * Event raised just after a BriefcaseDb is opened. Supplies the newly opened BriefcaseDb and the arguments that were used to open it.
2768
- *
2769
- * **Example:**
2770
- * ``` ts
2771
- * [[include:BriefcaseDb.onOpened]]
2772
- * ```
2773
- */
2774
- BriefcaseDb.onOpened = new core_bentley_1.BeEvent();
2775
- /** @alpha */
2776
- BriefcaseDb.onCodeServiceCreated = new core_bentley_1.BeEvent();
2777
3015
  /** Used to reattach Daemon from a user's accessToken for V2 checkpoints.
2778
3016
  * @note Reattach only happens if the previous access token either has expired or is about to expire within an application-supplied safety duration.
2779
3017
  */
2780
3018
  class RefreshV2CheckpointSas {
3019
+ /** the time at which the current token should be refreshed (its expiry minus safetySeconds) */
3020
+ _timestamp = 0;
3021
+ /** while a refresh is happening, all callers get this promise. */
3022
+ _promise;
3023
+ /** Time, in seconds, before the current token expires to obtain a new token. Default is 1 hour. */
3024
+ _safetySeconds;
2781
3025
  constructor(sasToken, safetySeconds) {
2782
- /** the time at which the current token should be refreshed (its expiry minus safetySeconds) */
2783
- this._timestamp = 0;
2784
3026
  this._safetySeconds = safetySeconds ?? 60 * 60; // default to 1 hour
2785
3027
  this.setTimestamp(sasToken);
2786
3028
  }
@@ -2790,11 +3032,11 @@ class RefreshV2CheckpointSas {
2790
3032
  core_bentley_1.Logger.logInfo(BackendLoggerCategory_1.BackendLoggerCategory.Authorization, "attempting to refresh sasToken for checkpoint");
2791
3033
  try {
2792
3034
  // this exchanges the supplied user accessToken for an expiring blob-store token to read the checkpoint.
2793
- const container = iModel[Symbols_1._nativeDb].cloudContainer;
3035
+ const container = iModel.cloudContainer;
2794
3036
  if (!container)
2795
3037
  throw new Error("checkpoint is not from a cloud container");
2796
3038
  (0, core_bentley_1.assert)(undefined !== iModel.iTwinId);
2797
- const props = await IModelHost_1.IModelHost.hubAccess.queryV2Checkpoint({ accessToken, iTwinId: iModel.iTwinId, iModelId: iModel.iModelId, changeset: iModel.changeset });
3039
+ const props = await IModelHost_1.IModelHost[Symbols_1._hubAccess].queryV2Checkpoint({ accessToken, iTwinId: iModel.iTwinId, iModelId: iModel.iModelId, changeset: iModel.changeset });
2798
3040
  if (!props)
2799
3041
  throw new Error("can't reset checkpoint sas token");
2800
3042
  container.accessToken = props.sasToken;
@@ -2827,9 +3069,18 @@ class RefreshV2CheckpointSas {
2827
3069
  */
2828
3070
  class SnapshotDb extends IModelDb {
2829
3071
  get isSnapshot() { return true; }
3072
+ _refreshSas;
3073
+ /** Timer used to restart the default txn on the SnapshotDb after some inactivity. This is only used for checkpoints.
3074
+ * Restarting the default txn lets CloudSqlite know that any blocks that may have been read may now be ejected.
3075
+ * Without restarting the default txn, CloudSQLite can get into a state where it can not evict any blocks to make space for more blocks.
3076
+ */
3077
+ _restartDefaultTxnTimer;
3078
+ _createClassViewsOnClose;
3079
+ static onOpen = new core_bentley_1.BeEvent();
3080
+ static onOpened = new core_bentley_1.BeEvent();
2830
3081
  constructor(nativeDb, key) {
2831
- super({ nativeDb, key, changeset: nativeDb.getCurrentChangeset() }); // eslint-disable-line @typescript-eslint/no-deprecated
2832
- this._openMode = nativeDb.isReadonly() ? core_bentley_1.OpenMode.Readonly : core_bentley_1.OpenMode.ReadWrite; // eslint-disable-line @typescript-eslint/no-deprecated
3082
+ super({ nativeDb, key, changeset: nativeDb.getCurrentChangeset() });
3083
+ this._openMode = nativeDb.isReadonly() ? core_bentley_1.OpenMode.Readonly : core_bentley_1.OpenMode.ReadWrite;
2833
3084
  }
2834
3085
  static findByKey(key) {
2835
3086
  return super.findByKey(key);
@@ -2869,7 +3120,7 @@ class SnapshotDb extends IModelDb {
2869
3120
  iModelDb.performCheckpoint();
2870
3121
  IModelJsFs_1.IModelJsFs.copySync(iModelDb.pathName, snapshotFile);
2871
3122
  const nativeDb = new NativePlatform_1.IModelNative.platform.DgnDb();
2872
- nativeDb.openIModel(snapshotFile, core_bentley_1.OpenMode.ReadWrite, undefined, options);
3123
+ nativeDb.openIModel(snapshotFile, core_bentley_1.OpenMode.ReadWrite, undefined);
2873
3124
  nativeDb.vacuum();
2874
3125
  // Replace iModelId if seedFile is a snapshot, preserve iModelId if seedFile is an iModelHub-managed briefcase
2875
3126
  if (!BriefcaseManager_1.BriefcaseManager.isValidBriefcaseId(nativeDb.getBriefcaseId()))
@@ -2907,7 +3158,7 @@ class SnapshotDb extends IModelDb {
2907
3158
  file.key = `${nativeDb.getIModelId()}:${nativeDb.getCurrentChangeset().id}`;
2908
3159
  }
2909
3160
  (0, core_bentley_1.assert)(undefined !== file.key);
2910
- const db = new SnapshotDb(nativeDb, file.key);
3161
+ const db = new this(nativeDb, file.key);
2911
3162
  this.onOpened.raiseEvent(db);
2912
3163
  return db;
2913
3164
  }
@@ -2933,8 +3184,10 @@ class SnapshotDb extends IModelDb {
2933
3184
  snapshot._restartDefaultTxnTimer = setTimeout(() => {
2934
3185
  snapshot.restartDefaultTxn();
2935
3186
  }, (10 * 60) * 1000).unref(); // 10 minutes
2936
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
2937
- snapshot._refreshSas = new RefreshV2CheckpointSas(snapshot[Symbols_1._nativeDb].cloudContainer.accessToken, checkpoint.reattachSafetySeconds);
3187
+ const cloudContainer = snapshot.cloudContainer;
3188
+ if (cloudContainer !== undefined) {
3189
+ snapshot._refreshSas = new RefreshV2CheckpointSas(cloudContainer.accessToken, checkpoint.reattachSafetySeconds);
3190
+ }
2938
3191
  return snapshot;
2939
3192
  }
2940
3193
  /**
@@ -2968,8 +3221,6 @@ class SnapshotDb extends IModelDb {
2968
3221
  }
2969
3222
  }
2970
3223
  exports.SnapshotDb = SnapshotDb;
2971
- SnapshotDb.onOpen = new core_bentley_1.BeEvent();
2972
- SnapshotDb.onOpened = new core_bentley_1.BeEvent();
2973
3224
  /**
2974
3225
  * Standalone iModels are read/write files that are not associated with an iTwin or managed by iModelHub.
2975
3226
  * They are relevant only for testing, or for small-scale single-user scenarios.
@@ -3008,7 +3259,7 @@ class StandaloneDb extends BriefcaseDb {
3008
3259
  nativeDb.setITwinId(core_bentley_1.Guid.empty);
3009
3260
  nativeDb.resetBriefcaseId(core_common_1.BriefcaseIdValue.Unassigned);
3010
3261
  nativeDb.saveChanges();
3011
- const db = new StandaloneDb({ nativeDb, key: core_bentley_1.Guid.createValue(), briefcaseId: core_common_1.BriefcaseIdValue.Unassigned, openMode: core_bentley_1.OpenMode.ReadWrite });
3262
+ const db = new this({ nativeDb, key: core_bentley_1.Guid.createValue(), briefcaseId: core_common_1.BriefcaseIdValue.Unassigned, openMode: core_bentley_1.OpenMode.ReadWrite });
3012
3263
  db.channels.addAllowedChannel(ChannelControl_1.ChannelControl.sharedChannelName);
3013
3264
  return db;
3014
3265
  }
@@ -3054,7 +3305,7 @@ class StandaloneDb extends BriefcaseDb {
3054
3305
  if (iTwinId !== core_bentley_1.Guid.empty) // a "standalone" iModel means it is not associated with an iTwin
3055
3306
  throw new core_common_1.IModelError(core_bentley_1.IModelStatus.WrongIModel, `${filePath} is not a Standalone iModel. iTwinId=${iTwinId}`);
3056
3307
  (0, core_bentley_1.assert)(undefined !== file.key);
3057
- const db = new StandaloneDb({ nativeDb, key: file.key, openMode, briefcaseId: core_common_1.BriefcaseIdValue.Unassigned });
3308
+ const db = new this({ nativeDb, key: file.key, openMode, briefcaseId: core_common_1.BriefcaseIdValue.Unassigned });
3058
3309
  return db;
3059
3310
  }
3060
3311
  catch (error) {
@@ -3062,6 +3313,22 @@ class StandaloneDb extends BriefcaseDb {
3062
3313
  throw error;
3063
3314
  }
3064
3315
  }
3316
+ /** Convert an iModel stored on the local file system into a StandaloneDb, chiefly for testing purposes.
3317
+ * The file must not be open in any application.
3318
+ * @param iModelFileName the path to the iModel on the local file system.
3319
+ * @beta
3320
+ */
3321
+ static convertToStandalone(iModelFileName) {
3322
+ const nativeDb = new NativePlatform_1.IModelNative.platform.DgnDb();
3323
+ nativeDb.openIModel(iModelFileName, core_bentley_1.OpenMode.ReadWrite);
3324
+ nativeDb.setITwinId(core_bentley_1.Guid.empty); // empty iTwinId means "standalone"
3325
+ nativeDb.saveChanges(); // save change to iTwinId
3326
+ nativeDb.deleteAllTxns(); // necessary before resetting briefcaseId
3327
+ nativeDb.resetBriefcaseId(core_common_1.BriefcaseIdValue.Unassigned); // standalone iModels should always have BriefcaseId unassigned
3328
+ nativeDb.saveLocalValue("StandaloneEdit", JSON.stringify({ txns: true }));
3329
+ nativeDb.saveChanges(); // save change to briefcaseId
3330
+ nativeDb.closeFile();
3331
+ }
3065
3332
  }
3066
3333
  exports.StandaloneDb = StandaloneDb;
3067
3334
  //# sourceMappingURL=IModelDb.js.map