@itwin/core-backend 5.1.0-dev.9 → 5.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (671) hide show
  1. package/CHANGELOG.md +160 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +1 -1
  3. package/lib/cjs/BackendHubAccess.js +1 -1
  4. package/lib/cjs/BackendHubAccess.js.map +1 -1
  5. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  6. package/lib/cjs/BisCoreSchema.d.ts.map +1 -1
  7. package/lib/cjs/BisCoreSchema.js +4 -2
  8. package/lib/cjs/BisCoreSchema.js.map +1 -1
  9. package/lib/cjs/BlobContainerService.js.map +1 -1
  10. package/lib/cjs/BriefcaseManager.d.ts +10 -2
  11. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  12. package/lib/cjs/BriefcaseManager.js +16 -0
  13. package/lib/cjs/BriefcaseManager.js.map +1 -1
  14. package/lib/cjs/CatalogDb.js.map +1 -1
  15. package/lib/cjs/Category.d.ts +4 -4
  16. package/lib/cjs/Category.js +4 -4
  17. package/lib/cjs/Category.js.map +1 -1
  18. package/lib/cjs/ChangeSummaryManager.js +2 -2
  19. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  20. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  21. package/lib/cjs/ChangesetECAdaptor.d.ts +67 -8
  22. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  23. package/lib/cjs/ChangesetECAdaptor.js +490 -275
  24. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  25. package/lib/cjs/ChannelControl.js.map +1 -1
  26. package/lib/cjs/CheckpointManager.js.map +1 -1
  27. package/lib/cjs/ClassRegistry.d.ts +9 -1
  28. package/lib/cjs/ClassRegistry.d.ts.map +1 -1
  29. package/lib/cjs/ClassRegistry.js +14 -6
  30. package/lib/cjs/ClassRegistry.js.map +1 -1
  31. package/lib/cjs/CloudSqlite.js +1 -1
  32. package/lib/cjs/CloudSqlite.js.map +1 -1
  33. package/lib/cjs/CodeService.js.map +1 -1
  34. package/lib/cjs/CodeSpecs.d.ts +1 -1
  35. package/lib/cjs/CodeSpecs.js +1 -1
  36. package/lib/cjs/CodeSpecs.js.map +1 -1
  37. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  38. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  39. package/lib/cjs/DevTools.js.map +1 -1
  40. package/lib/cjs/DisplayStyle.d.ts +4 -4
  41. package/lib/cjs/DisplayStyle.js +3 -3
  42. package/lib/cjs/DisplayStyle.js.map +1 -1
  43. package/lib/cjs/ECDb.d.ts +4 -4
  44. package/lib/cjs/ECDb.d.ts.map +1 -1
  45. package/lib/cjs/ECDb.js +4 -4
  46. package/lib/cjs/ECDb.js.map +1 -1
  47. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  48. package/lib/cjs/ECSqlStatement.d.ts +15 -6
  49. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  50. package/lib/cjs/ECSqlStatement.js +19 -4
  51. package/lib/cjs/ECSqlStatement.js.map +1 -1
  52. package/lib/cjs/Element.d.ts +54 -51
  53. package/lib/cjs/Element.d.ts.map +1 -1
  54. package/lib/cjs/Element.js +67 -52
  55. package/lib/cjs/Element.js.map +1 -1
  56. package/lib/cjs/ElementAspect.d.ts +8 -8
  57. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  58. package/lib/cjs/ElementAspect.js +8 -8
  59. package/lib/cjs/ElementAspect.js.map +1 -1
  60. package/lib/cjs/ElementGraphics.js.map +1 -1
  61. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  62. package/lib/cjs/Entity.d.ts +10 -7
  63. package/lib/cjs/Entity.d.ts.map +1 -1
  64. package/lib/cjs/Entity.js +35 -13
  65. package/lib/cjs/Entity.js.map +1 -1
  66. package/lib/cjs/EntityReferences.js.map +1 -1
  67. package/lib/cjs/ExportGraphics.d.ts +54 -8
  68. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  69. package/lib/cjs/ExportGraphics.js +158 -59
  70. package/lib/cjs/ExportGraphics.js.map +1 -1
  71. package/lib/cjs/ExternalSource.js.map +1 -1
  72. package/lib/cjs/FontFile.js.map +1 -1
  73. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  74. package/lib/cjs/GeographicCRSServices.d.ts +6 -2
  75. package/lib/cjs/GeographicCRSServices.d.ts.map +1 -1
  76. package/lib/cjs/GeographicCRSServices.js +1 -1
  77. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  78. package/lib/cjs/GeometrySummary.js +47 -47
  79. package/lib/cjs/GeometrySummary.js.map +1 -1
  80. package/lib/cjs/IModelDb.d.ts +37 -26
  81. package/lib/cjs/IModelDb.d.ts.map +1 -1
  82. package/lib/cjs/IModelDb.js +132 -55
  83. package/lib/cjs/IModelDb.js.map +1 -1
  84. package/lib/cjs/IModelDbFonts.js.map +1 -1
  85. package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
  86. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  87. package/lib/cjs/IModelElementCloneContext.js +1 -1
  88. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  89. package/lib/cjs/IModelHost.d.ts +2 -3
  90. package/lib/cjs/IModelHost.d.ts.map +1 -1
  91. package/lib/cjs/IModelHost.js +2 -3
  92. package/lib/cjs/IModelHost.js.map +1 -1
  93. package/lib/cjs/IModelIncrementalSchemaLocater.d.ts +36 -0
  94. package/lib/cjs/IModelIncrementalSchemaLocater.d.ts.map +1 -0
  95. package/lib/cjs/IModelIncrementalSchemaLocater.js +69 -0
  96. package/lib/cjs/IModelIncrementalSchemaLocater.js.map +1 -0
  97. package/lib/cjs/IModelJsFs.js.map +1 -1
  98. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  99. package/lib/cjs/IpcHost.js.map +1 -1
  100. package/lib/cjs/LineStyle.js.map +1 -1
  101. package/lib/cjs/LocalHub.d.ts.map +1 -1
  102. package/lib/cjs/LocalHub.js +6 -4
  103. package/lib/cjs/LocalHub.js.map +1 -1
  104. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  105. package/lib/cjs/LockControl.js.map +1 -1
  106. package/lib/cjs/Material.d.ts +4 -3
  107. package/lib/cjs/Material.d.ts.map +1 -1
  108. package/lib/cjs/Material.js +5 -5
  109. package/lib/cjs/Material.js.map +1 -1
  110. package/lib/cjs/Model.d.ts +22 -22
  111. package/lib/cjs/Model.js +22 -22
  112. package/lib/cjs/Model.js.map +1 -1
  113. package/lib/cjs/NativeAppStorage.js.map +1 -1
  114. package/lib/cjs/NativeHost.js.map +1 -1
  115. package/lib/cjs/NavigationRelationship.js.map +1 -1
  116. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  117. package/lib/cjs/PropertyStore.js.map +1 -1
  118. package/lib/cjs/Relationship.d.ts +3 -0
  119. package/lib/cjs/Relationship.d.ts.map +1 -1
  120. package/lib/cjs/Relationship.js +15 -0
  121. package/lib/cjs/Relationship.js.map +1 -1
  122. package/lib/cjs/RpcBackend.js.map +1 -1
  123. package/lib/cjs/SQLiteDb.d.ts +1 -1
  124. package/lib/cjs/SQLiteDb.js +1 -1
  125. package/lib/cjs/SQLiteDb.js.map +1 -1
  126. package/lib/cjs/Schema.d.ts +25 -0
  127. package/lib/cjs/Schema.d.ts.map +1 -1
  128. package/lib/cjs/Schema.js +25 -0
  129. package/lib/cjs/Schema.js.map +1 -1
  130. package/lib/cjs/SchemaSync.js.map +1 -1
  131. package/lib/cjs/SchemaUtils.js.map +1 -1
  132. package/lib/cjs/SheetIndex.js.map +1 -1
  133. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  134. package/lib/cjs/SqliteStatement.d.ts +1 -1
  135. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  136. package/lib/cjs/SqliteStatement.js +1 -1
  137. package/lib/cjs/SqliteStatement.js.map +1 -1
  138. package/lib/cjs/Texture.d.ts +1 -1
  139. package/lib/cjs/Texture.js +1 -1
  140. package/lib/cjs/Texture.js.map +1 -1
  141. package/lib/cjs/TileStorage.js.map +1 -1
  142. package/lib/cjs/TxnManager.d.ts +4 -4
  143. package/lib/cjs/TxnManager.js +1 -1
  144. package/lib/cjs/TxnManager.js.map +1 -1
  145. package/lib/cjs/ViewDefinition.d.ts +40 -14
  146. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  147. package/lib/cjs/ViewDefinition.js +42 -14
  148. package/lib/cjs/ViewDefinition.js.map +1 -1
  149. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  150. package/lib/cjs/ViewStore.js.map +1 -1
  151. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
  152. package/lib/cjs/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
  153. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js +110 -0
  154. package/lib/cjs/annotations/ElementDrivesTextAnnotation.js.map +1 -0
  155. package/lib/cjs/annotations/FrameGeometry.d.ts +51 -0
  156. package/lib/cjs/annotations/FrameGeometry.d.ts.map +1 -0
  157. package/lib/cjs/annotations/FrameGeometry.js +249 -0
  158. package/lib/cjs/annotations/FrameGeometry.js.map +1 -0
  159. package/lib/cjs/annotations/LeaderGeometry.d.ts +53 -0
  160. package/lib/cjs/annotations/LeaderGeometry.d.ts.map +1 -0
  161. package/lib/cjs/annotations/LeaderGeometry.js +184 -0
  162. package/lib/cjs/annotations/LeaderGeometry.js.map +1 -0
  163. package/lib/cjs/annotations/TextAnnotationElement.d.ts +204 -0
  164. package/lib/cjs/annotations/TextAnnotationElement.d.ts.map +1 -0
  165. package/lib/cjs/annotations/TextAnnotationElement.js +411 -0
  166. package/lib/cjs/annotations/TextAnnotationElement.js.map +1 -0
  167. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts +33 -0
  168. package/lib/cjs/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  169. package/lib/cjs/annotations/TextAnnotationGeometry.js +137 -0
  170. package/lib/cjs/annotations/TextAnnotationGeometry.js.map +1 -0
  171. package/lib/cjs/annotations/TextBlockGeometry.d.ts +16 -0
  172. package/lib/cjs/annotations/TextBlockGeometry.d.ts.map +1 -0
  173. package/lib/cjs/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
  174. package/lib/cjs/annotations/TextBlockGeometry.js.map +1 -0
  175. package/lib/cjs/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
  176. package/lib/cjs/annotations/TextBlockLayout.d.ts.map +1 -0
  177. package/lib/cjs/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +174 -49
  178. package/lib/cjs/annotations/TextBlockLayout.js.map +1 -0
  179. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  180. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  181. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  182. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  183. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  184. package/lib/cjs/core-backend.d.ts +7 -3
  185. package/lib/cjs/core-backend.d.ts.map +1 -1
  186. package/lib/cjs/core-backend.js +27 -6
  187. package/lib/cjs/core-backend.js.map +1 -1
  188. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  189. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  190. package/lib/cjs/domains/GenericElements.js.map +1 -1
  191. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  192. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  193. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  194. package/lib/cjs/internal/ElementLRUCache.d.ts +23 -0
  195. package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -1
  196. package/lib/cjs/internal/ElementLRUCache.js +167 -3
  197. package/lib/cjs/internal/ElementLRUCache.js.map +1 -1
  198. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  199. package/lib/cjs/internal/HubMock.js.map +1 -1
  200. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  201. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  202. package/lib/cjs/internal/NoLocks.js.map +1 -1
  203. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  204. package/lib/cjs/internal/Symbols.d.ts +1 -0
  205. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  206. package/lib/cjs/internal/Symbols.js +2 -1
  207. package/lib/cjs/internal/Symbols.js.map +1 -1
  208. package/lib/cjs/internal/annotations/fields.d.ts +22 -0
  209. package/lib/cjs/internal/annotations/fields.d.ts.map +1 -0
  210. package/lib/cjs/internal/annotations/fields.js +237 -0
  211. package/lib/cjs/internal/annotations/fields.js.map +1 -0
  212. package/lib/cjs/internal/cross-package.js.map +1 -1
  213. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  214. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  215. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  216. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  217. package/lib/cjs/rpc/multipart.js.map +1 -1
  218. package/lib/cjs/rpc/tracing.js.map +1 -1
  219. package/lib/cjs/rpc/web/logging.js.map +1 -1
  220. package/lib/cjs/rpc/web/request.js.map +1 -1
  221. package/lib/cjs/rpc/web/response.js.map +1 -1
  222. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  223. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  224. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +1 -1
  225. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  226. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  227. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  228. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  229. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  230. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  231. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  232. package/lib/cjs/workspace/Settings.js.map +1 -1
  233. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  234. package/lib/cjs/workspace/Workspace.d.ts +0 -1
  235. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  236. package/lib/cjs/workspace/Workspace.js.map +1 -1
  237. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  238. package/lib/esm/BackendHubAccess.d.ts +1 -1
  239. package/lib/esm/BackendHubAccess.js +1 -1
  240. package/lib/esm/BackendHubAccess.js.map +1 -1
  241. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  242. package/lib/esm/BisCoreSchema.d.ts.map +1 -1
  243. package/lib/esm/BisCoreSchema.js +4 -2
  244. package/lib/esm/BisCoreSchema.js.map +1 -1
  245. package/lib/esm/BlobContainerService.js.map +1 -1
  246. package/lib/esm/BriefcaseManager.d.ts +10 -2
  247. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  248. package/lib/esm/BriefcaseManager.js +17 -1
  249. package/lib/esm/BriefcaseManager.js.map +1 -1
  250. package/lib/esm/CatalogDb.js.map +1 -1
  251. package/lib/esm/Category.d.ts +4 -4
  252. package/lib/esm/Category.js +4 -4
  253. package/lib/esm/Category.js.map +1 -1
  254. package/lib/esm/ChangeSummaryManager.js +2 -2
  255. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  256. package/lib/esm/ChangedElementsDb.js.map +1 -1
  257. package/lib/esm/ChangesetECAdaptor.d.ts +67 -8
  258. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  259. package/lib/esm/ChangesetECAdaptor.js +490 -275
  260. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  261. package/lib/esm/ChannelControl.js.map +1 -1
  262. package/lib/esm/CheckpointManager.js.map +1 -1
  263. package/lib/esm/ClassRegistry.d.ts +9 -1
  264. package/lib/esm/ClassRegistry.d.ts.map +1 -1
  265. package/lib/esm/ClassRegistry.js +14 -6
  266. package/lib/esm/ClassRegistry.js.map +1 -1
  267. package/lib/esm/CloudSqlite.js +1 -1
  268. package/lib/esm/CloudSqlite.js.map +1 -1
  269. package/lib/esm/CodeService.js.map +1 -1
  270. package/lib/esm/CodeSpecs.d.ts +1 -1
  271. package/lib/esm/CodeSpecs.js +1 -1
  272. package/lib/esm/CodeSpecs.js.map +1 -1
  273. package/lib/esm/ConcurrentQuery.js.map +1 -1
  274. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  275. package/lib/esm/DevTools.js.map +1 -1
  276. package/lib/esm/DisplayStyle.d.ts +4 -4
  277. package/lib/esm/DisplayStyle.js +3 -3
  278. package/lib/esm/DisplayStyle.js.map +1 -1
  279. package/lib/esm/ECDb.d.ts +4 -4
  280. package/lib/esm/ECDb.d.ts.map +1 -1
  281. package/lib/esm/ECDb.js +4 -4
  282. package/lib/esm/ECDb.js.map +1 -1
  283. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  284. package/lib/esm/ECSqlStatement.d.ts +15 -6
  285. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  286. package/lib/esm/ECSqlStatement.js +19 -4
  287. package/lib/esm/ECSqlStatement.js.map +1 -1
  288. package/lib/esm/Element.d.ts +54 -51
  289. package/lib/esm/Element.d.ts.map +1 -1
  290. package/lib/esm/Element.js +67 -52
  291. package/lib/esm/Element.js.map +1 -1
  292. package/lib/esm/ElementAspect.d.ts +8 -8
  293. package/lib/esm/ElementAspect.d.ts.map +1 -1
  294. package/lib/esm/ElementAspect.js +8 -8
  295. package/lib/esm/ElementAspect.js.map +1 -1
  296. package/lib/esm/ElementGraphics.js.map +1 -1
  297. package/lib/esm/ElementTreeWalker.js.map +1 -1
  298. package/lib/esm/Entity.d.ts +10 -7
  299. package/lib/esm/Entity.d.ts.map +1 -1
  300. package/lib/esm/Entity.js +36 -14
  301. package/lib/esm/Entity.js.map +1 -1
  302. package/lib/esm/EntityReferences.js.map +1 -1
  303. package/lib/esm/ExportGraphics.d.ts +54 -8
  304. package/lib/esm/ExportGraphics.d.ts.map +1 -1
  305. package/lib/esm/ExportGraphics.js +156 -58
  306. package/lib/esm/ExportGraphics.js.map +1 -1
  307. package/lib/esm/ExternalSource.js.map +1 -1
  308. package/lib/esm/FontFile.js.map +1 -1
  309. package/lib/esm/GeoCoordConfig.js.map +1 -1
  310. package/lib/esm/GeographicCRSServices.d.ts +6 -2
  311. package/lib/esm/GeographicCRSServices.d.ts.map +1 -1
  312. package/lib/esm/GeographicCRSServices.js +1 -1
  313. package/lib/esm/GeographicCRSServices.js.map +1 -1
  314. package/lib/esm/GeometrySummary.js +47 -47
  315. package/lib/esm/GeometrySummary.js.map +1 -1
  316. package/lib/esm/IModelDb.d.ts +37 -26
  317. package/lib/esm/IModelDb.d.ts.map +1 -1
  318. package/lib/esm/IModelDb.js +136 -59
  319. package/lib/esm/IModelDb.js.map +1 -1
  320. package/lib/esm/IModelDbFonts.js.map +1 -1
  321. package/lib/esm/IModelElementCloneContext.d.ts +1 -1
  322. package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
  323. package/lib/esm/IModelElementCloneContext.js +1 -1
  324. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  325. package/lib/esm/IModelHost.d.ts +2 -3
  326. package/lib/esm/IModelHost.d.ts.map +1 -1
  327. package/lib/esm/IModelHost.js +2 -3
  328. package/lib/esm/IModelHost.js.map +1 -1
  329. package/lib/esm/IModelIncrementalSchemaLocater.d.ts +36 -0
  330. package/lib/esm/IModelIncrementalSchemaLocater.d.ts.map +1 -0
  331. package/lib/esm/IModelIncrementalSchemaLocater.js +65 -0
  332. package/lib/esm/IModelIncrementalSchemaLocater.js.map +1 -0
  333. package/lib/esm/IModelJsFs.js.map +1 -1
  334. package/lib/esm/ImageSourceConversion.js.map +1 -1
  335. package/lib/esm/IpcHost.js.map +1 -1
  336. package/lib/esm/LineStyle.js.map +1 -1
  337. package/lib/esm/LocalHub.d.ts.map +1 -1
  338. package/lib/esm/LocalHub.js +6 -4
  339. package/lib/esm/LocalHub.js.map +1 -1
  340. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  341. package/lib/esm/LockControl.js.map +1 -1
  342. package/lib/esm/Material.d.ts +4 -3
  343. package/lib/esm/Material.d.ts.map +1 -1
  344. package/lib/esm/Material.js +5 -5
  345. package/lib/esm/Material.js.map +1 -1
  346. package/lib/esm/Model.d.ts +22 -22
  347. package/lib/esm/Model.js +22 -22
  348. package/lib/esm/Model.js.map +1 -1
  349. package/lib/esm/NativeAppStorage.js.map +1 -1
  350. package/lib/esm/NativeHost.js.map +1 -1
  351. package/lib/esm/NavigationRelationship.js.map +1 -1
  352. package/lib/esm/PromiseMemoizer.js.map +1 -1
  353. package/lib/esm/PropertyStore.js.map +1 -1
  354. package/lib/esm/Relationship.d.ts +3 -0
  355. package/lib/esm/Relationship.d.ts.map +1 -1
  356. package/lib/esm/Relationship.js +15 -0
  357. package/lib/esm/Relationship.js.map +1 -1
  358. package/lib/esm/RpcBackend.js.map +1 -1
  359. package/lib/esm/SQLiteDb.d.ts +1 -1
  360. package/lib/esm/SQLiteDb.js +1 -1
  361. package/lib/esm/SQLiteDb.js.map +1 -1
  362. package/lib/esm/Schema.d.ts +25 -0
  363. package/lib/esm/Schema.d.ts.map +1 -1
  364. package/lib/esm/Schema.js +25 -0
  365. package/lib/esm/Schema.js.map +1 -1
  366. package/lib/esm/SchemaSync.js.map +1 -1
  367. package/lib/esm/SchemaUtils.js.map +1 -1
  368. package/lib/esm/SheetIndex.js.map +1 -1
  369. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  370. package/lib/esm/SqliteStatement.d.ts +1 -1
  371. package/lib/esm/SqliteStatement.d.ts.map +1 -1
  372. package/lib/esm/SqliteStatement.js +1 -1
  373. package/lib/esm/SqliteStatement.js.map +1 -1
  374. package/lib/esm/Texture.d.ts +1 -1
  375. package/lib/esm/Texture.js +1 -1
  376. package/lib/esm/Texture.js.map +1 -1
  377. package/lib/esm/TileStorage.js.map +1 -1
  378. package/lib/esm/TxnManager.d.ts +4 -4
  379. package/lib/esm/TxnManager.js +1 -1
  380. package/lib/esm/TxnManager.js.map +1 -1
  381. package/lib/esm/ViewDefinition.d.ts +40 -14
  382. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  383. package/lib/esm/ViewDefinition.js +42 -14
  384. package/lib/esm/ViewDefinition.js.map +1 -1
  385. package/lib/esm/ViewStateHydrator.js.map +1 -1
  386. package/lib/esm/ViewStore.js.map +1 -1
  387. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts +61 -0
  388. package/lib/esm/annotations/ElementDrivesTextAnnotation.d.ts.map +1 -0
  389. package/lib/esm/annotations/ElementDrivesTextAnnotation.js +105 -0
  390. package/lib/esm/annotations/ElementDrivesTextAnnotation.js.map +1 -0
  391. package/lib/esm/annotations/FrameGeometry.d.ts +51 -0
  392. package/lib/esm/annotations/FrameGeometry.d.ts.map +1 -0
  393. package/lib/esm/annotations/FrameGeometry.js +244 -0
  394. package/lib/esm/annotations/FrameGeometry.js.map +1 -0
  395. package/lib/esm/annotations/LeaderGeometry.d.ts +53 -0
  396. package/lib/esm/annotations/LeaderGeometry.d.ts.map +1 -0
  397. package/lib/esm/annotations/LeaderGeometry.js +179 -0
  398. package/lib/esm/annotations/LeaderGeometry.js.map +1 -0
  399. package/lib/esm/annotations/TextAnnotationElement.d.ts +204 -0
  400. package/lib/esm/annotations/TextAnnotationElement.d.ts.map +1 -0
  401. package/lib/esm/annotations/TextAnnotationElement.js +405 -0
  402. package/lib/esm/annotations/TextAnnotationElement.js.map +1 -0
  403. package/lib/esm/annotations/TextAnnotationGeometry.d.ts +33 -0
  404. package/lib/esm/annotations/TextAnnotationGeometry.d.ts.map +1 -0
  405. package/lib/esm/annotations/TextAnnotationGeometry.js +134 -0
  406. package/lib/esm/annotations/TextAnnotationGeometry.js.map +1 -0
  407. package/lib/esm/annotations/TextBlockGeometry.d.ts +16 -0
  408. package/lib/esm/annotations/TextBlockGeometry.d.ts.map +1 -0
  409. package/lib/esm/{TextAnnotationGeometry.js → annotations/TextBlockGeometry.js} +28 -70
  410. package/lib/esm/annotations/TextBlockGeometry.js.map +1 -0
  411. package/lib/esm/{TextAnnotationLayout.d.ts → annotations/TextBlockLayout.d.ts} +69 -22
  412. package/lib/esm/annotations/TextBlockLayout.d.ts.map +1 -0
  413. package/lib/esm/{TextAnnotationLayout.js → annotations/TextBlockLayout.js} +172 -48
  414. package/lib/esm/annotations/TextBlockLayout.js.map +1 -0
  415. package/lib/esm/core-backend.d.ts +7 -3
  416. package/lib/esm/core-backend.d.ts.map +1 -1
  417. package/lib/esm/core-backend.js +27 -3
  418. package/lib/esm/core-backend.js.map +1 -1
  419. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  420. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  421. package/lib/esm/domains/GenericElements.js.map +1 -1
  422. package/lib/esm/domains/GenericSchema.js.map +1 -1
  423. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  424. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  425. package/lib/esm/internal/ElementLRUCache.d.ts +23 -0
  426. package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -1
  427. package/lib/esm/internal/ElementLRUCache.js +165 -2
  428. package/lib/esm/internal/ElementLRUCache.js.map +1 -1
  429. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  430. package/lib/esm/internal/HubMock.js.map +1 -1
  431. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  432. package/lib/esm/internal/NativePlatform.js.map +1 -1
  433. package/lib/esm/internal/NoLocks.js.map +1 -1
  434. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  435. package/lib/esm/internal/Symbols.d.ts +1 -0
  436. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  437. package/lib/esm/internal/Symbols.js +1 -0
  438. package/lib/esm/internal/Symbols.js.map +1 -1
  439. package/lib/esm/internal/annotations/fields.d.ts +22 -0
  440. package/lib/esm/internal/annotations/fields.d.ts.map +1 -0
  441. package/lib/esm/internal/annotations/fields.js +231 -0
  442. package/lib/esm/internal/annotations/fields.js.map +1 -0
  443. package/lib/esm/internal/cross-package.js.map +1 -1
  444. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  445. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  446. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  447. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  448. package/lib/esm/rpc/multipart.js.map +1 -1
  449. package/lib/esm/rpc/tracing.js.map +1 -1
  450. package/lib/esm/rpc/web/logging.js.map +1 -1
  451. package/lib/esm/rpc/web/request.js.map +1 -1
  452. package/lib/esm/rpc/web/response.js.map +1 -1
  453. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  454. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  455. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +1 -1
  456. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  457. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  458. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  459. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  460. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  461. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  462. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  463. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  464. package/lib/esm/test/AnnotationTestUtils.d.ts +15 -0
  465. package/lib/esm/test/AnnotationTestUtils.d.ts.map +1 -0
  466. package/lib/esm/test/AnnotationTestUtils.js +41 -0
  467. package/lib/esm/test/AnnotationTestUtils.js.map +1 -0
  468. package/lib/esm/test/AttachDb.test.js +11 -11
  469. package/lib/esm/test/AttachDb.test.js.map +1 -1
  470. package/lib/esm/test/ElementLRUCache.test.js +224 -1
  471. package/lib/esm/test/ElementLRUCache.test.js.map +1 -1
  472. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  473. package/lib/esm/test/IModelHost.test.js.map +1 -1
  474. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  475. package/lib/esm/test/IModelTestUtils.js +1 -0
  476. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  477. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  478. package/lib/esm/test/IpcHost.test.js.map +1 -1
  479. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  480. package/lib/esm/test/PrintElementTree.js.map +1 -1
  481. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  482. package/lib/esm/test/RevisionUtility.js.map +1 -1
  483. package/lib/esm/test/SchemaUtils.test.js +25 -25
  484. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  485. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  486. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  487. package/lib/esm/test/TestUtils.d.ts +1 -1
  488. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  489. package/lib/esm/test/TestUtils.js +1 -1
  490. package/lib/esm/test/TestUtils.js.map +1 -1
  491. package/lib/esm/test/annotations/Fields.test.d.ts +2 -0
  492. package/lib/esm/test/annotations/Fields.test.d.ts.map +1 -0
  493. package/lib/esm/test/annotations/Fields.test.js +576 -0
  494. package/lib/esm/test/annotations/Fields.test.js.map +1 -0
  495. package/lib/esm/test/annotations/FrameGeometry.test.d.ts +2 -0
  496. package/lib/esm/test/annotations/FrameGeometry.test.d.ts.map +1 -0
  497. package/lib/esm/test/annotations/FrameGeometry.test.js +86 -0
  498. package/lib/esm/test/annotations/FrameGeometry.test.js.map +1 -0
  499. package/lib/esm/test/annotations/LeaderGeometry.test.d.ts +2 -0
  500. package/lib/esm/test/annotations/LeaderGeometry.test.d.ts.map +1 -0
  501. package/lib/esm/test/annotations/LeaderGeometry.test.js +256 -0
  502. package/lib/esm/test/annotations/LeaderGeometry.test.js.map +1 -0
  503. package/lib/esm/test/annotations/TextAnnotation.test.js +269 -1047
  504. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  505. package/lib/esm/test/annotations/TextBlock.test.d.ts +2 -0
  506. package/lib/esm/test/annotations/TextBlock.test.d.ts.map +1 -0
  507. package/lib/esm/test/annotations/TextBlock.test.js +1199 -0
  508. package/lib/esm/test/annotations/TextBlock.test.js.map +1 -0
  509. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts +60 -0
  510. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.d.ts.map +1 -0
  511. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js +69 -0
  512. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/old.config.js.map +1 -0
  513. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts +1442 -0
  514. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.d.ts.map +1 -0
  515. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js +817 -0
  516. package/lib/esm/test/assets/IncrementalSchemaLocater/configs/simple.config.js.map +1 -0
  517. package/lib/esm/test/categories/Category.test.js.map +1 -1
  518. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  519. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  520. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  521. package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts +2 -0
  522. package/lib/esm/test/ecdb/ConcurrentQuery.test.d.ts.map +1 -0
  523. package/lib/esm/test/ecdb/ConcurrentQuery.test.js +164 -0
  524. package/lib/esm/test/ecdb/ConcurrentQuery.test.js.map +1 -0
  525. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +35 -45
  526. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  527. package/lib/esm/test/ecdb/ECDb.test.js +86 -65
  528. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  529. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  530. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  531. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  532. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  533. package/lib/esm/test/ecdb/ECSqlQuery.test.js +0 -55
  534. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  535. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  536. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  537. package/lib/esm/test/ecdb/ECSqlStatement.test.js +484 -292
  538. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  539. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  540. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  541. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  542. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  543. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  544. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  545. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  546. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  547. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  548. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  549. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  550. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  551. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  552. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  553. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  554. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  555. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  556. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  557. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  558. package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts +2 -0
  559. package/lib/esm/test/hubaccess/ApplyChangeset.test.d.ts.map +1 -0
  560. package/lib/esm/test/hubaccess/ApplyChangeset.test.js +86 -0
  561. package/lib/esm/test/hubaccess/ApplyChangeset.test.js.map +1 -0
  562. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  563. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  564. package/lib/esm/test/imageData.js.map +1 -1
  565. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  566. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  567. package/lib/esm/test/imodel/IModel.test.js +313 -5
  568. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  569. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  570. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  571. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts +2 -0
  572. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.d.ts.map +1 -0
  573. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js +343 -0
  574. package/lib/esm/test/incrementalSchemaLocater/ECSqlQueries.test.js.map +1 -0
  575. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts +2 -0
  576. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.d.ts.map +1 -0
  577. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js +207 -0
  578. package/lib/esm/test/incrementalSchemaLocater/IncrementalLoading.test.js.map +1 -0
  579. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts +11 -0
  580. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.d.ts.map +1 -0
  581. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js +36 -0
  582. package/lib/esm/test/incrementalSchemaLocater/utils/IModelSchemaLocater.js.map +1 -0
  583. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts +17 -0
  584. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.d.ts.map +1 -0
  585. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js +116 -0
  586. package/lib/esm/test/incrementalSchemaLocater/utils/IncrementalTestHelper.js.map +1 -0
  587. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts +9 -0
  588. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.d.ts.map +1 -0
  589. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js +20 -0
  590. package/lib/esm/test/incrementalSchemaLocater/utils/TestSqlSchemaLocater.js.map +1 -0
  591. package/lib/esm/test/index.js.map +1 -1
  592. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  593. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  594. package/lib/esm/test/misc/GeoServices.test.js +36 -10
  595. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  596. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  597. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  598. package/lib/esm/test/rpc/response.test.js.map +1 -1
  599. package/lib/esm/test/schema/ClassRegistry.test.js +175 -73
  600. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  601. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  602. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  603. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  604. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  605. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  606. package/lib/esm/test/standalone/ChangesetReader.test.js +575 -164
  607. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  608. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  609. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  610. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  611. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  612. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  613. package/lib/esm/test/standalone/ExportGraphics.test.js +67 -15
  614. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  615. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  616. package/lib/esm/test/standalone/GeometryStream.test.js +49 -1
  617. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  618. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  619. package/lib/esm/test/standalone/IModelLimits.test.d.ts +2 -0
  620. package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
  621. package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
  622. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
  623. package/lib/esm/test/standalone/IModelWrite.test.js +27 -27
  624. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  625. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  626. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  627. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  628. package/lib/esm/test/standalone/RenderMaterialElement.test.js +24 -1
  629. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  630. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  631. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  632. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  633. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  634. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  635. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  636. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  637. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  638. package/lib/esm/test/standalone/SnapshotDb.test.js +19 -1
  639. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  640. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  641. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  642. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  643. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  644. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  645. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  646. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  647. package/lib/esm/workspace/Settings.js.map +1 -1
  648. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  649. package/lib/esm/workspace/Workspace.d.ts +0 -1
  650. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  651. package/lib/esm/workspace/Workspace.js.map +1 -1
  652. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  653. package/package.json +22 -16
  654. package/lib/cjs/TextAnnotationElement.d.ts +0 -54
  655. package/lib/cjs/TextAnnotationElement.d.ts.map +0 -1
  656. package/lib/cjs/TextAnnotationElement.js +0 -94
  657. package/lib/cjs/TextAnnotationElement.js.map +0 -1
  658. package/lib/cjs/TextAnnotationGeometry.d.ts +0 -32
  659. package/lib/cjs/TextAnnotationGeometry.d.ts.map +0 -1
  660. package/lib/cjs/TextAnnotationGeometry.js.map +0 -1
  661. package/lib/cjs/TextAnnotationLayout.d.ts.map +0 -1
  662. package/lib/cjs/TextAnnotationLayout.js.map +0 -1
  663. package/lib/esm/TextAnnotationElement.d.ts +0 -54
  664. package/lib/esm/TextAnnotationElement.d.ts.map +0 -1
  665. package/lib/esm/TextAnnotationElement.js +0 -89
  666. package/lib/esm/TextAnnotationElement.js.map +0 -1
  667. package/lib/esm/TextAnnotationGeometry.d.ts +0 -32
  668. package/lib/esm/TextAnnotationGeometry.d.ts.map +0 -1
  669. package/lib/esm/TextAnnotationGeometry.js.map +0 -1
  670. package/lib/esm/TextAnnotationLayout.d.ts.map +0 -1
  671. package/lib/esm/TextAnnotationLayout.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ChangesetECAdaptor = exports.PartialECChangeUnifier = void 0;
3
+ exports.ChangesetECAdaptor = exports.PartialECChangeUnifier = exports.ECChangeUnifierCache = void 0;
4
4
  /*---------------------------------------------------------------------------------------------
5
5
  * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
6
6
  * See LICENSE.md in the project root for license terms and full copyright notice.
@@ -9,6 +9,9 @@ exports.ChangesetECAdaptor = exports.PartialECChangeUnifier = void 0;
9
9
  * @module ECDb
10
10
  */
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
+ const core_common_1 = require("@itwin/core-common");
13
+ const ECDb_1 = require("./ECDb");
14
+ const Symbols_1 = require("./internal/Symbols");
12
15
  class ECDbMap {
13
16
  db;
14
17
  _cachedClassMaps = new Map();
@@ -17,14 +20,14 @@ class ECDbMap {
17
20
  this.db = db;
18
21
  }
19
22
  getAllDerivedClasses(classFullName) {
20
- const sql = `
21
- SELECT format('0x%x', ch.ClassId)
22
- FROM [ec_cache_ClassHierarchy] [ch]
23
- JOIN [ec_Class] [cs] ON [cs].[Id] = [ch].[BaseClassId]
24
- JOIN [ec_Schema] [sc] ON [sc].[Id] = [cs].[SchemaId]
25
- WHERE (([sc].[Alias] = :schemaNameOrAlias
26
- OR [sc].[Name] = :schemaNameOrAlias)
27
- AND ([cs].[Name] = :className))
23
+ const sql = `
24
+ SELECT format('0x%x', ch.ClassId)
25
+ FROM [ec_cache_ClassHierarchy] [ch]
26
+ JOIN [ec_Class] [cs] ON [cs].[Id] = [ch].[BaseClassId]
27
+ JOIN [ec_Schema] [sc] ON [sc].[Id] = [cs].[SchemaId]
28
+ WHERE (([sc].[Alias] = :schemaNameOrAlias
29
+ OR [sc].[Name] = :schemaNameOrAlias)
30
+ AND ([cs].[Name] = :className))
28
31
  `;
29
32
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
30
33
  const parts = classFullName.indexOf(".") !== -1 ? classFullName.split(".") : classFullName.split(":");
@@ -39,39 +42,39 @@ class ECDbMap {
39
42
  getTable(tableName) {
40
43
  if (this._cacheTables.has(tableName))
41
44
  return this._cacheTables.get(tableName);
42
- const sql = `
43
- SELECT
44
- JSON_OBJECT (
45
- 'id', FORMAT ('0x%x', [t].[id]),
46
- 'name', [t].[Name],
47
- 'type', (
48
- CASE
49
- [t].[type]
50
- WHEN 0 THEN 'Primary'
51
- WHEN 1 THEN 'Joined'
52
- WHEN 2 THEN 'Existing'
53
- WHEN 3 THEN 'Overflow'
54
- WHEN 4 THEN 'Virtual'
55
- END
56
- ),
57
- 'exclusiveRootClassId', FORMAT ('0x%x',
58
- COALESCE (
59
- [t].[ExclusiveRootClassId], (
60
- SELECT [parent].[ExclusiveRootClassId]
61
- FROM [ec_Table] [parent]
62
- WHERE [parent].[Id] = [t].[ParentTableId] AND [parent].[Type] = 1))),
63
- 'isClassIdVirtual', (
64
- SELECT
65
- [c].[IsVirtual]
66
- FROM
67
- [ec_Column] [c]
68
- WHERE
69
- [c].[Name] = 'ECClassId' AND [c].[TableId] = [t].[Id]
70
- )
71
- )
72
- FROM [ec_Table] [t]
73
- WHERE
74
- [t].[Name] = ?;
45
+ const sql = `
46
+ SELECT
47
+ JSON_OBJECT (
48
+ 'id', FORMAT ('0x%x', [t].[id]),
49
+ 'name', [t].[Name],
50
+ 'type', (
51
+ CASE
52
+ [t].[type]
53
+ WHEN 0 THEN 'Primary'
54
+ WHEN 1 THEN 'Joined'
55
+ WHEN 2 THEN 'Existing'
56
+ WHEN 3 THEN 'Overflow'
57
+ WHEN 4 THEN 'Virtual'
58
+ END
59
+ ),
60
+ 'exclusiveRootClassId', FORMAT ('0x%x',
61
+ COALESCE (
62
+ [t].[ExclusiveRootClassId], (
63
+ SELECT [parent].[ExclusiveRootClassId]
64
+ FROM [ec_Table] [parent]
65
+ WHERE [parent].[Id] = [t].[ParentTableId] AND [parent].[Type] = 1))),
66
+ 'isClassIdVirtual', (
67
+ SELECT
68
+ [c].[IsVirtual]
69
+ FROM
70
+ [ec_Column] [c]
71
+ WHERE
72
+ [c].[Name] = 'ECClassId' AND [c].[TableId] = [t].[Id]
73
+ )
74
+ )
75
+ FROM [ec_Table] [t]
76
+ WHERE
77
+ [t].[Name] = ?;
75
78
  `;
76
79
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
77
80
  stmt.bindString(1, tableName);
@@ -92,186 +95,186 @@ class ECDbMap {
92
95
  getClassMap(classId) {
93
96
  if (this._cachedClassMaps.has(classId))
94
97
  return this._cachedClassMaps.get(classId);
95
- const sql = `
96
- SELECT
97
- JSON_OBJECT(
98
- 'id', format('0x%x', cs.id),
99
- 'name', format('%s:%s', ss.Name, cs.Name),
100
- 'mapStrategy',
101
- (
102
- CASE cm.MapStrategy
103
- WHEN 0 THEN 'NotMapped'
104
- WHEN 1 THEN 'OwnTable'
105
- WHEN 2 THEN 'TablePerHierarchy'
106
- WHEN 3 THEN 'ExistingTable'
107
- WHEN 10 THEN 'ForeignKeyInTargetTable'
108
- WHEN 11 THEN 'ForeignKeyInSourceTable'
109
- END
110
- ),
111
- 'type',
112
- (
113
- CASE cs.Type
114
- WHEN 0 THEN 'Entity'
115
- WHEN 1 THEN 'Relationship'
116
- WHEN 2 THEN 'Struct'
117
- WHEN 3 THEN 'CustomAttribute'
118
- END
119
- ),
120
- 'modifier',
121
- (
122
- CASE cs.Modifier
123
- WHEN 0 THEN 'None'
124
- WHEN 1 THEN 'Abstract'
125
- WHEN 2 THEN 'Sealed'
126
- END
127
- ),
128
- 'properties',
129
- (
130
- SELECT
131
- JSON_GROUP_ARRAY(JSON(propJson))
132
- FROM
133
- (
134
- SELECT
135
- JSON_OBJECT(
136
- 'id', format('0x%x', pt.id),
137
- 'name', pt.Name,
138
- 'kind',
139
- (
140
- CASE pt.Kind
141
- WHEN 0 THEN 'Primitive'
142
- WHEN 1 THEN 'Struct'
143
- WHEN 2 THEN 'PrimitiveArray'
144
- WHEN 3 THEN 'StructArray'
145
- WHEN 4 THEN 'Navigation'
146
- END
147
- ),
148
- 'primitiveType',
149
- (
150
- CASE pt.PrimitiveType
151
- WHEN 0x101 THEN 'Binary'
152
- WHEN 0x201 THEN 'Boolean'
153
- WHEN 0x301 THEN 'DateTime'
154
- WHEN 0x401 THEN 'Double'
155
- WHEN 0x501 THEN 'Integer'
156
- WHEN 0x601 THEN 'Long'
157
- WHEN 0x701 THEN 'Point2d'
158
- WHEN 0x801 THEN 'Point3d'
159
- WHEN 0x901 THEN 'String'
160
- WHEN 0xa01 THEN 'IGeometry'
161
- END
162
- ),
163
- 'extendedTypeName', ExtendedTypeName,
164
- 'navigationRelationship',
165
- (
166
- SELECT
167
- JSON_OBJECT(
168
- 'classId', format('0x%x', nc.Id),
169
- 'classFullName', format('%s:%s', ns.Name, nc.Name)
170
- )
171
- FROM ec_Class nc
172
- JOIN ec_Schema ns ON ns.Id = nc.SchemaId
173
- WHERE
174
- nc.Id = pt.NavigationRelationshipClassId
175
- ),
176
- 'structClass',
177
- (
178
- SELECT
179
- JSON_OBJECT(
180
- 'classId', format('0x%x', nc.Id),
181
- 'classFullName', format('%s:%s', ns.Name, nc.Name)
182
- )
183
- FROM ec_Class nc
184
- JOIN ec_Schema ns ON ns.Id = nc.SchemaId
185
- WHERE
186
- nc.Id = pt.StructClassId
187
- ),
188
- 'dateTimeInfo', (
189
- SELECT
190
- JSON_OBJECT (
191
- 'dateTimeKind', (
192
- CASE
193
- WHEN [ca].[Instance] LIKE '%<DateTimeKind>Utc</DateTimeKind>%' COLLATE [NoCase] THEN 'Utc'
194
- WHEN [ca].[Instance] LIKE '%<DateTimeKind>Local</DateTimeKind>%' COLLATE [NoCase] THEN 'Local'
195
- ELSE 'Unspecified'
196
- END
197
- ),
198
- 'dateTimeComponent', (
199
- CASE
200
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>DateTime</DateTimeComponent>%' COLLATE [NoCase] THEN 'DateTime'
201
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>Date</DateTimeComponent>%' COLLATE [NoCase] THEN 'Date'
202
- WHEN [ca].[Instance] LIKE '%<DateTimeComponent>TimeOfDay</DateTimeComponent>%' COLLATE [NoCase] THEN 'TimeOfDay'
203
- ELSE 'DateTime'
204
- END
205
- )
206
- )
207
- FROM
208
- [ec_CustomAttribute] [ca]
209
- JOIN [ec_Class] [cl] ON [cl].[Id] = [ca].[ClassId]
210
- JOIN [ec_Schema] [sc] ON [sc].[Id] = [cl].[SchemaId]
211
- WHERE
212
- [ca].[ContainerType] = 992
213
- AND [cl].[Name] = 'DateTimeInfo'
214
- AND [sc].[Name] = 'CoreCustomAttributes'
215
- AND [ca].[ContainerId] = [pt].[Id]
216
- ),
217
- 'columns',
218
- (
219
- SELECT
220
- JSON_GROUP_ARRAY(JSON(columnJson))
221
- FROM
222
- (
223
- SELECT
224
- JSON_OBJECT(
225
- 'table', tb.Name,
226
- 'column', cc.Name,
227
- 'type',
228
- (
229
- CASE cc.Type
230
- WHEN 0 THEN 'Any'
231
- WHEN 1 THEN 'Boolean'
232
- WHEN 2 THEN 'Blob'
233
- WHEN 3 THEN 'Timestamp'
234
- WHEN 4 THEN 'Real'
235
- WHEN 5 THEN 'Integer'
236
- WHEN 6 THEN 'Text'
237
- END
238
- ),
239
- 'columnKind',
240
- (
241
- CASE cc.ColumnKind
242
- WHEN 0 THEN 'Default'
243
- WHEN 1 THEN 'Id'
244
- WHEN 2 THEN 'ClassId'
245
- WHEN 4 THEN 'SharedData'
246
- END
247
- ),
248
- 'accessString', pp0.AccessString,
249
- 'isVirtual', cc.IsVirtual OR tb.Type = 4
250
- ) columnJson
251
- FROM [ec_PropertyMap] [pm0]
252
- JOIN [ec_Column] [cc] ON [cc].[Id] = [pm0].[ColumnId]
253
- JOIN [ec_Table] [tb] ON [tb].[Id] = [cc].[TableId]
254
- JOIN [ec_PropertyPath] [pp0] ON [pp0].[Id] = [pm0].[PropertyPathId]
255
- WHERE
256
- [pp0].[RootPropertyId] = pt.Id AND pm0.ClassId = cs.Id
257
- )
258
- )
259
- ) propJson
260
- FROM [ec_PropertyMap] [pm]
261
- JOIN [ec_PropertyPath] [pp] ON [pp].[Id] = [pm].[PropertyPathId]
262
- JOIN [ec_Property] [pt] ON [pt].[Id] = [pp].[RootPropertyId]
263
- WHERE
264
- pm.ClassId = cs.Id
265
- GROUP BY
266
- pt.Id
267
- )
268
- )
269
- ) classDef
270
- FROM [ec_Class] [cs]
271
- JOIN [ec_ClassMap] [cm] ON [cm].[ClassId] = [cs].[Id]
272
- JOIN [ec_Schema] [ss] ON [ss].[Id] = [cs].[SchemaId]
273
- WHERE
274
- [cs].[Id] = ?
98
+ const sql = `
99
+ SELECT
100
+ JSON_OBJECT(
101
+ 'id', format('0x%x', cs.id),
102
+ 'name', format('%s:%s', ss.Name, cs.Name),
103
+ 'mapStrategy',
104
+ (
105
+ CASE cm.MapStrategy
106
+ WHEN 0 THEN 'NotMapped'
107
+ WHEN 1 THEN 'OwnTable'
108
+ WHEN 2 THEN 'TablePerHierarchy'
109
+ WHEN 3 THEN 'ExistingTable'
110
+ WHEN 10 THEN 'ForeignKeyInTargetTable'
111
+ WHEN 11 THEN 'ForeignKeyInSourceTable'
112
+ END
113
+ ),
114
+ 'type',
115
+ (
116
+ CASE cs.Type
117
+ WHEN 0 THEN 'Entity'
118
+ WHEN 1 THEN 'Relationship'
119
+ WHEN 2 THEN 'Struct'
120
+ WHEN 3 THEN 'CustomAttribute'
121
+ END
122
+ ),
123
+ 'modifier',
124
+ (
125
+ CASE cs.Modifier
126
+ WHEN 0 THEN 'None'
127
+ WHEN 1 THEN 'Abstract'
128
+ WHEN 2 THEN 'Sealed'
129
+ END
130
+ ),
131
+ 'properties',
132
+ (
133
+ SELECT
134
+ JSON_GROUP_ARRAY(JSON(propJson))
135
+ FROM
136
+ (
137
+ SELECT
138
+ JSON_OBJECT(
139
+ 'id', format('0x%x', pt.id),
140
+ 'name', pt.Name,
141
+ 'kind',
142
+ (
143
+ CASE pt.Kind
144
+ WHEN 0 THEN 'Primitive'
145
+ WHEN 1 THEN 'Struct'
146
+ WHEN 2 THEN 'PrimitiveArray'
147
+ WHEN 3 THEN 'StructArray'
148
+ WHEN 4 THEN 'Navigation'
149
+ END
150
+ ),
151
+ 'primitiveType',
152
+ (
153
+ CASE pt.PrimitiveType
154
+ WHEN 0x101 THEN 'Binary'
155
+ WHEN 0x201 THEN 'Boolean'
156
+ WHEN 0x301 THEN 'DateTime'
157
+ WHEN 0x401 THEN 'Double'
158
+ WHEN 0x501 THEN 'Integer'
159
+ WHEN 0x601 THEN 'Long'
160
+ WHEN 0x701 THEN 'Point2d'
161
+ WHEN 0x801 THEN 'Point3d'
162
+ WHEN 0x901 THEN 'String'
163
+ WHEN 0xa01 THEN 'IGeometry'
164
+ END
165
+ ),
166
+ 'extendedTypeName', ExtendedTypeName,
167
+ 'navigationRelationship',
168
+ (
169
+ SELECT
170
+ JSON_OBJECT(
171
+ 'classId', format('0x%x', nc.Id),
172
+ 'classFullName', format('%s:%s', ns.Name, nc.Name)
173
+ )
174
+ FROM ec_Class nc
175
+ JOIN ec_Schema ns ON ns.Id = nc.SchemaId
176
+ WHERE
177
+ nc.Id = pt.NavigationRelationshipClassId
178
+ ),
179
+ 'structClass',
180
+ (
181
+ SELECT
182
+ JSON_OBJECT(
183
+ 'classId', format('0x%x', nc.Id),
184
+ 'classFullName', format('%s:%s', ns.Name, nc.Name)
185
+ )
186
+ FROM ec_Class nc
187
+ JOIN ec_Schema ns ON ns.Id = nc.SchemaId
188
+ WHERE
189
+ nc.Id = pt.StructClassId
190
+ ),
191
+ 'dateTimeInfo', (
192
+ SELECT
193
+ JSON_OBJECT (
194
+ 'dateTimeKind', (
195
+ CASE
196
+ WHEN [ca].[Instance] LIKE '%<DateTimeKind>Utc</DateTimeKind>%' COLLATE [NoCase] THEN 'Utc'
197
+ WHEN [ca].[Instance] LIKE '%<DateTimeKind>Local</DateTimeKind>%' COLLATE [NoCase] THEN 'Local'
198
+ ELSE 'Unspecified'
199
+ END
200
+ ),
201
+ 'dateTimeComponent', (
202
+ CASE
203
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>DateTime</DateTimeComponent>%' COLLATE [NoCase] THEN 'DateTime'
204
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>Date</DateTimeComponent>%' COLLATE [NoCase] THEN 'Date'
205
+ WHEN [ca].[Instance] LIKE '%<DateTimeComponent>TimeOfDay</DateTimeComponent>%' COLLATE [NoCase] THEN 'TimeOfDay'
206
+ ELSE 'DateTime'
207
+ END
208
+ )
209
+ )
210
+ FROM
211
+ [ec_CustomAttribute] [ca]
212
+ JOIN [ec_Class] [cl] ON [cl].[Id] = [ca].[ClassId]
213
+ JOIN [ec_Schema] [sc] ON [sc].[Id] = [cl].[SchemaId]
214
+ WHERE
215
+ [ca].[ContainerType] = 992
216
+ AND [cl].[Name] = 'DateTimeInfo'
217
+ AND [sc].[Name] = 'CoreCustomAttributes'
218
+ AND [ca].[ContainerId] = [pt].[Id]
219
+ ),
220
+ 'columns',
221
+ (
222
+ SELECT
223
+ JSON_GROUP_ARRAY(JSON(columnJson))
224
+ FROM
225
+ (
226
+ SELECT
227
+ JSON_OBJECT(
228
+ 'table', tb.Name,
229
+ 'column', cc.Name,
230
+ 'type',
231
+ (
232
+ CASE cc.Type
233
+ WHEN 0 THEN 'Any'
234
+ WHEN 1 THEN 'Boolean'
235
+ WHEN 2 THEN 'Blob'
236
+ WHEN 3 THEN 'Timestamp'
237
+ WHEN 4 THEN 'Real'
238
+ WHEN 5 THEN 'Integer'
239
+ WHEN 6 THEN 'Text'
240
+ END
241
+ ),
242
+ 'columnKind',
243
+ (
244
+ CASE cc.ColumnKind
245
+ WHEN 0 THEN 'Default'
246
+ WHEN 1 THEN 'Id'
247
+ WHEN 2 THEN 'ClassId'
248
+ WHEN 4 THEN 'SharedData'
249
+ END
250
+ ),
251
+ 'accessString', pp0.AccessString,
252
+ 'isVirtual', cc.IsVirtual OR tb.Type = 4
253
+ ) columnJson
254
+ FROM [ec_PropertyMap] [pm0]
255
+ JOIN [ec_Column] [cc] ON [cc].[Id] = [pm0].[ColumnId]
256
+ JOIN [ec_Table] [tb] ON [tb].[Id] = [cc].[TableId]
257
+ JOIN [ec_PropertyPath] [pp0] ON [pp0].[Id] = [pm0].[PropertyPathId]
258
+ WHERE
259
+ [pp0].[RootPropertyId] = pt.Id AND pm0.ClassId = cs.Id
260
+ )
261
+ )
262
+ ) propJson
263
+ FROM [ec_PropertyMap] [pm]
264
+ JOIN [ec_PropertyPath] [pp] ON [pp].[Id] = [pm].[PropertyPathId]
265
+ JOIN [ec_Property] [pt] ON [pt].[Id] = [pp].[RootPropertyId]
266
+ WHERE
267
+ pm.ClassId = cs.Id
268
+ GROUP BY
269
+ pt.Id
270
+ )
271
+ )
272
+ ) classDef
273
+ FROM [ec_Class] [cs]
274
+ JOIN [ec_ClassMap] [cm] ON [cm].[ClassId] = [cs].[Id]
275
+ JOIN [ec_Schema] [ss] ON [ss].[Id] = [cs].[SchemaId]
276
+ WHERE
277
+ [cs].[Id] = ?
275
278
  `;
276
279
  return this.db.withPreparedSqliteStatement(sql, (stmt) => {
277
280
  stmt.bindId(1, classId);
@@ -321,6 +324,199 @@ var DateTime;
321
324
  }
322
325
  DateTime.fromJulianDay = fromJulianDay;
323
326
  })(DateTime || (DateTime = {}));
327
+ /** @beta */
328
+ var ECChangeUnifierCache;
329
+ (function (ECChangeUnifierCache) {
330
+ /**
331
+ * Creates and returns a new in-memory cache for EC change unification.
332
+ * @note This cache is fast but recommended for small to medium size changesets. As it store changes in memory using a hash map, it may run out of memory for larger changesets.
333
+ * @returns {ECChangeUnifierCache} An instance of cache that store changes in memory using a hash map.
334
+ */
335
+ function createInMemoryCache() {
336
+ return new InMemoryInstanceCache();
337
+ }
338
+ ECChangeUnifierCache.createInMemoryCache = createInMemoryCache;
339
+ /**
340
+ * Creates an ECChangeUnifierCache that is backed by a database.
341
+ * @note This cache is suitable for larger changesets and uses SQLite to store changes. It is slower than the in-memory cache but can handle larger datasets without running out of memory.
342
+ * @param db - The database instance to use for caching.
343
+ * @param bufferedReadInstanceSizeInBytes - The size in bytes for buffered read instances. Defaults to 10 MB.
344
+ * @returns An instance of ECChangeUnifierCache backed by SQLite temp db.
345
+ */
346
+ function createSqliteBackedCache(db, bufferedReadInstanceSizeInBytes = 1024 * 1024 * 10) {
347
+ return new SqliteBackedInstanceCache(db, bufferedReadInstanceSizeInBytes);
348
+ }
349
+ ECChangeUnifierCache.createSqliteBackedCache = createSqliteBackedCache;
350
+ })(ECChangeUnifierCache || (exports.ECChangeUnifierCache = ECChangeUnifierCache = {}));
351
+ /**
352
+ * In-memory cache for storing changed EC instances.
353
+ */
354
+ class InMemoryInstanceCache {
355
+ _cache = new Map();
356
+ /**
357
+ * Retrieves the changed EC instance associated with the specified key.
358
+ * @param key - The key used to retrieve the instance.
359
+ * @returns The changed EC instance, or undefined if not found.
360
+ */
361
+ get(key) {
362
+ return this._cache.get(key);
363
+ }
364
+ /**
365
+ * Sets the changed EC instance associated with the specified key.
366
+ * @param key - The key used to store the instance.
367
+ * @param value - The changed EC instance to be stored.
368
+ */
369
+ set(key, value) {
370
+ const meta = value.$meta;
371
+ // Remove undefined keys
372
+ if (meta) {
373
+ Object.keys(meta).forEach((k) => meta[k] === undefined && delete meta[k]);
374
+ }
375
+ this._cache.set(key, value);
376
+ }
377
+ /**
378
+ * Returns an iterator over all the changed EC instances in the cache.
379
+ * @returns An iterator over all the changed EC instances.
380
+ */
381
+ *all() {
382
+ for (const key of Array.from(this._cache.keys()).sort()) {
383
+ const instance = this._cache.get(key);
384
+ if (instance) {
385
+ yield instance;
386
+ }
387
+ }
388
+ }
389
+ /**
390
+ * Returns the number of changed EC instances in the cache.
391
+ * @returns The number of changed EC instances.
392
+ */
393
+ count() {
394
+ return this._cache.size;
395
+ }
396
+ /**
397
+ * Disposes the cache.
398
+ */
399
+ [Symbol.dispose]() {
400
+ // Implementation details
401
+ }
402
+ }
403
+ /**
404
+ * Represents a cache for unifying EC changes in a SQLite-backed instance cache.
405
+ */
406
+ class SqliteBackedInstanceCache {
407
+ _db;
408
+ bufferedReadInstanceSizeInBytes;
409
+ _cacheTable = `[temp].[${core_bentley_1.Guid.createValue()}]`;
410
+ static defaultBufferSize = 1024 * 1024 * 10; // 10MB
411
+ /**
412
+ * Creates an instance of SqliteBackedInstanceCache.
413
+ * @param _db The underlying database connection.
414
+ * @param bufferedReadInstanceSizeInBytes The size of read instance buffer defaults to 10Mb.
415
+ * @throws Error if bufferedReadInstanceSizeInBytes is less than or equal to 0.
416
+ */
417
+ constructor(_db, bufferedReadInstanceSizeInBytes = SqliteBackedInstanceCache.defaultBufferSize) {
418
+ this._db = _db;
419
+ this.bufferedReadInstanceSizeInBytes = bufferedReadInstanceSizeInBytes;
420
+ if (bufferedReadInstanceSizeInBytes <= 0)
421
+ throw new Error("bufferedReadInstanceCount must be greater than 0");
422
+ this.createTempTable();
423
+ }
424
+ /**
425
+ * Creates a temporary table in the database for caching instances.
426
+ * @throws Error if unable to create the temporary table.
427
+ */
428
+ createTempTable() {
429
+ this._db.withSqliteStatement(`CREATE TABLE ${this._cacheTable} ([key] text primary key, [value] text)`, (stmt) => {
430
+ if (core_bentley_1.DbResult.BE_SQLITE_DONE !== stmt.step())
431
+ throw new Error("unable to create temp table");
432
+ });
433
+ }
434
+ /**
435
+ * Drops the temporary table from the database.
436
+ * @throws Error if unable to drop the temporary table.
437
+ */
438
+ dropTempTable() {
439
+ this._db.saveChanges();
440
+ if (this._db instanceof ECDb_1.ECDb)
441
+ this._db.clearStatementCache();
442
+ else {
443
+ this._db.clearCaches();
444
+ this._db[Symbols_1._nativeDb].clearECDbCache();
445
+ }
446
+ this._db.withSqliteStatement(`DROP TABLE IF EXISTS ${this._cacheTable}`, (stmt) => {
447
+ if (core_bentley_1.DbResult.BE_SQLITE_DONE !== stmt.step())
448
+ throw new Error("unable to drop temp table");
449
+ });
450
+ }
451
+ /**
452
+ * Retrieves the changed EC instance from the cache based on the specified key.
453
+ * @param key The key of the instance.
454
+ * @returns The changed EC instance if found, otherwise undefined.
455
+ */
456
+ get(key) {
457
+ return this._db.withPreparedSqliteStatement(`SELECT [value] FROM ${this._cacheTable} WHERE [key]=?`, (stmt) => {
458
+ stmt.bindString(1, key);
459
+ if (stmt.step() === core_bentley_1.DbResult.BE_SQLITE_ROW) {
460
+ const out = JSON.parse(stmt.getValueString(0), core_common_1.Base64EncodedString.reviver);
461
+ return out;
462
+ }
463
+ return undefined;
464
+ });
465
+ }
466
+ /**
467
+ * Sets the changed EC instance in the cache with the specified key.
468
+ * @param key The key of the instance.
469
+ * @param value The changed EC instance to be set.
470
+ */
471
+ set(key, value) {
472
+ const shallowCopy = Object.assign({}, value);
473
+ this._db.withPreparedSqliteStatement(`INSERT INTO ${this._cacheTable} ([key], [value]) VALUES (?, ?) ON CONFLICT ([key]) DO UPDATE SET [value] = [excluded].[value]`, (stmt) => {
474
+ stmt.bindString(1, key);
475
+ stmt.bindString(2, JSON.stringify(shallowCopy, core_common_1.Base64EncodedString.replacer));
476
+ stmt.step();
477
+ });
478
+ }
479
+ /**
480
+ * Returns an iterator for all the changed EC instances in the cache.
481
+ * @returns An iterator for all the changed EC instances.
482
+ */
483
+ *all() {
484
+ const sql = `
485
+ SELECT JSON_GROUP_ARRAY (JSON([value]))
486
+ FROM (SELECT
487
+ [value],
488
+ SUM (LENGTH ([value])) OVER (ORDER BY [key] ROWS UNBOUNDED PRECEDING) / ${this.bufferedReadInstanceSizeInBytes} AS [bucket]
489
+ FROM ${this._cacheTable})
490
+ GROUP BY [bucket]`;
491
+ const stmt = this._db.prepareSqliteStatement(sql);
492
+ while (stmt.step() === core_bentley_1.DbResult.BE_SQLITE_ROW) {
493
+ const instanceBucket = JSON.parse(stmt.getValueString(0), core_common_1.Base64EncodedString.reviver);
494
+ for (const value of instanceBucket) {
495
+ yield value;
496
+ }
497
+ }
498
+ stmt[Symbol.dispose]();
499
+ }
500
+ /**
501
+ * Returns the number of instances in the cache.
502
+ * @returns The number of instances in the cache.
503
+ */
504
+ count() {
505
+ return this._db.withPreparedSqliteStatement(`SELECT COUNT(*) FROM ${this._cacheTable}`, (stmt) => {
506
+ if (stmt.step() === core_bentley_1.DbResult.BE_SQLITE_ROW)
507
+ return stmt.getValue(0).getInteger();
508
+ return 0;
509
+ });
510
+ }
511
+ /**
512
+ * Disposes the cache by dropping the temporary table.
513
+ */
514
+ [Symbol.dispose]() {
515
+ if (this._db.isOpen) {
516
+ this.dropTempTable();
517
+ }
518
+ }
519
+ }
324
520
  /**
325
521
  * Combine partial changed instance into single instance.
326
522
  * Partial changes is per table and a single instance can
@@ -328,38 +524,49 @@ var DateTime;
328
524
  * @beta
329
525
  */
330
526
  class PartialECChangeUnifier {
331
- _cache = new Map();
527
+ _db;
528
+ _cache;
332
529
  _readonly = false;
530
+ constructor(_db, _cache = new InMemoryInstanceCache()) {
531
+ this._db = _db;
532
+ this._cache = _cache;
533
+ }
534
+ /**
535
+ * Dispose the instance.
536
+ */
537
+ [Symbol.dispose]() {
538
+ this._cache[Symbol.dispose]();
539
+ }
333
540
  /**
334
541
  * Get root class id for a given class
335
542
  * @param classId given class id
336
543
  * @param db use to find root class
337
544
  * @returns return root class id
338
545
  */
339
- static getRootClassId(classId, db) {
340
- const sql = `
341
- WITH
342
- [base_class]([classId], [baseClassId], [Level]) AS(
343
- SELECT [ch].[ClassId], [ch].[BaseClassId], 0
344
- FROM [ec_ClassHasBaseClasses] [ch] WHERE [ch].[ClassId] = ?
345
- UNION ALL
346
- SELECT [ch].[ClassId], [ch].[BaseClassId], [Level] + 1
347
- FROM [ec_ClassHasBaseClasses] [ch], [base_class] [bc] WHERE [bc].[BaseClassId] = [ch].[ClassId]
348
-
349
- )
350
- SELECT FORMAT('0x%x', [bc].[BaseClassId]) rootClass
351
- FROM [base_class] [bc]
352
- WHERE [bc].[ClassId] <> [bc].[BaseClassId]
353
- AND [bc].[BaseClassId] NOT IN (SELECT [ca].[ContainerId]
354
- FROM [ec_CustomAttribute] [ca]
355
- WHERE [ca].[ContainerType] = 30
356
- AND [ca].[ClassId] IN (SELECT [cc].[Id]
357
- FROM [ec_Class] [cc]
358
- JOIN [ec_Schema] [ss] ON [ss].[Id] = [cc].[SchemaId]
359
- WHERE [cc].[Name] = 'IsMixIn'
360
- AND [ss].[Name] = 'CoreCustomAttributes'))
546
+ getRootClassId(classId) {
547
+ const sql = `
548
+ WITH
549
+ [base_class]([classId], [baseClassId], [Level]) AS(
550
+ SELECT [ch].[ClassId], [ch].[BaseClassId], 0
551
+ FROM [ec_ClassHasBaseClasses] [ch] WHERE [ch].[ClassId] = ?
552
+ UNION ALL
553
+ SELECT [ch].[ClassId], [ch].[BaseClassId], [Level] + 1
554
+ FROM [ec_ClassHasBaseClasses] [ch], [base_class] [bc] WHERE [bc].[BaseClassId] = [ch].[ClassId]
555
+
556
+ )
557
+ SELECT FORMAT('0x%x', [bc].[BaseClassId]) rootClass
558
+ FROM [base_class] [bc]
559
+ WHERE [bc].[ClassId] <> [bc].[BaseClassId]
560
+ AND [bc].[BaseClassId] NOT IN (SELECT [ca].[ContainerId]
561
+ FROM [ec_CustomAttribute] [ca]
562
+ WHERE [ca].[ContainerType] = 30
563
+ AND [ca].[ClassId] IN (SELECT [cc].[Id]
564
+ FROM [ec_Class] [cc]
565
+ JOIN [ec_Schema] [ss] ON [ss].[Id] = [cc].[SchemaId]
566
+ WHERE [cc].[Name] = 'IsMixIn'
567
+ AND [ss].[Name] = 'CoreCustomAttributes'))
361
568
  ORDER BY [Level] DESC`;
362
- return db.withSqliteStatement(sql, (stmt) => {
569
+ return this._db.withSqliteStatement(sql, (stmt) => {
363
570
  stmt.bindId(1, classId);
364
571
  if (stmt.step() === core_bentley_1.DbResult.BE_SQLITE_ROW && !stmt.isValueNull(0)) {
365
572
  return stmt.getValueString(0);
@@ -367,15 +574,30 @@ class PartialECChangeUnifier {
367
574
  return classId;
368
575
  });
369
576
  }
577
+ /**
578
+ * Checks if the given `rhsClassId` is an instance of the `lhsClassId`.
579
+ * @param rhsClassId The ID of the right-hand side class.
580
+ * @param lhsClassId The ID of the left-hand side class.
581
+ * @returns `true` if `rhsClassId` is an instance of `lhsClassId`, `false` otherwise.
582
+ */
583
+ instanceOf(rhsClassId, lhsClassId) {
584
+ // eslint-disable-next-line @typescript-eslint/no-deprecated
585
+ return this._db.withPreparedStatement("SELECT ec_instanceof(?,?)", (stmt) => {
586
+ stmt.bindId(1, rhsClassId);
587
+ stmt.bindId(2, lhsClassId);
588
+ stmt.step();
589
+ return stmt.getValue(0).getInteger() === 1;
590
+ });
591
+ }
370
592
  /**
371
593
  * Combine partial instance with instance with same key if already exists.
372
594
  * @param rhs partial instance
373
595
  */
374
- combine(rhs, db) {
596
+ combine(rhs) {
375
597
  if (!rhs.$meta) {
376
598
  throw new Error("PartialECChange being combine must have '$meta' property");
377
599
  }
378
- const key = PartialECChangeUnifier.buildKey(rhs, db);
600
+ const key = this.buildKey(rhs);
379
601
  const lhs = this._cache.get(key);
380
602
  if (lhs) {
381
603
  const { $meta: _, ...restOfRhs } = rhs;
@@ -384,37 +606,39 @@ class PartialECChangeUnifier {
384
606
  lhs.$meta.tables = [...rhs.$meta?.tables, ...lhs.$meta?.tables];
385
607
  lhs.$meta.changeIndexes = [...rhs.$meta?.changeIndexes, ...lhs.$meta?.changeIndexes];
386
608
  // we preserve child class name & id when merging instance.
387
- if (rhs.$meta.fallbackClassId && lhs.$meta.fallbackClassId && db && rhs.$meta.fallbackClassId !== lhs.$meta.fallbackClassId) {
609
+ if (rhs.$meta.fallbackClassId && lhs.$meta.fallbackClassId && rhs.$meta.fallbackClassId !== lhs.$meta.fallbackClassId) {
388
610
  const lhsClassId = lhs.$meta.fallbackClassId;
389
611
  const rhsClassId = rhs.$meta.fallbackClassId;
390
- // eslint-disable-next-line @typescript-eslint/no-deprecated
391
- const isRhsIsSubClassOfLhs = db.withPreparedStatement("SELECT ec_instanceof(?,?)", (stmt) => {
392
- stmt.bindId(1, rhsClassId);
393
- stmt.bindId(2, lhsClassId);
394
- stmt.step();
395
- return stmt.getValue(0).getInteger() === 1;
396
- });
612
+ const isRhsIsSubClassOfLhs = this.instanceOf(rhsClassId, lhsClassId);
397
613
  if (isRhsIsSubClassOfLhs) {
398
614
  lhs.$meta.fallbackClassId = rhs.$meta.fallbackClassId;
399
615
  lhs.$meta.classFullName = rhs.$meta.classFullName;
400
616
  }
401
617
  }
402
618
  }
619
+ this._cache.set(key, lhs);
403
620
  }
404
621
  else {
405
622
  this._cache.set(key, rhs);
406
623
  }
407
624
  }
625
+ /**
626
+ * Returns the number of instances in the cache.
627
+ * @returns The number of instances in the cache.
628
+ */
629
+ getInstanceCount() {
630
+ return this._cache.count();
631
+ }
408
632
  /**
409
633
  * Build key from EC change.
410
634
  * @param change EC change
411
635
  * @returns key created from EC change.
412
636
  */
413
- static buildKey(change, db) {
637
+ buildKey(change) {
414
638
  let classId = change.ECClassId;
415
639
  if (typeof classId === "undefined") {
416
- if (db && change.$meta?.fallbackClassId) {
417
- classId = this.getRootClassId(change.$meta.fallbackClassId, db);
640
+ if (change.$meta?.fallbackClassId) {
641
+ classId = this.getRootClassId(change.$meta.fallbackClassId);
418
642
  }
419
643
  if (typeof classId === "undefined") {
420
644
  throw new Error(`unable to resolve ECClassId to root class id.`);
@@ -437,32 +661,23 @@ class PartialECChangeUnifier {
437
661
  throw new Error("this instance is marked as readonly.");
438
662
  }
439
663
  if (adaptor.op === "Updated" && adaptor.inserted && adaptor.deleted) {
440
- this.combine(adaptor.inserted, adaptor.reader.db);
441
- this.combine(adaptor.deleted, adaptor.reader.db);
664
+ this.combine(adaptor.inserted);
665
+ this.combine(adaptor.deleted);
442
666
  }
443
667
  else if (adaptor.op === "Inserted" && adaptor.inserted) {
444
- this.combine(adaptor.inserted, adaptor.reader.db);
668
+ this.combine(adaptor.inserted);
445
669
  }
446
670
  else if (adaptor.op === "Deleted" && adaptor.deleted) {
447
- this.combine(adaptor.deleted, adaptor.reader.db);
671
+ this.combine(adaptor.deleted);
448
672
  }
449
673
  }
450
- /**
451
- * Delete $meta from all the instances.
452
- */
453
- stripMetaData() {
454
- for (const inst of this._cache.values()) {
455
- if ("$meta" in inst) {
456
- delete inst.$meta;
457
- }
458
- }
459
- this._readonly = true;
460
- }
461
674
  /**
462
675
  * Returns complete EC change instances.
463
676
  * @beta
464
677
  */
465
- get instances() { return this._cache.values(); }
678
+ get instances() {
679
+ return this._cache.all();
680
+ }
466
681
  }
467
682
  exports.PartialECChangeUnifier = PartialECChangeUnifier;
468
683
  /**