@itwin/core-backend 5.0.0-dev.99 → 5.1.0-dev.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 (443) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/BackendHubAccess.js.map +1 -1
  3. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  4. package/lib/cjs/BisCoreSchema.js.map +1 -1
  5. package/lib/cjs/BlobContainerService.js.map +1 -1
  6. package/lib/cjs/BriefcaseManager.js.map +1 -1
  7. package/lib/cjs/CatalogDb.d.ts +103 -0
  8. package/lib/cjs/CatalogDb.d.ts.map +1 -0
  9. package/lib/cjs/CatalogDb.js +271 -0
  10. package/lib/cjs/CatalogDb.js.map +1 -0
  11. package/lib/cjs/Category.js.map +1 -1
  12. package/lib/cjs/ChangeSummaryManager.js +2 -2
  13. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  14. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  15. package/lib/cjs/ChangesetECAdaptor.js +242 -242
  16. package/lib/cjs/ChangesetECAdaptor.js.map +1 -1
  17. package/lib/cjs/ChannelControl.js.map +1 -1
  18. package/lib/cjs/CheckpointManager.d.ts +12 -10
  19. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  20. package/lib/cjs/CheckpointManager.js +17 -41
  21. package/lib/cjs/CheckpointManager.js.map +1 -1
  22. package/lib/cjs/ClassRegistry.js +5 -5
  23. package/lib/cjs/ClassRegistry.js.map +1 -1
  24. package/lib/cjs/CloudSqlite.d.ts +104 -20
  25. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  26. package/lib/cjs/CloudSqlite.js +157 -46
  27. package/lib/cjs/CloudSqlite.js.map +1 -1
  28. package/lib/cjs/CodeService.js.map +1 -1
  29. package/lib/cjs/CodeSpecs.js.map +1 -1
  30. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  31. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  32. package/lib/cjs/DevTools.js.map +1 -1
  33. package/lib/cjs/DisplayStyle.js.map +1 -1
  34. package/lib/cjs/ECDb.js.map +1 -1
  35. package/lib/cjs/ECSchemaXmlContext.d.ts +1 -1
  36. package/lib/cjs/ECSchemaXmlContext.js +1 -1
  37. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  38. package/lib/cjs/ECSqlStatement.js.map +1 -1
  39. package/lib/cjs/Element.js.map +1 -1
  40. package/lib/cjs/ElementAspect.js.map +1 -1
  41. package/lib/cjs/ElementGraphics.js.map +1 -1
  42. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  43. package/lib/cjs/Entity.d.ts +8 -4
  44. package/lib/cjs/Entity.d.ts.map +1 -1
  45. package/lib/cjs/Entity.js +3 -3
  46. package/lib/cjs/Entity.js.map +1 -1
  47. package/lib/cjs/EntityReferences.js.map +1 -1
  48. package/lib/cjs/ExportGraphics.js.map +1 -1
  49. package/lib/cjs/ExternalSource.js.map +1 -1
  50. package/lib/cjs/FontFile.js.map +1 -1
  51. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  52. package/lib/cjs/GeographicCRSServices.js.map +1 -1
  53. package/lib/cjs/GeometrySummary.js +47 -47
  54. package/lib/cjs/GeometrySummary.js.map +1 -1
  55. package/lib/cjs/IModelDb.d.ts +6 -1
  56. package/lib/cjs/IModelDb.d.ts.map +1 -1
  57. package/lib/cjs/IModelDb.js +22 -15
  58. package/lib/cjs/IModelDb.js.map +1 -1
  59. package/lib/cjs/IModelDbFonts.js.map +1 -1
  60. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  61. package/lib/cjs/IModelHost.d.ts +1 -1
  62. package/lib/cjs/IModelHost.js +1 -1
  63. package/lib/cjs/IModelHost.js.map +1 -1
  64. package/lib/cjs/IModelJsFs.js.map +1 -1
  65. package/lib/cjs/ImageSourceConversion.js.map +1 -1
  66. package/lib/cjs/IpcHost.js.map +1 -1
  67. package/lib/cjs/LineStyle.js.map +1 -1
  68. package/lib/cjs/LocalHub.js +1 -1
  69. package/lib/cjs/LocalHub.js.map +1 -1
  70. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  71. package/lib/cjs/LockControl.js.map +1 -1
  72. package/lib/cjs/Material.js.map +1 -1
  73. package/lib/cjs/Model.js.map +1 -1
  74. package/lib/cjs/NativeAppStorage.js.map +1 -1
  75. package/lib/cjs/NativeHost.d.ts.map +1 -1
  76. package/lib/cjs/NativeHost.js +4 -1
  77. package/lib/cjs/NativeHost.js.map +1 -1
  78. package/lib/cjs/NavigationRelationship.js.map +1 -1
  79. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  80. package/lib/cjs/PropertyStore.js.map +1 -1
  81. package/lib/cjs/Relationship.js.map +1 -1
  82. package/lib/cjs/RpcBackend.js.map +1 -1
  83. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  84. package/lib/cjs/SQLiteDb.js +5 -4
  85. package/lib/cjs/SQLiteDb.js.map +1 -1
  86. package/lib/cjs/Schema.js.map +1 -1
  87. package/lib/cjs/SchemaSync.js.map +1 -1
  88. package/lib/cjs/SchemaUtils.js.map +1 -1
  89. package/lib/cjs/SheetIndex.js.map +1 -1
  90. package/lib/cjs/SqliteChangesetReader.js.map +1 -1
  91. package/lib/cjs/SqliteStatement.js.map +1 -1
  92. package/lib/cjs/TextAnnotationElement.js.map +1 -1
  93. package/lib/cjs/TextAnnotationGeometry.js.map +1 -1
  94. package/lib/cjs/TextAnnotationLayout.js.map +1 -1
  95. package/lib/cjs/Texture.js.map +1 -1
  96. package/lib/cjs/TileStorage.js.map +1 -1
  97. package/lib/cjs/TxnManager.js.map +1 -1
  98. package/lib/cjs/ViewDefinition.js.map +1 -1
  99. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  100. package/lib/cjs/ViewStore.d.ts.map +1 -1
  101. package/lib/cjs/ViewStore.js +27 -27
  102. package/lib/cjs/ViewStore.js.map +1 -1
  103. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  104. package/lib/cjs/assets/Settings/Schemas/Base.Schema.json +32 -32
  105. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +27 -27
  106. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +94 -94
  107. package/lib/cjs/assets/Settings/backend.setting.json5 +21 -21
  108. package/lib/cjs/core-backend.d.ts +1 -1
  109. package/lib/cjs/core-backend.d.ts.map +1 -1
  110. package/lib/cjs/core-backend.js +1 -1
  111. package/lib/cjs/core-backend.js.map +1 -1
  112. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  113. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  114. package/lib/cjs/domains/GenericElements.js.map +1 -1
  115. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  116. package/lib/cjs/internal/ChangesetConflictArgs.js.map +1 -1
  117. package/lib/cjs/internal/ChannelAdmin.js +4 -4
  118. package/lib/cjs/internal/ChannelAdmin.js.map +1 -1
  119. package/lib/cjs/internal/FontFileImpl.js.map +1 -1
  120. package/lib/cjs/{HubMock.d.ts → internal/HubMock.d.ts} +4 -5
  121. package/lib/cjs/internal/HubMock.d.ts.map +1 -0
  122. package/lib/cjs/{HubMock.js → internal/HubMock.js} +22 -11
  123. package/lib/cjs/internal/HubMock.js.map +1 -0
  124. package/lib/cjs/internal/IModelDbFontsImpl.js.map +1 -1
  125. package/lib/cjs/internal/NativePlatform.js.map +1 -1
  126. package/lib/cjs/internal/NoLocks.js.map +1 -1
  127. package/lib/cjs/internal/ServerBasedLocks.js.map +1 -1
  128. package/lib/cjs/internal/Symbols.d.ts +1 -2
  129. package/lib/cjs/internal/Symbols.d.ts.map +1 -1
  130. package/lib/cjs/internal/Symbols.js +2 -3
  131. package/lib/cjs/internal/Symbols.js.map +1 -1
  132. package/lib/cjs/internal/cross-package.js.map +1 -1
  133. package/lib/cjs/internal/workspace/SettingsImpl.js.map +1 -1
  134. package/lib/cjs/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  135. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts +2 -16
  136. package/lib/cjs/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  137. package/lib/cjs/internal/workspace/WorkspaceImpl.js +35 -104
  138. package/lib/cjs/internal/workspace/WorkspaceImpl.js.map +1 -1
  139. package/lib/cjs/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  140. package/lib/cjs/rpc/multipart.js.map +1 -1
  141. package/lib/cjs/rpc/tracing.js.map +1 -1
  142. package/lib/cjs/rpc/web/logging.js.map +1 -1
  143. package/lib/cjs/rpc/web/request.js.map +1 -1
  144. package/lib/cjs/rpc/web/response.js.map +1 -1
  145. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  146. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  147. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  148. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  149. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  150. package/lib/cjs/workspace/Settings.js.map +1 -1
  151. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  152. package/lib/cjs/workspace/Workspace.d.ts +6 -13
  153. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  154. package/lib/cjs/workspace/Workspace.js.map +1 -1
  155. package/lib/cjs/workspace/WorkspaceEditor.d.ts +2 -7
  156. package/lib/cjs/workspace/WorkspaceEditor.d.ts.map +1 -1
  157. package/lib/cjs/workspace/WorkspaceEditor.js.map +1 -1
  158. package/lib/esm/BackendHubAccess.js.map +1 -1
  159. package/lib/esm/BackendLoggerCategory.js.map +1 -1
  160. package/lib/esm/BisCoreSchema.js.map +1 -1
  161. package/lib/esm/BlobContainerService.js.map +1 -1
  162. package/lib/esm/BriefcaseManager.js.map +1 -1
  163. package/lib/esm/CatalogDb.d.ts +103 -0
  164. package/lib/esm/CatalogDb.d.ts.map +1 -0
  165. package/lib/esm/CatalogDb.js +267 -0
  166. package/lib/esm/CatalogDb.js.map +1 -0
  167. package/lib/esm/Category.js.map +1 -1
  168. package/lib/esm/ChangeSummaryManager.js +2 -2
  169. package/lib/esm/ChangeSummaryManager.js.map +1 -1
  170. package/lib/esm/ChangedElementsDb.js.map +1 -1
  171. package/lib/esm/ChangesetECAdaptor.js +242 -242
  172. package/lib/esm/ChangesetECAdaptor.js.map +1 -1
  173. package/lib/esm/ChannelControl.js.map +1 -1
  174. package/lib/esm/CheckpointManager.d.ts +12 -10
  175. package/lib/esm/CheckpointManager.d.ts.map +1 -1
  176. package/lib/esm/CheckpointManager.js +18 -42
  177. package/lib/esm/CheckpointManager.js.map +1 -1
  178. package/lib/esm/ClassRegistry.js +5 -5
  179. package/lib/esm/ClassRegistry.js.map +1 -1
  180. package/lib/esm/CloudSqlite.d.ts +104 -20
  181. package/lib/esm/CloudSqlite.d.ts.map +1 -1
  182. package/lib/esm/CloudSqlite.js +157 -46
  183. package/lib/esm/CloudSqlite.js.map +1 -1
  184. package/lib/esm/CodeService.js.map +1 -1
  185. package/lib/esm/CodeSpecs.js.map +1 -1
  186. package/lib/esm/ConcurrentQuery.js.map +1 -1
  187. package/lib/esm/CustomViewState3dCreator.js.map +1 -1
  188. package/lib/esm/DevTools.js.map +1 -1
  189. package/lib/esm/DisplayStyle.js.map +1 -1
  190. package/lib/esm/ECDb.js.map +1 -1
  191. package/lib/esm/ECSchemaXmlContext.d.ts +1 -1
  192. package/lib/esm/ECSchemaXmlContext.js +1 -1
  193. package/lib/esm/ECSchemaXmlContext.js.map +1 -1
  194. package/lib/esm/ECSqlStatement.js.map +1 -1
  195. package/lib/esm/Element.js.map +1 -1
  196. package/lib/esm/ElementAspect.js.map +1 -1
  197. package/lib/esm/ElementGraphics.js.map +1 -1
  198. package/lib/esm/ElementTreeWalker.js.map +1 -1
  199. package/lib/esm/Entity.d.ts +8 -4
  200. package/lib/esm/Entity.d.ts.map +1 -1
  201. package/lib/esm/Entity.js +3 -3
  202. package/lib/esm/Entity.js.map +1 -1
  203. package/lib/esm/EntityReferences.js.map +1 -1
  204. package/lib/esm/ExportGraphics.js.map +1 -1
  205. package/lib/esm/ExternalSource.js.map +1 -1
  206. package/lib/esm/FontFile.js.map +1 -1
  207. package/lib/esm/GeoCoordConfig.js.map +1 -1
  208. package/lib/esm/GeographicCRSServices.js.map +1 -1
  209. package/lib/esm/GeometrySummary.js +47 -47
  210. package/lib/esm/GeometrySummary.js.map +1 -1
  211. package/lib/esm/IModelDb.d.ts +6 -1
  212. package/lib/esm/IModelDb.d.ts.map +1 -1
  213. package/lib/esm/IModelDb.js +22 -15
  214. package/lib/esm/IModelDb.js.map +1 -1
  215. package/lib/esm/IModelDbFonts.js.map +1 -1
  216. package/lib/esm/IModelElementCloneContext.js.map +1 -1
  217. package/lib/esm/IModelHost.d.ts +1 -1
  218. package/lib/esm/IModelHost.js +1 -1
  219. package/lib/esm/IModelHost.js.map +1 -1
  220. package/lib/esm/IModelJsFs.js.map +1 -1
  221. package/lib/esm/ImageSourceConversion.js.map +1 -1
  222. package/lib/esm/IpcHost.js.map +1 -1
  223. package/lib/esm/LineStyle.js.map +1 -1
  224. package/lib/esm/LocalHub.js +1 -1
  225. package/lib/esm/LocalHub.js.map +1 -1
  226. package/lib/esm/LocalhostIpcHost.js.map +1 -1
  227. package/lib/esm/LockControl.js.map +1 -1
  228. package/lib/esm/Material.js.map +1 -1
  229. package/lib/esm/Model.js.map +1 -1
  230. package/lib/esm/NativeAppStorage.js.map +1 -1
  231. package/lib/esm/NativeHost.d.ts.map +1 -1
  232. package/lib/esm/NativeHost.js +4 -1
  233. package/lib/esm/NativeHost.js.map +1 -1
  234. package/lib/esm/NavigationRelationship.js.map +1 -1
  235. package/lib/esm/PromiseMemoizer.js.map +1 -1
  236. package/lib/esm/PropertyStore.js.map +1 -1
  237. package/lib/esm/Relationship.js.map +1 -1
  238. package/lib/esm/RpcBackend.js.map +1 -1
  239. package/lib/esm/SQLiteDb.d.ts.map +1 -1
  240. package/lib/esm/SQLiteDb.js +5 -4
  241. package/lib/esm/SQLiteDb.js.map +1 -1
  242. package/lib/esm/Schema.js.map +1 -1
  243. package/lib/esm/SchemaSync.js.map +1 -1
  244. package/lib/esm/SchemaUtils.js.map +1 -1
  245. package/lib/esm/SheetIndex.js.map +1 -1
  246. package/lib/esm/SqliteChangesetReader.js.map +1 -1
  247. package/lib/esm/SqliteStatement.js.map +1 -1
  248. package/lib/esm/TextAnnotationElement.js.map +1 -1
  249. package/lib/esm/TextAnnotationGeometry.js.map +1 -1
  250. package/lib/esm/TextAnnotationLayout.js.map +1 -1
  251. package/lib/esm/Texture.js.map +1 -1
  252. package/lib/esm/TileStorage.js.map +1 -1
  253. package/lib/esm/TxnManager.js.map +1 -1
  254. package/lib/esm/ViewDefinition.js.map +1 -1
  255. package/lib/esm/ViewStateHydrator.js.map +1 -1
  256. package/lib/esm/ViewStore.d.ts.map +1 -1
  257. package/lib/esm/ViewStore.js +28 -28
  258. package/lib/esm/ViewStore.js.map +1 -1
  259. package/lib/esm/core-backend.d.ts +1 -1
  260. package/lib/esm/core-backend.d.ts.map +1 -1
  261. package/lib/esm/core-backend.js +1 -1
  262. package/lib/esm/core-backend.js.map +1 -1
  263. package/lib/esm/domains/FunctionalElements.js.map +1 -1
  264. package/lib/esm/domains/FunctionalSchema.js.map +1 -1
  265. package/lib/esm/domains/GenericElements.js.map +1 -1
  266. package/lib/esm/domains/GenericSchema.js.map +1 -1
  267. package/lib/esm/internal/ChangesetConflictArgs.js.map +1 -1
  268. package/lib/esm/internal/ChannelAdmin.js +5 -5
  269. package/lib/esm/internal/ChannelAdmin.js.map +1 -1
  270. package/lib/esm/internal/FontFileImpl.js.map +1 -1
  271. package/lib/esm/{HubMock.d.ts → internal/HubMock.d.ts} +4 -5
  272. package/lib/esm/internal/HubMock.d.ts.map +1 -0
  273. package/lib/esm/{HubMock.js → internal/HubMock.js} +22 -11
  274. package/lib/esm/internal/HubMock.js.map +1 -0
  275. package/lib/esm/internal/IModelDbFontsImpl.js.map +1 -1
  276. package/lib/esm/internal/NativePlatform.js.map +1 -1
  277. package/lib/esm/internal/NoLocks.js.map +1 -1
  278. package/lib/esm/internal/ServerBasedLocks.js.map +1 -1
  279. package/lib/esm/internal/Symbols.d.ts +1 -2
  280. package/lib/esm/internal/Symbols.d.ts.map +1 -1
  281. package/lib/esm/internal/Symbols.js +1 -2
  282. package/lib/esm/internal/Symbols.js.map +1 -1
  283. package/lib/esm/internal/cross-package.js.map +1 -1
  284. package/lib/esm/internal/workspace/SettingsImpl.js.map +1 -1
  285. package/lib/esm/internal/workspace/SettingsSchemasImpl.js.map +1 -1
  286. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts +2 -16
  287. package/lib/esm/internal/workspace/WorkspaceImpl.d.ts.map +1 -1
  288. package/lib/esm/internal/workspace/WorkspaceImpl.js +36 -100
  289. package/lib/esm/internal/workspace/WorkspaceImpl.js.map +1 -1
  290. package/lib/esm/internal/workspace/WorkspaceSqliteDb.js.map +1 -1
  291. package/lib/esm/rpc/multipart.js.map +1 -1
  292. package/lib/esm/rpc/tracing.js.map +1 -1
  293. package/lib/esm/rpc/web/logging.js.map +1 -1
  294. package/lib/esm/rpc/web/request.js.map +1 -1
  295. package/lib/esm/rpc/web/response.js.map +1 -1
  296. package/lib/esm/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  297. package/lib/esm/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  298. package/lib/esm/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  299. package/lib/esm/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  300. package/lib/esm/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  301. package/lib/esm/test/AdvancedEqual.js.map +1 -1
  302. package/lib/esm/test/AttachDb.test.js +11 -11
  303. package/lib/esm/test/AttachDb.test.js.map +1 -1
  304. package/lib/esm/test/GeometryTestUtil.js.map +1 -1
  305. package/lib/esm/test/IModelHost.test.js.map +1 -1
  306. package/lib/esm/test/IModelTestUtils.d.ts +6 -2
  307. package/lib/esm/test/IModelTestUtils.d.ts.map +1 -1
  308. package/lib/esm/test/IModelTestUtils.js +27 -6
  309. package/lib/esm/test/IModelTestUtils.js.map +1 -1
  310. package/lib/esm/test/ImageSourceConversion.test.js.map +1 -1
  311. package/lib/esm/test/IpcHost.test.js.map +1 -1
  312. package/lib/esm/test/KnownTestLocations.js.map +1 -1
  313. package/lib/esm/test/PrintElementTree.js.map +1 -1
  314. package/lib/esm/test/PropertyDb.test.js.map +1 -1
  315. package/lib/esm/test/RevisionUtility.js.map +1 -1
  316. package/lib/esm/test/SchemaUtils.test.js +25 -25
  317. package/lib/esm/test/SchemaUtils.test.js.map +1 -1
  318. package/lib/esm/test/SequentialLogMatcher.js.map +1 -1
  319. package/lib/esm/test/TestChangeSetUtility.js +1 -1
  320. package/lib/esm/test/TestChangeSetUtility.js.map +1 -1
  321. package/lib/esm/test/TestUtils.js.map +1 -1
  322. package/lib/esm/test/annotations/TextAnnotation.test.js.map +1 -1
  323. package/lib/esm/test/categories/Category.test.js.map +1 -1
  324. package/lib/esm/test/codespec/CodeSpec.test.js.map +1 -1
  325. package/lib/esm/test/ecdb/CTE.test.js +88 -88
  326. package/lib/esm/test/ecdb/CTE.test.js.map +1 -1
  327. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js +15 -15
  328. package/lib/esm/test/ecdb/ConcurrentQueryLoad.test.js.map +1 -1
  329. package/lib/esm/test/ecdb/ECDb.test.js +57 -57
  330. package/lib/esm/test/ecdb/ECDb.test.js.map +1 -1
  331. package/lib/esm/test/ecdb/ECDbTestHelper.js.map +1 -1
  332. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js +4 -4
  333. package/lib/esm/test/ecdb/ECSchemaXmlContext.test.js.map +1 -1
  334. package/lib/esm/test/ecdb/ECSqlAst.test.js +65 -65
  335. package/lib/esm/test/ecdb/ECSqlAst.test.js.map +1 -1
  336. package/lib/esm/test/ecdb/ECSqlQuery.test.js +7 -7
  337. package/lib/esm/test/ecdb/ECSqlQuery.test.js.map +1 -1
  338. package/lib/esm/test/ecdb/ECSqlReader.test.js +16 -16
  339. package/lib/esm/test/ecdb/ECSqlReader.test.js.map +1 -1
  340. package/lib/esm/test/ecdb/ECSqlStatement.test.js +292 -292
  341. package/lib/esm/test/ecdb/ECSqlStatement.test.js.map +1 -1
  342. package/lib/esm/test/ecdb/SqliteStatement.test.js.map +1 -1
  343. package/lib/esm/test/ecsql/dataset/ECSqlDatasets.js.map +1 -1
  344. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js +21 -21
  345. package/lib/esm/test/ecsql/src/ECSqlTestGenerator.js.map +1 -1
  346. package/lib/esm/test/ecsql/src/ECSqlTestParser.js.map +1 -1
  347. package/lib/esm/test/ecsql/src/ECSqlTestRunner.test.js.map +1 -1
  348. package/lib/esm/test/element/DeleteDefinitionElements.test.js.map +1 -1
  349. package/lib/esm/test/element/ElementAspect.test.js +22 -22
  350. package/lib/esm/test/element/ElementAspect.test.js.map +1 -1
  351. package/lib/esm/test/element/ElementDependencyGraph.test.js.map +1 -1
  352. package/lib/esm/test/element/ElementRoundTrip.test.js +139 -139
  353. package/lib/esm/test/element/ElementRoundTrip.test.js.map +1 -1
  354. package/lib/esm/test/element/ExcludedElements.test.js.map +1 -1
  355. package/lib/esm/test/element/ExternalSource.test.js.map +1 -1
  356. package/lib/esm/test/element/NullStructArray.test.js +13 -13
  357. package/lib/esm/test/element/NullStructArray.test.js.map +1 -1
  358. package/lib/esm/test/element/UrlLink.test.js.map +1 -1
  359. package/lib/esm/test/font/FontFile.test.js.map +1 -1
  360. package/lib/esm/test/font/IModelDbFonts.test.js +1 -1
  361. package/lib/esm/test/font/IModelDbFonts.test.js.map +1 -1
  362. package/lib/esm/test/hubaccess/BriefcaseManager.test.js +1 -1
  363. package/lib/esm/test/hubaccess/BriefcaseManager.test.js.map +1 -1
  364. package/lib/esm/test/hubaccess/CheckpointManager.test.js +4 -3
  365. package/lib/esm/test/hubaccess/CheckpointManager.test.js.map +1 -1
  366. package/lib/esm/test/imageData.js.map +1 -1
  367. package/lib/esm/test/imodel/ElementTreeWalker.test.js.map +1 -1
  368. package/lib/esm/test/imodel/GetTextureImage.test.js.map +1 -1
  369. package/lib/esm/test/imodel/IModel.test.js +1 -1
  370. package/lib/esm/test/imodel/IModel.test.js.map +1 -1
  371. package/lib/esm/test/imodel/ProjectExtents.test.js.map +1 -1
  372. package/lib/esm/test/imodel/SchemaXmlImport.test.js.map +1 -1
  373. package/lib/esm/test/index.js.map +1 -1
  374. package/lib/esm/test/misc/DevTools.test.js.map +1 -1
  375. package/lib/esm/test/misc/EntitySubClasses.test.js.map +1 -1
  376. package/lib/esm/test/misc/GeoServices.test.js.map +1 -1
  377. package/lib/esm/test/misc/PromiseMemoizer.test.js.map +1 -1
  378. package/lib/esm/test/native/DgnDbWorker.test.js.map +1 -1
  379. package/lib/esm/test/rpc/response.test.js.map +1 -1
  380. package/lib/esm/test/schema/ClassRegistry.test.js +71 -71
  381. package/lib/esm/test/schema/ClassRegistry.test.js.map +1 -1
  382. package/lib/esm/test/schema/FunctionalDomain.test.js.map +1 -1
  383. package/lib/esm/test/schema/GenericDomain.test.js.map +1 -1
  384. package/lib/esm/test/schema/IModelSchemaContext.test.js.map +1 -1
  385. package/lib/esm/test/sheetindex/SheetIndex.test.js.map +1 -1
  386. package/lib/esm/test/standalone/ChangeMerge.test.js +1 -1
  387. package/lib/esm/test/standalone/ChangeMerge.test.js.map +1 -1
  388. package/lib/esm/test/standalone/ChangesetReader.test.js +29 -29
  389. package/lib/esm/test/standalone/ChangesetReader.test.js.map +1 -1
  390. package/lib/esm/test/standalone/CustomViewState3dCreator.test.js.map +1 -1
  391. package/lib/esm/test/standalone/DisplayStyle.test.js.map +1 -1
  392. package/lib/esm/test/standalone/Drawing.test.js.map +1 -1
  393. package/lib/esm/test/standalone/ElementGraphics.test.js.map +1 -1
  394. package/lib/esm/test/standalone/ElementMesh.test.js.map +1 -1
  395. package/lib/esm/test/standalone/ExportGraphics.test.js +19 -54
  396. package/lib/esm/test/standalone/ExportGraphics.test.js.map +1 -1
  397. package/lib/esm/test/standalone/GeometryChangeEvents.test.js.map +1 -1
  398. package/lib/esm/test/standalone/GeometryStream.test.js.map +1 -1
  399. package/lib/esm/test/standalone/HubMock.test.js +1 -1
  400. package/lib/esm/test/standalone/HubMock.test.js.map +1 -1
  401. package/lib/esm/test/standalone/IModelWrite.test.js +28 -28
  402. package/lib/esm/test/standalone/IModelWrite.test.js.map +1 -1
  403. package/lib/esm/test/standalone/InlineGeometryPartReferences.test.js.map +1 -1
  404. package/lib/esm/test/standalone/MergeConflict.test.js +1 -1
  405. package/lib/esm/test/standalone/MergeConflict.test.js.map +1 -1
  406. package/lib/esm/test/standalone/NativeAppStorage.test.js.map +1 -1
  407. package/lib/esm/test/standalone/RenderMaterialElement.test.js.map +1 -1
  408. package/lib/esm/test/standalone/RenderTimeline.test.js.map +1 -1
  409. package/lib/esm/test/standalone/SQLiteDb.test.js.map +1 -1
  410. package/lib/esm/test/standalone/SchemaUtils.test.js.map +1 -1
  411. package/lib/esm/test/standalone/SectionDrawing.test.js.map +1 -1
  412. package/lib/esm/test/standalone/ServerBasedLocks.test.js +1 -1
  413. package/lib/esm/test/standalone/ServerBasedLocks.test.js.map +1 -1
  414. package/lib/esm/test/standalone/Setting.test.js.map +1 -1
  415. package/lib/esm/test/standalone/Settings.test.js.map +1 -1
  416. package/lib/esm/test/standalone/SettingsSchemas.test.js.map +1 -1
  417. package/lib/esm/test/standalone/SnapshotDb.test.js +5 -4
  418. package/lib/esm/test/standalone/SnapshotDb.test.js.map +1 -1
  419. package/lib/esm/test/standalone/Texture.test.js.map +1 -1
  420. package/lib/esm/test/standalone/TileCache.test.js.map +1 -1
  421. package/lib/esm/test/standalone/TileTree.test.js.map +1 -1
  422. package/lib/esm/test/standalone/TxnManager.test.js.map +1 -1
  423. package/lib/esm/test/standalone/ViewDefinition.test.js.map +1 -1
  424. package/lib/esm/test/standalone/ViewStoreDb.test.js.map +1 -1
  425. package/lib/esm/test/standalone/Workspace.test.js +4 -3
  426. package/lib/esm/test/standalone/Workspace.test.js.map +1 -1
  427. package/lib/esm/workspace/Settings.js.map +1 -1
  428. package/lib/esm/workspace/SettingsSchemas.js.map +1 -1
  429. package/lib/esm/workspace/Workspace.d.ts +6 -13
  430. package/lib/esm/workspace/Workspace.d.ts.map +1 -1
  431. package/lib/esm/workspace/Workspace.js.map +1 -1
  432. package/lib/esm/workspace/WorkspaceEditor.d.ts +2 -7
  433. package/lib/esm/workspace/WorkspaceEditor.d.ts.map +1 -1
  434. package/lib/esm/workspace/WorkspaceEditor.js.map +1 -1
  435. package/package.json +13 -13
  436. package/lib/cjs/HubMock.d.ts.map +0 -1
  437. package/lib/cjs/HubMock.js.map +0 -1
  438. package/lib/esm/HubMock.d.ts.map +0 -1
  439. package/lib/esm/HubMock.js.map +0 -1
  440. package/lib/esm/test/CloudSqliteMock.d.ts +0 -37
  441. package/lib/esm/test/CloudSqliteMock.d.ts.map +0 -1
  442. package/lib/esm/test/CloudSqliteMock.js +0 -117
  443. package/lib/esm/test/CloudSqliteMock.js.map +0 -1
@@ -5,15 +5,17 @@
5
5
  /** @packageDocumentation
6
6
  * @module SQLiteDb
7
7
  */
8
+ import * as semver from "semver";
8
9
  import { mkdirSync, unlinkSync } from "fs";
9
10
  import { dirname, join } from "path";
10
11
  import { NativeLibrary } from "@bentley/imodeljs-native";
11
12
  import { BeDuration, BriefcaseStatus, Logger, LogLevel, OpenMode, StopWatch, } from "@itwin/core-bentley";
13
+ import { CloudSqliteError } from "@itwin/core-common";
12
14
  import { BlobContainer } from "./BlobContainerService";
13
15
  import { IModelHost, KnownLocations } from "./IModelHost";
14
16
  import { IModelJsFs } from "./IModelJsFs";
15
17
  import { RpcTrace } from "./rpc/tracing";
16
- // spell:ignore logmsg httpcode daemonless cachefile cacheslots ddthh
18
+ // spell:ignore logmsg httpcode daemonless cachefile cacheslots ddthh cloudsqlite premajor preminor prepatch
17
19
  /**
18
20
  * Types for accessing SQLite databases stored in cloud containers.
19
21
  * @beta
@@ -22,6 +24,24 @@ export var CloudSqlite;
22
24
  (function (CloudSqlite) {
23
25
  const logInfo = (msg) => Logger.logInfo("CloudSqlite", msg);
24
26
  const logError = (msg) => Logger.logError("CloudSqlite", msg);
27
+ /** Add (or replace) a property to an object that is not enumerable.
28
+ * This is important so this member will be skipped when the object is the target of
29
+ * [structuredClone](https://developer.mozilla.org/docs/Web/API/Web_Workers_API/Structured_clone_algorithm)
30
+ * (e.g. when the object is part of an exception that is marshalled across process boundaries.)
31
+ */
32
+ function addHiddenProperty(o, p, value) {
33
+ return Object.defineProperty(o, p, { enumerable: false, writable: true, value });
34
+ }
35
+ CloudSqlite.addHiddenProperty = addHiddenProperty;
36
+ function verifyService(serviceName, service) {
37
+ if (undefined === service)
38
+ CloudSqliteError.throwError("service-not-available", { message: `${serviceName} service is not available` });
39
+ return service;
40
+ }
41
+ function getBlobService() {
42
+ return verifyService("BlobContainer", BlobContainer.service);
43
+ }
44
+ CloudSqlite.getBlobService = getBlobService;
25
45
  /**
26
46
  * Request a new AccessToken for a cloud container using the [[BlobContainer]] service.
27
47
  * If the service is unavailable or returns an error, an empty token is returned.
@@ -31,13 +51,21 @@ export var CloudSqlite;
31
51
  let userToken = args.userToken ? args.userToken : await IModelHost.getAccessToken();
32
52
  if (userToken === "")
33
53
  userToken = RpcTrace.currentActivity?.accessToken ?? "";
34
- if (BlobContainer.service === undefined) {
35
- throw new Error(`BlobContainer.service is not defined`);
36
- }
37
- const response = await BlobContainer.service.requestToken({ ...args, userToken });
54
+ const response = await getBlobService().requestToken({ ...args, userToken });
38
55
  return response?.token ?? "";
39
56
  }
40
57
  CloudSqlite.requestToken = requestToken;
58
+ function noLeadingOrTrailingSpaces(name, msg) {
59
+ if (name.trim() !== name)
60
+ CloudSqliteError.throwError("invalid-name", { message: `${msg} [${name}] may not have leading or trailing spaces` });
61
+ }
62
+ CloudSqlite.noLeadingOrTrailingSpaces = noLeadingOrTrailingSpaces;
63
+ function validateDbName(dbName) {
64
+ if (dbName === "" || dbName.length > 255 || /[#\.<>:"/\\"`'|?*\u0000-\u001F]/g.test(dbName) || /^(con|prn|aux|nul|com\d|lpt\d)$/i.test(dbName))
65
+ CloudSqliteError.throwError("invalid-name", { message: "invalid dbName", dbName });
66
+ noLeadingOrTrailingSpaces(dbName, "dbName");
67
+ }
68
+ CloudSqlite.validateDbName = validateDbName;
41
69
  /**
42
70
  * Create a new CloudContainer from a ContainerAccessProps. For non-public containers, a valid accessToken must be provided before the container
43
71
  * can be used (e.g. via [[CloudSqlite.requestToken]]).
@@ -46,6 +74,10 @@ export var CloudSqlite;
46
74
  */
47
75
  function createCloudContainer(args) {
48
76
  const container = new NativeLibrary.nativeLib.CloudContainer(args);
77
+ // we're going to add these fields to the newly created object. They should *not* be enumerable so they are not copied
78
+ // when the object is cloned (e.g. when included in an exception across processes).
79
+ addHiddenProperty(container, "timer");
80
+ addHiddenProperty(container, "refreshPromise");
49
81
  const refreshSeconds = (undefined !== args.tokenRefreshSeconds) ? args.tokenRefreshSeconds : 60 * 60; // default is 1 hour
50
82
  container.lockExpireSeconds = args.lockExpireSeconds ?? 60 * 60; // default is 1 hour
51
83
  // don't refresh tokens for public containers or if refreshSeconds<=0
@@ -71,13 +103,13 @@ export var CloudSqlite;
71
103
  tokenRefreshFn(); // schedule next refresh
72
104
  }, refreshSeconds * 1000);
73
105
  };
74
- container.onConnected = tokenRefreshFn; // schedule the first refresh when the container is connected
75
- container.onDisconnect = () => {
106
+ addHiddenProperty(container, "onConnected", tokenRefreshFn); // schedule the first refresh when the container is connected
107
+ addHiddenProperty(container, "onDisconnect", () => {
76
108
  if (container.timer !== undefined) {
77
109
  clearTimeout(container.timer);
78
110
  container.timer = undefined;
79
111
  }
80
- };
112
+ });
81
113
  }
82
114
  return container;
83
115
  }
@@ -87,6 +119,7 @@ export var CloudSqlite;
87
119
  return new NativeLibrary.nativeLib.CloudPrefetch(container, dbName, args);
88
120
  }
89
121
  CloudSqlite.startCloudPrefetch = startCloudPrefetch;
122
+ ;
90
123
  /** Logging categories for `CloudCache.setLogMask` */
91
124
  let LoggingMask;
92
125
  (function (LoggingMask) {
@@ -209,50 +242,60 @@ export var CloudSqlite;
209
242
  const container = args.container;
210
243
  while (true) {
211
244
  try {
212
- if (container.hasWriteLock) {
213
- if (container.writeLockHeldBy === args.user) {
214
- return container.acquireWriteLock(args.user); // refresh the write lock's expiry time.
215
- }
216
- const err = new Error(); // lock held by another user within this process
217
- err.errorNumber = 5;
218
- err.lockedBy = container.writeLockHeldBy;
219
- err.expires = container.writeLockExpires;
220
- throw err;
221
- }
222
- return container.acquireWriteLock(args.user);
245
+ // if the write is already held:
246
+ // - by the same user, just update the write lock expiry (by calling acquireWriteLock).
247
+ // - by another user, throw an error
248
+ if (container.hasWriteLock && container.writeLockHeldBy !== args.user)
249
+ CloudSqliteError.throwError("write-lock-held", {
250
+ message: "lock in use", errorNumber: 5,
251
+ lockedBy: container.writeLockHeldBy ?? "",
252
+ expires: container.writeLockExpires
253
+ });
254
+ container.acquireWriteLock(args.user);
255
+ container.writeLockHeldBy = args.user;
256
+ return;
223
257
  }
224
258
  catch (e) {
225
259
  if (e.errorNumber === 5 && args.busyHandler && "stop" !== await args.busyHandler(e.lockedBy, e.expires)) // 5 === BE_SQLITE_BUSY
226
260
  continue; // busy handler wants to try again
227
- throw e;
261
+ CloudSqliteError.throwError("write-lock-held", { message: e.message, ...e });
228
262
  }
229
263
  }
230
264
  }
231
265
  CloudSqlite.acquireWriteLock = acquireWriteLock;
266
+ function getWriteLockHeldBy(container) {
267
+ return container.writeLockHeldBy;
268
+ }
269
+ CloudSqlite.getWriteLockHeldBy = getWriteLockHeldBy;
270
+ /** release the write lock on a container. */
271
+ function releaseWriteLock(container) {
272
+ container.releaseWriteLock();
273
+ container.writeLockHeldBy = undefined;
274
+ }
275
+ CloudSqlite.releaseWriteLock = releaseWriteLock;
232
276
  /**
233
- * Perform an asynchronous write operation on a CloudContainer with the write lock held.
234
- * 1. if write lock is already held by the current user, refresh write lock's expiry time, call operation and return.
235
- * 2. attempt to acquire the write lock, with retries. Throw if unable to obtain write lock.
236
- * 3. perform the operation
237
- * 3.a if the operation throws, abandon all changes and re-throw
238
- * 4. release the write lock.
239
- * 5. return value from operation
240
- * @param user the name to be displayed to other users in the event they attempt to obtain the lock while it is held by us
241
- * @param container the CloudContainer for which the lock is to be acquired
242
- * @param operation an asynchronous operation performed with the write lock held.
243
- * @param busyHandler if present, function called when the write lock is currently held by another user.
244
- * @returns a Promise with the result of `operation`
245
- */
277
+ * Perform an asynchronous write operation on a CloudContainer with the write lock held.
278
+ * 1. if write lock is already held by the current user, refresh write lock's expiry time, call operation and return.
279
+ * 2. attempt to acquire the write lock, with retries. Throw if unable to obtain write lock.
280
+ * 3. perform the operation
281
+ * 3.a if the operation throws, abandon all changes and re-throw
282
+ * 4. release the write lock.
283
+ * 5. return value from operation
284
+ * @param user the name to be displayed to other users in the event they attempt to obtain the lock while it is held by us
285
+ * @param container the CloudContainer for which the lock is to be acquired
286
+ * @param operation an asynchronous operation performed with the write lock held.
287
+ * @param busyHandler if present, function called when the write lock is currently held by another user.
288
+ * @returns a Promise with the result of `operation`
289
+ */
246
290
  async function withWriteLock(args, operation) {
247
- await acquireWriteLock(args);
248
291
  const containerInternal = args.container;
292
+ const wasLockedBy = containerInternal.writeLockHeldBy;
293
+ await acquireWriteLock(args);
249
294
  try {
250
- if (containerInternal.writeLockHeldBy === args.user) // If the user already had the write lock, then don't release it.
295
+ if (wasLockedBy === args.user) // If the user already had the write lock, then don't release it.
251
296
  return await operation();
252
- containerInternal.writeLockHeldBy = args.user;
253
297
  const val = await operation(); // wait for work to finish or fail
254
- containerInternal.releaseWriteLock();
255
- containerInternal.writeLockHeldBy = undefined;
298
+ releaseWriteLock(containerInternal);
256
299
  return val;
257
300
  }
258
301
  catch (e) {
@@ -262,6 +305,79 @@ export var CloudSqlite;
262
305
  }
263
306
  }
264
307
  CloudSqlite.withWriteLock = withWriteLock;
308
+ /**
309
+ * Parse the name of a Db stored in a CloudContainer into the dbName and version number. A single CloudContainer may hold
310
+ * many versions of the same Db. The name of the Db in the CloudContainer is in the format "name:version". This
311
+ * function splits them into separate strings.
312
+ */
313
+ function parseDbFileName(dbFileName) {
314
+ const parts = dbFileName.split(":");
315
+ return { dbName: parts[0], version: parts[1] ?? "" };
316
+ }
317
+ CloudSqlite.parseDbFileName = parseDbFileName;
318
+ function validateDbVersion(version) {
319
+ version = version ?? "0.0.0";
320
+ const opts = { loose: true, includePrerelease: true };
321
+ // clean allows prerelease, so try it first. If that fails attempt to coerce it (coerce strips prerelease even if you say not to.)
322
+ const semVersion = semver.clean(version, opts) ?? semver.coerce(version, opts)?.version;
323
+ if (!semVersion)
324
+ CloudSqliteError.throwError("invalid-name", { message: "invalid version specification" });
325
+ version = semVersion;
326
+ return version;
327
+ }
328
+ CloudSqlite.validateDbVersion = validateDbVersion;
329
+ function isSemverPrerelease(version) {
330
+ return semver.major(version) === 0 || semver.prerelease(version);
331
+ }
332
+ CloudSqlite.isSemverPrerelease = isSemverPrerelease;
333
+ function isSemverEditable(dbFullName, container) {
334
+ return isSemverPrerelease(parseDbFileName(dbFullName).version) || container.queryDatabase(dbFullName)?.state === "copied";
335
+ }
336
+ CloudSqlite.isSemverEditable = isSemverEditable;
337
+ /** Create a dbName for a database from its base name and version. This will be in the format "name:version" */
338
+ function makeSemverName(dbName, version) {
339
+ return `${dbName}:${validateDbVersion(version)}`;
340
+ }
341
+ CloudSqlite.makeSemverName = makeSemverName;
342
+ /** query the databases in the supplied container for the highest SemVer match according to the version range. Throws if no version available for the range. */
343
+ function querySemverMatch(props) {
344
+ const dbName = props.dbName;
345
+ const dbs = props.container.queryDatabases(`${dbName}*`); // get all databases that start with dbName
346
+ const versions = [];
347
+ for (const db of dbs) {
348
+ const thisDb = parseDbFileName(db);
349
+ if (thisDb.dbName === dbName && "string" === typeof thisDb.version && thisDb.version.length > 0)
350
+ versions.push(thisDb.version);
351
+ }
352
+ if (versions.length === 0)
353
+ versions[0] = "0.0.0";
354
+ const range = props.version ?? "*";
355
+ try {
356
+ const version = semver.maxSatisfying(versions, range, { loose: true, includePrerelease: props.includePrerelease });
357
+ if (version)
358
+ return `${dbName}:${version}`;
359
+ }
360
+ catch { }
361
+ CloudSqliteError.throwError("no-version-available", { message: `No version of '${dbName}' available for "${range}"`, ...props });
362
+ }
363
+ CloudSqlite.querySemverMatch = querySemverMatch;
364
+ async function createNewDbVersion(container, args) {
365
+ const oldFullName = CloudSqlite.querySemverMatch({ container, ...args.fromDb });
366
+ const oldDb = CloudSqlite.parseDbFileName(oldFullName);
367
+ const newVersion = semver.inc(oldDb.version, args.versionType, args.identifier);
368
+ if (!newVersion)
369
+ CloudSqliteError.throwError("invalid-name", { message: `cannot create new version for ${oldFullName}`, dbName: oldFullName, ...args });
370
+ const newName = makeSemverName(oldDb.dbName, newVersion);
371
+ try {
372
+ await container.copyDatabase(oldFullName, newName);
373
+ }
374
+ catch (e) {
375
+ CloudSqliteError.throwError("copy-error", { message: `Error attempting to create new version ${newName} from ${oldFullName}`, ...args, cause: e });
376
+ }
377
+ // return the old and new db names and versions
378
+ return { oldDb, newDb: { dbName: oldDb.dbName, version: newVersion } };
379
+ }
380
+ CloudSqlite.createNewDbVersion = createNewDbVersion;
265
381
  /** The collection of currently extant `CloudCache`s, by name. */
266
382
  class CloudCaches {
267
383
  static cloudCaches = new Map();
@@ -392,14 +508,9 @@ export var CloudSqlite;
392
508
  * @note the current user must have administrator rights to create containers.
393
509
  */
394
510
  static async createBlobContainer(args) {
395
- const service = BlobContainer.service;
396
- if (undefined === service)
397
- throw new Error("no BlobContainer service available");
398
- const auth = IModelHost.authorizationClient;
399
- if (undefined === auth)
400
- throw new Error("no authorization client available");
511
+ const auth = verifyService("Authorization Client", IModelHost.authorizationClient);
401
512
  const userToken = await auth.getAccessToken();
402
- const cloudContainer = await service.create({ scope: args.scope, metadata: args.metadata, userToken });
513
+ const cloudContainer = await getBlobService().create({ scope: args.scope, metadata: args.metadata, userToken });
403
514
  return { baseUri: cloudContainer.baseUri, containerId: cloudContainer.containerId, storageType: cloudContainer.provider };
404
515
  }
405
516
  /**
@@ -469,7 +580,7 @@ export var CloudSqlite;
469
580
  getDbMethod(methodName) {
470
581
  const fn = this._cloudDb[methodName];
471
582
  if (typeof fn !== "function")
472
- throw new Error(`illegal method name ${methodName}`);
583
+ CloudSqliteError.throwError("not-a-function", { message: `illegal method name ${methodName}`, dbName: this.dbName });
473
584
  return fn;
474
585
  }
475
586
  /**