@itwin/core-backend 3.0.0-dev.76 → 3.0.0-dev.80

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 (368) hide show
  1. package/lib/{AliCloudStorageService.d.ts → cjs/AliCloudStorageService.d.ts} +0 -0
  2. package/lib/cjs/AliCloudStorageService.d.ts.map +1 -0
  3. package/lib/{AliCloudStorageService.js → cjs/AliCloudStorageService.js} +0 -0
  4. package/lib/cjs/AliCloudStorageService.js.map +1 -0
  5. package/lib/{BackendHubAccess.d.ts → cjs/BackendHubAccess.d.ts} +0 -0
  6. package/lib/cjs/BackendHubAccess.d.ts.map +1 -0
  7. package/lib/{BackendHubAccess.js → cjs/BackendHubAccess.js} +0 -0
  8. package/lib/cjs/BackendHubAccess.js.map +1 -0
  9. package/lib/{BackendLoggerCategory.d.ts → cjs/BackendLoggerCategory.d.ts} +0 -0
  10. package/lib/cjs/BackendLoggerCategory.d.ts.map +1 -0
  11. package/lib/{BackendLoggerCategory.js → cjs/BackendLoggerCategory.js} +0 -0
  12. package/lib/cjs/BackendLoggerCategory.js.map +1 -0
  13. package/lib/{BisCoreSchema.d.ts → cjs/BisCoreSchema.d.ts} +0 -0
  14. package/lib/cjs/BisCoreSchema.d.ts.map +1 -0
  15. package/lib/{BisCoreSchema.js → cjs/BisCoreSchema.js} +0 -0
  16. package/lib/cjs/BisCoreSchema.js.map +1 -0
  17. package/lib/{BriefcaseManager.d.ts → cjs/BriefcaseManager.d.ts} +0 -0
  18. package/lib/cjs/BriefcaseManager.d.ts.map +1 -0
  19. package/lib/{BriefcaseManager.js → cjs/BriefcaseManager.js} +2 -2
  20. package/lib/cjs/BriefcaseManager.js.map +1 -0
  21. package/lib/{Category.d.ts → cjs/Category.d.ts} +0 -0
  22. package/lib/cjs/Category.d.ts.map +1 -0
  23. package/lib/{Category.js → cjs/Category.js} +0 -0
  24. package/lib/cjs/Category.js.map +1 -0
  25. package/lib/{ChangeSummaryManager.d.ts → cjs/ChangeSummaryManager.d.ts} +1 -1
  26. package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -0
  27. package/lib/{ChangeSummaryManager.js → cjs/ChangeSummaryManager.js} +0 -0
  28. package/lib/cjs/ChangeSummaryManager.js.map +1 -0
  29. package/lib/{ChangedElementsDb.d.ts → cjs/ChangedElementsDb.d.ts} +0 -0
  30. package/lib/cjs/ChangedElementsDb.d.ts.map +1 -0
  31. package/lib/{ChangedElementsDb.js → cjs/ChangedElementsDb.js} +0 -0
  32. package/lib/cjs/ChangedElementsDb.js.map +1 -0
  33. package/lib/{ChangedElementsManager.d.ts → cjs/ChangedElementsManager.d.ts} +0 -0
  34. package/lib/cjs/ChangedElementsManager.d.ts.map +1 -0
  35. package/lib/{ChangedElementsManager.js → cjs/ChangedElementsManager.js} +0 -0
  36. package/lib/cjs/ChangedElementsManager.js.map +1 -0
  37. package/lib/{CheckpointManager.d.ts → cjs/CheckpointManager.d.ts} +3 -1
  38. package/lib/cjs/CheckpointManager.d.ts.map +1 -0
  39. package/lib/{CheckpointManager.js → cjs/CheckpointManager.js} +2 -2
  40. package/lib/cjs/CheckpointManager.js.map +1 -0
  41. package/lib/{ClassRegistry.d.ts → cjs/ClassRegistry.d.ts} +0 -0
  42. package/lib/cjs/ClassRegistry.d.ts.map +1 -0
  43. package/lib/{ClassRegistry.js → cjs/ClassRegistry.js} +0 -0
  44. package/lib/cjs/ClassRegistry.js.map +1 -0
  45. package/lib/{CloudStorageBackend.d.ts → cjs/CloudStorageBackend.d.ts} +0 -0
  46. package/lib/cjs/CloudStorageBackend.d.ts.map +1 -0
  47. package/lib/{CloudStorageBackend.js → cjs/CloudStorageBackend.js} +3 -3
  48. package/lib/cjs/CloudStorageBackend.js.map +1 -0
  49. package/lib/{CodeSpecs.d.ts → cjs/CodeSpecs.d.ts} +0 -0
  50. package/lib/cjs/CodeSpecs.d.ts.map +1 -0
  51. package/lib/{CodeSpecs.js → cjs/CodeSpecs.js} +0 -0
  52. package/lib/cjs/CodeSpecs.js.map +1 -0
  53. package/lib/{ConcurrentQuery.d.ts → cjs/ConcurrentQuery.d.ts} +0 -0
  54. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -0
  55. package/lib/{ConcurrentQuery.js → cjs/ConcurrentQuery.js} +0 -0
  56. package/lib/cjs/ConcurrentQuery.js.map +1 -0
  57. package/lib/{DevTools.d.ts → cjs/DevTools.d.ts} +0 -0
  58. package/lib/cjs/DevTools.d.ts.map +1 -0
  59. package/lib/{DevTools.js → cjs/DevTools.js} +3 -3
  60. package/lib/cjs/DevTools.js.map +1 -0
  61. package/lib/{DisplayStyle.d.ts → cjs/DisplayStyle.d.ts} +0 -0
  62. package/lib/cjs/DisplayStyle.d.ts.map +1 -0
  63. package/lib/{DisplayStyle.js → cjs/DisplayStyle.js} +5 -2
  64. package/lib/cjs/DisplayStyle.js.map +1 -0
  65. package/lib/{ECDb.d.ts → cjs/ECDb.d.ts} +0 -0
  66. package/lib/cjs/ECDb.d.ts.map +1 -0
  67. package/lib/{ECDb.js → cjs/ECDb.js} +51 -85
  68. package/lib/cjs/ECDb.js.map +1 -0
  69. package/lib/{ECSchemaXmlContext.d.ts → cjs/ECSchemaXmlContext.d.ts} +0 -0
  70. package/lib/cjs/ECSchemaXmlContext.d.ts.map +1 -0
  71. package/lib/{ECSchemaXmlContext.js → cjs/ECSchemaXmlContext.js} +0 -0
  72. package/lib/cjs/ECSchemaXmlContext.js.map +1 -0
  73. package/lib/{ECSqlStatement.d.ts → cjs/ECSqlStatement.d.ts} +0 -0
  74. package/lib/cjs/ECSqlStatement.d.ts.map +1 -0
  75. package/lib/{ECSqlStatement.js → cjs/ECSqlStatement.js} +0 -0
  76. package/lib/cjs/ECSqlStatement.js.map +1 -0
  77. package/lib/{Element.d.ts → cjs/Element.d.ts} +0 -0
  78. package/lib/cjs/Element.d.ts.map +1 -0
  79. package/lib/{Element.js → cjs/Element.js} +11 -4
  80. package/lib/cjs/Element.js.map +1 -0
  81. package/lib/{ElementAspect.d.ts → cjs/ElementAspect.d.ts} +0 -0
  82. package/lib/cjs/ElementAspect.d.ts.map +1 -0
  83. package/lib/{ElementAspect.js → cjs/ElementAspect.js} +0 -0
  84. package/lib/cjs/ElementAspect.js.map +1 -0
  85. package/lib/{ElementGraphics.d.ts → cjs/ElementGraphics.d.ts} +0 -0
  86. package/lib/cjs/ElementGraphics.d.ts.map +1 -0
  87. package/lib/{ElementGraphics.js → cjs/ElementGraphics.js} +0 -0
  88. package/lib/cjs/ElementGraphics.js.map +1 -0
  89. package/lib/{Entity.d.ts → cjs/Entity.d.ts} +0 -0
  90. package/lib/cjs/Entity.d.ts.map +1 -0
  91. package/lib/{Entity.js → cjs/Entity.js} +0 -0
  92. package/lib/cjs/Entity.js.map +1 -0
  93. package/lib/{ExportGraphics.d.ts → cjs/ExportGraphics.d.ts} +0 -0
  94. package/lib/cjs/ExportGraphics.d.ts.map +1 -0
  95. package/lib/{ExportGraphics.js → cjs/ExportGraphics.js} +0 -0
  96. package/lib/cjs/ExportGraphics.js.map +1 -0
  97. package/lib/{ExternalSource.d.ts → cjs/ExternalSource.d.ts} +0 -0
  98. package/lib/cjs/ExternalSource.d.ts.map +1 -0
  99. package/lib/{ExternalSource.js → cjs/ExternalSource.js} +0 -0
  100. package/lib/cjs/ExternalSource.js.map +1 -0
  101. package/lib/{GeometrySummary.d.ts → cjs/GeometrySummary.d.ts} +0 -0
  102. package/lib/cjs/GeometrySummary.d.ts.map +1 -0
  103. package/lib/{GeometrySummary.js → cjs/GeometrySummary.js} +0 -0
  104. package/lib/cjs/GeometrySummary.js.map +1 -0
  105. package/lib/{IModelCloneContext.d.ts → cjs/IModelCloneContext.d.ts} +0 -0
  106. package/lib/cjs/IModelCloneContext.d.ts.map +1 -0
  107. package/lib/{IModelCloneContext.js → cjs/IModelCloneContext.js} +0 -0
  108. package/lib/cjs/IModelCloneContext.js.map +1 -0
  109. package/lib/{IModelDb.d.ts → cjs/IModelDb.d.ts} +4 -6
  110. package/lib/cjs/IModelDb.d.ts.map +1 -0
  111. package/lib/{IModelDb.js → cjs/IModelDb.js} +99 -104
  112. package/lib/cjs/IModelDb.js.map +1 -0
  113. package/lib/{IModelHost.d.ts → cjs/IModelHost.d.ts} +1 -2
  114. package/lib/cjs/IModelHost.d.ts.map +1 -0
  115. package/lib/{IModelHost.js → cjs/IModelHost.js} +11 -6
  116. package/lib/cjs/IModelHost.js.map +1 -0
  117. package/lib/{IModelHubBackend.d.ts → cjs/IModelHubBackend.d.ts} +0 -0
  118. package/lib/cjs/IModelHubBackend.d.ts.map +1 -0
  119. package/lib/{IModelHubBackend.js → cjs/IModelHubBackend.js} +6 -6
  120. package/lib/cjs/IModelHubBackend.js.map +1 -0
  121. package/lib/{IModelJsFs.d.ts → cjs/IModelJsFs.d.ts} +0 -0
  122. package/lib/cjs/IModelJsFs.d.ts.map +1 -0
  123. package/lib/{IModelJsFs.js → cjs/IModelJsFs.js} +0 -0
  124. package/lib/cjs/IModelJsFs.js.map +1 -0
  125. package/lib/{IModelSchemaLoader.d.ts → cjs/IModelSchemaLoader.d.ts} +0 -0
  126. package/lib/cjs/IModelSchemaLoader.d.ts.map +1 -0
  127. package/lib/{IModelSchemaLoader.js → cjs/IModelSchemaLoader.js} +0 -0
  128. package/lib/cjs/IModelSchemaLoader.js.map +1 -0
  129. package/lib/{IpcHost.d.ts → cjs/IpcHost.d.ts} +0 -0
  130. package/lib/cjs/IpcHost.d.ts.map +1 -0
  131. package/lib/{IpcHost.js → cjs/IpcHost.js} +0 -0
  132. package/lib/cjs/IpcHost.js.map +1 -0
  133. package/lib/{LineStyle.d.ts → cjs/LineStyle.d.ts} +0 -0
  134. package/lib/cjs/LineStyle.d.ts.map +1 -0
  135. package/lib/{LineStyle.js → cjs/LineStyle.js} +0 -0
  136. package/lib/cjs/LineStyle.js.map +1 -0
  137. package/lib/{LocalhostIpcHost.d.ts → cjs/LocalhostIpcHost.d.ts} +0 -0
  138. package/lib/cjs/LocalhostIpcHost.d.ts.map +1 -0
  139. package/lib/{LocalhostIpcHost.js → cjs/LocalhostIpcHost.js} +0 -0
  140. package/lib/cjs/LocalhostIpcHost.js.map +1 -0
  141. package/lib/{Material.d.ts → cjs/Material.d.ts} +0 -0
  142. package/lib/cjs/Material.d.ts.map +1 -0
  143. package/lib/{Material.js → cjs/Material.js} +0 -0
  144. package/lib/cjs/Material.js.map +1 -0
  145. package/lib/{Model.d.ts → cjs/Model.d.ts} +0 -0
  146. package/lib/cjs/Model.d.ts.map +1 -0
  147. package/lib/{Model.js → cjs/Model.js} +1 -1
  148. package/lib/cjs/Model.js.map +1 -0
  149. package/lib/{NativeAppStorage.d.ts → cjs/NativeAppStorage.d.ts} +0 -0
  150. package/lib/cjs/NativeAppStorage.d.ts.map +1 -0
  151. package/lib/{NativeAppStorage.js → cjs/NativeAppStorage.js} +0 -0
  152. package/lib/cjs/NativeAppStorage.js.map +1 -0
  153. package/lib/{NativeHost.d.ts → cjs/NativeHost.d.ts} +2 -2
  154. package/lib/cjs/NativeHost.d.ts.map +1 -0
  155. package/lib/{NativeHost.js → cjs/NativeHost.js} +4 -1
  156. package/lib/cjs/NativeHost.js.map +1 -0
  157. package/lib/{NavigationRelationship.d.ts → cjs/NavigationRelationship.d.ts} +0 -0
  158. package/lib/cjs/NavigationRelationship.d.ts.map +1 -0
  159. package/lib/{NavigationRelationship.js → cjs/NavigationRelationship.js} +0 -0
  160. package/lib/cjs/NavigationRelationship.js.map +1 -0
  161. package/lib/{PromiseMemoizer.d.ts → cjs/PromiseMemoizer.d.ts} +0 -0
  162. package/lib/cjs/PromiseMemoizer.d.ts.map +1 -0
  163. package/lib/{PromiseMemoizer.js → cjs/PromiseMemoizer.js} +0 -0
  164. package/lib/cjs/PromiseMemoizer.js.map +1 -0
  165. package/lib/{Relationship.d.ts → cjs/Relationship.d.ts} +0 -0
  166. package/lib/cjs/Relationship.d.ts.map +1 -0
  167. package/lib/{Relationship.js → cjs/Relationship.js} +0 -0
  168. package/lib/cjs/Relationship.js.map +1 -0
  169. package/lib/{RpcBackend.d.ts → cjs/RpcBackend.d.ts} +0 -0
  170. package/lib/cjs/RpcBackend.d.ts.map +1 -0
  171. package/lib/{RpcBackend.js → cjs/RpcBackend.js} +0 -0
  172. package/lib/cjs/RpcBackend.js.map +1 -0
  173. package/lib/{SQLiteDb.d.ts → cjs/SQLiteDb.d.ts} +0 -0
  174. package/lib/cjs/SQLiteDb.d.ts.map +1 -0
  175. package/lib/{SQLiteDb.js → cjs/SQLiteDb.js} +0 -0
  176. package/lib/cjs/SQLiteDb.js.map +1 -0
  177. package/lib/{Schema.d.ts → cjs/Schema.d.ts} +0 -0
  178. package/lib/cjs/Schema.d.ts.map +1 -0
  179. package/lib/{Schema.js → cjs/Schema.js} +0 -0
  180. package/lib/cjs/Schema.js.map +1 -0
  181. package/lib/{ServerBasedLocks.d.ts → cjs/ServerBasedLocks.d.ts} +0 -0
  182. package/lib/cjs/ServerBasedLocks.d.ts.map +1 -0
  183. package/lib/{ServerBasedLocks.js → cjs/ServerBasedLocks.js} +0 -0
  184. package/lib/cjs/ServerBasedLocks.js.map +1 -0
  185. package/lib/{SqliteStatement.d.ts → cjs/SqliteStatement.d.ts} +0 -0
  186. package/lib/cjs/SqliteStatement.d.ts.map +1 -0
  187. package/lib/{SqliteStatement.js → cjs/SqliteStatement.js} +0 -0
  188. package/lib/cjs/SqliteStatement.js.map +1 -0
  189. package/lib/{Texture.d.ts → cjs/Texture.d.ts} +0 -0
  190. package/lib/cjs/Texture.d.ts.map +1 -0
  191. package/lib/{Texture.js → cjs/Texture.js} +0 -0
  192. package/lib/cjs/Texture.js.map +1 -0
  193. package/lib/{TxnManager.d.ts → cjs/TxnManager.d.ts} +0 -0
  194. package/lib/cjs/TxnManager.d.ts.map +1 -0
  195. package/lib/{TxnManager.js → cjs/TxnManager.js} +0 -0
  196. package/lib/cjs/TxnManager.js.map +1 -0
  197. package/lib/{ViewDefinition.d.ts → cjs/ViewDefinition.d.ts} +0 -0
  198. package/lib/cjs/ViewDefinition.d.ts.map +1 -0
  199. package/lib/{ViewDefinition.js → cjs/ViewDefinition.js} +0 -0
  200. package/lib/cjs/ViewDefinition.js.map +1 -0
  201. package/lib/{assets → cjs/assets}/IModelChange.02.00.00.ecschema.xml +0 -0
  202. package/lib/{core-backend.d.ts → cjs/core-backend.d.ts} +0 -0
  203. package/lib/cjs/core-backend.d.ts.map +1 -0
  204. package/lib/{core-backend.js → cjs/core-backend.js} +0 -0
  205. package/lib/cjs/core-backend.js.map +1 -0
  206. package/lib/{domains → cjs/domains}/FunctionalElements.d.ts +0 -0
  207. package/lib/cjs/domains/FunctionalElements.d.ts.map +1 -0
  208. package/lib/{domains → cjs/domains}/FunctionalElements.js +0 -0
  209. package/lib/cjs/domains/FunctionalElements.js.map +1 -0
  210. package/lib/{domains → cjs/domains}/FunctionalSchema.d.ts +0 -0
  211. package/lib/cjs/domains/FunctionalSchema.d.ts.map +1 -0
  212. package/lib/{domains → cjs/domains}/FunctionalSchema.js +0 -0
  213. package/lib/cjs/domains/FunctionalSchema.js.map +1 -0
  214. package/lib/{domains → cjs/domains}/GenericElements.d.ts +0 -0
  215. package/lib/cjs/domains/GenericElements.d.ts.map +1 -0
  216. package/lib/{domains → cjs/domains}/GenericElements.js +0 -0
  217. package/lib/cjs/domains/GenericElements.js.map +1 -0
  218. package/lib/{domains → cjs/domains}/GenericSchema.d.ts +0 -0
  219. package/lib/cjs/domains/GenericSchema.d.ts.map +1 -0
  220. package/lib/{domains → cjs/domains}/GenericSchema.js +0 -0
  221. package/lib/cjs/domains/GenericSchema.js.map +1 -0
  222. package/lib/{rpc-impl → cjs/rpc-impl}/DevToolsRpcImpl.d.ts +0 -0
  223. package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts.map +1 -0
  224. package/lib/{rpc-impl → cjs/rpc-impl}/DevToolsRpcImpl.js +0 -0
  225. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -0
  226. package/lib/{rpc-impl → cjs/rpc-impl}/IModelReadRpcImpl.d.ts +0 -0
  227. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -0
  228. package/lib/{rpc-impl → cjs/rpc-impl}/IModelReadRpcImpl.js +1 -1
  229. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -0
  230. package/lib/{rpc-impl → cjs/rpc-impl}/IModelTileRpcImpl.d.ts +0 -0
  231. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -0
  232. package/lib/{rpc-impl → cjs/rpc-impl}/IModelTileRpcImpl.js +6 -3
  233. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -0
  234. package/lib/{rpc-impl → cjs/rpc-impl}/RpcBriefcaseUtility.d.ts +0 -0
  235. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts.map +1 -0
  236. package/lib/{rpc-impl → cjs/rpc-impl}/RpcBriefcaseUtility.js +9 -8
  237. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -0
  238. package/lib/{rpc-impl → cjs/rpc-impl}/SnapshotIModelRpcImpl.d.ts +0 -0
  239. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts.map +1 -0
  240. package/lib/{rpc-impl → cjs/rpc-impl}/SnapshotIModelRpcImpl.js +1 -1
  241. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -0
  242. package/lib/{rpc-impl → cjs/rpc-impl}/WipRpcImpl.d.ts +1 -2
  243. package/lib/cjs/rpc-impl/WipRpcImpl.d.ts.map +1 -0
  244. package/lib/{rpc-impl → cjs/rpc-impl}/WipRpcImpl.js +1 -2
  245. package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -0
  246. package/package.json +37 -41
  247. package/lib/AliCloudStorageService.d.ts.map +0 -1
  248. package/lib/AliCloudStorageService.js.map +0 -1
  249. package/lib/BackendHubAccess.d.ts.map +0 -1
  250. package/lib/BackendHubAccess.js.map +0 -1
  251. package/lib/BackendLoggerCategory.d.ts.map +0 -1
  252. package/lib/BackendLoggerCategory.js.map +0 -1
  253. package/lib/BisCoreSchema.d.ts.map +0 -1
  254. package/lib/BisCoreSchema.js.map +0 -1
  255. package/lib/BriefcaseManager.d.ts.map +0 -1
  256. package/lib/BriefcaseManager.js.map +0 -1
  257. package/lib/Category.d.ts.map +0 -1
  258. package/lib/Category.js.map +0 -1
  259. package/lib/ChangeSummaryManager.d.ts.map +0 -1
  260. package/lib/ChangeSummaryManager.js.map +0 -1
  261. package/lib/ChangedElementsDb.d.ts.map +0 -1
  262. package/lib/ChangedElementsDb.js.map +0 -1
  263. package/lib/ChangedElementsManager.d.ts.map +0 -1
  264. package/lib/ChangedElementsManager.js.map +0 -1
  265. package/lib/CheckpointManager.d.ts.map +0 -1
  266. package/lib/CheckpointManager.js.map +0 -1
  267. package/lib/ClassRegistry.d.ts.map +0 -1
  268. package/lib/ClassRegistry.js.map +0 -1
  269. package/lib/CloudStorageBackend.d.ts.map +0 -1
  270. package/lib/CloudStorageBackend.js.map +0 -1
  271. package/lib/CodeSpecs.d.ts.map +0 -1
  272. package/lib/CodeSpecs.js.map +0 -1
  273. package/lib/ConcurrentQuery.d.ts.map +0 -1
  274. package/lib/ConcurrentQuery.js.map +0 -1
  275. package/lib/DevTools.d.ts.map +0 -1
  276. package/lib/DevTools.js.map +0 -1
  277. package/lib/DisplayStyle.d.ts.map +0 -1
  278. package/lib/DisplayStyle.js.map +0 -1
  279. package/lib/ECDb.d.ts.map +0 -1
  280. package/lib/ECDb.js.map +0 -1
  281. package/lib/ECSchemaXmlContext.d.ts.map +0 -1
  282. package/lib/ECSchemaXmlContext.js.map +0 -1
  283. package/lib/ECSqlStatement.d.ts.map +0 -1
  284. package/lib/ECSqlStatement.js.map +0 -1
  285. package/lib/Element.d.ts.map +0 -1
  286. package/lib/Element.js.map +0 -1
  287. package/lib/ElementAspect.d.ts.map +0 -1
  288. package/lib/ElementAspect.js.map +0 -1
  289. package/lib/ElementGraphics.d.ts.map +0 -1
  290. package/lib/ElementGraphics.js.map +0 -1
  291. package/lib/Entity.d.ts.map +0 -1
  292. package/lib/Entity.js.map +0 -1
  293. package/lib/ExportGraphics.d.ts.map +0 -1
  294. package/lib/ExportGraphics.js.map +0 -1
  295. package/lib/ExternalSource.d.ts.map +0 -1
  296. package/lib/ExternalSource.js.map +0 -1
  297. package/lib/GeometrySummary.d.ts.map +0 -1
  298. package/lib/GeometrySummary.js.map +0 -1
  299. package/lib/IModelCloneContext.d.ts.map +0 -1
  300. package/lib/IModelCloneContext.js.map +0 -1
  301. package/lib/IModelDb.d.ts.map +0 -1
  302. package/lib/IModelDb.js.map +0 -1
  303. package/lib/IModelHost.d.ts.map +0 -1
  304. package/lib/IModelHost.js.map +0 -1
  305. package/lib/IModelHubBackend.d.ts.map +0 -1
  306. package/lib/IModelHubBackend.js.map +0 -1
  307. package/lib/IModelJsFs.d.ts.map +0 -1
  308. package/lib/IModelJsFs.js.map +0 -1
  309. package/lib/IModelSchemaLoader.d.ts.map +0 -1
  310. package/lib/IModelSchemaLoader.js.map +0 -1
  311. package/lib/IpcHost.d.ts.map +0 -1
  312. package/lib/IpcHost.js.map +0 -1
  313. package/lib/LineStyle.d.ts.map +0 -1
  314. package/lib/LineStyle.js.map +0 -1
  315. package/lib/LocalhostIpcHost.d.ts.map +0 -1
  316. package/lib/LocalhostIpcHost.js.map +0 -1
  317. package/lib/Material.d.ts.map +0 -1
  318. package/lib/Material.js.map +0 -1
  319. package/lib/Model.d.ts.map +0 -1
  320. package/lib/Model.js.map +0 -1
  321. package/lib/NativeAppStorage.d.ts.map +0 -1
  322. package/lib/NativeAppStorage.js.map +0 -1
  323. package/lib/NativeHost.d.ts.map +0 -1
  324. package/lib/NativeHost.js.map +0 -1
  325. package/lib/NavigationRelationship.d.ts.map +0 -1
  326. package/lib/NavigationRelationship.js.map +0 -1
  327. package/lib/PromiseMemoizer.d.ts.map +0 -1
  328. package/lib/PromiseMemoizer.js.map +0 -1
  329. package/lib/Relationship.d.ts.map +0 -1
  330. package/lib/Relationship.js.map +0 -1
  331. package/lib/RpcBackend.d.ts.map +0 -1
  332. package/lib/RpcBackend.js.map +0 -1
  333. package/lib/SQLiteDb.d.ts.map +0 -1
  334. package/lib/SQLiteDb.js.map +0 -1
  335. package/lib/Schema.d.ts.map +0 -1
  336. package/lib/Schema.js.map +0 -1
  337. package/lib/ServerBasedLocks.d.ts.map +0 -1
  338. package/lib/ServerBasedLocks.js.map +0 -1
  339. package/lib/SqliteStatement.d.ts.map +0 -1
  340. package/lib/SqliteStatement.js.map +0 -1
  341. package/lib/Texture.d.ts.map +0 -1
  342. package/lib/Texture.js.map +0 -1
  343. package/lib/TxnManager.d.ts.map +0 -1
  344. package/lib/TxnManager.js.map +0 -1
  345. package/lib/ViewDefinition.d.ts.map +0 -1
  346. package/lib/ViewDefinition.js.map +0 -1
  347. package/lib/core-backend.d.ts.map +0 -1
  348. package/lib/core-backend.js.map +0 -1
  349. package/lib/domains/FunctionalElements.d.ts.map +0 -1
  350. package/lib/domains/FunctionalElements.js.map +0 -1
  351. package/lib/domains/FunctionalSchema.d.ts.map +0 -1
  352. package/lib/domains/FunctionalSchema.js.map +0 -1
  353. package/lib/domains/GenericElements.d.ts.map +0 -1
  354. package/lib/domains/GenericElements.js.map +0 -1
  355. package/lib/domains/GenericSchema.d.ts.map +0 -1
  356. package/lib/domains/GenericSchema.js.map +0 -1
  357. package/lib/rpc-impl/DevToolsRpcImpl.d.ts.map +0 -1
  358. package/lib/rpc-impl/DevToolsRpcImpl.js.map +0 -1
  359. package/lib/rpc-impl/IModelReadRpcImpl.d.ts.map +0 -1
  360. package/lib/rpc-impl/IModelReadRpcImpl.js.map +0 -1
  361. package/lib/rpc-impl/IModelTileRpcImpl.d.ts.map +0 -1
  362. package/lib/rpc-impl/IModelTileRpcImpl.js.map +0 -1
  363. package/lib/rpc-impl/RpcBriefcaseUtility.d.ts.map +0 -1
  364. package/lib/rpc-impl/RpcBriefcaseUtility.js.map +0 -1
  365. package/lib/rpc-impl/SnapshotIModelRpcImpl.d.ts.map +0 -1
  366. package/lib/rpc-impl/SnapshotIModelRpcImpl.js.map +0 -1
  367. package/lib/rpc-impl/WipRpcImpl.d.ts.map +0 -1
  368. package/lib/rpc-impl/WipRpcImpl.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CheckpointManager.js","sourceRoot":"","sources":["../../src/CheckpointManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module iModels\r\n */\r\n\r\n// cspell:ignore BLOCKCACHE\r\n\r\nimport * as path from \"path\";\r\nimport { BeEvent, ChangeSetStatus, DbResult, Guid, GuidString, IModelStatus, Logger, Mutable, OpenMode } from \"@itwin/core-bentley\";\r\nimport { BriefcaseIdValue, ChangesetId, ChangesetIdWithIndex, ChangesetIndexAndId, IModelError, IModelVersion, LocalDirName, LocalFileName } from \"@itwin/core-common\";\r\nimport { BlobDaemon, BlobDaemonCommandArg, IModelJsNative } from \"@bentley/imodeljs-native\";\r\nimport { BackendLoggerCategory } from \"./BackendLoggerCategory\";\r\nimport { BriefcaseManager } from \"./BriefcaseManager\";\r\nimport { SnapshotDb, TokenArg } from \"./IModelDb\";\r\nimport { IModelHost } from \"./IModelHost\";\r\nimport { IModelJsFs } from \"./IModelJsFs\";\r\n\r\nconst loggerCategory = BackendLoggerCategory.IModelDb;\r\n\r\n/**\r\n * Properties of a checkpoint\r\n * @public\r\n */\r\nexport interface CheckpointProps extends TokenArg {\r\n readonly expectV2?: boolean;\r\n\r\n /** iTwin that the iModel belongs to */\r\n readonly iTwinId: GuidString;\r\n\r\n /** Id of the iModel */\r\n readonly iModelId: GuidString;\r\n\r\n /** changeset for the checkpoint */\r\n readonly changeset: ChangesetIdWithIndex;\r\n\r\n /** The number of seconds before the current token expires to attempt to reacquire a new token. Default is 1 hour. */\r\n readonly reattachSafetySeconds?: number;\r\n}\r\n\r\n/** Called to show progress during a download. If this function returns non-zero, the download is aborted.\r\n * @public\r\n */\r\nexport type ProgressFunction = (loaded: number, total: number) => number;\r\n\r\n/** The parameters that specify a request to download a checkpoint file from iModelHub.\r\n * @internal\r\n */\r\nexport interface DownloadRequest {\r\n /** name of local file to hold the downloaded data. */\r\n localFile: LocalFileName;\r\n\r\n /** A list of full fileName paths to test before downloading. If a valid file exists by one of these names,\r\n * no download is performed and `localFile` is updated to reflect the fact that the file exists with that name.\r\n * This can be used, for example, to look for checkpoints from previous versions if the naming strategy changes.\r\n */\r\n readonly aliasFiles?: ReadonlyArray<string>;\r\n\r\n /** Properties of the checkpoint to be downloaded */\r\n readonly checkpoint: CheckpointProps;\r\n\r\n /** If present, this function will be called to indicate progress as the briefcase is downloaded. If this\r\n * function returns a non-zero value, the download is aborted.\r\n */\r\n readonly onProgress?: ProgressFunction;\r\n}\r\n\r\n/** @internal */\r\nexport interface DownloadJob {\r\n request: DownloadRequest;\r\n promise?: Promise<any>;\r\n}\r\n\r\n/** @internal */\r\nexport class Downloads {\r\n private static _active = new Map<string, DownloadJob>();\r\n\r\n private static async process<T>(job: DownloadJob, fn: (job: DownloadJob) => Promise<T>) {\r\n const jobName = job.request.localFile; // save this, it can change inside call to `fn`!\r\n this._active.set(jobName, job);\r\n try {\r\n return await fn(job);\r\n } finally {\r\n this._active.delete(jobName);\r\n }\r\n }\r\n\r\n public static isInProgress(pathName: LocalFileName): DownloadJob | undefined {\r\n return this._active.get(pathName);\r\n }\r\n\r\n public static async download<T>(request: DownloadRequest, downloadFn: (job: DownloadJob) => Promise<T>) {\r\n const pathName = request.localFile;\r\n let job = this.isInProgress(pathName);\r\n if (undefined !== job)\r\n return job.promise;\r\n\r\n IModelJsFs.recursiveMkDirSync(path.dirname(pathName));\r\n job = { request };\r\n return job.promise = this.process(job, downloadFn);\r\n }\r\n}\r\n\r\n/** Utility class for attaching to Daemon, opening V2 checkpoints, and downloading them.\r\n * @internal\r\n*/\r\nexport class V2CheckpointManager {\r\n private static async getCommandArgs(checkpoint: CheckpointProps): Promise<BlobDaemonCommandArg> {\r\n try {\r\n const v2props = await IModelHost.hubAccess.queryV2Checkpoint(checkpoint);\r\n if (!v2props)\r\n throw new Error(\"no checkpoint\");\r\n\r\n return { ...v2props, daemonDir: process.env.BLOCKCACHE_DIR, writeable: false };\r\n } catch (err: any) {\r\n throw new IModelError(IModelStatus.NotFound, `V2 checkpoint not found: err: ${err.message}`);\r\n }\r\n }\r\n\r\n public static async attach(checkpoint: CheckpointProps): Promise<{ filePath: LocalFileName, expiryTimestamp: number }> {\r\n const args = await this.getCommandArgs(checkpoint);\r\n if (undefined === args.daemonDir || args.daemonDir === \"\")\r\n throw new IModelError(IModelStatus.BadRequest, \"Invalid config: BLOCKCACHE_DIR is not set\");\r\n\r\n // We can assume that a BCVDaemon process is already started if BLOCKCACHE_DIR was set, so we need to just tell the daemon to attach to the Storage Container\r\n const attachResult = await BlobDaemon.command(\"attach\", args);\r\n if (attachResult.result !== DbResult.BE_SQLITE_OK) {\r\n const error = `Daemon attach failed: ${attachResult.errMsg}`;\r\n if (checkpoint.expectV2)\r\n Logger.logError(loggerCategory, error);\r\n\r\n throw new IModelError(attachResult.result, error);\r\n }\r\n const sasTokenExpiry = new URLSearchParams(args.auth).get(\"se\");\r\n\r\n return { filePath: BlobDaemon.getDbFileName(args), expiryTimestamp: sasTokenExpiry ? Date.parse(sasTokenExpiry) : 0 };\r\n }\r\n\r\n private static async performDownload(job: DownloadJob): Promise<ChangesetId> {\r\n CheckpointManager.onDownloadV2.raiseEvent(job);\r\n return IModelHost.hubAccess.downloadV2Checkpoint(job.request);\r\n }\r\n\r\n /** Fully download a V2 checkpoint to a local file that can be used to create a briefcase or to work offline.\r\n * @returns a Promise that is resolved when the download completes with the changesetId of the downloaded checkpoint (which will\r\n * be the same as the requested changesetId or the most recent checkpoint before it.)\r\n */\r\n public static async downloadCheckpoint(request: DownloadRequest): Promise<ChangesetId> {\r\n return Downloads.download(request, async (job: DownloadJob) => this.performDownload(job));\r\n }\r\n}\r\n\r\n/** Utility class to deal with downloading V1 checkpoints from iModelHub.\r\n * @internal\r\n */\r\nexport class V1CheckpointManager {\r\n public static getFolder(iModelId: GuidString): LocalDirName {\r\n return path.join(BriefcaseManager.getIModelPath(iModelId), \"checkpoints\");\r\n }\r\n\r\n public static getFileName(checkpoint: CheckpointProps): LocalFileName {\r\n const changeSetId = checkpoint.changeset.id || \"first\";\r\n return path.join(this.getFolder(checkpoint.iModelId), `${changeSetId}.bim`);\r\n }\r\n\r\n public static async getCheckpointDb(request: DownloadRequest): Promise<SnapshotDb> {\r\n const db = SnapshotDb.tryFindByKey(CheckpointManager.getKey(request.checkpoint));\r\n return (undefined !== db) ? db : Downloads.download(request, async (job: DownloadJob) => this.downloadAndOpen(job));\r\n }\r\n\r\n /** Download a V1 checkpoint */\r\n public static async downloadCheckpoint(request: DownloadRequest): Promise<ChangesetId> {\r\n return Downloads.download(request, async (job: DownloadJob) => this.performDownload(job));\r\n }\r\n\r\n private static async downloadAndOpen(job: DownloadJob) {\r\n const db = CheckpointManager.tryOpenLocalFile(job.request);\r\n if (db)\r\n return db;\r\n await this.performDownload(job);\r\n await CheckpointManager.updateToRequestedVersion(job.request);\r\n return SnapshotDb.openCheckpointV1(job.request.localFile, job.request.checkpoint);\r\n }\r\n\r\n private static async performDownload(job: DownloadJob): Promise<ChangesetId> {\r\n CheckpointManager.onDownloadV1.raiseEvent(job);\r\n return IModelHost.hubAccess.downloadV1Checkpoint(job.request);\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class CheckpointManager {\r\n public static readonly onDownloadV1 = new BeEvent<(job: DownloadJob) => void>();\r\n public static readonly onDownloadV2 = new BeEvent<(job: DownloadJob) => void>();\r\n public static getKey(checkpoint: CheckpointProps) { return `${checkpoint.iModelId}:${checkpoint.changeset.id}`; }\r\n\r\n private static async doDownload(request: DownloadRequest): Promise<ChangesetId> {\r\n try {\r\n // first see if there's a V2 checkpoint available.\r\n const changesetId = await V2CheckpointManager.downloadCheckpoint(request);\r\n Logger.logInfo(loggerCategory, `Downloaded v2 checkpoint: IModel=${request.checkpoint.iModelId}, changeset=${request.checkpoint.changeset.id}`);\r\n return changesetId;\r\n } catch (error) {\r\n if (error instanceof IModelError && error.errorNumber === IModelStatus.NotFound) // No V2 checkpoint available, try a v1 checkpoint\r\n return V1CheckpointManager.downloadCheckpoint(request);\r\n\r\n throw (error); // most likely, was aborted\r\n }\r\n }\r\n\r\n public static async updateToRequestedVersion(request: DownloadRequest) {\r\n const checkpoint = request.checkpoint;\r\n const targetFile = request.localFile;\r\n const traceInfo = { iTwinId: checkpoint.iTwinId, iModelId: checkpoint.iModelId, changeset: checkpoint.changeset };\r\n try {\r\n // Open checkpoint for write\r\n const db = SnapshotDb.openForApplyChangesets(targetFile);\r\n const nativeDb = db.nativeDb;\r\n\r\n try {\r\n if (nativeDb.hasPendingTxns()) {\r\n Logger.logWarning(loggerCategory, \"Checkpoint with Txns found - deleting them\", () => traceInfo);\r\n nativeDb.deleteAllTxns();\r\n }\r\n\r\n if (nativeDb.getBriefcaseId() !== BriefcaseIdValue.Unassigned)\r\n nativeDb.resetBriefcaseId(BriefcaseIdValue.Unassigned);\r\n\r\n CheckpointManager.validateCheckpointGuids(checkpoint, nativeDb);\r\n // Apply change sets if necessary\r\n const currentChangeset: Mutable<ChangesetIndexAndId> = nativeDb.getCurrentChangeset();\r\n if (currentChangeset.id !== checkpoint.changeset.id) {\r\n const accessToken = checkpoint.accessToken;\r\n const toIndex = checkpoint.changeset.index ??\r\n (await IModelHost.hubAccess.getChangesetFromVersion({ accessToken, iModelId: checkpoint.iModelId, version: IModelVersion.asOfChangeSet(checkpoint.changeset.id) })).index;\r\n await BriefcaseManager.pullAndApplyChangesets(db, { accessToken, toIndex });\r\n } else {\r\n // make sure the parent changeset index is saved in the file - old versions didn't have it.\r\n currentChangeset.index = checkpoint.changeset.index!;\r\n nativeDb.saveLocalValue(\"parentChangeSet\", JSON.stringify(currentChangeset));\r\n }\r\n } finally {\r\n db.saveChanges();\r\n db.close();\r\n }\r\n } catch (error: any) {\r\n\r\n Logger.logError(loggerCategory, \"Error downloading checkpoint - deleting it\", () => traceInfo);\r\n IModelJsFs.removeSync(targetFile);\r\n\r\n if (error.errorNumber === ChangeSetStatus.CorruptedChangeStream || error.errorNumber === ChangeSetStatus.InvalidId || error.errorNumber === ChangeSetStatus.InvalidVersion) {\r\n Logger.logError(loggerCategory, \"Detected potential corruption of change sets. Deleting them to enable retries\", () => traceInfo);\r\n BriefcaseManager.deleteChangeSetsFromLocalDisk(checkpoint.iModelId);\r\n }\r\n throw error;\r\n }\r\n }\r\n\r\n /** Download a checkpoint file from iModelHub into a local file specified in the request parameters. */\r\n public static async downloadCheckpoint(request: DownloadRequest): Promise<void> {\r\n if (this.verifyCheckpoint(request.checkpoint, request.localFile))\r\n return;\r\n\r\n if (request.aliasFiles) {\r\n for (const alias of request.aliasFiles) {\r\n if (this.verifyCheckpoint(request.checkpoint, alias)) {\r\n request.localFile = alias;\r\n return;\r\n }\r\n }\r\n }\r\n\r\n await this.doDownload(request);\r\n return this.updateToRequestedVersion(request);\r\n }\r\n\r\n /** checks a file's dbGuid & iTwinId for consistency, and updates the dbGuid when possible */\r\n public static validateCheckpointGuids(checkpoint: CheckpointProps, nativeDb: IModelJsNative.DgnDb) {\r\n const traceInfo = { iTwinId: checkpoint.iTwinId, iModelId: checkpoint.iModelId };\r\n\r\n const dbChangeset = nativeDb.getCurrentChangeset();\r\n const iModelId = Guid.normalize(nativeDb.getIModelId());\r\n if (iModelId !== Guid.normalize(checkpoint.iModelId)) {\r\n if (nativeDb.isReadonly())\r\n throw new IModelError(IModelStatus.ValidationFailed, \"iModelId is not properly set up in the checkpoint\");\r\n\r\n Logger.logWarning(loggerCategory, \"iModelId is not properly set up in the checkpoint. Updated checkpoint to the correct iModelId.\", () => ({ ...traceInfo, dbGuid: iModelId }));\r\n nativeDb.setIModelId(Guid.normalize(checkpoint.iModelId));\r\n // Required to reset the ChangeSetId because setDbGuid clears the value.\r\n nativeDb.saveLocalValue(\"ParentChangeSetId\", dbChangeset.id);\r\n if (undefined !== dbChangeset.index)\r\n nativeDb.saveLocalValue(\"parentChangeSet\", JSON.stringify(dbChangeset));\r\n }\r\n\r\n const iTwinId = Guid.normalize(nativeDb.getITwinId());\r\n if (iTwinId !== Guid.normalize(checkpoint.iTwinId))\r\n throw new IModelError(IModelStatus.ValidationFailed, \"iTwinId was not properly set up in the checkpoint\");\r\n }\r\n\r\n /** @returns true if the file is the checkpoint requested */\r\n public static verifyCheckpoint(checkpoint: CheckpointProps, fileName: LocalFileName): boolean {\r\n if (!IModelJsFs.existsSync(fileName))\r\n return false;\r\n\r\n const nativeDb = new IModelHost.platform.DgnDb();\r\n try {\r\n nativeDb.openIModel(fileName, OpenMode.Readonly);\r\n } catch (error) {\r\n return false;\r\n }\r\n\r\n const isValid = checkpoint.iModelId === nativeDb.getIModelId() && checkpoint.changeset.id === nativeDb.getCurrentChangeset().id;\r\n nativeDb.closeIModel();\r\n if (!isValid)\r\n IModelJsFs.removeSync(fileName);\r\n\r\n return isValid;\r\n }\r\n\r\n /** try to open an existing local file to satisfy a download request */\r\n public static tryOpenLocalFile(request: DownloadRequest): SnapshotDb | undefined {\r\n const checkpoint = request.checkpoint;\r\n if (this.verifyCheckpoint(checkpoint, request.localFile))\r\n return SnapshotDb.openCheckpointV1(request.localFile, checkpoint);\r\n\r\n // check a list of aliases for finding checkpoints downloaded to non-default locations (e.g. from older versions)\r\n if (request.aliasFiles) {\r\n for (const alias of request.aliasFiles) {\r\n if (this.verifyCheckpoint(checkpoint, alias)) {\r\n request.localFile = alias;\r\n return SnapshotDb.openCheckpointV1(alias, checkpoint);\r\n }\r\n }\r\n }\r\n return undefined;\r\n }\r\n}\r\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassRegistry.d.ts","sourceRoot":"","sources":["../../src/ClassRegistry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAW,MAAM,UAAU,CAAC;AAG3C;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAoC;IACrE,gBAAgB;WACF,eAAe,CAAC,GAAG,EAAE,GAAG;IACtC,gBAAgB;WACF,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW;IACvE,gBAAgB;WACF,QAAQ,CAAC,WAAW,EAAE,OAAO,MAAM,EAAE,MAAM,EAAE,OAAO,MAAM;IAYxE,yEAAyE;IACzE,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAWlC;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,sBAAsB;IAgCrC;;;OAGG;WACW,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,MAAM;IAQlE;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa;IAa5B;;;;OAIG;WACW,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,MAAM,GAAG,SAAS;IAInF;;;;OAIG;WACW,QAAQ,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,OAAO,MAAM;IAM9E;;;;;OAKG;WACW,eAAe,CAAC,aAAa,EAAE,MAAM;IACnD;;;;OAIG;WACW,qBAAqB,CAAC,MAAM,EAAE,OAAO,MAAM;CAM1D;AAED;;;GAGG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAkE;IAEnF,wCAAwC;IACjC,IAAI,CAAC,aAAa,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAE9D,gCAAgC;IACzB,GAAG,CAAC,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;CAClE"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClassRegistry.js","sourceRoot":"","sources":["../../src/ClassRegistry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Schema\n */\n\nimport { IModelStatus, Logger } from \"@itwin/core-bentley\";\nimport { EntityMetaData, IModelError } from \"@itwin/core-common\";\nimport { Entity } from \"./Entity\";\nimport { IModelDb } from \"./IModelDb\";\nimport { Schema, Schemas } from \"./Schema\";\nimport { IModelSchemaLoader } from \"./IModelSchemaLoader\";\n\n/** The mapping between a BIS class name (in the form \"schema:class\") and its JavaScript constructor function\n * @public\n */\nexport class ClassRegistry {\n private static readonly _classMap = new Map<string, typeof Entity>();\n /** @internal */\n public static isNotFoundError(err: any) { return (err instanceof IModelError) && (err.errorNumber === IModelStatus.NotFound); }\n /** @internal */\n public static makeMetaDataNotFoundError(className: string): IModelError { return new IModelError(IModelStatus.NotFound, `metadata not found for ${className}`); }\n /** @internal */\n public static register(entityClass: typeof Entity, schema: typeof Schema) {\n entityClass.schema = schema;\n const key = (`${schema.schemaName}:${entityClass.className}`).toLowerCase();\n if (this._classMap.has(key)) {\n const errMsg = `Class ${key} is already registered. Make sure static className member is correct on JavaScript class ${entityClass.name}`;\n Logger.logError(\"core-frontend.classRegistry\", errMsg);\n throw new Error(errMsg);\n }\n\n this._classMap.set(key, entityClass);\n }\n\n /** Generate a proxy Schema for a domain that has not been registered. */\n private static generateProxySchema(domain: string, iModel: IModelDb): typeof Schema {\n const hasBehavior = undefined !== new IModelSchemaLoader(iModel).getSchema(domain).customAttributes?.get(\"BisCore.SchemaHasBehavior\");\n const schemaClass = class extends Schema {\n public static override get schemaName() { return domain; }\n public static override get missingRequiredBehavior() { return hasBehavior; }\n };\n\n Schemas.registerSchema(schemaClass); // register the class before we return it.\n return schemaClass;\n }\n\n /** Generate a JavaScript class from Entity metadata.\n * @param entityMetaData The Entity metadata that defines the class\n */\n private static generateClassForEntity(entityMetaData: EntityMetaData, iModel: IModelDb): typeof Entity {\n const name = entityMetaData.ecclass.split(\":\");\n const domainName = name[0];\n const className = name[1];\n\n if (0 === entityMetaData.baseClasses.length) // metadata must contain a superclass\n throw new IModelError(IModelStatus.BadArg, `class ${name} has no superclass`);\n\n // make sure schema exists\n let schema = Schemas.getRegisteredSchema(domainName);\n if (undefined === schema)\n schema = this.generateProxySchema(domainName, iModel); // no schema found, create it too\n\n // this method relies on the caller having previously created/registered all superclasses\n const superclass = this._classMap.get(entityMetaData.baseClasses[0].toLowerCase());\n if (undefined === superclass)\n throw new IModelError(IModelStatus.NotFound, `cannot find superclass for class ${name}`);\n\n const generatedClass = class extends superclass { public static override get className() { return className; } };\n // the above line creates an anonymous class. For help debugging, set the \"constructor.name\" property to be the same as the bisClassName.\n Object.defineProperty(generatedClass, \"name\", { get: () => className }); // this is the (only) way to change that readonly property.\n\n // if the schema is a proxy for a domain with behavior, throw exceptions for all protected operations\n if (schema.missingRequiredBehavior) {\n const throwError = () => { throw new IModelError(IModelStatus.WrongHandler, `Schema [${domainName}] not registered, but is marked with SchemaHasBehavior`); };\n superclass.protectedOperations.forEach((operation) => (generatedClass as any)[operation] = throwError);\n }\n\n this.register(generatedClass, schema); // register it before returning\n return generatedClass;\n }\n\n /** Register all of the classes found in the given module that derive from Entity. See the example in [[Schema]]\n * @param moduleObj The module to search for subclasses of Entity\n * @param schema The schema for all found classes\n */\n public static registerModule(moduleObj: any, schema: typeof Schema) {\n for (const thisMember in moduleObj) { // eslint-disable-line guard-for-in\n const thisClass = moduleObj[thisMember];\n if (thisClass.prototype instanceof Entity)\n this.register(thisClass, schema);\n }\n }\n\n /**\n * This function fetches the specified Entity from the imodel, generates a JavaScript class for it, and registers the generated\n * class. This function also ensures that all of the base classes of the Entity exist and are registered.\n */\n private static generateClass(classFullName: string, iModel: IModelDb): typeof Entity {\n const metadata: EntityMetaData | undefined = iModel.classMetaDataRegistry.find(classFullName);\n if (metadata === undefined || metadata.ecclass === undefined)\n throw this.makeMetaDataNotFoundError(classFullName);\n\n // Make sure we have all base classes registered.\n if (metadata.baseClasses && (0 !== metadata.baseClasses.length))\n this.getClass(metadata.baseClasses[0], iModel);\n\n // Now we can generate the class from the classDef.\n return this.generateClassForEntity(metadata, iModel);\n }\n\n /** Find a registered class by classFullName.\n * @param classFullName class to find\n * @param iModel The IModel that contains the class definitions\n * @returns The Entity class or undefined\n */\n public static findRegisteredClass(classFullName: string): typeof Entity | undefined {\n return this._classMap.get(classFullName.toLowerCase());\n }\n\n /** Get the Entity class for the specified Entity className.\n * @param classFullName The full BIS class name of the Entity\n * @param iModel The IModel that contains the class definitions\n * @returns The Entity class\n */\n public static getClass(classFullName: string, iModel: IModelDb): typeof Entity {\n const key = classFullName.toLowerCase();\n const ctor = this._classMap.get(key);\n return ctor ? ctor : this.generateClass(key, iModel);\n }\n\n /** Unregister a class, by name, if one is already registered.\n * This function is not normally needed, but is useful for cases where a generated *proxy* class needs to be replaced by the *real* class.\n * @param classFullName Name of the class to unregister\n * @return true if the class was unregistered\n * @internal\n */\n public static unregisterCLass(classFullName: string) { return this._classMap.delete(classFullName.toLowerCase()); }\n /** Unregister all classes from a schema.\n * This function is not normally needed, but is useful for cases where a generated *proxy* schema needs to be replaced by the *real* schema.\n * @param schema Name of the schema to unregister\n * @internal\n */\n public static unregisterClassesFrom(schema: typeof Schema) {\n for (const entry of Array.from(this._classMap)) {\n if (entry[1].schema === schema)\n this.unregisterCLass(entry[0]);\n }\n }\n}\n\n/**\n * A cache that records the mapping between class names and class metadata\n * @internal\n */\nexport class MetaDataRegistry {\n private _registry: Map<string, EntityMetaData> = new Map<string, EntityMetaData>();\n\n /** Get the specified Entity metadata */\n public find(classFullName: string): EntityMetaData | undefined { return this._registry.get(classFullName.toLowerCase()); }\n\n /** Add metadata to the cache */\n public add(classFullName: string, metaData: EntityMetaData): void { this._registry.set(classFullName.toLowerCase(), metaData); }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudStorageBackend.d.ts","sourceRoot":"","sources":["../../src/CloudStorageBackend.ts"],"names":[],"mappings":";AAIA,OAAO,EAAe,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAI/C,OAAO,EACU,+BAA+B,EAAE,wBAAwB,EAAE,oBAAoB,EAAsC,cAAc,EAEnJ,MAAM,oBAAoB,CAAC;AAI5B,YAAY;AACZ,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IAC3C,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,YAAY;AACZ,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,YAAY;AACZ,8BAAsB,mBAAmB;IAChC,UAAU,IAAI,IAAI;IAClB,SAAS,IAAI,IAAI;IACxB,SAAgB,EAAE,EAAE,oBAAoB,CAAC;aACzB,kBAAkB,CAAC,EAAE,EAAE,+BAA+B,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,wBAAwB;aAClH,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,yBAAyB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IACrI,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,CAAC;IAEnE,SAAS,CAAC,cAAc,CAAC,EAAE,EAAE,+BAA+B;;;;CAG7D;AAED,YAAY;AACZ,qBAAa,gBAAiB,SAAQ,mBAAmB;IACvD,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,WAAW,CAAmC;gBAEnC,WAAW,EAAE,8BAA8B;IAa9D,SAAgB,EAAE,8BAA8B;IAEzC,kBAAkB,CAAC,EAAE,EAAE,+BAA+B,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,wBAAwB;IAuB5G,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5C,MAAM,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,yBAAyB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA4ChJ;AAED,gBAAgB;AAChB,qBAAa,wBAAwB;IACnC,OAAO,CAAC,cAAc,CAAyC;IAE/D,IAAW,aAAa,IAAI,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAElD;YAEa,aAAa;IAoBd,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAevK"}
@@ -66,7 +66,7 @@ class AzureBlobStorage extends CloudStorageService {
66
66
  return;
67
67
  }
68
68
  }
69
- catch (_a) { }
69
+ catch { }
70
70
  if (typeof (maybeErr) !== "undefined" && maybeErr) {
71
71
  throw maybeErr;
72
72
  }
@@ -86,7 +86,7 @@ class AzureBlobStorage extends CloudStorageService {
86
86
  const blobOptions = metadata ?
87
87
  {
88
88
  blobHTTPHeaders,
89
- metadata: Object.assign({}, metadata),
89
+ metadata: { ...metadata },
90
90
  } : {
91
91
  blobHTTPHeaders,
92
92
  };
@@ -130,7 +130,7 @@ class CloudStorageTileUploader {
130
130
  if (IModelHost_1.IModelHost.compressCachedTiles) {
131
131
  options.contentEncoding = "gzip";
132
132
  }
133
- const perfInfo = Object.assign(Object.assign({}, id.tokenProps), { treeId: id.treeId, contentId: id.contentId, size: content.byteLength, compress: IModelHost_1.IModelHost.compressCachedTiles });
133
+ const perfInfo = { ...id.tokenProps, treeId: id.treeId, contentId: id.contentId, size: content.byteLength, compress: IModelHost_1.IModelHost.compressCachedTiles };
134
134
  const perfLogger = new core_bentley_1.PerfLogger("Uploading tile to external tile cache", () => perfInfo);
135
135
  await IModelHost_1.IModelHost.tileCacheService.upload(containerKey, resourceKey, content, options, metadata);
136
136
  perfLogger.dispose();
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CloudStorageBackend.js","sourceRoot":"","sources":["../../src/CloudStorageBackend.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\nimport { PassThrough, Readable } from \"stream\";\nimport * as zlib from \"zlib\";\nimport * as Azure from \"@azure/storage-blob\";\nimport { Logger, PerfLogger } from \"@itwin/core-bentley\";\nimport {\n BentleyStatus, CloudStorageContainerDescriptor, CloudStorageContainerUrl, CloudStorageProvider, CloudStorageTileCache, IModelError, IModelRpcProps,\n TileContentIdentifier,\n} from \"@itwin/core-common\";\nimport { BackendLoggerCategory } from \"./BackendLoggerCategory\";\nimport { IModelHost } from \"./IModelHost\";\n\n/** @beta */\nexport interface CloudStorageServiceCredentials {\n service: \"azure\" | \"alicloud\" | \"external\";\n account: string;\n accessKey: string;\n}\n\n/** @beta */\nexport interface CloudStorageUploadOptions {\n type?: string;\n cacheControl?: string;\n contentEncoding?: \"gzip\";\n}\n\n/** @beta */\nexport abstract class CloudStorageService {\n public initialize(): void { }\n public terminate(): void { }\n public abstract id: CloudStorageProvider;\n public abstract obtainContainerUrl(id: CloudStorageContainerDescriptor, expiry: Date, clientIp?: string): CloudStorageContainerUrl;\n public abstract upload(container: string, name: string, data: Uint8Array, options?: CloudStorageUploadOptions, metadata?: object): Promise<string>;\n public async download(_name: string): Promise<Readable | undefined> { return undefined; }\n\n protected makeDescriptor(id: CloudStorageContainerDescriptor) {\n return { name: id.name, provider: this.id };\n }\n}\n\n/** @beta */\nexport class AzureBlobStorage extends CloudStorageService {\n private _service: Azure.BlobServiceClient;\n private _credential: Azure.StorageSharedKeyCredential;\n\n public constructor(credentials: CloudStorageServiceCredentials) {\n super();\n\n if (credentials.service !== \"azure\" || !credentials.account || !credentials.accessKey) {\n throw new IModelError(BentleyStatus.ERROR, \"Invalid credentials for Azure blob storage.\");\n }\n\n this._credential = new Azure.StorageSharedKeyCredential(credentials.account, credentials.accessKey);\n const options: Azure.StoragePipelineOptions = {};\n const pipeline = Azure.newPipeline(this._credential, options);\n this._service = new Azure.BlobServiceClient(`https://${credentials.account}.blob.core.windows.net`, pipeline);\n }\n\n public readonly id = CloudStorageProvider.Azure;\n\n public obtainContainerUrl(id: CloudStorageContainerDescriptor, expiry: Date, clientIp?: string): CloudStorageContainerUrl {\n const policy: Azure.BlobSASSignatureValues = {\n containerName: id.name,\n permissions: Azure.ContainerSASPermissions.parse(\"rl\"),\n expiresOn: expiry,\n };\n\n if (clientIp && clientIp !== \"localhost\" && clientIp !== \"127.0.0.1\" && clientIp !== \"::1\") {\n policy.ipRange = { start: clientIp };\n }\n\n const token = Azure.generateBlobSASQueryParameters(policy, this._credential);\n\n const url: CloudStorageContainerUrl = {\n descriptor: this.makeDescriptor(id),\n valid: 0,\n expires: expiry.getTime(),\n url: `https://${this._credential.accountName}.blob.core.windows.net/${id.name}?${token.toString()}`,\n };\n\n return url;\n }\n\n public async ensureContainer(name: string): Promise<void> {\n try {\n const container = this._service.getContainerClient(name);\n await container.create();\n return;\n } catch (maybeErr) {\n try {\n const err = maybeErr as Azure.RestError;\n if (err.statusCode === 409 && err.code === \"ContainerAlreadyExists\") {\n return;\n }\n } catch { }\n\n if (typeof (maybeErr) !== \"undefined\" && maybeErr) {\n throw maybeErr;\n }\n\n throw new IModelError(BentleyStatus.ERROR, `Unable to create container \"${name}\".`);\n }\n }\n\n public async upload(container: string, name: string, data: Uint8Array, options?: CloudStorageUploadOptions, metadata?: object): Promise<string> {\n try {\n await this.ensureContainer(container);\n\n const containerClient = this._service.getContainerClient(container);\n const blocks = containerClient.getBlockBlobClient(name);\n const blobHTTPHeaders = {\n blobContentType: options?.type ?? \"application/octet-stream\",\n blobCacheControl: options?.cacheControl ?? \"private, max-age=31536000, immutable\",\n };\n\n const blobOptions: Azure.BlockBlobUploadStreamOptions = metadata ?\n {\n blobHTTPHeaders,\n metadata: { ...metadata },\n } : {\n blobHTTPHeaders,\n };\n\n const dataStream = new PassThrough();\n dataStream.end(data);\n\n let source: Readable;\n\n if (options && options.contentEncoding === \"gzip\") {\n blobOptions.blobHTTPHeaders!.blobContentEncoding = options.contentEncoding;\n const compressor = zlib.createGzip();\n source = dataStream.pipe(compressor);\n } else {\n source = dataStream;\n }\n\n const blockSize = 100 * 1024 * 1024;\n const concurrency = 1;\n const result = await blocks.uploadStream(source, blockSize, concurrency, blobOptions);\n return result.etag ?? \"\";\n } catch (maybeErr) {\n if (typeof (maybeErr) !== \"undefined\" && maybeErr) {\n throw maybeErr;\n }\n\n throw new IModelError(BentleyStatus.ERROR, `Unable to upload \"${name}\".`);\n }\n }\n}\n\n/** @internal */\nexport class CloudStorageTileUploader {\n private _activeUploads: Map<string, Promise<void>> = new Map();\n\n public get activeUploads(): Iterable<Promise<void>> {\n return this._activeUploads.values();\n }\n\n private async uploadToCache(id: TileContentIdentifier, content: Uint8Array, containerKey: string, resourceKey: string, metadata?: object,) {\n await new Promise((resolve) => setTimeout(resolve));\n\n try {\n const options: CloudStorageUploadOptions = {};\n if (IModelHost.compressCachedTiles) {\n options.contentEncoding = \"gzip\";\n }\n\n const perfInfo = { ...id.tokenProps, treeId: id.treeId, contentId: id.contentId, size: content.byteLength, compress: IModelHost.compressCachedTiles };\n const perfLogger = new PerfLogger(\"Uploading tile to external tile cache\", () => perfInfo);\n await IModelHost.tileCacheService.upload(containerKey, resourceKey, content, options, metadata);\n perfLogger.dispose();\n } catch (err) {\n Logger.logError(BackendLoggerCategory.IModelTileUpload, (err instanceof Error) ? err.toString() : JSON.stringify(err));\n }\n\n this._activeUploads.delete(containerKey + resourceKey);\n }\n\n public async cacheTile(tokenProps: IModelRpcProps, treeId: string, contentId: string, content: Uint8Array, guid: string | undefined, metadata?: object): Promise<void> {\n const id: TileContentIdentifier = { tokenProps, treeId, contentId, guid };\n\n const cache = CloudStorageTileCache.getCache();\n const containerKey = cache.formContainerName(id);\n const resourceKey = cache.formResourceName(id);\n const key = containerKey + resourceKey;\n\n if (this._activeUploads.has(key))\n return;\n\n const promise = this.uploadToCache(id, content, containerKey, resourceKey, metadata);\n this._activeUploads.set(key, promise);\n await promise;\n }\n}\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeSpecs.d.ts","sourceRoot":"","sources":["../../src/CodeSpecs.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAkB,UAAU,EAAgB,MAAM,qBAAqB,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;GAEG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,gBAAgB,CAAkB;gBAE9B,MAAM,EAAE,QAAQ;IAO5B,8DAA8D;IACvD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU;IASxC;;;;OAIG;IACI,OAAO,CAAC,UAAU,EAAE,UAAU,GAAG,QAAQ;IAehD,uEAAuE;IAChE,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO;IAQ7C;;;;OAIG;IACI,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ;IAWxC,yEAAyE;IAClE,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAQrC;;;;;OAKG;IACI,MAAM,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU;IAC7C;;;;;OAKG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,CAAC,IAAI,GAAG,UAAU;IAgBtE;;OAEG;IACI,IAAI,CAAC,EAAE,EAAE,UAAU,GAAG,QAAQ;CAatC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeSpecs.js","sourceRoot":"","sources":["../../src/CodeSpecs.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Codes\n */\n\nimport { DbResult, Id64, Id64String, IModelStatus } from \"@itwin/core-bentley\";\nimport { CodeScopeSpec, CodeSpec, IModelError } from \"@itwin/core-common\";\nimport { ECSqlStatement } from \"./ECSqlStatement\";\nimport { IModelDb } from \"./IModelDb\";\n\n/** Manages [CodeSpecs]($docs/BIS/intro/element-fundamentals.md#codespec) within an [[IModelDb]]\n * @public\n */\nexport class CodeSpecs {\n private _imodel: IModelDb;\n private _loadedCodeSpecs: CodeSpec[] = [];\n\n constructor(imodel: IModelDb) {\n this._imodel = imodel;\n if (imodel.isBriefcaseDb()) {\n imodel.onChangesetApplied.addListener(() => this._loadedCodeSpecs.length = 0);\n }\n }\n\n /** Look up the Id of the CodeSpec with the specified name. */\n public queryId(name: string): Id64String {\n return this._imodel.withPreparedStatement(\"SELECT ECInstanceId FROM BisCore.CodeSpec WHERE Name=:name\", (stmt: ECSqlStatement) => {\n stmt.bindString(\"name\", name);\n if (DbResult.BE_SQLITE_ROW !== stmt.step())\n throw new IModelError(IModelStatus.NotFound, \"CodeSpec not found\", () => ({ name }));\n return stmt.getValue(0).getId();\n });\n }\n\n /** Look up a CodeSpec by Id. The CodeSpec will be loaded from the database if necessary.\n * @param codeSpecId The Id of the CodeSpec to load\n * @returns The CodeSpec with the specified Id\n * @throws [[IModelError]] if the Id is invalid or if no CodeSpec with that Id could be found.\n */\n public getById(codeSpecId: Id64String): CodeSpec {\n if (Id64.isInvalid(codeSpecId))\n throw new IModelError(IModelStatus.InvalidId, \"Invalid codeSpecId\");\n\n // good chance it is already loaded - check there before running a query\n const found: CodeSpec | undefined = this._loadedCodeSpecs.find((codeSpec) => codeSpec.id === codeSpecId);\n if (found !== undefined)\n return found;\n\n // must load this codespec\n const loadedCodeSpec = this.load(codeSpecId);\n this._loadedCodeSpecs.push(loadedCodeSpec);\n return loadedCodeSpec;\n }\n\n /** Returns true if the IModelDb has a CodeSpec of the specified Id. */\n public hasId(codeSpecId: Id64String): boolean {\n try {\n return undefined !== this.getById(codeSpecId);\n } catch (error) {\n return false;\n }\n }\n\n /** Look up a CodeSpec by name. The CodeSpec will be loaded from the database if necessary.\n * @param name The name of the CodeSpec to load\n * @returns The CodeSpec with the specified name\n * @throws [[IModelError]] if no CodeSpec with the specified name could be found.\n */\n public getByName(name: string): CodeSpec {\n // good chance it is already loaded - check there before running a query\n const found: CodeSpec | undefined = this._loadedCodeSpecs.find((codeSpec) => codeSpec.name === name);\n if (found !== undefined)\n return found;\n const codeSpecId = this.queryId(name);\n if (codeSpecId === undefined)\n throw new IModelError(IModelStatus.NotFound, \"CodeSpec not found\", () => ({ name }));\n return this.getById(codeSpecId);\n }\n\n /** Returns true if the IModelDb has a CodeSpec of the specified name. */\n public hasName(name: string): boolean {\n try {\n return undefined !== this.getByName(name);\n } catch (error) {\n return false;\n }\n }\n\n /** Add a new CodeSpec to the iModel.\n * @param codeSpec The CodeSpec to insert\n * @returns The Id of the persistent CodeSpec.\n * @note If successful, this method will assign a valid CodeSpecId to the supplied CodeSpec\n * @throws IModelError if the insertion fails\n */\n public insert(codeSpec: CodeSpec): Id64String;\n /** Add a new CodeSpec to the IModelDb.\n * @param name The name for the new CodeSpec.\n * @param scopeType The scope type\n * @returns The Id of the persistent CodeSpec.\n * @throws IModelError if the insertion fails\n */\n public insert(name: string, scopeType: CodeScopeSpec.Type): Id64String;\n public insert(codeSpecOrName: CodeSpec | string, scopeType?: CodeScopeSpec.Type): Id64String {\n if (codeSpecOrName instanceof CodeSpec) {\n const codeSpec = codeSpecOrName;\n const id: Id64String = this._imodel.insertCodeSpec(codeSpec);\n codeSpec.id = id;\n return id;\n }\n if (typeof codeSpecOrName === \"string\") {\n const name = codeSpecOrName;\n if (scopeType)\n return this._imodel.insertCodeSpec(CodeSpec.create(this._imodel, name, scopeType));\n }\n throw new IModelError(IModelStatus.BadArg, \"Invalid argument\");\n }\n\n /** Load a CodeSpec from the iModel\n * @param id The persistent Id of the CodeSpec to load\n */\n public load(id: Id64String): CodeSpec {\n if (Id64.isInvalid(id))\n throw new IModelError(IModelStatus.InvalidId, \"Invalid codeSpecId\");\n\n return this._imodel.withPreparedStatement(\"SELECT name,jsonProperties FROM BisCore.CodeSpec WHERE ECInstanceId=?\", (stmt: ECSqlStatement) => {\n stmt.bindId(1, id);\n if (DbResult.BE_SQLITE_ROW !== stmt.step())\n throw new IModelError(IModelStatus.InvalidId, \"Invalid codeSpecId\");\n\n const row: any = stmt.getRow();\n return CodeSpec.createFromJson(this._imodel, id, row.name, JSON.parse(row.jsonProperties));\n });\n }\n}\n"]}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrentQuery.d.ts","sourceRoot":"","sources":["../../src/ConcurrentQuery.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,yEAAyE;IACzE,+BAA+B,CAAC,EAAE,MAAM,CAAC;IACzC,2EAA2E;IAC3E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,+DAA+D;IAC/D,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,4EAA4E;IAC5E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qCAAqC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,qCAAqC;IACrC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mDAAmD;IACnD,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,+HAA+H;IAC/H,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,wEAAwE;IACxE,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAChC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConcurrentQuery.js","sourceRoot":"","sources":["../../src/ConcurrentQuery.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\nimport { QueryQuota } from \"@itwin/core-common\";\r\n\r\n/** Configuration for concurrent query manager\r\n * @internal\r\n */\r\nexport interface Config {\r\n /** Time seconds after which any completed query result will be purged */\r\n autoExpireTimeForCompletedQuery?: number;\r\n /** Number of concurrent worker to use. By default set to available CPUs */\r\n concurrent?: number;\r\n /** Number of ECSQL cached statement held by a single worker */\r\n cachedStatementsPerThread?: number;\r\n /** Maximum size of query queue after which incoming queries are rejected */\r\n maxQueueSize?: number;\r\n /** Minimum time interval in seconds after which monitor starts. */\r\n minMonitorInterval?: number;\r\n /** idle period of time in seconds after which resources and caches are purged */\r\n idleCleanupTime?: number;\r\n /** Poll interval in milliseconds. */\r\n pollInterval?: number;\r\n /** Global restriction on query quota */\r\n quota?: QueryQuota;\r\n /** Use sqlite shared cache option */\r\n useSharedCache?: boolean;\r\n /** Read uncommitted read for better performance */\r\n useUncommittedRead?: boolean;\r\n /** Reset statistics after query manager is not used for following amount of time in minutes. Cannot be less then 10 minutes */\r\n resetStatisticsInterval?: number;\r\n /** Log statistics interval in minutes. Cannot be less then 5 minutes */\r\n logStatisticsInterval?: number;\r\n}\r\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevTools.d.ts","sourceRoot":"","sources":["../../src/DevTools.ts"],"names":[],"mappings":";AAKA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAU,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAYvD;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,oBAAoB,CAAC;CAC/B;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;CACjC;AAED;;GAEG;AACH,qBAAa,sBAAsB;IACjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAuE;IAC7G,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAsD;IAC3F,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAa;IAC9C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAc;IAEnD,wEAAwE;IACxE,OAAO,CAAC,MAAM,CAAC,SAAS,CAUtB;IAEF,0GAA0G;WAC5F,eAAe,CAAC,KAAK,EAAE,GAAG;CAOzC;AAED;;;GAGG;AACH,qBAAa,QAAQ;IAEnB,uCAAuC;WACzB,IAAI,IAAI,OAAO;IAK7B,OAAO,CAAC,MAAM,CAAC,UAAU;IAIzB,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAK/B,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAqB/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAoB3B,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAWlC,OAAO,CAAC,MAAM,CAAC,oBAAoB;IASnC,OAAO,CAAC,MAAM,CAAC,eAAe;IAY9B,kDAAkD;WACpC,KAAK,IAAI,aAAa;IAapC,uEAAuE;WACzD,WAAW,CAAC,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS;IAQ7F,6DAA6D;WAC/C,QAAQ;;;;CAMvB"}
@@ -80,7 +80,7 @@ class DevTools {
80
80
  const cpus = new Array(srcCpus.length);
81
81
  let ii = 0;
82
82
  for (const srcCpu of srcCpus)
83
- cpus[ii++] = Object.assign({}, srcCpu);
83
+ cpus[ii++] = { ...srcCpu };
84
84
  // Evaluate cpu usage as percentages
85
85
  for (const cpu of Object.values(cpus)) {
86
86
  const total = Object.values(cpu.times).reduce((_total, currValue) => _total += currValue, 0);
@@ -94,7 +94,7 @@ class DevTools {
94
94
  }
95
95
  static evaluateMemoryUsage() {
96
96
  // Create a clone
97
- const memUsage = Object.assign({}, process.memoryUsage());
97
+ const memUsage = { ...process.memoryUsage() };
98
98
  const memUsageObj = memUsage;
99
99
  // Evaluate memory usage as mega bytes
100
100
  for (const type of Object.keys(memUsageObj)) {
@@ -147,7 +147,7 @@ class DevTools {
147
147
  static versions() {
148
148
  return {
149
149
  application: IModelHost_1.IModelHost.applicationVersion,
150
- iModelJs: require("../package.json").version, // eslint-disable-line @typescript-eslint/no-var-requires
150
+ iModelJs: require("../../package.json").version, // eslint-disable-line @typescript-eslint/no-var-requires
151
151
  };
152
152
  }
153
153
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DevTools.js","sourceRoot":"","sources":["../../src/DevTools.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n\r\nimport * as os from \"os\";\r\nimport * as process from \"process\";\r\nimport { Logger, LogLevel } from \"@itwin/core-bentley\";\r\nimport { BackendLoggerCategory } from \"./BackendLoggerCategory\";\r\nimport { IModelHost } from \"./IModelHost\";\r\n\r\n// cspell:ignore ppid elap\r\n\r\nconst loggerCategory: string = BackendLoggerCategory.DevTools;\r\n\r\ninterface StringIndexedObject<T> {\r\n [index: string]: T;\r\n}\r\n\r\n/**\r\n * Performance and Memory statistics of backend\r\n * @internal\r\n */\r\nexport interface DevToolsStats {\r\n os: DevToolsOsStats;\r\n process: DevToolsProcessStats;\r\n}\r\n\r\n/**\r\n * OS stats of backend\r\n * @internal\r\n */\r\nexport interface DevToolsOsStats {\r\n platform: NodeJS.Platform;\r\n hostname: string;\r\n totalmem: number;\r\n freemem: number;\r\n uptime: number;\r\n cpus: os.CpuInfo[];\r\n cpuUsage: number;\r\n}\r\n\r\n/**\r\n * Process stats of backend\r\n * @internal\r\n */\r\nexport interface DevToolsProcessStats {\r\n uptime: number;\r\n pid: number;\r\n ppid: number;\r\n memoryUsage: NodeJS.MemoryUsage;\r\n}\r\n\r\n/** Utility to format the JSON created by DevTools.stats() to include the appropriate units\r\n * @internal\r\n */\r\nexport class DevToolsStatsFormatter {\r\n private static readonly _megaByteProps = [\"totalmem\", \"freemem\", \"rss\", \"heapTotal\", \"heapUsed\", \"external\"];\r\n private static readonly _percentProps = [\"user\", \"nice\", \"sys\", \"idle\", \"irq\", \"cpuUsage\"];\r\n private static readonly _mHzProps = [\"speed\"];\r\n private static readonly _secondsProps = [\"uptime\"];\r\n\r\n /** Replacer that includes units - can be used with JSON.stringify() */\r\n private static _replacer = (key: string, value: any) => {\r\n if (DevToolsStatsFormatter._megaByteProps.includes(key))\r\n return `${value.toFixed()} MB`;\r\n if (DevToolsStatsFormatter._percentProps.includes(key))\r\n return `${value.toFixed()}%`;\r\n if (DevToolsStatsFormatter._mHzProps.includes(key))\r\n return `${value.toString()} MHz`;\r\n if (DevToolsStatsFormatter._secondsProps.includes(key))\r\n return `${value.toFixed()} secs`;\r\n return value;\r\n };\r\n\r\n /** Converts the input stats to another JSON object with the appropriate units setup for various fields */\r\n public static toFormattedJson(stats: any) {\r\n // Serialize the stats to a string with a replacer that sets up units during the serialization\r\n const statsStr = JSON.stringify(stats, DevToolsStatsFormatter._replacer);\r\n\r\n // Deserialize back to JSON\r\n return JSON.parse(statsStr);\r\n }\r\n}\r\n\r\n/**\r\n * Internal diagnostic utility\r\n * @internal\r\n */\r\nexport class DevTools {\r\n\r\n /** Receives a ping and returns true */\r\n public static ping(): boolean {\r\n Logger.logInfo(loggerCategory, \"Received ping at backend\");\r\n return true;\r\n }\r\n\r\n private static hrtimeToMS(hrtime: any) {\r\n return hrtime[0] * 1000 + hrtime[1] / 1000000;\r\n }\r\n\r\n private static bytesToMegaBytes(bytes: number): number {\r\n const megaBytes = bytes / Math.pow(1024, 2);\r\n return Math.round(megaBytes * 100) / 100;\r\n }\r\n\r\n private static evaluateCpuUsage(): number {\r\n const NUMBER_OF_CPUS = os.cpus().length;\r\n const startTime = process.hrtime();\r\n const startUsage = process.cpuUsage();\r\n\r\n // spin the CPU for 500 milliseconds\r\n const now = Date.now();\r\n while (Date.now() - now < 500);\r\n\r\n const elapTime = process.hrtime(startTime);\r\n const elapUsage = process.cpuUsage(startUsage);\r\n\r\n const elapTimeMS = this.hrtimeToMS(elapTime);\r\n\r\n const elapUserMS = elapUsage.user / 1000; // microseconds to milliseconds\r\n const elapSystMS = elapUsage.system / 1000;\r\n const cpuPercent = Math.round((100 * (elapUserMS + elapSystMS) / elapTimeMS / NUMBER_OF_CPUS));\r\n\r\n return cpuPercent;\r\n }\r\n\r\n private static evaluateCpus(): os.CpuInfo[] {\r\n // Create a clone\r\n const srcCpus = os.cpus();\r\n const cpus = new Array<os.CpuInfo>(srcCpus.length);\r\n let ii = 0;\r\n for (const srcCpu of srcCpus)\r\n cpus[ii++] = { ...srcCpu };\r\n\r\n // Evaluate cpu usage as percentages\r\n for (const cpu of Object.values(cpus)) {\r\n const total = Object.values(cpu.times).reduce((_total: number, currValue) => _total += currValue, 0);\r\n const cpuTimes = cpu.times as StringIndexedObject<number>;\r\n for (const type of Object.keys(cpuTimes)) {\r\n const cpuPercent = Math.round(100 * cpuTimes[type] / total);\r\n cpuTimes[type] = cpuPercent;\r\n }\r\n }\r\n return cpus;\r\n }\r\n\r\n private static evaluateMemoryUsage() {\r\n // Create a clone\r\n const memUsage = { ...process.memoryUsage() } as NodeJS.MemoryUsage;\r\n const memUsageObj = (memUsage as any) as StringIndexedObject<number>;\r\n // Evaluate memory usage as mega bytes\r\n for (const type of Object.keys(memUsageObj)) {\r\n memUsageObj[type] = this.bytesToMegaBytes(memUsageObj[type]);\r\n }\r\n return memUsage;\r\n }\r\n\r\n private static evaluateProcessStats(): DevToolsProcessStats {\r\n return {\r\n uptime: process.uptime(),\r\n pid: process.pid,\r\n ppid: process.ppid,\r\n memoryUsage: this.evaluateMemoryUsage(),\r\n } as DevToolsProcessStats;\r\n }\r\n\r\n private static evaluateOsStats(): DevToolsOsStats {\r\n return {\r\n platform: os.platform(),\r\n hostname: os.hostname(),\r\n totalmem: this.bytesToMegaBytes(os.totalmem()),\r\n freemem: this.bytesToMegaBytes(os.freemem()),\r\n uptime: os.uptime(),\r\n cpus: this.evaluateCpus(),\r\n cpuUsage: this.evaluateCpuUsage(),\r\n } as DevToolsOsStats;\r\n }\r\n\r\n /** Returns JSON object with backend statistics */\r\n public static stats(): DevToolsStats {\r\n try {\r\n const stats = {\r\n os: this.evaluateOsStats(),\r\n process: this.evaluateProcessStats(),\r\n } as DevToolsStats;\r\n return stats;\r\n } catch (error) {\r\n Logger.logError(loggerCategory, \"Could not fetch stats at backend\");\r\n throw error;\r\n }\r\n }\r\n\r\n /** Sets up a log level at the backend and returns the old log level */\r\n public static setLogLevel(inLoggerCategory: string, newLevel: LogLevel): LogLevel | undefined {\r\n const oldLevel = Logger.getLevel(inLoggerCategory);\r\n Logger.logInfo(loggerCategory, `Setting log level`, () => ({ loggerCategory: inLoggerCategory, oldLevel, newLevel }));\r\n Logger.setLevel(inLoggerCategory, newLevel);\r\n IModelHost.platform.clearLogLevelCache();\r\n return oldLevel;\r\n }\r\n\r\n /** Obtains the backend application and iModel.js versions */\r\n public static versions() {\r\n return {\r\n application: IModelHost.applicationVersion,\r\n iModelJs: require(\"../../package.json\").version, // eslint-disable-line @typescript-eslint/no-var-requires\r\n };\r\n }\r\n}\r\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplayStyle.d.ts","sourceRoot":"","sources":["../../src/DisplayStyle.ts"],"names":[],"mappings":"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"}
@@ -261,8 +261,11 @@ class DisplayStyle3d extends DisplayStyle {
261
261
  if (!viewflags)
262
262
  viewflags = (_b = options.viewflags) !== null && _b !== void 0 ? _b : new core_common_1.ViewFlags().toJSON();
263
263
  const backgroundColor = options.backgroundColor instanceof core_common_1.ColorDef ? options.backgroundColor.toJSON() : options.backgroundColor;
264
- const settings = Object.assign(Object.assign({}, options), { viewflags,
265
- backgroundColor });
264
+ const settings = {
265
+ ...options,
266
+ viewflags,
267
+ backgroundColor,
268
+ };
266
269
  const displayStyleProps = {
267
270
  classFullName: this.classFullName,
268
271
  code: this.createCode(iModelDb, definitionModelId, name),
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DisplayStyle.js","sourceRoot":"","sources":["../../src/DisplayStyle.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module ViewDefinitions\n */\n\nimport { CompressedId64Set, Id64, Id64Array, Id64Set, Id64String, OrderedId64Iterable } from \"@itwin/core-bentley\";\nimport {\n BisCodeSpec, Code, CodeScopeProps, CodeSpec, ColorDef, DisplayStyle3dProps, DisplayStyle3dSettings, DisplayStyle3dSettingsProps,\n DisplayStyleProps, DisplayStyleSettings, PlanProjectionSettingsProps, RenderSchedule, SkyBoxImageProps, ViewFlags,\n} from \"@itwin/core-common\";\nimport { DefinitionElement, RenderTimeline } from \"./Element\";\nimport { IModelCloneContext } from \"./IModelCloneContext\";\nimport { IModelDb } from \"./IModelDb\";\n\n/** A DisplayStyle defines the parameters for 'styling' the contents of a view.\n * Internally a DisplayStyle consists of a dictionary of several named 'styles' describing specific aspects of the display style as a whole.\n * Many ViewDefinitions may share the same DisplayStyle.\n * @public\n */\nexport abstract class DisplayStyle extends DefinitionElement implements DisplayStyleProps {\n /** @internal */\n public static override get className(): string { return \"DisplayStyle\"; }\n public abstract get settings(): DisplayStyleSettings;\n\n /** @internal */\n protected constructor(props: DisplayStyleProps, iModel: IModelDb) {\n super(props, iModel);\n }\n\n /** Create a Code for a DisplayStyle given a name that is meant to be unique within the scope of the specified DefinitionModel.\n * @param iModel The IModelDb\n * @param scopeModelId The Id of the DefinitionModel that contains the DisplayStyle and provides the scope for its name.\n * @param codeValue The DisplayStyle name\n */\n public static createCode(iModel: IModelDb, scopeModelId: CodeScopeProps, codeValue: string): Code {\n const codeSpec: CodeSpec = iModel.codeSpecs.getByName(BisCodeSpec.displayStyle);\n return new Code({ spec: codeSpec.id, scope: scopeModelId, value: codeValue });\n }\n\n /** @alpha */\n protected override collectPredecessorIds(predecessorIds: Id64Set): void {\n super.collectPredecessorIds(predecessorIds);\n for (const [id] of this.settings.subCategoryOverrides) {\n predecessorIds.add(id);\n }\n\n for (const excludedElementId of this.settings.excludedElementIds)\n predecessorIds.add(excludedElementId);\n\n if (this.settings.renderTimeline) {\n predecessorIds.add(this.settings.renderTimeline);\n } else {\n const script = this.loadScheduleScript();\n if (script)\n script.script.discloseIds(predecessorIds);\n }\n }\n\n /** @alpha */\n protected static override onCloned(context: IModelCloneContext, sourceElementProps: DisplayStyleProps, targetElementProps: DisplayStyleProps): void {\n super.onCloned(context, sourceElementProps, targetElementProps);\n\n if (!context.isBetweenIModels || !targetElementProps.jsonProperties?.styles)\n return;\n\n const settings = targetElementProps.jsonProperties.styles;\n if (settings.subCategoryOvr) {\n for (let i = 0; i < settings.subCategoryOvr.length; /* */) {\n const ovr = settings.subCategoryOvr[i];\n ovr.subCategory = context.findTargetElementId(Id64.fromJSON(ovr.subCategory));\n if (Id64.invalid === ovr.subCategory)\n settings.subCategoryOvr.splice(i, 1);\n else\n i++;\n }\n }\n\n if (settings.excludedElements) {\n const excluded: Id64Array = \"string\" === typeof settings.excludedElements ? CompressedId64Set.decompressArray(settings.excludedElements) : settings.excludedElements;\n for (let i = 0; i < excluded.length; /* */) {\n const remapped = context.findTargetElementId(excluded[i]);\n if (Id64.invalid === remapped)\n excluded.splice(i, 1);\n else\n excluded[i++] = remapped;\n }\n\n if (0 === excluded.length)\n delete settings.excludedElements;\n else\n settings.excludedElements = CompressedId64Set.compressIds(OrderedId64Iterable.sortArray(excluded));\n }\n\n // eslint-disable-next-line deprecation/deprecation\n if (settings.renderTimeline) {\n const renderTimeline = context.findTargetElementId(settings.renderTimeline);\n if (Id64.isValid(renderTimeline))\n settings.renderTimeline = renderTimeline;\n else\n delete settings.renderTimeline;\n } else if (settings.scheduleScript) { // eslint-disable-line deprecation/deprecation\n // eslint-disable-next-line deprecation/deprecation\n const scheduleScript = RenderTimeline.remapScript(context, settings.scheduleScript);\n if (scheduleScript.length > 0)\n settings.scheduleScript = scheduleScript; // eslint-disable-line deprecation/deprecation\n else\n delete settings.scheduleScript; // eslint-disable-line deprecation/deprecation\n }\n }\n\n public loadScheduleScript(): RenderSchedule.ScriptReference | undefined {\n let script;\n let sourceId;\n if (this.settings.renderTimeline) {\n const timeline = this.iModel.elements.tryGetElement<RenderTimeline>(this.settings.renderTimeline);\n if (timeline) {\n script = RenderSchedule.Script.fromJSON(timeline.scriptProps);\n sourceId = timeline.id;\n }\n } else if (this.settings.scheduleScriptProps) { // eslint-disable-line deprecation/deprecation\n // eslint-disable-next-line deprecation/deprecation\n script = RenderSchedule.Script.fromJSON(this.settings.scheduleScriptProps);\n sourceId = this.id;\n }\n\n return undefined !== sourceId && undefined !== script ? new RenderSchedule.ScriptReference(sourceId, script) : undefined;\n }\n}\n\n/** A DisplayStyle for 2d views.\n * @public\n */\nexport class DisplayStyle2d extends DisplayStyle {\n /** @internal */\n public static override get className(): string { return \"DisplayStyle2d\"; }\n private readonly _settings: DisplayStyleSettings;\n\n public get settings(): DisplayStyleSettings { return this._settings; }\n\n /** @internal */\n public constructor(props: DisplayStyleProps, iModel: IModelDb) {\n super(props, iModel);\n this._settings = new DisplayStyleSettings(this.jsonProperties);\n }\n /** Create a DisplayStyle2d for use by a ViewDefinition.\n * @param iModelDb The iModel\n * @param definitionModelId The [[DefinitionModel]]\n * @param name The name/CodeValue of the DisplayStyle2d\n * @returns The newly constructed DisplayStyle2d element.\n * @throws [[IModelError]] if unable to create the element.\n */\n public static create(iModelDb: IModelDb, definitionModelId: Id64String, name: string): DisplayStyle2d {\n const displayStyleProps: DisplayStyleProps = {\n classFullName: this.classFullName,\n code: this.createCode(iModelDb, definitionModelId, name),\n model: definitionModelId,\n isPrivate: false,\n jsonProperties: {\n styles: {\n backgroundColor: 0,\n monochromeColor: ColorDef.white.toJSON(),\n viewflags: ViewFlags.defaults,\n },\n },\n };\n return new DisplayStyle2d(displayStyleProps, iModelDb);\n }\n /** Insert a DisplayStyle2d for use by a ViewDefinition.\n * @param iModelDb Insert into this iModel\n * @param definitionModelId Insert the new DisplayStyle2d into this DefinitionModel\n * @param name The name of the DisplayStyle2d\n * @returns The Id of the newly inserted DisplayStyle2d element.\n * @throws [[IModelError]] if unable to insert the element.\n */\n public static insert(iModelDb: IModelDb, definitionModelId: Id64String, name: string): Id64String {\n const displayStyle = this.create(iModelDb, definitionModelId, name);\n return iModelDb.elements.insertElement(displayStyle);\n }\n}\n\n/** Describes initial settings for a new [[DisplayStyle3d]].\n * Most properties are inherited from [DisplayStyle3dSettingsProps]($common), but for backwards compatibility reasons, this interface is slightly awkward:\n * - It adds a `viewFlags` member that differs only in case and type from [DisplayStyleSettingsProps.viewflags]($common); and\n * - It extends the type of [DisplayStyleSettingsProps.backgroundColor]($common) to include [ColorDef]($common).\n * These idiosyncrasies will be addressed in a future version of core-backend.\n * @see [[DisplayStyle3d.create]].\n * @public\n */\nexport interface DisplayStyleCreationOptions extends Omit<DisplayStyle3dSettingsProps, \"backgroundColor\" | \"scheduleScript\"> {\n /** If supplied, the [ViewFlags]($common) applied by the display style.\n * If undefined, [DisplayStyle3dSettingsProps.viewflags]($common) will be used if present (note the difference in case); otherwise, default-constructed [ViewFlags]($common) will be used.\n */\n viewFlags?: ViewFlags;\n backgroundColor?: ColorDef | number;\n}\n\n/** A DisplayStyle for 3d views.\n * See [how to create a DisplayStyle3d]$(docs/learning/backend/CreateElements.md#DisplayStyle3d).\n * @public\n */\nexport class DisplayStyle3d extends DisplayStyle implements DisplayStyle3dProps {\n /** @internal */\n public static override get className(): string { return \"DisplayStyle3d\"; }\n private readonly _settings: DisplayStyle3dSettings;\n\n public get settings(): DisplayStyle3dSettings { return this._settings; }\n\n /** @internal */\n public constructor(props: DisplayStyle3dProps, iModel: IModelDb) {\n super(props, iModel);\n this._settings = new DisplayStyle3dSettings(this.jsonProperties);\n }\n\n /** @alpha */\n protected override collectPredecessorIds(predecessorIds: Id64Set): void {\n super.collectPredecessorIds(predecessorIds);\n const skyBoxImageProps: SkyBoxImageProps | undefined = this.settings.environment?.sky?.image;\n if (skyBoxImageProps?.texture) {\n predecessorIds.add(Id64.fromJSON(skyBoxImageProps.texture));\n }\n if (skyBoxImageProps?.textures) {\n if (skyBoxImageProps.textures.back) { predecessorIds.add(Id64.fromJSON(skyBoxImageProps.textures.back)); }\n if (skyBoxImageProps.textures.bottom) { predecessorIds.add(Id64.fromJSON(skyBoxImageProps.textures.bottom)); }\n if (skyBoxImageProps.textures.front) { predecessorIds.add(Id64.fromJSON(skyBoxImageProps.textures.front)); }\n if (skyBoxImageProps.textures.left) { predecessorIds.add(Id64.fromJSON(skyBoxImageProps.textures.left)); }\n if (skyBoxImageProps.textures.right) { predecessorIds.add(Id64.fromJSON(skyBoxImageProps.textures.right)); }\n if (skyBoxImageProps.textures.top) { predecessorIds.add(Id64.fromJSON(skyBoxImageProps.textures.top)); }\n }\n if (this.settings.planProjectionSettings) {\n for (const planProjectionSetting of this.settings.planProjectionSettings) {\n predecessorIds.add(planProjectionSetting[0]);\n }\n }\n }\n /** @alpha */\n protected static override onCloned(context: IModelCloneContext, sourceElementProps: DisplayStyle3dProps, targetElementProps: DisplayStyle3dProps): void {\n super.onCloned(context, sourceElementProps, targetElementProps);\n if (context.isBetweenIModels) {\n const skyBoxImageProps: SkyBoxImageProps | undefined = targetElementProps?.jsonProperties?.styles?.environment?.sky?.image;\n if (skyBoxImageProps?.texture) {\n const textureId: Id64String = context.findTargetElementId(Id64.fromJSON(skyBoxImageProps.texture));\n skyBoxImageProps.texture = Id64.isValidId64(textureId) ? textureId : undefined;\n }\n if (skyBoxImageProps?.textures) {\n const backTextureId: Id64String = context.findTargetElementId(Id64.fromJSON(skyBoxImageProps.textures.back));\n skyBoxImageProps.textures.back = Id64.isValidId64(backTextureId) ? backTextureId : undefined;\n const bottomTextureId: Id64String = context.findTargetElementId(Id64.fromJSON(skyBoxImageProps.textures.bottom));\n skyBoxImageProps.textures.bottom = Id64.isValidId64(bottomTextureId) ? bottomTextureId : undefined;\n const frontTextureId: Id64String = context.findTargetElementId(Id64.fromJSON(skyBoxImageProps.textures.front));\n skyBoxImageProps.textures.front = Id64.isValidId64(frontTextureId) ? frontTextureId : undefined;\n const leftTextureId: Id64String = context.findTargetElementId(Id64.fromJSON(skyBoxImageProps.textures.left));\n skyBoxImageProps.textures.left = Id64.isValidId64(leftTextureId) ? leftTextureId : undefined;\n const rightTextureId: Id64String = context.findTargetElementId(Id64.fromJSON(skyBoxImageProps.textures.right));\n skyBoxImageProps.textures.right = Id64.isValidId64(rightTextureId) ? rightTextureId : undefined;\n const topTextureId: Id64String = context.findTargetElementId(Id64.fromJSON(skyBoxImageProps.textures.top));\n skyBoxImageProps.textures.top = Id64.isValidId64(topTextureId) ? topTextureId : undefined;\n }\n if (targetElementProps?.jsonProperties?.styles?.planProjections) {\n const remappedPlanProjections: { [modelId: string]: PlanProjectionSettingsProps } = {};\n for (const entry of Object.entries(targetElementProps.jsonProperties.styles.planProjections)) {\n const remappedModelId: Id64String = context.findTargetElementId(entry[0]);\n if (Id64.isValidId64(remappedModelId)) {\n remappedPlanProjections[remappedModelId] = entry[1];\n }\n }\n targetElementProps.jsonProperties.styles.planProjections = remappedPlanProjections;\n }\n }\n }\n\n /** Create a DisplayStyle3d for use by a ViewDefinition.\n * @param iModelDb The iModel\n * @param definitionModelId The [[DefinitionModel]]\n * @param name The name/CodeValue of the DisplayStyle3d\n * @returns The newly constructed DisplayStyle3d element.\n * @throws [[IModelError]] if unable to create the element.\n */\n public static create(iModelDb: IModelDb, definitionModelId: Id64String, name: string, options?: DisplayStyleCreationOptions): DisplayStyle3d {\n options = options ?? {};\n let viewflags = options.viewFlags?.toJSON();\n if (!viewflags)\n viewflags = options.viewflags ?? new ViewFlags().toJSON();\n\n const backgroundColor = options.backgroundColor instanceof ColorDef ? options.backgroundColor.toJSON() : options.backgroundColor;\n\n const settings: DisplayStyle3dSettingsProps = {\n ...options,\n viewflags,\n backgroundColor,\n };\n\n const displayStyleProps: DisplayStyle3dProps = {\n classFullName: this.classFullName,\n code: this.createCode(iModelDb, definitionModelId, name),\n model: definitionModelId,\n jsonProperties: { styles: settings },\n isPrivate: false,\n\n };\n\n return new DisplayStyle3d(displayStyleProps, iModelDb);\n }\n /**\n * Insert a DisplayStyle3d for use by a ViewDefinition.\n * @param iModelDb Insert into this iModel\n * @param definitionModelId Insert the new DisplayStyle3d into this [[DefinitionModel]]\n * @param name The name of the DisplayStyle3d\n * @returns The Id of the newly inserted DisplayStyle3d element.\n * @throws [[IModelError]] if unable to insert the element.\n */\n public static insert(iModelDb: IModelDb, definitionModelId: Id64String, name: string, options?: DisplayStyleCreationOptions): Id64String {\n const displayStyle = this.create(iModelDb, definitionModelId, name, options);\n return iModelDb.elements.insertElement(displayStyle);\n }\n}\n"]}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ECDb.d.ts","sourceRoot":"","sources":["../../src/ECDb.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAY,WAAW,EAAoB,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAC6B,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EACvF,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,OAAO,EAAE,eAAe,EAAkB,MAAM,mBAAmB,CAAC;AAIpE;;GAEG;AACH,oBAAY,YAAY;IACtB,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,sGAAsG;IACtG,WAAW,IAAA;CACZ;AAED;;GAEG;AACH,qBAAa,IAAK,YAAW,WAAW;IACtC,OAAO,CAAC,SAAS,CAAC,CAAsB;IACxC,OAAO,CAAC,2BAA2B,CAAkB;IACrD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IACxE,OAAO,CAAC,qBAAqB,CAAyC;IACtE,OAAO,CAAC,qBAAqB,CAAwH;IAErJ;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM;;IAQpC;;OAEG;IACI,OAAO,IAAI,IAAI;IAStB;;;OAGG;IACI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAMvC;;;;OAIG;IACI,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,YAAoC,GAAG,IAAI;IAQrF,uCAAuC;IACvC,IAAW,MAAM,IAAI,OAAO,CAAmC;IAE/D;;OAEG;IACI,OAAO,IAAI,IAAI;IAOtB,8CAA8C;IACvC,mBAAmB;IAI1B,8CAA8C;IACvC,uBAAuB;IAI9B;;;OAGG;IACI,WAAW,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI;IAMhD;;OAEG;IACI,cAAc,IAAI,IAAI;IAM7B;;;;;OAKG;IACI,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAQ3C;;;;;;;;;;;;OAYG;IACI,qBAAqB,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,CAAC,EAAE,SAAS,UAAO,GAAG,CAAC;IAiB1G;;;;;;;;;;OAUG;IACI,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,cAAc,KAAK,CAAC,EAAE,SAAS,UAAO,GAAG,CAAC;IAiBlG;;;;OAIG;IACI,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,cAAc;IAMxE;;;;;;;;;;;;OAYG;IACI,2BAA2B,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,CAAC,EAAE,SAAS,UAAO,GAAG,CAAC;IAiB/G;;;;;;;;;OASG;IACI,mBAAmB,CAAC,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,CAAC,EAAE,SAAS,UAAO,GAAG,CAAC;IAiBvG;;;;;OAKG;IACI,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,UAAO,GAAG,eAAe;IAM7E,gBAAgB;IAChB,IAAW,QAAQ,IAAI,cAAc,CAAC,IAAI,CAEzC;IAED;;;;;;;;;;;;;;OAcG;IACU,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAOrF;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACU,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC;IAyF5M;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACY,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC,GAAG,CAAC;IA4BvL;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACY,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,qBAAqB,CAAC,GAAG,CAAC;CA6BnL"}
@@ -6,25 +6,6 @@
6
6
  /** @packageDocumentation
7
7
  * @module ECDb
8
8
  */
9
- var __asyncValues = (this && this.__asyncValues) || function (o) {
10
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
11
- var m = o[Symbol.asyncIterator], i;
12
- return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
13
- function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
14
- function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
15
- };
16
- var __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }
17
- var __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {
18
- if (!Symbol.asyncIterator) throw new TypeError("Symbol.asyncIterator is not defined.");
19
- var g = generator.apply(thisArg, _arguments || []), i, q = [];
20
- return i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i;
21
- function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }
22
- function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }
23
- function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }
24
- function fulfill(value) { resume("next", value); }
25
- function reject(value) { resume("throw", value); }
26
- function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }
27
- };
28
9
  Object.defineProperty(exports, "__esModule", { value: true });
29
10
  exports.ECDb = exports.ECDbOpenMode = void 0;
30
11
  const core_bentley_1 = require("@itwin/core-bentley");
@@ -304,19 +285,8 @@ class ECDb {
304
285
  * @throws [IModelError]($common) If the statement is invalid
305
286
  */
306
287
  async queryRowCount(ecsql, bindings) {
307
- var e_1, _a;
308
- try {
309
- for (var _b = __asyncValues(this.query(`select count(*) nRows from (${ecsql})`, bindings)), _c; _c = await _b.next(), !_c.done;) {
310
- const row = _c.value;
311
- return row.nRows;
312
- }
313
- }
314
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
315
- finally {
316
- try {
317
- if (_c && !_c.done && (_a = _b.return)) await _a.call(_b);
318
- }
319
- finally { if (e_1) throw e_1.error; }
288
+ for await (const row of this.query(`select count(*) nRows from (${ecsql})`, bindings)) {
289
+ return row.nRows;
320
290
  }
321
291
  throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Failed to get row count");
322
292
  }
@@ -372,7 +342,7 @@ class ECDb {
372
342
  core_bentley_1.Logger.logInfo(loggerCategory, "Resetting concurrent query statistics", () => statistics);
373
343
  }
374
344
  }
375
- catch (_a) { }
345
+ catch { }
376
346
  }
377
347
  else {
378
348
  clearInterval(stats.resetTimerHandle);
@@ -390,7 +360,7 @@ class ECDb {
390
360
  core_bentley_1.Logger.logInfo(loggerCategory, "Concurrent query statistics", () => statistics);
391
361
  }
392
362
  }
393
- catch (_a) { }
363
+ catch { }
394
364
  }
395
365
  else {
396
366
  clearInterval(stats.logTimerHandle);
@@ -462,32 +432,30 @@ class ECDb {
462
432
  * See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
463
433
  * @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
464
434
  */
465
- query(ecsql, bindings, limitRows, quota, priority, abbreviateBlobs) {
466
- return __asyncGenerator(this, arguments, function* query_1() {
467
- let result;
468
- let offset = 0;
469
- let rowsToGet = limitRows ? limitRows : -1;
470
- do {
471
- result = yield __await(this.queryRows(ecsql, bindings, { maxRowAllowed: rowsToGet, startRowOffset: offset }, quota, priority, undefined, abbreviateBlobs));
472
- while (result.status === core_common_1.QueryResponseStatus.Timeout) {
473
- result = yield __await(this.queryRows(ecsql, bindings, { maxRowAllowed: rowsToGet, startRowOffset: offset }, quota, priority, undefined, abbreviateBlobs));
474
- }
475
- if (result.status === core_common_1.QueryResponseStatus.Error) {
476
- if (result.rows[0] === undefined) {
477
- throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Invalid ECSql");
478
- }
479
- else {
480
- throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, result.rows[0]);
481
- }
435
+ async *query(ecsql, bindings, limitRows, quota, priority, abbreviateBlobs) {
436
+ let result;
437
+ let offset = 0;
438
+ let rowsToGet = limitRows ? limitRows : -1;
439
+ do {
440
+ result = await this.queryRows(ecsql, bindings, { maxRowAllowed: rowsToGet, startRowOffset: offset }, quota, priority, undefined, abbreviateBlobs);
441
+ while (result.status === core_common_1.QueryResponseStatus.Timeout) {
442
+ result = await this.queryRows(ecsql, bindings, { maxRowAllowed: rowsToGet, startRowOffset: offset }, quota, priority, undefined, abbreviateBlobs);
443
+ }
444
+ if (result.status === core_common_1.QueryResponseStatus.Error) {
445
+ if (result.rows[0] === undefined) {
446
+ throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Invalid ECSql");
482
447
  }
483
- if (rowsToGet > 0) {
484
- rowsToGet -= result.rows.length;
448
+ else {
449
+ throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, result.rows[0]);
485
450
  }
486
- offset += result.rows.length;
487
- for (const row of result.rows)
488
- yield yield __await(row);
489
- } while (result.status !== core_common_1.QueryResponseStatus.Done);
490
- });
451
+ }
452
+ if (rowsToGet > 0) {
453
+ rowsToGet -= result.rows.length;
454
+ }
455
+ offset += result.rows.length;
456
+ for (const row of result.rows)
457
+ yield row;
458
+ } while (result.status !== core_common_1.QueryResponseStatus.Done);
491
459
  }
492
460
  /** Execute a query and stream its results
493
461
  * 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.
@@ -514,35 +482,33 @@ class ECDb {
514
482
  * See [ECSQL row format]($docs/learning/ECSQLRowFormat) for details about the format of the returned rows.
515
483
  * @throws [IModelError]($common) If there was any error while submitting, preparing or stepping into query
516
484
  */
517
- restartQuery(token, ecsql, bindings, limitRows, quota, priority) {
518
- return __asyncGenerator(this, arguments, function* restartQuery_1() {
519
- let result;
520
- let offset = 0;
521
- let rowsToGet = limitRows ? limitRows : -1;
522
- do {
523
- result = yield __await(this.queryRows(ecsql, bindings, { maxRowAllowed: rowsToGet, startRowOffset: offset }, quota, priority, token));
524
- while (result.status === core_common_1.QueryResponseStatus.Timeout) {
525
- result = yield __await(this.queryRows(ecsql, bindings, { maxRowAllowed: rowsToGet, startRowOffset: offset }, quota, priority, token));
526
- }
527
- if (result.status === core_common_1.QueryResponseStatus.Cancelled) {
528
- throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_INTERRUPT, `Query cancelled`);
529
- }
530
- else if (result.status === core_common_1.QueryResponseStatus.Error) {
531
- if (result.rows[0] === undefined) {
532
- throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Invalid ECSql");
533
- }
534
- else {
535
- throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, result.rows[0]);
536
- }
485
+ async *restartQuery(token, ecsql, bindings, limitRows, quota, priority) {
486
+ let result;
487
+ let offset = 0;
488
+ let rowsToGet = limitRows ? limitRows : -1;
489
+ do {
490
+ result = await this.queryRows(ecsql, bindings, { maxRowAllowed: rowsToGet, startRowOffset: offset }, quota, priority, token);
491
+ while (result.status === core_common_1.QueryResponseStatus.Timeout) {
492
+ result = await this.queryRows(ecsql, bindings, { maxRowAllowed: rowsToGet, startRowOffset: offset }, quota, priority, token);
493
+ }
494
+ if (result.status === core_common_1.QueryResponseStatus.Cancelled) {
495
+ throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_INTERRUPT, `Query cancelled`);
496
+ }
497
+ else if (result.status === core_common_1.QueryResponseStatus.Error) {
498
+ if (result.rows[0] === undefined) {
499
+ throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, "Invalid ECSql");
537
500
  }
538
- if (rowsToGet > 0) {
539
- rowsToGet -= result.rows.length;
501
+ else {
502
+ throw new core_common_1.IModelError(core_bentley_1.DbResult.BE_SQLITE_ERROR, result.rows[0]);
540
503
  }
541
- offset += result.rows.length;
542
- for (const row of result.rows)
543
- yield yield __await(row);
544
- } while (result.status !== core_common_1.QueryResponseStatus.Done);
545
- });
504
+ }
505
+ if (rowsToGet > 0) {
506
+ rowsToGet -= result.rows.length;
507
+ }
508
+ offset += result.rows.length;
509
+ for (const row of result.rows)
510
+ yield row;
511
+ } while (result.status !== core_common_1.QueryResponseStatus.Done);
546
512
  }
547
513
  }
548
514
  exports.ECDb = ECDb;