@itwin/core-backend 4.0.0-dev.10 → 4.0.0-dev.101

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 (295) hide show
  1. package/CHANGELOG.md +68 -1
  2. package/lib/cjs/BackendHubAccess.d.ts +226 -224
  3. package/lib/cjs/BackendHubAccess.d.ts.map +1 -1
  4. package/lib/cjs/BackendHubAccess.js +41 -41
  5. package/lib/cjs/BackendHubAccess.js.map +1 -1
  6. package/lib/cjs/BackendLoggerCategory.d.ts +90 -91
  7. package/lib/cjs/BackendLoggerCategory.d.ts.map +1 -1
  8. package/lib/cjs/BackendLoggerCategory.js +98 -99
  9. package/lib/cjs/BackendLoggerCategory.js.map +1 -1
  10. package/lib/cjs/BisCoreSchema.d.ts +21 -21
  11. package/lib/cjs/BisCoreSchema.js +60 -60
  12. package/lib/cjs/BisCoreSchema.js.map +1 -1
  13. package/lib/cjs/BlobContainerService.d.ts +120 -0
  14. package/lib/cjs/BlobContainerService.d.ts.map +1 -0
  15. package/lib/cjs/BlobContainerService.js +18 -0
  16. package/lib/cjs/BlobContainerService.js.map +1 -0
  17. package/lib/cjs/BriefcaseManager.d.ts +184 -170
  18. package/lib/cjs/BriefcaseManager.d.ts.map +1 -1
  19. package/lib/cjs/BriefcaseManager.js +421 -414
  20. package/lib/cjs/BriefcaseManager.js.map +1 -1
  21. package/lib/cjs/Category.d.ts +153 -153
  22. package/lib/cjs/Category.js +243 -243
  23. package/lib/cjs/Category.js.map +1 -1
  24. package/lib/cjs/ChangeSummaryManager.d.ts +187 -187
  25. package/lib/cjs/ChangeSummaryManager.js +446 -447
  26. package/lib/cjs/ChangeSummaryManager.js.map +1 -1
  27. package/lib/cjs/ChangedElementsDb.d.ts +99 -99
  28. package/lib/cjs/ChangedElementsDb.js +165 -165
  29. package/lib/cjs/ChangedElementsDb.js.map +1 -1
  30. package/lib/cjs/ChangedElementsManager.d.ts +39 -39
  31. package/lib/cjs/ChangedElementsManager.js +88 -88
  32. package/lib/cjs/ChangedElementsManager.js.map +1 -1
  33. package/lib/cjs/ChannelControl.d.ts +70 -0
  34. package/lib/cjs/ChannelControl.d.ts.map +1 -0
  35. package/lib/cjs/ChannelControl.js +89 -0
  36. package/lib/cjs/ChannelControl.js.map +1 -0
  37. package/lib/cjs/CheckpointManager.d.ts +121 -121
  38. package/lib/cjs/CheckpointManager.d.ts.map +1 -1
  39. package/lib/cjs/CheckpointManager.js +351 -349
  40. package/lib/cjs/CheckpointManager.js.map +1 -1
  41. package/lib/cjs/ClassRegistry.d.ts +79 -79
  42. package/lib/cjs/ClassRegistry.js +254 -250
  43. package/lib/cjs/ClassRegistry.js.map +1 -1
  44. package/lib/cjs/CloudSqlite.d.ts +572 -350
  45. package/lib/cjs/CloudSqlite.d.ts.map +1 -1
  46. package/lib/cjs/CloudSqlite.js +374 -153
  47. package/lib/cjs/CloudSqlite.js.map +1 -1
  48. package/lib/cjs/CodeService.d.ts +399 -396
  49. package/lib/cjs/CodeService.d.ts.map +1 -1
  50. package/lib/cjs/CodeService.js +63 -63
  51. package/lib/cjs/CodeService.js.map +1 -1
  52. package/lib/cjs/CodeSpecs.d.ts +58 -55
  53. package/lib/cjs/CodeSpecs.d.ts.map +1 -1
  54. package/lib/cjs/CodeSpecs.js +154 -124
  55. package/lib/cjs/CodeSpecs.js.map +1 -1
  56. package/lib/cjs/ConcurrentQuery.d.ts +13 -13
  57. package/lib/cjs/ConcurrentQuery.d.ts.map +1 -1
  58. package/lib/cjs/ConcurrentQuery.js +36 -36
  59. package/lib/cjs/ConcurrentQuery.js.map +1 -1
  60. package/lib/cjs/CustomViewState3dCreator.d.ts +21 -21
  61. package/lib/cjs/CustomViewState3dCreator.d.ts.map +1 -1
  62. package/lib/cjs/CustomViewState3dCreator.js +80 -81
  63. package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
  64. package/lib/cjs/DevTools.d.ts +74 -71
  65. package/lib/cjs/DevTools.d.ts.map +1 -1
  66. package/lib/cjs/DevTools.js +156 -154
  67. package/lib/cjs/DevTools.js.map +1 -1
  68. package/lib/cjs/DisplayStyle.d.ts +104 -106
  69. package/lib/cjs/DisplayStyle.d.ts.map +1 -1
  70. package/lib/cjs/DisplayStyle.js +251 -256
  71. package/lib/cjs/DisplayStyle.js.map +1 -1
  72. package/lib/cjs/ECDb.d.ts +194 -191
  73. package/lib/cjs/ECDb.d.ts.map +1 -1
  74. package/lib/cjs/ECDb.js +351 -350
  75. package/lib/cjs/ECDb.js.map +1 -1
  76. package/lib/cjs/ECSchemaXmlContext.d.ts +18 -18
  77. package/lib/cjs/ECSchemaXmlContext.d.ts.map +1 -1
  78. package/lib/cjs/ECSchemaXmlContext.js +41 -41
  79. package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
  80. package/lib/cjs/ECSqlStatement.d.ts +473 -473
  81. package/lib/cjs/ECSqlStatement.js +791 -791
  82. package/lib/cjs/ECSqlStatement.js.map +1 -1
  83. package/lib/cjs/Element.d.ts +1105 -1109
  84. package/lib/cjs/Element.d.ts.map +1 -1
  85. package/lib/cjs/Element.js +1416 -1427
  86. package/lib/cjs/Element.js.map +1 -1
  87. package/lib/cjs/ElementAspect.d.ts +175 -179
  88. package/lib/cjs/ElementAspect.d.ts.map +1 -1
  89. package/lib/cjs/ElementAspect.js +202 -211
  90. package/lib/cjs/ElementAspect.js.map +1 -1
  91. package/lib/cjs/ElementGraphics.d.ts +9 -9
  92. package/lib/cjs/ElementGraphics.js +41 -41
  93. package/lib/cjs/ElementGraphics.js.map +1 -1
  94. package/lib/cjs/ElementTreeWalker.d.ts +162 -162
  95. package/lib/cjs/ElementTreeWalker.d.ts.map +1 -1
  96. package/lib/cjs/ElementTreeWalker.js +409 -409
  97. package/lib/cjs/ElementTreeWalker.js.map +1 -1
  98. package/lib/cjs/Entity.d.ts +102 -106
  99. package/lib/cjs/Entity.d.ts.map +1 -1
  100. package/lib/cjs/Entity.js +118 -134
  101. package/lib/cjs/Entity.js.map +1 -1
  102. package/lib/cjs/EntityReferences.d.ts +49 -49
  103. package/lib/cjs/EntityReferences.d.ts.map +1 -1
  104. package/lib/cjs/EntityReferences.js +95 -95
  105. package/lib/cjs/EntityReferences.js.map +1 -1
  106. package/lib/cjs/ExportGraphics.d.ts +317 -317
  107. package/lib/cjs/ExportGraphics.d.ts.map +1 -1
  108. package/lib/cjs/ExportGraphics.js +208 -208
  109. package/lib/cjs/ExportGraphics.js.map +1 -1
  110. package/lib/cjs/ExternalSource.d.ts +95 -96
  111. package/lib/cjs/ExternalSource.d.ts.map +1 -1
  112. package/lib/cjs/ExternalSource.js +130 -131
  113. package/lib/cjs/ExternalSource.js.map +1 -1
  114. package/lib/cjs/GeoCoordConfig.d.ts +19 -19
  115. package/lib/cjs/GeoCoordConfig.js +85 -85
  116. package/lib/cjs/GeoCoordConfig.js.map +1 -1
  117. package/lib/cjs/GeometrySummary.d.ts +4 -4
  118. package/lib/cjs/GeometrySummary.js +380 -380
  119. package/lib/cjs/GeometrySummary.js.map +1 -1
  120. package/lib/cjs/HubMock.d.ts +94 -94
  121. package/lib/cjs/HubMock.js +220 -222
  122. package/lib/cjs/HubMock.js.map +1 -1
  123. package/lib/cjs/IModelCloneContext.d.ts +8 -8
  124. package/lib/cjs/IModelCloneContext.d.ts.map +1 -1
  125. package/lib/cjs/IModelCloneContext.js +15 -15
  126. package/lib/cjs/IModelCloneContext.js.map +1 -1
  127. package/lib/cjs/IModelDb.d.ts +1222 -1196
  128. package/lib/cjs/IModelDb.d.ts.map +1 -1
  129. package/lib/cjs/IModelDb.js +2389 -2392
  130. package/lib/cjs/IModelDb.js.map +1 -1
  131. package/lib/cjs/IModelElementCloneContext.d.ts +89 -89
  132. package/lib/cjs/IModelElementCloneContext.js +159 -159
  133. package/lib/cjs/IModelElementCloneContext.js.map +1 -1
  134. package/lib/cjs/IModelHost.d.ts +370 -369
  135. package/lib/cjs/IModelHost.d.ts.map +1 -1
  136. package/lib/cjs/IModelHost.js +476 -496
  137. package/lib/cjs/IModelHost.js.map +1 -1
  138. package/lib/cjs/IModelJsFs.d.ts +62 -62
  139. package/lib/cjs/IModelJsFs.js +139 -140
  140. package/lib/cjs/IModelJsFs.js.map +1 -1
  141. package/lib/cjs/IpcHost.d.ts +104 -104
  142. package/lib/cjs/IpcHost.js +276 -278
  143. package/lib/cjs/IpcHost.js.map +1 -1
  144. package/lib/cjs/LineStyle.d.ts +311 -311
  145. package/lib/cjs/LineStyle.js +295 -295
  146. package/lib/cjs/LineStyle.js.map +1 -1
  147. package/lib/cjs/LocalHub.d.ts +162 -162
  148. package/lib/cjs/LocalHub.d.ts.map +1 -1
  149. package/lib/cjs/LocalHub.js +580 -585
  150. package/lib/cjs/LocalHub.js.map +1 -1
  151. package/lib/cjs/LocalhostIpcHost.d.ts +21 -20
  152. package/lib/cjs/LocalhostIpcHost.d.ts.map +1 -1
  153. package/lib/cjs/LocalhostIpcHost.js +79 -81
  154. package/lib/cjs/LocalhostIpcHost.js.map +1 -1
  155. package/lib/cjs/Material.d.ts +131 -131
  156. package/lib/cjs/Material.d.ts.map +1 -1
  157. package/lib/cjs/Material.js +185 -181
  158. package/lib/cjs/Material.js.map +1 -1
  159. package/lib/cjs/Model.d.ts +391 -392
  160. package/lib/cjs/Model.d.ts.map +1 -1
  161. package/lib/cjs/Model.js +487 -485
  162. package/lib/cjs/Model.js.map +1 -1
  163. package/lib/cjs/NativeAppStorage.d.ts +51 -51
  164. package/lib/cjs/NativeAppStorage.js +202 -202
  165. package/lib/cjs/NativeAppStorage.js.map +1 -1
  166. package/lib/cjs/NativeHost.d.ts +52 -52
  167. package/lib/cjs/NativeHost.d.ts.map +1 -1
  168. package/lib/cjs/NativeHost.js +158 -163
  169. package/lib/cjs/NativeHost.js.map +1 -1
  170. package/lib/cjs/NavigationRelationship.d.ts +156 -156
  171. package/lib/cjs/NavigationRelationship.js +225 -225
  172. package/lib/cjs/NavigationRelationship.js.map +1 -1
  173. package/lib/cjs/PromiseMemoizer.d.ts +51 -51
  174. package/lib/cjs/PromiseMemoizer.d.ts.map +1 -1
  175. package/lib/cjs/PromiseMemoizer.js +101 -101
  176. package/lib/cjs/PromiseMemoizer.js.map +1 -1
  177. package/lib/cjs/PropertyStore.d.ts +123 -132
  178. package/lib/cjs/PropertyStore.d.ts.map +1 -1
  179. package/lib/cjs/PropertyStore.js +179 -11
  180. package/lib/cjs/PropertyStore.js.map +1 -1
  181. package/lib/cjs/Relationship.d.ts +413 -416
  182. package/lib/cjs/Relationship.d.ts.map +1 -1
  183. package/lib/cjs/Relationship.js +491 -494
  184. package/lib/cjs/Relationship.js.map +1 -1
  185. package/lib/cjs/RpcBackend.d.ts +5 -5
  186. package/lib/cjs/RpcBackend.js +32 -32
  187. package/lib/cjs/RpcBackend.js.map +1 -1
  188. package/lib/cjs/SQLiteDb.d.ts +317 -219
  189. package/lib/cjs/SQLiteDb.d.ts.map +1 -1
  190. package/lib/cjs/SQLiteDb.js +318 -214
  191. package/lib/cjs/SQLiteDb.js.map +1 -1
  192. package/lib/cjs/Schema.d.ts +55 -55
  193. package/lib/cjs/Schema.js +83 -83
  194. package/lib/cjs/Schema.js.map +1 -1
  195. package/lib/cjs/ServerBasedLocks.d.ts +57 -57
  196. package/lib/cjs/ServerBasedLocks.js +168 -168
  197. package/lib/cjs/ServerBasedLocks.js.map +1 -1
  198. package/lib/cjs/SqliteStatement.d.ts +360 -360
  199. package/lib/cjs/SqliteStatement.d.ts.map +1 -1
  200. package/lib/cjs/SqliteStatement.js +586 -586
  201. package/lib/cjs/SqliteStatement.js.map +1 -1
  202. package/lib/cjs/Texture.d.ts +58 -58
  203. package/lib/cjs/Texture.js +82 -82
  204. package/lib/cjs/Texture.js.map +1 -1
  205. package/lib/cjs/TileStorage.d.ts +44 -18
  206. package/lib/cjs/TileStorage.d.ts.map +1 -1
  207. package/lib/cjs/TileStorage.js +109 -90
  208. package/lib/cjs/TileStorage.js.map +1 -1
  209. package/lib/cjs/TxnManager.d.ts +202 -202
  210. package/lib/cjs/TxnManager.d.ts.map +1 -1
  211. package/lib/cjs/TxnManager.js +356 -356
  212. package/lib/cjs/TxnManager.js.map +1 -1
  213. package/lib/cjs/ViewDefinition.d.ts +429 -439
  214. package/lib/cjs/ViewDefinition.d.ts.map +1 -1
  215. package/lib/cjs/ViewDefinition.js +640 -646
  216. package/lib/cjs/ViewDefinition.js.map +1 -1
  217. package/lib/cjs/ViewStateHydrator.d.ts +13 -13
  218. package/lib/cjs/ViewStateHydrator.js +103 -103
  219. package/lib/cjs/ViewStateHydrator.js.map +1 -1
  220. package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
  221. package/lib/cjs/assets/Settings/Schemas/Cloud.Schema.json +67 -67
  222. package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +31 -31
  223. package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +52 -52
  224. package/lib/cjs/assets/Settings/backend.setting.json5 +138 -138
  225. package/lib/cjs/core-backend.d.ts +181 -184
  226. package/lib/cjs/core-backend.d.ts.map +1 -1
  227. package/lib/cjs/core-backend.js +205 -204
  228. package/lib/cjs/core-backend.js.map +1 -1
  229. package/lib/cjs/domains/FunctionalElements.d.ts +101 -101
  230. package/lib/cjs/domains/FunctionalElements.js +145 -145
  231. package/lib/cjs/domains/FunctionalElements.js.map +1 -1
  232. package/lib/cjs/domains/FunctionalSchema.d.ts +13 -13
  233. package/lib/cjs/domains/FunctionalSchema.d.ts.map +1 -1
  234. package/lib/cjs/domains/FunctionalSchema.js +39 -40
  235. package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
  236. package/lib/cjs/domains/GenericElements.d.ts +177 -177
  237. package/lib/cjs/domains/GenericElements.js +263 -263
  238. package/lib/cjs/domains/GenericElements.js.map +1 -1
  239. package/lib/cjs/domains/GenericSchema.d.ts +10 -10
  240. package/lib/cjs/domains/GenericSchema.js +28 -28
  241. package/lib/cjs/domains/GenericSchema.js.map +1 -1
  242. package/lib/cjs/rpc/multipart.d.ts +11 -11
  243. package/lib/cjs/rpc/multipart.js +71 -71
  244. package/lib/cjs/rpc/multipart.js.map +1 -1
  245. package/lib/cjs/rpc/tracing.d.ts +28 -28
  246. package/lib/cjs/rpc/tracing.js +73 -74
  247. package/lib/cjs/rpc/tracing.js.map +1 -1
  248. package/lib/cjs/rpc/web/logging.d.ts +9 -9
  249. package/lib/cjs/rpc/web/logging.js +43 -43
  250. package/lib/cjs/rpc/web/logging.js.map +1 -1
  251. package/lib/cjs/rpc/web/request.d.ts +6 -6
  252. package/lib/cjs/rpc/web/request.js +73 -74
  253. package/lib/cjs/rpc/web/request.js.map +1 -1
  254. package/lib/cjs/rpc/web/response.d.ts +6 -6
  255. package/lib/cjs/rpc/web/response.js +105 -106
  256. package/lib/cjs/rpc/web/response.js.map +1 -1
  257. package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts +15 -15
  258. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js +32 -32
  259. package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
  260. package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +47 -47
  261. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +293 -294
  262. package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
  263. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts +20 -22
  264. package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts.map +1 -1
  265. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +193 -205
  266. package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
  267. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +36 -36
  268. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +166 -168
  269. package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
  270. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +16 -16
  271. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +42 -43
  272. package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
  273. package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +15 -15
  274. package/lib/cjs/rpc-impl/WipRpcImpl.js +37 -37
  275. package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
  276. package/lib/cjs/workspace/Settings.d.ts +186 -186
  277. package/lib/cjs/workspace/Settings.d.ts.map +1 -1
  278. package/lib/cjs/workspace/Settings.js +155 -155
  279. package/lib/cjs/workspace/Settings.js.map +1 -1
  280. package/lib/cjs/workspace/SettingsSchemas.d.ts +75 -75
  281. package/lib/cjs/workspace/SettingsSchemas.js +190 -191
  282. package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
  283. package/lib/cjs/workspace/Workspace.d.ts +411 -414
  284. package/lib/cjs/workspace/Workspace.d.ts.map +1 -1
  285. package/lib/cjs/workspace/Workspace.js +521 -543
  286. package/lib/cjs/workspace/Workspace.js.map +1 -1
  287. package/package.json +25 -28
  288. package/lib/cjs/AliCloudStorageService.d.ts +0 -24
  289. package/lib/cjs/AliCloudStorageService.d.ts.map +0 -1
  290. package/lib/cjs/AliCloudStorageService.js +0 -72
  291. package/lib/cjs/AliCloudStorageService.js.map +0 -1
  292. package/lib/cjs/CloudStorageBackend.d.ts +0 -59
  293. package/lib/cjs/CloudStorageBackend.d.ts.map +0 -1
  294. package/lib/cjs/CloudStorageBackend.js +0 -174
  295. package/lib/cjs/CloudStorageBackend.js.map +0 -1
@@ -1,361 +1,361 @@
1
- /** @packageDocumentation
2
- * @module SQLite
3
- */
4
- import { DbResult, GuidString, Id64String, IDisposable } from "@itwin/core-bentley";
5
- import { IModelJsNative } from "@bentley/imodeljs-native";
6
- /** Marks a string as either an [Id64String]($core-bentley) or [GuidString]($core-bentley), so
7
- * that it can be passed to the [bindValue]($backend.SqliteStatement) or [bindValues]($backend.SqliteStatement)
8
- * methods of [SqliteStatement]($backend).
9
- * @internal
10
- */
11
- export interface StringParam {
12
- id?: Id64String;
13
- guid?: GuidString;
14
- }
15
- /** parameter Index (1-based), or name of the parameter (including the initial ':', '@' or '$')
16
- * @public
17
- */
18
- export declare type BindParameter = number | string;
19
- /** Executes SQLite SQL statements.
20
- *
21
- * A statement must be prepared before it can be executed, and it must be released when no longer needed.
22
- * See [IModelDb.withPreparedSqliteStatement]($backend) or
23
- * [ECDb.withPreparedSqliteStatement]($backend) for a convenient and
24
- * reliable way to prepare, execute, and then release a statement.
25
- *
26
- * A statement may contain parameters that must be filled in before use by calling [SqliteStatement.bindValue]($backend)
27
- * or [SqliteStatement.bindValues]($backend).
28
- *
29
- * Once prepared (and parameters are bound, if any), the statement is executed by calling [SqliteStatement.step]($backend).
30
- * In case of an **SQL SELECT** statement, the current row can be retrieved with [SqliteStatement.getRow]($backend) as
31
- * a whole, or with [SqliteStatement.getValue]($backend) when individual values are needed.
32
- * Alternatively, query results of an **SQL SELECT** statement can be stepped through by using
33
- * standard iteration syntax, such as `for of`.
34
- *
35
- * > Preparing a statement can be time-consuming. The best way to reduce the effect of this overhead is to cache and reuse prepared
36
- * > statements. A cached prepared statement may be used in different places in an app, as long as the statement is general enough.
37
- * > The key to making this strategy work is to phrase a statement in a general way and use placeholders to represent parameters that will vary on each use.
38
- * @public
39
- */
40
- export declare class SqliteStatement implements IterableIterator<any>, IDisposable {
41
- private _sql;
42
- private _stmt;
43
- private _db;
44
- constructor(_sql: string);
45
- get stmt(): IModelJsNative.SqliteStatement;
46
- get sql(): string;
47
- /** Check if this statement has been prepared successfully or not */
48
- get isPrepared(): boolean;
49
- /** Prepare this statement prior to first use.
50
- * @param db The DgnDb or ECDb to prepare the statement against
51
- * @param sql The SQL statement string to prepare
52
- * @param logErrors Determine if errors are logged or not
53
- * @throws if the SQL statement cannot be prepared. Normally, prepare fails due to SQL syntax errors or references to tables or properties that do not exist.
54
- * The error.message property will provide details.
55
- */
56
- prepare(db: IModelJsNative.AnyDb, logErrors?: boolean): void;
57
- /** Indicates whether the prepared statement makes no **direct* changes to the content of the file
58
- * or not. See [SQLite docs](https://www.sqlite.org/c3ref/stmt_readonly.html) for details.
59
- */
60
- get isReadonly(): boolean;
61
- /** Reset this statement so that the next call to step will return the first row, if any.
62
- */
63
- reset(): void;
64
- /** Call this function when finished with this statement. This releases the native resources held by the statement. */
65
- dispose(): void;
66
- /**
67
- * Call `step` on this statement and determine whether a new row is available.
68
- * Use this method only when this statement has been prepared with a SELECT statement.
69
- * @return true if a new row is available, false otherwise.
70
- * @throws if `step` returns anything other than BE_SQLITE_ROW or BE_SQLITE_DONE.
71
- */
72
- nextRow(): boolean;
73
- /** Binds a value to the specified SQL parameter.
74
- * The value must be of one of these types:
75
- * JavaScript Type | SQLite Type
76
- * --- | ---
77
- * undefined | NULL
78
- * boolean | INTEGER with true being bound as 1 and false as 0
79
- * number | INTEGER if number is integral or REAL if number is not integral
80
- * string | TEXT
81
- * Uint8Array or ArrayBuffer | BLOB
82
- * [StringParam]($backend) where member **id** is set | INTEGER
83
- * [StringParam]($backend) where member **guid** is set | BLOB
84
- *
85
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
86
- * @param value Value to bind.
87
- * @throws [IModelError]($common) if the value is of an unsupported type or in
88
- * case of other binding errors.
89
- */
90
- bindValue(parameter: BindParameter, value: any): void;
91
- /** Bind an integer parameter
92
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
93
- * @param val integer to bind.
94
- */
95
- bindInteger(parameter: BindParameter, val: number): void;
96
- /** Bind an integer parameter if it is defined. Otherwise do nothing.
97
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
98
- * @param val integer to bind.
99
- */
100
- maybeBindInteger(parameter: BindParameter, val?: number): void;
101
- /** Bind a boolean parameter.
102
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
103
- * @param val boolean to bind.
104
- */
105
- bindBoolean(parameter: BindParameter, val: boolean): void;
106
- /** Bind a boolean parameter if it is defined. Otherwise do nothing.
107
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
108
- * @param val boolean to bind.
109
- */
110
- maybeBindBoolean(parameter: BindParameter, val?: boolean): void;
111
- /** JSON.stringify a property value and bind the JSON string.
112
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
113
- * @param val object to bind.
114
- * @internal
115
- */
116
- bindProps<T>(colIndex: number, val: T): void;
117
- /** JSON.stringify a property value if it is defined, and bind the JSON string. Otherwise do nothing.
118
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
119
- * @param val object to bind.
120
- * @internal
121
- */
122
- maybeBindProps<T>(colIndex: number, val?: T): void;
123
- /** Bind a double parameter
124
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
125
- * @param val double to bind.
126
- */
127
- bindDouble(parameter: BindParameter, val: number): void;
128
- /** Bind a double parameter if it is defined. Otherwise do nothing.
129
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
130
- * @param val double to bind.
131
- */
132
- maybeBindDouble(parameter: BindParameter, val?: number): void;
133
- /** Bind a string parameter
134
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
135
- * @param val string to bind.
136
- */
137
- bindString(parameter: BindParameter, val: string): void;
138
- /** Bind a string parameter if it is defined. Otherwise do nothing.
139
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
140
- * @param val string to bind.
141
- */
142
- maybeBindString(parameter: BindParameter, val?: string): void;
143
- /** Bind an Id64String parameter as a 64-bit integer
144
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
145
- * @param val Id to bind.
146
- */
147
- bindId(parameter: BindParameter, id: Id64String): void;
148
- /** Bind a Guid parameter
149
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
150
- * @param val Guid to bind.
151
- */
152
- bindGuid(parameter: BindParameter, guid: GuidString): void;
153
- /** Bind a blob parameter
154
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
155
- * @param val blob to bind.
156
- */
157
- bindBlob(parameter: BindParameter, blob: Uint8Array): void;
158
- /** Bind a blob parameter if it is defined. Otherwise do nothing.
159
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
160
- * @param val blob to bind.
161
- */
162
- maybeBindBlob(parameter: BindParameter, val?: Uint8Array): void;
163
- /** Bind null to a parameter
164
- * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
165
- */
166
- bindNull(parameter: BindParameter): void;
167
- /** Bind values to all parameters in the statement.
168
- * @param values The values to bind to the parameters.
169
- * Pass an *array* of values if the parameters are *positional*.
170
- * Pass an *object of the values keyed on the parameter name* for *named parameters*.
171
- * The values in either the array or object must match the respective types of the parameter.
172
- * See [[SqliteStatement.bindValue]] for details on the supported types.
173
- */
174
- bindValues(values: any[] | object): void;
175
- /** Clear any bindings that were previously set on this statement.
176
- * @throws [IModelError]($common) in case of errors
177
- */
178
- clearBindings(): void;
179
- /** Step this statement to the next row.
180
- *
181
- * For **SQL SELECT** statements the method returns
182
- * - [DbResult.BE_SQLITE_ROW]($core-bentley) if the statement now points successfully to the next row.
183
- * - [DbResult.BE_SQLITE_DONE]($core-bentley) if the statement has no more rows.
184
- * - Error status in case of errors.
185
- *
186
- * For **SQL INSERT, UPDATE, DELETE** statements the method returns
187
- * - [DbResult.BE_SQLITE_DONE]($core-bentley) if the statement has been executed successfully.
188
- * - Error status in case of errors.
189
- */
190
- step(): DbResult;
191
- /** Get the query result's column count (only for SQL SELECT statements). */
192
- getColumnCount(): number;
193
- /** Get the value for the column at the given index in the query result.
194
- * @param columnIx Index of SQL column in query result (0-based)
195
- */
196
- getValue(columnIx: number): SqliteValue;
197
- /** Determine whether the value of the specified column is null
198
- * @param colIndex Index of SQL column in query result (0-based)
199
- */
200
- isValueNull(colIndex: number): boolean;
201
- /** Get a size in bytes of a blob or text column
202
- * @param colIndex Index of SQL column in query result (0-based)
203
- */
204
- getColumnBytes(colIndex: number): number;
205
- /** Get a value as a blob
206
- * @param colIndex Index of SQL column in query result (0-based)
207
- */
208
- getValueBlob(colIndex: number): Uint8Array;
209
- /** Get the value as a blob, or undefined if it is null.
210
- * @param colIndex Index of SQL column in query result (0-based)
211
- */
212
- getValueBlobMaybe(colIndex: number): Uint8Array | undefined;
213
- /** Get a value as a double
214
- * @param colIndex Index of SQL column in query result (0-based)
215
- */
216
- getValueDouble(colIndex: number): number;
217
- /** Get the value as an double, or undefined if it is null.
218
- * @param colIndex Index of SQL column in query result (0-based)
219
- */
220
- getValueDoubleMaybe(colIndex: number): number | undefined;
221
- /** Get a value as a integer
222
- * @param colIndex Index of SQL column in query result (0-based)
223
- */
224
- getValueInteger(colIndex: number): number;
225
- /** Get the value as an integer, or undefined if it is null.
226
- * @param colIndex Index of SQL column in query result (0-based)
227
- */
228
- getValueIntegerMaybe(colIndex: number): number | undefined;
229
- /** Get a value as a string
230
- * @param colIndex Index of SQL column in query result (0-based)
231
- */
232
- getValueString(colIndex: number): string;
233
- /** Get the value as a string, or undefined if it is null.
234
- * @param colIndex Index of SQL column in query result (0-based)
235
- */
236
- getValueStringMaybe(colIndex: number): string | undefined;
237
- /** Get a value as an Id
238
- * @param colIndex Index of SQL column in query result (0-based)
239
- */
240
- getValueId(colIndex: number): Id64String;
241
- /** Get a value as a Guid
242
- * @param colIndex Index of SQL column in query result (0-based)
243
- */
244
- getValueGuid(colIndex: number): GuidString;
245
- /** Get the value as a boolean. Returns `false` if the column is null.
246
- * @param colIndex Index of SQL column in query result (0-based)
247
- */
248
- getValueBoolean(colIndex: number): boolean;
249
- /** Get the value of a [julianday](https://www.sqlite.org/lang_datefunc.html) column as a JavaScript `Date`.
250
- * @param colIndex Index of SQL column in query result (0-based)
251
- * @beta
252
- */
253
- getValueDate(colIndex: number): Date;
254
- /** Get the value as a "props" JSON string, then parse it and return the object
255
- * @param colIndex Index of SQL column in query result (0-based)
256
- * @internal
257
- */
258
- getProps<T>(colIndex: number): T;
259
- /** Get the value as a "props" JSON string, then parse it and return the object.
260
- * If the column is null, return undefined.
261
- * @param colIndex Index of SQL column in query result (0-based)
262
- * @internal
263
- */
264
- getPropsMaybe<T>(colIndex: number): T | undefined;
265
- /** Get the current row.
266
- * The returned row is formatted as JavaScript object where every SELECT clause item becomes a property in the JavaScript object.
267
- *
268
- * The SQL select clause item's name becomes the member name of the JavaScript object, **with the first character lowered**.
269
- *
270
- * SQLite Type | JavaScript Type
271
- * --- | ---
272
- * [SqliteValueType.Null]($backend) | undefined
273
- * [SqliteValueType.Integer]($backend) | number
274
- * [SqliteValueType.Double]($backend) | number
275
- * [SqliteValueType.String]($backend) | string
276
- * [SqliteValueType.Blob]($backend) | Uint8Array
277
- */
278
- getRow(): any;
279
- private static determineResultRowPropertyName;
280
- /** Calls step when called as an iterator.
281
- */
282
- next(): IteratorResult<any>;
283
- /** The iterator that will step through the results of this statement. */
284
- [Symbol.iterator](): IterableIterator<any>;
285
- }
286
- /** Data type of a value in in an SQLite SQL query result.
287
- * See also:
288
- * - [SqliteValue]($backend)
289
- * - [SqliteStatement]($backend)
290
- * - [SqliteStatement.getValue]($backend)
291
- * @public
292
- */
293
- export declare enum SqliteValueType {
294
- Integer = 1,
295
- Double = 2,
296
- String = 3,
297
- Blob = 4,
298
- Null = 5
299
- }
300
- /** Value of a column in a row of an SQLite SQL query result.
301
- * See also:
302
- * - [SqliteStatement]($backend)
303
- * - [SqliteStatement.getValue]($backend)
304
- * @public
305
- */
306
- export declare class SqliteValue {
307
- private readonly _stmt;
308
- private readonly _colIndex;
309
- constructor(stmt: IModelJsNative.SqliteStatement, colIndex: number);
310
- /** Indicates whether the value is NULL or not. */
311
- get isNull(): boolean;
312
- /** Gets the data type of the value. */
313
- get type(): SqliteValueType;
314
- /** Gets the name of the column of the value. */
315
- get columnName(): string;
316
- /** Gets the SqlValue as JavaScript value.
317
- *
318
- * SQLite Type | JavaScript Type
319
- * --- | ---
320
- * [SqliteValueType.Null]($backend) | undefined
321
- * [SqliteValueType.Integer]($backend) | number
322
- * [SqliteValueType.Double]($backend) | number
323
- * [SqliteValueType.String]($backend) | string
324
- * [SqliteValueType.Blob]($backend) | Uint8Array
325
- */
326
- get value(): any;
327
- /** Get the value as Blob */
328
- getBlob(): Uint8Array;
329
- /** Get the value as a double value */
330
- getDouble(): number;
331
- /** Get the value as a integer value */
332
- getInteger(): number;
333
- /** Get the value as a string value */
334
- getString(): string;
335
- /** Get the value as an Id value */
336
- getId(): Id64String;
337
- /** Get the value as a Guid value */
338
- getGuid(): GuidString;
339
- }
340
- interface Statement {
341
- isPrepared: boolean;
342
- sql: string;
343
- dispose(): void;
344
- reset(): void;
345
- clearBindings(): void;
346
- }
347
- /** A cache for previously prepared SqliteStatements.
348
- * It only holds Statements after they are no longer in use, resetting and clearing their bindings before saving them.
349
- * When a request to use a statement from the cache is made, it is first removed from the cache.
350
- * @internal
351
- */
352
- export declare class StatementCache<Stmt extends Statement> {
353
- private _cache;
354
- constructor(maxCount?: number);
355
- get size(): number;
356
- addOrDispose(stmt: Stmt): void;
357
- findAndRemove(sql: string): Stmt | undefined;
358
- clear(): void;
359
- }
360
- export {};
1
+ /** @packageDocumentation
2
+ * @module SQLite
3
+ */
4
+ import { DbResult, GuidString, Id64String, IDisposable } from "@itwin/core-bentley";
5
+ import { IModelJsNative } from "@bentley/imodeljs-native";
6
+ /** Marks a string as either an [Id64String]($core-bentley) or [GuidString]($core-bentley), so
7
+ * that it can be passed to the [bindValue]($backend.SqliteStatement) or [bindValues]($backend.SqliteStatement)
8
+ * methods of [SqliteStatement]($backend).
9
+ * @internal
10
+ */
11
+ export interface StringParam {
12
+ id?: Id64String;
13
+ guid?: GuidString;
14
+ }
15
+ /** parameter Index (1-based), or name of the parameter (including the initial ':', '@' or '$')
16
+ * @public
17
+ */
18
+ export type BindParameter = number | string;
19
+ /** Executes SQLite SQL statements.
20
+ *
21
+ * A statement must be prepared before it can be executed, and it must be released when no longer needed.
22
+ * See [IModelDb.withPreparedSqliteStatement]($backend) or
23
+ * [ECDb.withPreparedSqliteStatement]($backend) for a convenient and
24
+ * reliable way to prepare, execute, and then release a statement.
25
+ *
26
+ * A statement may contain parameters that must be filled in before use by calling [SqliteStatement.bindValue]($backend)
27
+ * or [SqliteStatement.bindValues]($backend).
28
+ *
29
+ * Once prepared (and parameters are bound, if any), the statement is executed by calling [SqliteStatement.step]($backend).
30
+ * In case of an **SQL SELECT** statement, the current row can be retrieved with [SqliteStatement.getRow]($backend) as
31
+ * a whole, or with [SqliteStatement.getValue]($backend) when individual values are needed.
32
+ * Alternatively, query results of an **SQL SELECT** statement can be stepped through by using
33
+ * standard iteration syntax, such as `for of`.
34
+ *
35
+ * > Preparing a statement can be time-consuming. The best way to reduce the effect of this overhead is to cache and reuse prepared
36
+ * > statements. A cached prepared statement may be used in different places in an app, as long as the statement is general enough.
37
+ * > The key to making this strategy work is to phrase a statement in a general way and use placeholders to represent parameters that will vary on each use.
38
+ * @public
39
+ */
40
+ export declare class SqliteStatement implements IterableIterator<any>, IDisposable {
41
+ private _sql;
42
+ private _stmt;
43
+ private _db;
44
+ constructor(_sql: string);
45
+ get stmt(): IModelJsNative.SqliteStatement;
46
+ get sql(): string;
47
+ /** Check if this statement has been prepared successfully or not */
48
+ get isPrepared(): boolean;
49
+ /** Prepare this statement prior to first use.
50
+ * @param db The DgnDb or ECDb to prepare the statement against
51
+ * @param sql The SQL statement string to prepare
52
+ * @param logErrors Determine if errors are logged or not
53
+ * @throws if the SQL statement cannot be prepared. Normally, prepare fails due to SQL syntax errors or references to tables or properties that do not exist.
54
+ * The error.message property will provide details.
55
+ */
56
+ prepare(db: IModelJsNative.AnyDb, logErrors?: boolean): void;
57
+ /** Indicates whether the prepared statement makes no **direct* changes to the content of the file
58
+ * or not. See [SQLite docs](https://www.sqlite.org/c3ref/stmt_readonly.html) for details.
59
+ */
60
+ get isReadonly(): boolean;
61
+ /** Reset this statement so that the next call to step will return the first row, if any.
62
+ */
63
+ reset(): void;
64
+ /** Call this function when finished with this statement. This releases the native resources held by the statement. */
65
+ dispose(): void;
66
+ /**
67
+ * Call `step` on this statement and determine whether a new row is available.
68
+ * Use this method only when this statement has been prepared with a SELECT statement.
69
+ * @return true if a new row is available, false otherwise.
70
+ * @throws if `step` returns anything other than BE_SQLITE_ROW or BE_SQLITE_DONE.
71
+ */
72
+ nextRow(): boolean;
73
+ /** Binds a value to the specified SQL parameter.
74
+ * The value must be of one of these types:
75
+ * JavaScript Type | SQLite Type
76
+ * --- | ---
77
+ * undefined | NULL
78
+ * boolean | INTEGER with true being bound as 1 and false as 0
79
+ * number | INTEGER if number is integral or REAL if number is not integral
80
+ * string | TEXT
81
+ * Uint8Array or ArrayBuffer | BLOB
82
+ * [StringParam]($backend) where member **id** is set | INTEGER
83
+ * [StringParam]($backend) where member **guid** is set | BLOB
84
+ *
85
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
86
+ * @param value Value to bind.
87
+ * @throws [IModelError]($common) if the value is of an unsupported type or in
88
+ * case of other binding errors.
89
+ */
90
+ bindValue(parameter: BindParameter, value: any): void;
91
+ /** Bind an integer parameter
92
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
93
+ * @param val integer to bind.
94
+ */
95
+ bindInteger(parameter: BindParameter, val: number): void;
96
+ /** Bind an integer parameter if it is defined. Otherwise do nothing.
97
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
98
+ * @param val integer to bind.
99
+ */
100
+ maybeBindInteger(parameter: BindParameter, val?: number): void;
101
+ /** Bind a boolean parameter.
102
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
103
+ * @param val boolean to bind.
104
+ */
105
+ bindBoolean(parameter: BindParameter, val: boolean): void;
106
+ /** Bind a boolean parameter if it is defined. Otherwise do nothing.
107
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
108
+ * @param val boolean to bind.
109
+ */
110
+ maybeBindBoolean(parameter: BindParameter, val?: boolean): void;
111
+ /** JSON.stringify a property value and bind the JSON string.
112
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
113
+ * @param val object to bind.
114
+ * @internal
115
+ */
116
+ bindProps<T>(colIndex: number, val: T): void;
117
+ /** JSON.stringify a property value if it is defined, and bind the JSON string. Otherwise do nothing.
118
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
119
+ * @param val object to bind.
120
+ * @internal
121
+ */
122
+ maybeBindProps<T>(colIndex: number, val?: T): void;
123
+ /** Bind a double parameter
124
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
125
+ * @param val double to bind.
126
+ */
127
+ bindDouble(parameter: BindParameter, val: number): void;
128
+ /** Bind a double parameter if it is defined. Otherwise do nothing.
129
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
130
+ * @param val double to bind.
131
+ */
132
+ maybeBindDouble(parameter: BindParameter, val?: number): void;
133
+ /** Bind a string parameter
134
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
135
+ * @param val string to bind.
136
+ */
137
+ bindString(parameter: BindParameter, val: string): void;
138
+ /** Bind a string parameter if it is defined. Otherwise do nothing.
139
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
140
+ * @param val string to bind.
141
+ */
142
+ maybeBindString(parameter: BindParameter, val?: string): void;
143
+ /** Bind an Id64String parameter as a 64-bit integer
144
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
145
+ * @param val Id to bind.
146
+ */
147
+ bindId(parameter: BindParameter, id: Id64String): void;
148
+ /** Bind a Guid parameter
149
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
150
+ * @param val Guid to bind.
151
+ */
152
+ bindGuid(parameter: BindParameter, guid: GuidString): void;
153
+ /** Bind a blob parameter
154
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
155
+ * @param val blob to bind.
156
+ */
157
+ bindBlob(parameter: BindParameter, blob: Uint8Array): void;
158
+ /** Bind a blob parameter if it is defined. Otherwise do nothing.
159
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
160
+ * @param val blob to bind.
161
+ */
162
+ maybeBindBlob(parameter: BindParameter, val?: Uint8Array): void;
163
+ /** Bind null to a parameter
164
+ * @param parameter Index (1-based) or name of the parameter (including the initial ':', '@' or '$')
165
+ */
166
+ bindNull(parameter: BindParameter): void;
167
+ /** Bind values to all parameters in the statement.
168
+ * @param values The values to bind to the parameters.
169
+ * Pass an *array* of values if the parameters are *positional*.
170
+ * Pass an *object of the values keyed on the parameter name* for *named parameters*.
171
+ * The values in either the array or object must match the respective types of the parameter.
172
+ * See [[SqliteStatement.bindValue]] for details on the supported types.
173
+ */
174
+ bindValues(values: any[] | object): void;
175
+ /** Clear any bindings that were previously set on this statement.
176
+ * @throws [IModelError]($common) in case of errors
177
+ */
178
+ clearBindings(): void;
179
+ /** Step this statement to the next row.
180
+ *
181
+ * For **SQL SELECT** statements the method returns
182
+ * - [DbResult.BE_SQLITE_ROW]($core-bentley) if the statement now points successfully to the next row.
183
+ * - [DbResult.BE_SQLITE_DONE]($core-bentley) if the statement has no more rows.
184
+ * - Error status in case of errors.
185
+ *
186
+ * For **SQL INSERT, UPDATE, DELETE** statements the method returns
187
+ * - [DbResult.BE_SQLITE_DONE]($core-bentley) if the statement has been executed successfully.
188
+ * - Error status in case of errors.
189
+ */
190
+ step(): DbResult;
191
+ /** Get the query result's column count (only for SQL SELECT statements). */
192
+ getColumnCount(): number;
193
+ /** Get the value for the column at the given index in the query result.
194
+ * @param columnIx Index of SQL column in query result (0-based)
195
+ */
196
+ getValue(columnIx: number): SqliteValue;
197
+ /** Determine whether the value of the specified column is null
198
+ * @param colIndex Index of SQL column in query result (0-based)
199
+ */
200
+ isValueNull(colIndex: number): boolean;
201
+ /** Get a size in bytes of a blob or text column
202
+ * @param colIndex Index of SQL column in query result (0-based)
203
+ */
204
+ getColumnBytes(colIndex: number): number;
205
+ /** Get a value as a blob
206
+ * @param colIndex Index of SQL column in query result (0-based)
207
+ */
208
+ getValueBlob(colIndex: number): Uint8Array;
209
+ /** Get the value as a blob, or undefined if it is null.
210
+ * @param colIndex Index of SQL column in query result (0-based)
211
+ */
212
+ getValueBlobMaybe(colIndex: number): Uint8Array | undefined;
213
+ /** Get a value as a double
214
+ * @param colIndex Index of SQL column in query result (0-based)
215
+ */
216
+ getValueDouble(colIndex: number): number;
217
+ /** Get the value as an double, or undefined if it is null.
218
+ * @param colIndex Index of SQL column in query result (0-based)
219
+ */
220
+ getValueDoubleMaybe(colIndex: number): number | undefined;
221
+ /** Get a value as a integer
222
+ * @param colIndex Index of SQL column in query result (0-based)
223
+ */
224
+ getValueInteger(colIndex: number): number;
225
+ /** Get the value as an integer, or undefined if it is null.
226
+ * @param colIndex Index of SQL column in query result (0-based)
227
+ */
228
+ getValueIntegerMaybe(colIndex: number): number | undefined;
229
+ /** Get a value as a string
230
+ * @param colIndex Index of SQL column in query result (0-based)
231
+ */
232
+ getValueString(colIndex: number): string;
233
+ /** Get the value as a string, or undefined if it is null.
234
+ * @param colIndex Index of SQL column in query result (0-based)
235
+ */
236
+ getValueStringMaybe(colIndex: number): string | undefined;
237
+ /** Get a value as an Id
238
+ * @param colIndex Index of SQL column in query result (0-based)
239
+ */
240
+ getValueId(colIndex: number): Id64String;
241
+ /** Get a value as a Guid
242
+ * @param colIndex Index of SQL column in query result (0-based)
243
+ */
244
+ getValueGuid(colIndex: number): GuidString;
245
+ /** Get the value as a boolean. Returns `false` if the column is null.
246
+ * @param colIndex Index of SQL column in query result (0-based)
247
+ */
248
+ getValueBoolean(colIndex: number): boolean;
249
+ /** Get the value of a [julianday](https://www.sqlite.org/lang_datefunc.html) column as a JavaScript `Date`.
250
+ * @param colIndex Index of SQL column in query result (0-based)
251
+ * @beta
252
+ */
253
+ getValueDate(colIndex: number): Date;
254
+ /** Get the value as a "props" JSON string, then parse it and return the object
255
+ * @param colIndex Index of SQL column in query result (0-based)
256
+ * @internal
257
+ */
258
+ getProps<T>(colIndex: number): T;
259
+ /** Get the value as a "props" JSON string, then parse it and return the object.
260
+ * If the column is null, return undefined.
261
+ * @param colIndex Index of SQL column in query result (0-based)
262
+ * @internal
263
+ */
264
+ getPropsMaybe<T>(colIndex: number): T | undefined;
265
+ /** Get the current row.
266
+ * The returned row is formatted as JavaScript object where every SELECT clause item becomes a property in the JavaScript object.
267
+ *
268
+ * The SQL select clause item's name becomes the member name of the JavaScript object, **with the first character lowered**.
269
+ *
270
+ * SQLite Type | JavaScript Type
271
+ * --- | ---
272
+ * [SqliteValueType.Null]($backend) | undefined
273
+ * [SqliteValueType.Integer]($backend) | number
274
+ * [SqliteValueType.Double]($backend) | number
275
+ * [SqliteValueType.String]($backend) | string
276
+ * [SqliteValueType.Blob]($backend) | Uint8Array
277
+ */
278
+ getRow(): any;
279
+ private static determineResultRowPropertyName;
280
+ /** Calls step when called as an iterator.
281
+ */
282
+ next(): IteratorResult<any>;
283
+ /** The iterator that will step through the results of this statement. */
284
+ [Symbol.iterator](): IterableIterator<any>;
285
+ }
286
+ /** Data type of a value in in an SQLite SQL query result.
287
+ * See also:
288
+ * - [SqliteValue]($backend)
289
+ * - [SqliteStatement]($backend)
290
+ * - [SqliteStatement.getValue]($backend)
291
+ * @public
292
+ */
293
+ export declare enum SqliteValueType {
294
+ Integer = 1,
295
+ Double = 2,
296
+ String = 3,
297
+ Blob = 4,
298
+ Null = 5
299
+ }
300
+ /** Value of a column in a row of an SQLite SQL query result.
301
+ * See also:
302
+ * - [SqliteStatement]($backend)
303
+ * - [SqliteStatement.getValue]($backend)
304
+ * @public
305
+ */
306
+ export declare class SqliteValue {
307
+ private readonly _stmt;
308
+ private readonly _colIndex;
309
+ constructor(stmt: IModelJsNative.SqliteStatement, colIndex: number);
310
+ /** Indicates whether the value is NULL or not. */
311
+ get isNull(): boolean;
312
+ /** Gets the data type of the value. */
313
+ get type(): SqliteValueType;
314
+ /** Gets the name of the column of the value. */
315
+ get columnName(): string;
316
+ /** Gets the SqlValue as JavaScript value.
317
+ *
318
+ * SQLite Type | JavaScript Type
319
+ * --- | ---
320
+ * [SqliteValueType.Null]($backend) | undefined
321
+ * [SqliteValueType.Integer]($backend) | number
322
+ * [SqliteValueType.Double]($backend) | number
323
+ * [SqliteValueType.String]($backend) | string
324
+ * [SqliteValueType.Blob]($backend) | Uint8Array
325
+ */
326
+ get value(): any;
327
+ /** Get the value as Blob */
328
+ getBlob(): Uint8Array;
329
+ /** Get the value as a double value */
330
+ getDouble(): number;
331
+ /** Get the value as a integer value */
332
+ getInteger(): number;
333
+ /** Get the value as a string value */
334
+ getString(): string;
335
+ /** Get the value as an Id value */
336
+ getId(): Id64String;
337
+ /** Get the value as a Guid value */
338
+ getGuid(): GuidString;
339
+ }
340
+ interface Statement {
341
+ isPrepared: boolean;
342
+ sql: string;
343
+ dispose(): void;
344
+ reset(): void;
345
+ clearBindings(): void;
346
+ }
347
+ /** A cache for previously prepared SqliteStatements.
348
+ * It only holds Statements after they are no longer in use, resetting and clearing their bindings before saving them.
349
+ * When a request to use a statement from the cache is made, it is first removed from the cache.
350
+ * @internal
351
+ */
352
+ export declare class StatementCache<Stmt extends Statement> {
353
+ private _cache;
354
+ constructor(maxCount?: number);
355
+ get size(): number;
356
+ addOrDispose(stmt: Stmt): void;
357
+ findAndRemove(sql: string): Stmt | undefined;
358
+ clear(): void;
359
+ }
360
+ export {};
361
361
  //# sourceMappingURL=SqliteStatement.d.ts.map