@itwin/core-backend 5.0.0-dev.98 → 5.0.0

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 (408) hide show
  1. package/CHANGELOG.md +109 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +1 -1
  3. package/lib/cjs/BackendHubAccess.js +1 -1
  4. package/lib/cjs/BackendHubAccess.js.map +1 -1
  5. package/lib/cjs/BriefcaseManager.d.ts +10 -2
  6. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseManager.js +12 -0
  8. package/lib/cjs/BriefcaseManager.js.map +1 -1
  9. package/lib/cjs/CatalogDb.d.ts +103 -0
  10. package/lib/cjs/CatalogDb.d.ts.map +1 -0
  11. package/lib/cjs/CatalogDb.js +271 -0
  12. package/lib/cjs/CatalogDb.js.map +1 -0
  13. package/lib/cjs/Category.d.ts +41 -4
  14. package/lib/cjs/Category.d.ts.map +1 -1
  15. package/lib/cjs/Category.js +77 -4
  16. package/lib/cjs/Category.js.map +1 -1
  17. package/lib/cjs/ChangeSummaryManager.d.ts.map +1 -1
  18. package/lib/cjs/ChangeSummaryManager.js +12 -5
  19. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  20. package/lib/cjs/ChangesetECAdaptor.d.ts.map +1 -1
  21. package/lib/cjs/ChangesetECAdaptor.js +1 -0
  22. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  23. package/lib/cjs/CheckpointManager.d.ts +12 -10
  24. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  25. package/lib/cjs/CheckpointManager.js +17 -41
  26. package/lib/cjs/CheckpointManager.js.map +1 -1
  27. package/lib/cjs/ClassRegistry.d.ts +1 -1
  28. package/lib/cjs/ClassRegistry.js +1 -1
  29. package/lib/cjs/ClassRegistry.js.map +1 -1
  30. package/lib/cjs/CloudSqlite.d.ts +104 -20
  31. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  32. package/lib/cjs/CloudSqlite.js +157 -46
  33. package/lib/cjs/CloudSqlite.js.map +1 -1
  34. package/lib/cjs/CodeSpecs.d.ts +1 -1
  35. package/lib/cjs/CodeSpecs.js +1 -1
  36. package/lib/cjs/CodeSpecs.js.map +1 -1
  37. package/lib/cjs/DisplayStyle.d.ts +9 -4
  38. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  39. package/lib/cjs/DisplayStyle.js +30 -3
  40. package/lib/cjs/DisplayStyle.js.map +1 -1
  41. package/lib/cjs/ECDb.d.ts +38 -2
  42. package/lib/cjs/ECDb.d.ts.map +1 -1
  43. package/lib/cjs/ECDb.js +82 -1
  44. package/lib/cjs/ECDb.js.map +1 -1
  45. package/lib/cjs/ECSchemaXmlContext.d.ts +1 -1
  46. package/lib/cjs/ECSchemaXmlContext.js +1 -1
  47. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  48. package/lib/cjs/ECSqlStatement.d.ts +182 -3
  49. package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
  50. package/lib/cjs/ECSqlStatement.js +225 -6
  51. package/lib/cjs/ECSqlStatement.js.map +1 -1
  52. package/lib/cjs/Element.d.ts +217 -61
  53. package/lib/cjs/Element.d.ts.map +1 -1
  54. package/lib/cjs/Element.js +561 -60
  55. package/lib/cjs/Element.js.map +1 -1
  56. package/lib/cjs/ElementAspect.d.ts +8 -8
  57. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  58. package/lib/cjs/ElementAspect.js +9 -8
  59. package/lib/cjs/ElementAspect.js.map +1 -1
  60. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  61. package/lib/cjs/ElementTreeWalker.js +4 -0
  62. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  63. package/lib/cjs/Entity.d.ts +52 -8
  64. package/lib/cjs/Entity.d.ts.map +1 -1
  65. package/lib/cjs/Entity.js +63 -5
  66. package/lib/cjs/Entity.js.map +1 -1
  67. package/lib/cjs/ExportGraphics.d.ts +54 -8
  68. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  69. package/lib/cjs/ExportGraphics.js +158 -59
  70. package/lib/cjs/ExportGraphics.js.map +1 -1
  71. package/lib/cjs/IModelDb.d.ts +42 -50
  72. package/lib/cjs/IModelDb.d.ts.map +1 -1
  73. package/lib/cjs/IModelDb.js +189 -90
  74. package/lib/cjs/IModelDb.js.map +1 -1
  75. package/lib/cjs/IModelElementCloneContext.d.ts +1 -1
  76. package/lib/cjs/IModelElementCloneContext.d.ts.map +1 -1
  77. package/lib/cjs/IModelElementCloneContext.js +1 -1
  78. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  79. package/lib/cjs/IModelHost.d.ts +16 -3
  80. package/lib/cjs/IModelHost.d.ts.map +1 -1
  81. package/lib/cjs/IModelHost.js +9 -3
  82. package/lib/cjs/IModelHost.js.map +1 -1
  83. package/lib/cjs/Material.d.ts +20 -1
  84. package/lib/cjs/Material.d.ts.map +1 -1
  85. package/lib/cjs/Material.js +30 -1
  86. package/lib/cjs/Material.js.map +1 -1
  87. package/lib/cjs/Model.d.ts +64 -28
  88. package/lib/cjs/Model.d.ts.map +1 -1
  89. package/lib/cjs/Model.js +115 -27
  90. package/lib/cjs/Model.js.map +1 -1
  91. package/lib/cjs/NativeHost.d.ts.map +1 -1
  92. package/lib/cjs/NativeHost.js +4 -1
  93. package/lib/cjs/NativeHost.js.map +1 -1
  94. package/lib/cjs/Relationship.d.ts.map +1 -1
  95. package/lib/cjs/Relationship.js +2 -0
  96. package/lib/cjs/Relationship.js.map +1 -1
  97. package/lib/cjs/SQLiteDb.d.ts +1 -1
  98. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  99. package/lib/cjs/SQLiteDb.js +6 -5
  100. package/lib/cjs/SQLiteDb.js.map +1 -1
  101. package/lib/cjs/SqliteStatement.d.ts +1 -1
  102. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  103. package/lib/cjs/SqliteStatement.js +1 -1
  104. package/lib/cjs/SqliteStatement.js.map +1 -1
  105. package/lib/cjs/TextAnnotationElement.d.ts +2 -2
  106. package/lib/cjs/TextAnnotationElement.js +2 -2
  107. package/lib/cjs/TextAnnotationElement.js.map +1 -1
  108. package/lib/cjs/Texture.d.ts +1 -1
  109. package/lib/cjs/Texture.js +1 -1
  110. package/lib/cjs/Texture.js.map +1 -1
  111. package/lib/cjs/TxnManager.d.ts +4 -4
  112. package/lib/cjs/TxnManager.d.ts.map +1 -1
  113. package/lib/cjs/TxnManager.js +2 -1
  114. package/lib/cjs/TxnManager.js.map +1 -1
  115. package/lib/cjs/ViewDefinition.d.ts +114 -14
  116. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  117. package/lib/cjs/ViewDefinition.js +222 -14
  118. package/lib/cjs/ViewDefinition.js.map +1 -1
  119. package/lib/cjs/ViewStateHydrator.js +3 -3
  120. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  121. package/lib/cjs/ViewStore.d.ts.map +1 -1
  122. package/lib/cjs/ViewStore.js +29 -28
  123. package/lib/cjs/ViewStore.js.map +1 -1
  124. package/lib/cjs/core-backend.d.ts +1 -1
  125. package/lib/cjs/core-backend.d.ts.map +1 -1
  126. package/lib/cjs/core-backend.js +21 -1
  127. package/lib/cjs/core-backend.js.map +1 -1
  128. package/lib/cjs/internal/ChannelAdmin.d.ts.map +1 -1
  129. package/lib/cjs/internal/ChannelAdmin.js +6 -4
  130. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  131. package/lib/cjs/internal/ElementLRUCache.d.ts +28 -0
  132. package/lib/cjs/internal/ElementLRUCache.d.ts.map +1 -0
  133. package/lib/cjs/internal/ElementLRUCache.js +120 -0
  134. package/lib/cjs/internal/ElementLRUCache.js.map +1 -0
  135. package/lib/cjs/{HubMock.d.ts → internal/HubMock.d.ts} +4 -5
  136. package/lib/cjs/internal/HubMock.d.ts.map +1 -0
  137. package/lib/cjs/{HubMock.js → internal/HubMock.js} +22 -11
  138. package/lib/cjs/internal/HubMock.js.map +1 -0
  139. package/lib/cjs/internal/Symbols.d.ts +2 -2
  140. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  141. package/lib/cjs/internal/Symbols.js +3 -3
  142. package/lib/cjs/internal/Symbols.js.map +1 -1
  143. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts +2 -16
  144. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  145. package/lib/cjs/internal/workspace/WorkspaceImpl.js +35 -104
  146. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  147. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  148. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
  149. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +4 -3
  150. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  151. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  152. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  153. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  154. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  155. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  156. package/lib/cjs/workspace/Workspace.d.ts +6 -13
  157. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  158. package/lib/cjs/workspace/Workspace.js.map +1 -1
  159. package/lib/cjs/workspace/WorkspaceEditor.d.ts +2 -7
  160. package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
  161. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  162. package/lib/esm/BackendHubAccess.d.ts +1 -1
  163. package/lib/esm/BackendHubAccess.js +1 -1
  164. package/lib/esm/BackendHubAccess.js.map +1 -1
  165. package/lib/esm/BriefcaseManager.d.ts +10 -2
  166. package/lib/esm/BriefcaseManager.d.ts.map +1 -1
  167. package/lib/esm/BriefcaseManager.js +12 -0
  168. package/lib/esm/BriefcaseManager.js.map +1 -1
  169. package/lib/esm/CatalogDb.d.ts +103 -0
  170. package/lib/esm/CatalogDb.d.ts.map +1 -0
  171. package/lib/esm/CatalogDb.js +267 -0
  172. package/lib/esm/CatalogDb.js.map +1 -0
  173. package/lib/esm/Category.d.ts +41 -4
  174. package/lib/esm/Category.d.ts.map +1 -1
  175. package/lib/esm/Category.js +77 -4
  176. package/lib/esm/Category.js.map +1 -1
  177. package/lib/esm/ChangeSummaryManager.d.ts.map +1 -1
  178. package/lib/esm/ChangeSummaryManager.js +12 -5
  179. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  180. package/lib/esm/ChangesetECAdaptor.d.ts.map +1 -1
  181. package/lib/esm/ChangesetECAdaptor.js +1 -0
  182. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  183. package/lib/esm/CheckpointManager.d.ts +12 -10
  184. package/lib/esm/CheckpointManager.d.ts.map +1 -1
  185. package/lib/esm/CheckpointManager.js +18 -42
  186. package/lib/esm/CheckpointManager.js.map +1 -1
  187. package/lib/esm/ClassRegistry.d.ts +1 -1
  188. package/lib/esm/ClassRegistry.js +1 -1
  189. package/lib/esm/ClassRegistry.js.map +1 -1
  190. package/lib/esm/CloudSqlite.d.ts +104 -20
  191. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  192. package/lib/esm/CloudSqlite.js +157 -46
  193. package/lib/esm/CloudSqlite.js.map +1 -1
  194. package/lib/esm/CodeSpecs.d.ts +1 -1
  195. package/lib/esm/CodeSpecs.js +1 -1
  196. package/lib/esm/CodeSpecs.js.map +1 -1
  197. package/lib/esm/DisplayStyle.d.ts +9 -4
  198. package/lib/esm/DisplayStyle.d.ts.map +1 -1
  199. package/lib/esm/DisplayStyle.js +30 -3
  200. package/lib/esm/DisplayStyle.js.map +1 -1
  201. package/lib/esm/ECDb.d.ts +38 -2
  202. package/lib/esm/ECDb.d.ts.map +1 -1
  203. package/lib/esm/ECDb.js +83 -2
  204. package/lib/esm/ECDb.js.map +1 -1
  205. package/lib/esm/ECSchemaXmlContext.d.ts +1 -1
  206. package/lib/esm/ECSchemaXmlContext.js +1 -1
  207. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  208. package/lib/esm/ECSqlStatement.d.ts +182 -3
  209. package/lib/esm/ECSqlStatement.d.ts.map +1 -1
  210. package/lib/esm/ECSqlStatement.js +223 -5
  211. package/lib/esm/ECSqlStatement.js.map +1 -1
  212. package/lib/esm/Element.d.ts +217 -61
  213. package/lib/esm/Element.d.ts.map +1 -1
  214. package/lib/esm/Element.js +564 -63
  215. package/lib/esm/Element.js.map +1 -1
  216. package/lib/esm/ElementAspect.d.ts +8 -8
  217. package/lib/esm/ElementAspect.d.ts.map +1 -1
  218. package/lib/esm/ElementAspect.js +9 -8
  219. package/lib/esm/ElementAspect.js.map +1 -1
  220. package/lib/esm/ElementTreeWalker.d.ts.map +1 -1
  221. package/lib/esm/ElementTreeWalker.js +4 -0
  222. package/lib/esm/ElementTreeWalker.js.map +1 -1
  223. package/lib/esm/Entity.d.ts +52 -8
  224. package/lib/esm/Entity.d.ts.map +1 -1
  225. package/lib/esm/Entity.js +63 -5
  226. package/lib/esm/Entity.js.map +1 -1
  227. package/lib/esm/ExportGraphics.d.ts +54 -8
  228. package/lib/esm/ExportGraphics.d.ts.map +1 -1
  229. package/lib/esm/ExportGraphics.js +156 -58
  230. package/lib/esm/ExportGraphics.js.map +1 -1
  231. package/lib/esm/IModelDb.d.ts +42 -50
  232. package/lib/esm/IModelDb.d.ts.map +1 -1
  233. package/lib/esm/IModelDb.js +192 -93
  234. package/lib/esm/IModelDb.js.map +1 -1
  235. package/lib/esm/IModelElementCloneContext.d.ts +1 -1
  236. package/lib/esm/IModelElementCloneContext.d.ts.map +1 -1
  237. package/lib/esm/IModelElementCloneContext.js +1 -1
  238. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  239. package/lib/esm/IModelHost.d.ts +16 -3
  240. package/lib/esm/IModelHost.d.ts.map +1 -1
  241. package/lib/esm/IModelHost.js +9 -3
  242. package/lib/esm/IModelHost.js.map +1 -1
  243. package/lib/esm/Material.d.ts +20 -1
  244. package/lib/esm/Material.d.ts.map +1 -1
  245. package/lib/esm/Material.js +31 -2
  246. package/lib/esm/Material.js.map +1 -1
  247. package/lib/esm/Model.d.ts +64 -28
  248. package/lib/esm/Model.d.ts.map +1 -1
  249. package/lib/esm/Model.js +116 -28
  250. package/lib/esm/Model.js.map +1 -1
  251. package/lib/esm/NativeHost.d.ts.map +1 -1
  252. package/lib/esm/NativeHost.js +4 -1
  253. package/lib/esm/NativeHost.js.map +1 -1
  254. package/lib/esm/Relationship.d.ts.map +1 -1
  255. package/lib/esm/Relationship.js +2 -0
  256. package/lib/esm/Relationship.js.map +1 -1
  257. package/lib/esm/SQLiteDb.d.ts +1 -1
  258. package/lib/esm/SQLiteDb.d.ts.map +1 -1
  259. package/lib/esm/SQLiteDb.js +6 -5
  260. package/lib/esm/SQLiteDb.js.map +1 -1
  261. package/lib/esm/SqliteStatement.d.ts +1 -1
  262. package/lib/esm/SqliteStatement.d.ts.map +1 -1
  263. package/lib/esm/SqliteStatement.js +1 -1
  264. package/lib/esm/SqliteStatement.js.map +1 -1
  265. package/lib/esm/TextAnnotationElement.d.ts +2 -2
  266. package/lib/esm/TextAnnotationElement.js +2 -2
  267. package/lib/esm/TextAnnotationElement.js.map +1 -1
  268. package/lib/esm/Texture.d.ts +1 -1
  269. package/lib/esm/Texture.js +1 -1
  270. package/lib/esm/Texture.js.map +1 -1
  271. package/lib/esm/TxnManager.d.ts +4 -4
  272. package/lib/esm/TxnManager.d.ts.map +1 -1
  273. package/lib/esm/TxnManager.js +2 -1
  274. package/lib/esm/TxnManager.js.map +1 -1
  275. package/lib/esm/ViewDefinition.d.ts +114 -14
  276. package/lib/esm/ViewDefinition.d.ts.map +1 -1
  277. package/lib/esm/ViewDefinition.js +223 -15
  278. package/lib/esm/ViewDefinition.js.map +1 -1
  279. package/lib/esm/ViewStateHydrator.js +3 -3
  280. package/lib/esm/ViewStateHydrator.js.map +1 -1
  281. package/lib/esm/ViewStore.d.ts.map +1 -1
  282. package/lib/esm/ViewStore.js +30 -29
  283. package/lib/esm/ViewStore.js.map +1 -1
  284. package/lib/esm/core-backend.d.ts +1 -1
  285. package/lib/esm/core-backend.d.ts.map +1 -1
  286. package/lib/esm/core-backend.js +21 -1
  287. package/lib/esm/core-backend.js.map +1 -1
  288. package/lib/esm/internal/ChannelAdmin.d.ts.map +1 -1
  289. package/lib/esm/internal/ChannelAdmin.js +7 -5
  290. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  291. package/lib/esm/internal/ElementLRUCache.d.ts +28 -0
  292. package/lib/esm/internal/ElementLRUCache.d.ts.map +1 -0
  293. package/lib/esm/internal/ElementLRUCache.js +116 -0
  294. package/lib/esm/internal/ElementLRUCache.js.map +1 -0
  295. package/lib/esm/{HubMock.d.ts → internal/HubMock.d.ts} +4 -5
  296. package/lib/esm/internal/HubMock.d.ts.map +1 -0
  297. package/lib/esm/{HubMock.js → internal/HubMock.js} +22 -11
  298. package/lib/esm/internal/HubMock.js.map +1 -0
  299. package/lib/esm/internal/Symbols.d.ts +2 -2
  300. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  301. package/lib/esm/internal/Symbols.js +2 -2
  302. package/lib/esm/internal/Symbols.js.map +1 -1
  303. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +2 -16
  304. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  305. package/lib/esm/internal/workspace/WorkspaceImpl.js +36 -100
  306. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  307. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts +1 -1
  308. package/lib/esm/rpc-impl/IModelReadRpcImpl.d.ts.map +1 -1
  309. package/lib/esm/rpc-impl/IModelReadRpcImpl.js +4 -3
  310. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  311. package/lib/esm/rpc-impl/RpcBriefcaseUtility.d.ts +2 -2
  312. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  313. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.d.ts +1 -1
  314. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js +1 -1
  315. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  316. package/lib/esm/test/ElementLRUCache.test.d.ts +2 -0
  317. package/lib/esm/test/ElementLRUCache.test.d.ts.map +1 -0
  318. package/lib/esm/test/ElementLRUCache.test.js +212 -0
  319. package/lib/esm/test/ElementLRUCache.test.js.map +1 -0
  320. package/lib/esm/test/IModelTestUtils.d.ts +6 -2
  321. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  322. package/lib/esm/test/IModelTestUtils.js +37 -6
  323. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  324. package/lib/esm/test/PrintElementTree.js +1 -0
  325. package/lib/esm/test/PrintElementTree.js.map +1 -1
  326. package/lib/esm/test/SchemaUtils.test.js +2 -0
  327. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  328. package/lib/esm/test/TestChangeSetUtility.js +1 -1
  329. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  330. package/lib/esm/test/TestUtils.d.ts +1 -1
  331. package/lib/esm/test/TestUtils.d.ts.map +1 -1
  332. package/lib/esm/test/TestUtils.js +1 -1
  333. package/lib/esm/test/TestUtils.js.map +1 -1
  334. package/lib/esm/test/ecdb/ECDb.test.js +12 -1
  335. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  336. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +4 -4
  337. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  338. package/lib/esm/test/ecdb/ECSqlAst.test.js +1 -0
  339. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  340. package/lib/esm/test/ecdb/ECSqlQuery.test.js +6 -23
  341. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  342. package/lib/esm/test/ecdb/ECSqlReader.test.js +1 -1
  343. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  344. package/lib/esm/test/ecdb/ECSqlStatement.test.js +253 -163
  345. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  346. package/lib/esm/test/ecdb/SqliteStatement.test.js +2 -0
  347. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  348. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +1 -0
  349. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  350. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js +5 -1
  351. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  352. package/lib/esm/test/element/ElementRoundTrip.test.js +10 -0
  353. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  354. package/lib/esm/test/font/IModelDbFonts.test.js +1 -1
  355. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  356. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +1 -1
  357. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  358. package/lib/esm/test/hubaccess/CheckpointManager.test.js +4 -3
  359. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  360. package/lib/esm/test/imodel/ElementTreeWalker.test.js +1 -0
  361. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  362. package/lib/esm/test/imodel/IModel.test.js +65 -13
  363. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  364. package/lib/esm/test/schema/GenericDomain.test.js +1 -0
  365. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  366. package/lib/esm/test/standalone/ChangeMerge.test.js +1 -1
  367. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  368. package/lib/esm/test/standalone/ChangesetReader.test.js +2 -1
  369. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  370. package/lib/esm/test/standalone/ExportGraphics.test.js +58 -41
  371. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  372. package/lib/esm/test/standalone/GeometryStream.test.js +49 -1
  373. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  374. package/lib/esm/test/standalone/HubMock.test.js +1 -1
  375. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  376. package/lib/esm/test/standalone/IModelLimits.test.d.ts +2 -0
  377. package/lib/esm/test/standalone/IModelLimits.test.d.ts.map +1 -0
  378. package/lib/esm/test/standalone/IModelLimits.test.js +103 -0
  379. package/lib/esm/test/standalone/IModelLimits.test.js.map +1 -0
  380. package/lib/esm/test/standalone/IModelWrite.test.js +8 -1
  381. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  382. package/lib/esm/test/standalone/MergeConflict.test.js +1 -1
  383. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  384. package/lib/esm/test/standalone/RenderMaterialElement.test.js +1 -0
  385. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  386. package/lib/esm/test/standalone/ServerBasedLocks.test.js +1 -1
  387. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  388. package/lib/esm/test/standalone/SnapshotDb.test.js +25 -5
  389. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  390. package/lib/esm/test/standalone/TxnManager.test.js +1 -1
  391. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  392. package/lib/esm/test/standalone/Workspace.test.js +4 -3
  393. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  394. package/lib/esm/workspace/Workspace.d.ts +6 -13
  395. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  396. package/lib/esm/workspace/Workspace.js.map +1 -1
  397. package/lib/esm/workspace/WorkspaceEditor.d.ts +2 -7
  398. package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -1
  399. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  400. package/package.json +13 -13
  401. package/lib/cjs/HubMock.d.ts.map +0 -1
  402. package/lib/cjs/HubMock.js.map +0 -1
  403. package/lib/esm/HubMock.d.ts.map +0 -1
  404. package/lib/esm/HubMock.js.map +0 -1
  405. package/lib/esm/test/CloudSqliteMock.d.ts +0 -37
  406. package/lib/esm/test/CloudSqliteMock.d.ts.map +0 -1
  407. package/lib/esm/test/CloudSqliteMock.js +0 -117
  408. package/lib/esm/test/CloudSqliteMock.js.map +0 -1
@@ -3,15 +3,13 @@
3
3
  */
4
4
  import { FilePropertyProps } from "@itwin/core-common";
5
5
  import { Settings } from "../../workspace/Settings";
6
- import { Workspace, WorkspaceContainer, WorkspaceContainerId, WorkspaceDb, WorkspaceDbFullName, WorkspaceDbLoadError, WorkspaceDbName, WorkspaceDbProps, WorkspaceDbVersion, WorkspaceOpts } from "../../workspace/Workspace";
6
+ import { Workspace, WorkspaceContainer, WorkspaceContainerId, WorkspaceDb, WorkspaceDbLoadError, WorkspaceDbProps, WorkspaceOpts } from "../../workspace/Workspace";
7
7
  import { WorkspaceEditor } from "../../workspace/WorkspaceEditor";
8
8
  /** file extension for local WorkspaceDbs */
9
9
  export declare const workspaceDbFileExt = "itwin-workspace";
10
10
  export declare function constructWorkspaceDb(props: WorkspaceDbProps, container: WorkspaceContainer): WorkspaceDb;
11
11
  export declare function constructWorkspace(settings: Settings, opts?: WorkspaceOpts): OwnedWorkspace;
12
12
  export declare function constructWorkspaceEditor(): WorkspaceEditor;
13
- export declare function noLeadingOrTrailingSpaces(name: string, msg: string): void;
14
- export declare function validateWorkspaceDbName(dbName: WorkspaceDbName): void;
15
13
  /**
16
14
  * Validate that a WorkspaceContainer.Id is valid.
17
15
  * The rules for ContainerIds (from Azure, see https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata):
@@ -20,20 +18,8 @@ export declare function validateWorkspaceDbName(dbName: WorkspaceDbName): void;
20
18
  * - may not be shorter than 3 or longer than 63 characters
21
19
  */
22
20
  export declare function validateWorkspaceContainerId(id: WorkspaceContainerId): void;
23
- export declare function validateWorkspaceDbVersion(version?: WorkspaceDbVersion): string;
24
- /**
25
- * Parse the name stored in a WorkspaceContainer into the dbName and version number. A single WorkspaceContainer may hold
26
- * many versions of the same WorkspaceDb. The name of the Db in the WorkspaceContainer is in the format "name:version". This
27
- * function splits them into separate strings.
28
- */
29
- export declare function parseWorkspaceDbFileName(dbFileName: WorkspaceDbFullName): {
30
- dbName: WorkspaceDbName;
31
- version: WorkspaceDbVersion;
32
- };
33
- /** Create a dbName for a WorkspaceDb from its base name and version. This will be in the format "name:version" */
34
- export declare function makeWorkspaceDbFileName(dbName: WorkspaceDbName, version?: WorkspaceDbVersion): WorkspaceDbName;
35
21
  export declare const workspaceManifestProperty: FilePropertyProps;
36
- export declare function throwWorkspaceDbLoadErrors(msg: string, errors: WorkspaceDbLoadError[]): never;
22
+ export declare function throwWorkspaceDbLoadErrors(message: string, wsLoadErrors: WorkspaceDbLoadError[]): never;
37
23
  export interface OwnedWorkspace extends Workspace {
38
24
  /** Only the owner of a Workspace may close it. */
39
25
  close(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkspaceImpl.d.ts","sourceRoot":"","sources":["../../../../src/internal/workspace/WorkspaceImpl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAOH,OAAO,EAAE,iBAAiB,EAA4C,MAAM,oBAAoB,CAAC;AAMjG,OAAO,EAAe,QAAQ,EAAgE,MAAM,0BAA0B,CAAC;AAE/H,OAAO,EACsB,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,EAA2B,WAAW,EACpH,mBAAmB,EAAE,oBAAoB,EAA8C,eAAe,EAA6B,gBAAgB,EAC1F,kBAAkB,EAAE,aAAa,EAC3F,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAqH,eAAe,EAAE,MAAM,iCAAiC,CAAC;AASrL,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AA6rBpD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,GAAG,WAAW,CAExG;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,cAAc,CAE3F;AAED,wBAAgB,wBAAwB,IAAI,eAAe,CAE1D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,QAGlE;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,QAK9D;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,oBAAoB,QAGpE;AAED,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE,kBAAkB,UAStE;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,mBAAmB,GAAG;IAAE,MAAM,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,kBAAkB,CAAA;CAAE,CAGlI;AAED,kHAAkH;AAClH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,eAAe,CAE9G;AAED,eAAO,MAAM,yBAAyB,EAAE,iBAAgE,CAAC;AASzG,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAI7F;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,kDAAkD;IAClD,KAAK,IAAI,IAAI,CAAC;CACf"}
1
+ {"version":3,"file":"WorkspaceImpl.d.ts","sourceRoot":"","sources":["../../../../src/internal/workspace/WorkspaceImpl.ts"],"names":[],"mappings":"AAIA;;GAEG;AAMH,OAAO,EAAoB,iBAAiB,EAA+C,MAAM,oBAAoB,CAAC;AAMtH,OAAO,EAAe,QAAQ,EAAgE,MAAM,0BAA0B,CAAC;AAE/H,OAAO,EACsB,SAAS,EAAE,kBAAkB,EAAE,oBAAoB,EAA2B,WAAW,EAC/F,oBAAoB,EAA0F,gBAAgB,EAC1F,aAAa,EACvE,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAqH,eAAe,EAAE,MAAM,iCAAiC,CAAC;AASrL,4CAA4C;AAC5C,eAAO,MAAM,kBAAkB,oBAAoB,CAAC;AAgqBpD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,kBAAkB,GAAG,WAAW,CAExG;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,aAAa,GAAG,cAAc,CAE3F;AAED,wBAAgB,wBAAwB,IAAI,eAAe,CAE1D;AAED;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,EAAE,EAAE,oBAAoB,QAGpE;AAED,eAAO,MAAM,yBAAyB,EAAE,iBAAgE,CAAC;AAOzG,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,oBAAoB,EAAE,GAAG,KAAK,CAEvG;AAED,MAAM,WAAW,cAAe,SAAQ,SAAS;IAC/C,kDAAkD;IAClD,KAAK,IAAI,IAAI,CAAC;CACf"}
@@ -11,17 +11,11 @@ exports.workspaceManifestProperty = exports.workspaceDbFileExt = void 0;
11
11
  exports.constructWorkspaceDb = constructWorkspaceDb;
12
12
  exports.constructWorkspace = constructWorkspace;
13
13
  exports.constructWorkspaceEditor = constructWorkspaceEditor;
14
- exports.noLeadingOrTrailingSpaces = noLeadingOrTrailingSpaces;
15
- exports.validateWorkspaceDbName = validateWorkspaceDbName;
16
14
  exports.validateWorkspaceContainerId = validateWorkspaceContainerId;
17
- exports.validateWorkspaceDbVersion = validateWorkspaceDbVersion;
18
- exports.parseWorkspaceDbFileName = parseWorkspaceDbFileName;
19
- exports.makeWorkspaceDbFileName = makeWorkspaceDbFileName;
20
15
  exports.throwWorkspaceDbLoadErrors = throwWorkspaceDbLoadErrors;
21
16
  const crypto_1 = require("crypto");
22
17
  const fs = require("fs-extra");
23
18
  const path_1 = require("path");
24
- const semver = require("semver");
25
19
  const core_bentley_1 = require("@itwin/core-bentley");
26
20
  const core_common_1 = require("@itwin/core-common");
27
21
  const CloudSqlite_1 = require("../../CloudSqlite");
@@ -42,7 +36,7 @@ exports.workspaceDbFileExt = "itwin-workspace";
42
36
  function makeWorkspaceCloudCache(arg) {
43
37
  const cache = CloudSqlite_1.CloudSqlite.CloudCaches.getCache(arg);
44
38
  if (undefined === cache.workspaceContainers) // if we just created this container, add the map.
45
- cache.workspaceContainers = new Map();
39
+ CloudSqlite_1.CloudSqlite.addHiddenProperty(cache, "workspaceContainers", new Map());
46
40
  return cache;
47
41
  }
48
42
  function getContainerFullId(props) {
@@ -56,20 +50,20 @@ function getWorkspaceCloudContainer(props, cache) {
56
50
  cloudContainer = CloudSqlite_1.CloudSqlite.createCloudContainer(props);
57
51
  cache.workspaceContainers.set(id, cloudContainer);
58
52
  cloudContainer.connectCount = 0;
59
- cloudContainer.sharedConnect = function () {
53
+ CloudSqlite_1.CloudSqlite.addHiddenProperty(cloudContainer, "sharedConnect", function () {
60
54
  if (this.connectCount++ === 0) {
61
55
  this.connect(cache);
62
56
  return true;
63
57
  }
64
58
  return false;
65
- };
66
- cloudContainer.sharedDisconnect = function () {
59
+ });
60
+ CloudSqlite_1.CloudSqlite.addHiddenProperty(cloudContainer, "sharedDisconnect", function () {
67
61
  if (--this.connectCount <= 0) {
68
62
  this.disconnect();
69
63
  cache.workspaceContainers.delete(id);
70
64
  this.connectCount = 0;
71
65
  }
72
- };
66
+ });
73
67
  return cloudContainer;
74
68
  }
75
69
  class WorkspaceContainerImpl {
@@ -107,31 +101,14 @@ class WorkspaceContainerImpl {
107
101
  }
108
102
  }
109
103
  resolveDbFileName(props) {
110
- const cloudContainer = this.cloudContainer;
111
- if (undefined === cloudContainer)
104
+ const container = this.cloudContainer;
105
+ if (undefined === container)
112
106
  return (0, path_1.join)(this.dirName, `${props.dbName}.${exports.workspaceDbFileExt}`); // local file, versions not allowed
113
- const dbName = workspaceDbNameWithDefault(props.dbName);
114
- const dbs = cloudContainer.queryDatabases(`${dbName}*`); // get all databases that start with dbName
115
- const versions = [];
116
- for (const db of dbs) {
117
- const thisDb = parseWorkspaceDbFileName(db);
118
- if (thisDb.dbName === dbName && "string" === typeof thisDb.version && thisDb.version.length > 0)
119
- versions.push(thisDb.version);
120
- }
121
- if (versions.length === 0)
122
- versions[0] = "0.0.0";
123
- const range = props.version ?? "*";
124
- try {
125
- const version = semver.maxSatisfying(versions, range, { loose: true, includePrerelease: props.includePrerelease });
126
- if (version)
127
- return `${dbName}:${version}`;
128
- }
129
- catch { }
130
- throwWorkspaceDbLoadError(`No version of '${dbName}' available for "${range}"`, props);
107
+ return CloudSqlite_1.CloudSqlite.querySemverMatch({ ...props, container, dbName: workspaceDbNameWithDefault(props.dbName) });
131
108
  }
132
109
  addWorkspaceDb(toAdd) {
133
110
  if (undefined !== this._wsDbs.get(toAdd.dbName))
134
- throw new Error(`workspaceDb '${toAdd.dbName}' already exists in workspace`);
111
+ core_common_1.WorkspaceError.throwError("already-exists", { message: `workspaceDb '${toAdd.dbName}' already exists in workspace` });
135
112
  this._wsDbs.set(toAdd.dbName, toAdd);
136
113
  }
137
114
  getWorkspaceDb(props) {
@@ -176,7 +153,7 @@ class WorkspaceDbImpl {
176
153
  }
177
154
  constructor(props, container) {
178
155
  this.dbName = workspaceDbNameWithDefault(props.dbName);
179
- validateWorkspaceDbName(this.dbName);
156
+ CloudSqlite_1.CloudSqlite.validateDbName(this.dbName);
180
157
  this._container = container;
181
158
  this.dbFileName = container.resolveDbFileName(props);
182
159
  container.addWorkspaceDb(this);
@@ -197,7 +174,7 @@ class WorkspaceDbImpl {
197
174
  const cloudContainer = this.container.cloudContainer;
198
175
  if (undefined === cloudContainer)
199
176
  return "1.0.0"; // local file, no versioning. return default
200
- return parseWorkspaceDbFileName(this.dbFileName).version;
177
+ return CloudSqlite_1.CloudSqlite.parseDbFileName(this.dbFileName).version;
201
178
  }
202
179
  get manifest() {
203
180
  return this._manifest ??= this.withOpenDb((db) => {
@@ -264,7 +241,7 @@ class WorkspaceDbImpl {
264
241
  prefetch(opts) {
265
242
  const cloudContainer = this._container.cloudContainer;
266
243
  if (cloudContainer === undefined)
267
- throw new Error("no cloud container to prefetch");
244
+ core_common_1.WorkspaceError.throwError("no-cloud-container", { message: "no cloud container to prefetch" });
268
245
  return CloudSqlite_1.CloudSqlite.startCloudPrefetch(cloudContainer, this.dbFileName, opts);
269
246
  }
270
247
  queryResources(args) {
@@ -307,7 +284,7 @@ class WorkspaceImpl {
307
284
  }
308
285
  addContainer(toAdd) {
309
286
  if (undefined !== this._containers.get(toAdd.id))
310
- throw new Error("container already exists in workspace");
287
+ core_common_1.WorkspaceError.throwError("container-exists", { message: `container ${toAdd.id} already exists in workspace` });
311
288
  this._containers.set(toAdd.id, toAdd);
312
289
  }
313
290
  findContainer(containerId) {
@@ -424,7 +401,7 @@ class EditorImpl {
424
401
  static _cacheName = workspaceEditorName;
425
402
  static async initializeWorkspace(args) {
426
403
  const props = await this.createBlobContainer({ scope: args.scope, metadata: { ...args.metadata, containerType: "workspace" } });
427
- const dbFullName = makeWorkspaceDbFileName(workspaceDbNameWithDefault(args.dbName), "0.0.0");
404
+ const dbFullName = CloudSqlite_1.CloudSqlite.makeSemverName(workspaceDbNameWithDefault(args.dbName), "0.0.0");
428
405
  await super._initializeDb({ ...args, props, dbName: dbFullName, dbType: WorkspaceSqliteDb_1.WorkspaceSqliteDb, blockSize: "4M" });
429
406
  return props;
430
407
  }
@@ -464,28 +441,20 @@ class EditorContainerImpl extends WorkspaceContainerImpl {
464
441
  };
465
442
  }
466
443
  async createNewWorkspaceDbVersion(args) {
467
- const cloudContainer = this.cloudContainer;
468
- if (undefined === cloudContainer)
469
- throw new Error("versions require cloud containers");
470
- const oldName = this.resolveDbFileName(args.fromProps ?? {});
471
- const oldDb = parseWorkspaceDbFileName(oldName);
472
- const newVersion = semver.inc(oldDb.version, args.versionType, args.identifier);
473
- if (!newVersion)
474
- throwWorkspaceDbLoadError("invalid version", args.fromProps ?? {});
475
- const newName = makeWorkspaceDbFileName(oldDb.dbName, newVersion);
476
- await cloudContainer.copyDatabase(oldName, newName);
477
- // return the old and new db names and versions
478
- return { oldDb, newDb: { dbName: oldDb.dbName, version: newVersion } };
444
+ const container = this.cloudContainer;
445
+ if (undefined === container)
446
+ core_common_1.WorkspaceError.throwError("no-cloud-container", { message: "versions require cloud containers" });
447
+ const fromDb = { ...args.fromProps, dbName: workspaceDbNameWithDefault(args.fromProps?.dbName) };
448
+ return CloudSqlite_1.CloudSqlite.createNewDbVersion(container, { ...args, fromDb });
479
449
  }
480
450
  getWorkspaceDb(props) {
481
451
  return this.getEditableDb(props);
482
452
  }
483
453
  getEditableDb(props) {
484
454
  const db = this._wsDbs.get(workspaceDbNameWithDefault(props.dbName)) ?? new EditableDbImpl(props, this);
485
- const isPrerelease = semver.major(db.version) === 0 || semver.prerelease(db.version);
486
- if (!isPrerelease && this.cloudContainer && this.cloudContainer.queryDatabase(db.dbFileName)?.state !== "copied") {
455
+ if (this.cloudContainer && !CloudSqlite_1.CloudSqlite.isSemverEditable(db.dbFileName, this.cloudContainer)) {
487
456
  this._wsDbs.delete(workspaceDbNameWithDefault(props.dbName));
488
- throw new Error(`${db.dbFileName} has been published and is not editable. Make a new version first.`);
457
+ core_common_1.CloudSqliteError.throwError("already-published", { message: `${db.dbFileName} has been published and is not editable. Make a new version first.` });
489
458
  }
490
459
  return db;
491
460
  }
@@ -517,7 +486,7 @@ class EditorContainerImpl extends WorkspaceContainerImpl {
517
486
  if (fs.existsSync(tempDbFile))
518
487
  IModelJsFs_1.IModelJsFs.removeSync(tempDbFile);
519
488
  WorkspaceEditor_1.WorkspaceEditor.createEmptyDb({ localFileName: tempDbFile, manifest: args.manifest });
520
- await CloudSqlite_1.CloudSqlite.uploadDb(this.cloudContainer, { localFileName: tempDbFile, dbName: makeWorkspaceDbFileName(workspaceDbNameWithDefault(args.dbName)) });
489
+ await CloudSqlite_1.CloudSqlite.uploadDb(this.cloudContainer, { localFileName: tempDbFile, dbName: CloudSqlite_1.CloudSqlite.makeSemverName(workspaceDbNameWithDefault(args.dbName)) });
521
490
  IModelJsFs_1.IModelJsFs.removeSync(tempDbFile);
522
491
  }
523
492
  return this.getWorkspaceDb(args);
@@ -529,23 +498,22 @@ class EditableDbImpl extends WorkspaceDbImpl {
529
498
  return this._container;
530
499
  }
531
500
  static validateResourceName(name) {
532
- if (name.trim() !== name) {
533
- throw new Error("resource name may not have leading or trailing spaces");
534
- }
501
+ if (name.trim() !== name)
502
+ core_common_1.WorkspaceError.throwError("invalid-name", { message: "resource name may not have leading or trailing spaces" });
535
503
  if (name.length > 1024) {
536
- throw new Error("resource name too long");
504
+ core_common_1.WorkspaceError.throwError("invalid-name", { message: "resource name too long" });
537
505
  }
538
506
  }
539
507
  validateResourceSize(val) {
540
508
  const len = typeof val === "string" ? val.length : val.byteLength;
541
509
  if (len > (1024 * 1024 * 1024)) // one gigabyte
542
- throw new Error("value is too large");
510
+ core_common_1.WorkspaceError.throwError("too-large", { message: "value is too large" });
543
511
  }
544
512
  get cloudProps() {
545
513
  const props = this._container.cloudProps;
546
514
  if (props === undefined)
547
515
  return undefined;
548
- const parsed = parseWorkspaceDbFileName(this.dbFileName);
516
+ const parsed = CloudSqlite_1.CloudSqlite.parseDbFileName(this.dbFileName);
549
517
  return { ...props, dbName: parsed.dbName, version: parsed.version };
550
518
  }
551
519
  open() {
@@ -572,8 +540,8 @@ class EditableDbImpl extends WorkspaceDbImpl {
572
540
  const rc = stmt.step();
573
541
  if (core_bentley_1.DbResult.BE_SQLITE_DONE !== rc) {
574
542
  if (core_bentley_1.DbResult.BE_SQLITE_CONSTRAINT_PRIMARYKEY === rc)
575
- throw new core_common_1.IModelError(rc, `resource "${rscName}" already exists`);
576
- throw new core_common_1.IModelError(rc, `workspace [${sql}]`);
543
+ core_common_1.WorkspaceError.throwError("resource-exists", { message: `resource "${rscName}" already exists` });
544
+ core_common_1.WorkspaceError.throwError("write-error", { message: `workspace [${sql}], rc=${rc}` });
577
545
  }
578
546
  });
579
547
  this.sqliteDb.saveChanges();
@@ -631,7 +599,7 @@ class EditableDbImpl extends WorkspaceDbImpl {
631
599
  removeFile(rscName) {
632
600
  const file = this.queryFileResource(rscName);
633
601
  if (undefined === file)
634
- throw new Error(`file resource "${rscName}" does not exist`);
602
+ core_common_1.WorkspaceError.throwError("does-not-exist", { message: `file resource "${rscName}" does not exist` });
635
603
  if (file && fs.existsSync(file.localFileName))
636
604
  fs.unlinkSync(file.localFileName);
637
605
  this.sqliteDb[Symbols_1._nativeDb].removeEmbeddedFile(rscName);
@@ -646,15 +614,6 @@ function constructWorkspace(settings, opts) {
646
614
  function constructWorkspaceEditor() {
647
615
  return new EditorImpl();
648
616
  }
649
- function noLeadingOrTrailingSpaces(name, msg) {
650
- if (name.trim() !== name)
651
- throw new Error(`${msg} [${name}] may not have leading or trailing spaces`);
652
- }
653
- function validateWorkspaceDbName(dbName) {
654
- if (dbName === "" || dbName.length > 255 || /[#\.<>:"/\\"`'|?*\u0000-\u001F]/g.test(dbName) || /^(con|prn|aux|nul|com\d|lpt\d)$/i.test(dbName))
655
- throw new Error(`invalid dbName: [${dbName}]`);
656
- noLeadingOrTrailingSpaces(dbName, "dbName");
657
- }
658
617
  /**
659
618
  * Validate that a WorkspaceContainer.Id is valid.
660
619
  * The rules for ContainerIds (from Azure, see https://docs.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-containers--blobs--and-metadata):
@@ -664,41 +623,13 @@ function validateWorkspaceDbName(dbName) {
664
623
  */
665
624
  function validateWorkspaceContainerId(id) {
666
625
  if (!/^(?=.{3,63}$)[a-z0-9]+(-[a-z0-9]+)*$/g.test(id))
667
- throw new Error(`invalid containerId: [${id}]`);
668
- }
669
- function validateWorkspaceDbVersion(version) {
670
- version = version ?? "0.0.0";
671
- const opts = { loose: true, includePrerelease: true };
672
- // clean allows prerelease, so try it first. If that fails attempt to coerce it (coerce strips prerelease even if you say not to.)
673
- const semVersion = semver.clean(version, opts) ?? semver.coerce(version, opts)?.version;
674
- if (!semVersion)
675
- throw new Error("invalid version specification");
676
- version = semVersion;
677
- return version;
678
- }
679
- /**
680
- * Parse the name stored in a WorkspaceContainer into the dbName and version number. A single WorkspaceContainer may hold
681
- * many versions of the same WorkspaceDb. The name of the Db in the WorkspaceContainer is in the format "name:version". This
682
- * function splits them into separate strings.
683
- */
684
- function parseWorkspaceDbFileName(dbFileName) {
685
- const parts = dbFileName.split(":");
686
- return { dbName: parts[0], version: parts[1] };
687
- }
688
- /** Create a dbName for a WorkspaceDb from its base name and version. This will be in the format "name:version" */
689
- function makeWorkspaceDbFileName(dbName, version) {
690
- return `${dbName}:${validateWorkspaceDbVersion(version)}`;
626
+ core_common_1.WorkspaceError.throwError("invalid-name", { message: `invalid containerId: [${id}]` });
691
627
  }
692
628
  exports.workspaceManifestProperty = { namespace: "workspace", name: "manifest" };
693
- function throwWorkspaceDbLoadError(msg, wsDbProps, db) {
694
- const error = new Error(msg);
695
- error.wsDbProps = wsDbProps;
696
- error.wsDb = db;
697
- throw error;
629
+ function throwWorkspaceDbLoadError(message, wsDbProps, wsDb) {
630
+ core_common_1.WorkspaceError.throwError("load-error", { message, wsDb, wsDbProps });
698
631
  }
699
- function throwWorkspaceDbLoadErrors(msg, errors) {
700
- const error = new Error(msg);
701
- error.wsLoadErrors = errors;
702
- throw error;
632
+ function throwWorkspaceDbLoadErrors(message, wsLoadErrors) {
633
+ core_common_1.WorkspaceError.throwError("load-errors", { message, wsLoadErrors });
703
634
  }
704
635
  //# sourceMappingURL=WorkspaceImpl.js.map