@itwin/core-backend 3.6.0-dev.34 → 3.6.0-dev.36
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.
- package/LICENSE.md +1 -1
- package/lib/cjs/AliCloudStorageService.d.ts +23 -23
- package/lib/cjs/AliCloudStorageService.js +71 -71
- package/lib/cjs/AliCloudStorageService.js.map +1 -1
- package/lib/cjs/BackendHubAccess.d.ts +224 -224
- package/lib/cjs/BackendHubAccess.js +41 -41
- package/lib/cjs/BackendHubAccess.js.map +1 -1
- package/lib/cjs/BackendLoggerCategory.d.ts +91 -91
- package/lib/cjs/BackendLoggerCategory.js +99 -99
- package/lib/cjs/BackendLoggerCategory.js.map +1 -1
- package/lib/cjs/BisCoreSchema.d.ts +21 -21
- package/lib/cjs/BisCoreSchema.js +60 -60
- package/lib/cjs/BisCoreSchema.js.map +1 -1
- package/lib/cjs/BriefcaseManager.d.ts +170 -170
- package/lib/cjs/BriefcaseManager.js +413 -413
- package/lib/cjs/BriefcaseManager.js.map +1 -1
- package/lib/cjs/Category.d.ts +153 -153
- package/lib/cjs/Category.js +243 -243
- package/lib/cjs/Category.js.map +1 -1
- package/lib/cjs/ChangeSummaryManager.d.ts +187 -187
- package/lib/cjs/ChangeSummaryManager.js +447 -447
- package/lib/cjs/ChangeSummaryManager.js.map +1 -1
- package/lib/cjs/ChangedElementsDb.d.ts +99 -99
- package/lib/cjs/ChangedElementsDb.js +165 -165
- package/lib/cjs/ChangedElementsDb.js.map +1 -1
- package/lib/cjs/ChangedElementsManager.d.ts +39 -39
- package/lib/cjs/ChangedElementsManager.js +88 -88
- package/lib/cjs/ChangedElementsManager.js.map +1 -1
- package/lib/cjs/CheckpointManager.d.ts +122 -122
- package/lib/cjs/CheckpointManager.js +343 -343
- package/lib/cjs/CheckpointManager.js.map +1 -1
- package/lib/cjs/ClassRegistry.d.ts +79 -79
- package/lib/cjs/ClassRegistry.js +249 -249
- package/lib/cjs/ClassRegistry.js.map +1 -1
- package/lib/cjs/CloudSqlite.d.ts +350 -350
- package/lib/cjs/CloudSqlite.js +153 -153
- package/lib/cjs/CloudSqlite.js.map +1 -1
- package/lib/cjs/CloudStorageBackend.d.ts +58 -58
- package/lib/cjs/CloudStorageBackend.js +173 -173
- package/lib/cjs/CloudStorageBackend.js.map +1 -1
- package/lib/cjs/CodeService.d.ts +396 -396
- package/lib/cjs/CodeService.js +63 -63
- package/lib/cjs/CodeService.js.map +1 -1
- package/lib/cjs/CodeSpecs.d.ts +50 -50
- package/lib/cjs/CodeSpecs.js +112 -112
- package/lib/cjs/CodeSpecs.js.map +1 -1
- package/lib/cjs/ConcurrentQuery.d.ts +13 -13
- package/lib/cjs/ConcurrentQuery.js +36 -36
- package/lib/cjs/ConcurrentQuery.js.map +1 -1
- package/lib/cjs/CustomViewState3dCreator.d.ts +21 -21
- package/lib/cjs/CustomViewState3dCreator.js +81 -81
- package/lib/cjs/CustomViewState3dCreator.js.map +1 -1
- package/lib/cjs/DevTools.d.ts +71 -71
- package/lib/cjs/DevTools.js +154 -154
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyle.d.ts +106 -106
- package/lib/cjs/DisplayStyle.js +256 -256
- package/lib/cjs/DisplayStyle.js.map +1 -1
- package/lib/cjs/ECDb.d.ts +191 -191
- package/lib/cjs/ECDb.js +350 -350
- package/lib/cjs/ECDb.js.map +1 -1
- package/lib/cjs/ECSchemaXmlContext.d.ts +18 -18
- package/lib/cjs/ECSchemaXmlContext.js +41 -41
- package/lib/cjs/ECSchemaXmlContext.js.map +1 -1
- package/lib/cjs/ECSqlStatement.d.ts +473 -466
- package/lib/cjs/ECSqlStatement.d.ts.map +1 -1
- package/lib/cjs/ECSqlStatement.js +791 -791
- package/lib/cjs/ECSqlStatement.js.map +1 -1
- package/lib/cjs/Element.d.ts +1102 -1102
- package/lib/cjs/Element.js +1416 -1416
- package/lib/cjs/Element.js.map +1 -1
- package/lib/cjs/ElementAspect.d.ts +176 -176
- package/lib/cjs/ElementAspect.js +211 -211
- package/lib/cjs/ElementAspect.js.map +1 -1
- package/lib/cjs/ElementGraphics.d.ts +9 -9
- package/lib/cjs/ElementGraphics.js +41 -41
- package/lib/cjs/ElementGraphics.js.map +1 -1
- package/lib/cjs/ElementTreeWalker.d.ts +162 -162
- package/lib/cjs/ElementTreeWalker.js +409 -409
- package/lib/cjs/ElementTreeWalker.js.map +1 -1
- package/lib/cjs/Entity.d.ts +106 -106
- package/lib/cjs/Entity.js +134 -134
- package/lib/cjs/Entity.js.map +1 -1
- package/lib/cjs/EntityReferences.d.ts +49 -49
- package/lib/cjs/EntityReferences.js +95 -95
- package/lib/cjs/EntityReferences.js.map +1 -1
- package/lib/cjs/ExportGraphics.d.ts +317 -317
- package/lib/cjs/ExportGraphics.js +208 -208
- package/lib/cjs/ExportGraphics.js.map +1 -1
- package/lib/cjs/ExternalSource.d.ts +96 -96
- package/lib/cjs/ExternalSource.js +131 -131
- package/lib/cjs/ExternalSource.js.map +1 -1
- package/lib/cjs/GeoCoordConfig.d.ts +19 -19
- package/lib/cjs/GeoCoordConfig.js +85 -85
- package/lib/cjs/GeoCoordConfig.js.map +1 -1
- package/lib/cjs/GeometrySummary.d.ts +4 -4
- package/lib/cjs/GeometrySummary.js +380 -380
- package/lib/cjs/GeometrySummary.js.map +1 -1
- package/lib/cjs/HubMock.d.ts +94 -94
- package/lib/cjs/HubMock.js +222 -222
- package/lib/cjs/HubMock.js.map +1 -1
- package/lib/cjs/IModelCloneContext.d.ts +8 -8
- package/lib/cjs/IModelCloneContext.js +15 -15
- package/lib/cjs/IModelCloneContext.js.map +1 -1
- package/lib/cjs/IModelDb.d.ts +1183 -1183
- package/lib/cjs/IModelDb.js +2374 -2374
- package/lib/cjs/IModelDb.js.map +1 -1
- package/lib/cjs/IModelElementCloneContext.d.ts +89 -89
- package/lib/cjs/IModelElementCloneContext.js +159 -159
- package/lib/cjs/IModelElementCloneContext.js.map +1 -1
- package/lib/cjs/IModelHost.d.ts +370 -370
- package/lib/cjs/IModelHost.js +496 -496
- package/lib/cjs/IModelHost.js.map +1 -1
- package/lib/cjs/IModelJsFs.d.ts +62 -62
- package/lib/cjs/IModelJsFs.js +140 -140
- package/lib/cjs/IModelJsFs.js.map +1 -1
- package/lib/cjs/IpcHost.d.ts +104 -104
- package/lib/cjs/IpcHost.js +278 -278
- package/lib/cjs/IpcHost.js.map +1 -1
- package/lib/cjs/LineStyle.d.ts +311 -311
- package/lib/cjs/LineStyle.js +295 -295
- package/lib/cjs/LineStyle.js.map +1 -1
- package/lib/cjs/LocalHub.d.ts +162 -162
- package/lib/cjs/LocalHub.js +587 -587
- package/lib/cjs/LocalHub.js.map +1 -1
- package/lib/cjs/LocalhostIpcHost.d.ts +20 -20
- package/lib/cjs/LocalhostIpcHost.js +81 -81
- package/lib/cjs/LocalhostIpcHost.js.map +1 -1
- package/lib/cjs/Material.d.ts +103 -103
- package/lib/cjs/Material.js +147 -147
- package/lib/cjs/Material.js.map +1 -1
- package/lib/cjs/Model.d.ts +392 -392
- package/lib/cjs/Model.js +485 -485
- package/lib/cjs/Model.js.map +1 -1
- package/lib/cjs/NativeAppStorage.d.ts +51 -51
- package/lib/cjs/NativeAppStorage.js +202 -202
- package/lib/cjs/NativeAppStorage.js.map +1 -1
- package/lib/cjs/NativeHost.d.ts +52 -52
- package/lib/cjs/NativeHost.js +163 -163
- package/lib/cjs/NativeHost.js.map +1 -1
- package/lib/cjs/NavigationRelationship.d.ts +156 -156
- package/lib/cjs/NavigationRelationship.js +225 -225
- package/lib/cjs/NavigationRelationship.js.map +1 -1
- package/lib/cjs/PromiseMemoizer.d.ts +51 -51
- package/lib/cjs/PromiseMemoizer.js +101 -101
- package/lib/cjs/PromiseMemoizer.js.map +1 -1
- package/lib/cjs/PropertyStore.d.ts +132 -132
- package/lib/cjs/PropertyStore.js +11 -11
- package/lib/cjs/PropertyStore.js.map +1 -1
- package/lib/cjs/Relationship.d.ts +416 -416
- package/lib/cjs/Relationship.js +494 -494
- package/lib/cjs/Relationship.js.map +1 -1
- package/lib/cjs/RpcBackend.d.ts +5 -5
- package/lib/cjs/RpcBackend.js +31 -31
- package/lib/cjs/RpcBackend.js.map +1 -1
- package/lib/cjs/SQLiteDb.d.ts +219 -219
- package/lib/cjs/SQLiteDb.js +214 -214
- package/lib/cjs/SQLiteDb.js.map +1 -1
- package/lib/cjs/Schema.d.ts +55 -55
- package/lib/cjs/Schema.js +83 -83
- package/lib/cjs/Schema.js.map +1 -1
- package/lib/cjs/ServerBasedLocks.d.ts +57 -57
- package/lib/cjs/ServerBasedLocks.js +168 -168
- package/lib/cjs/ServerBasedLocks.js.map +1 -1
- package/lib/cjs/SqliteStatement.d.ts +360 -360
- package/lib/cjs/SqliteStatement.js +586 -586
- package/lib/cjs/SqliteStatement.js.map +1 -1
- package/lib/cjs/Texture.d.ts +58 -58
- package/lib/cjs/Texture.js +82 -82
- package/lib/cjs/Texture.js.map +1 -1
- package/lib/cjs/TileStorage.d.ts +18 -18
- package/lib/cjs/TileStorage.js +90 -90
- package/lib/cjs/TileStorage.js.map +1 -1
- package/lib/cjs/TxnManager.d.ts +202 -202
- package/lib/cjs/TxnManager.js +356 -356
- package/lib/cjs/TxnManager.js.map +1 -1
- package/lib/cjs/ViewDefinition.d.ts +439 -439
- package/lib/cjs/ViewDefinition.js +646 -646
- package/lib/cjs/ViewDefinition.js.map +1 -1
- package/lib/cjs/ViewStateHydrator.d.ts +13 -13
- package/lib/cjs/ViewStateHydrator.js +103 -103
- package/lib/cjs/ViewStateHydrator.js.map +1 -1
- package/lib/cjs/assets/IModelChange.02.00.00.ecschema.xml +90 -90
- package/lib/cjs/assets/Settings/Schemas/Cloud.Schema.json +67 -67
- package/lib/cjs/assets/Settings/Schemas/Gcs.schema.json +31 -31
- package/lib/cjs/assets/Settings/Schemas/Workspace.Schema.json +52 -52
- package/lib/cjs/assets/Settings/backend.setting.json5 +138 -138
- package/lib/cjs/core-backend.d.ts +184 -184
- package/lib/cjs/core-backend.js +204 -204
- package/lib/cjs/core-backend.js.map +1 -1
- package/lib/cjs/domains/FunctionalElements.d.ts +101 -101
- package/lib/cjs/domains/FunctionalElements.js +145 -145
- package/lib/cjs/domains/FunctionalElements.js.map +1 -1
- package/lib/cjs/domains/FunctionalSchema.d.ts +13 -13
- package/lib/cjs/domains/FunctionalSchema.js +40 -40
- package/lib/cjs/domains/FunctionalSchema.js.map +1 -1
- package/lib/cjs/domains/GenericElements.d.ts +177 -177
- package/lib/cjs/domains/GenericElements.js +263 -263
- package/lib/cjs/domains/GenericElements.js.map +1 -1
- package/lib/cjs/domains/GenericSchema.d.ts +10 -10
- package/lib/cjs/domains/GenericSchema.js +28 -28
- package/lib/cjs/domains/GenericSchema.js.map +1 -1
- package/lib/cjs/rpc/multipart.d.ts +11 -11
- package/lib/cjs/rpc/multipart.js +70 -70
- package/lib/cjs/rpc/multipart.js.map +1 -1
- package/lib/cjs/rpc/tracing.d.ts +28 -28
- package/lib/cjs/rpc/tracing.js +73 -73
- package/lib/cjs/rpc/tracing.js.map +1 -1
- package/lib/cjs/rpc/web/logging.d.ts +9 -9
- package/lib/cjs/rpc/web/logging.js +42 -42
- package/lib/cjs/rpc/web/logging.js.map +1 -1
- package/lib/cjs/rpc/web/request.d.ts +6 -6
- package/lib/cjs/rpc/web/request.js +73 -73
- package/lib/cjs/rpc/web/request.js.map +1 -1
- package/lib/cjs/rpc/web/response.d.ts +6 -6
- package/lib/cjs/rpc/web/response.js +105 -105
- package/lib/cjs/rpc/web/response.js.map +1 -1
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.d.ts +15 -15
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js +32 -32
- package/lib/cjs/rpc-impl/DevToolsRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.d.ts +47 -47
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js +291 -291
- package/lib/cjs/rpc-impl/IModelReadRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.d.ts +22 -22
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js +202 -202
- package/lib/cjs/rpc-impl/IModelTileRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.d.ts +36 -36
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js +168 -168
- package/lib/cjs/rpc-impl/RpcBriefcaseUtility.js.map +1 -1
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.d.ts +16 -16
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js +43 -43
- package/lib/cjs/rpc-impl/SnapshotIModelRpcImpl.js.map +1 -1
- package/lib/cjs/rpc-impl/WipRpcImpl.d.ts +15 -15
- package/lib/cjs/rpc-impl/WipRpcImpl.js +37 -37
- package/lib/cjs/rpc-impl/WipRpcImpl.js.map +1 -1
- package/lib/cjs/workspace/Settings.d.ts +186 -186
- package/lib/cjs/workspace/Settings.js +155 -155
- package/lib/cjs/workspace/Settings.js.map +1 -1
- package/lib/cjs/workspace/SettingsSchemas.d.ts +75 -75
- package/lib/cjs/workspace/SettingsSchemas.js +191 -191
- package/lib/cjs/workspace/SettingsSchemas.js.map +1 -1
- package/lib/cjs/workspace/Workspace.d.ts +414 -414
- package/lib/cjs/workspace/Workspace.js +543 -543
- package/lib/cjs/workspace/Workspace.js.map +1 -1
- package/package.json +11 -11
package/lib/cjs/SQLiteDb.d.ts
CHANGED
|
@@ -1,220 +1,220 @@
|
|
|
1
|
-
/** @packageDocumentation
|
|
2
|
-
* @module SQLiteDb
|
|
3
|
-
*/
|
|
4
|
-
import { IModelJsNative } from "@bentley/imodeljs-native";
|
|
5
|
-
import { DbResult, IDisposable, OpenMode } from "@itwin/core-bentley";
|
|
6
|
-
import { LocalFileName } from "@itwin/core-common";
|
|
7
|
-
import { CloudSqlite } from "./CloudSqlite";
|
|
8
|
-
import { SqliteStatement } from "./SqliteStatement";
|
|
9
|
-
/** A SQLiteDb file
|
|
10
|
-
* @public
|
|
11
|
-
*/
|
|
12
|
-
export declare class SQLiteDb implements IDisposable {
|
|
13
|
-
/** @internal */
|
|
14
|
-
readonly nativeDb: IModelJsNative.SQLiteDb;
|
|
15
|
-
private _sqliteStatementCache;
|
|
16
|
-
/** @internal */
|
|
17
|
-
static createBlobIO(): SQLiteDb.BlobIO;
|
|
18
|
-
/** alias for closeDb. */
|
|
19
|
-
dispose(): void;
|
|
20
|
-
/** Create a SQLiteDb
|
|
21
|
-
* @param dbName The path to the SQLiteDb file to create.
|
|
22
|
-
*/
|
|
23
|
-
createDb(dbName: string): void;
|
|
24
|
-
/** @beta */
|
|
25
|
-
createDb(dbName: string, container?: CloudSqlite.CloudContainer, params?: SQLiteDb.CreateParams): void;
|
|
26
|
-
/** Open a SQLiteDb.
|
|
27
|
-
* @param dbName The path to the SQLiteDb file to open
|
|
28
|
-
*/
|
|
29
|
-
openDb(dbName: string, openMode: OpenMode | SQLiteDb.OpenParams): void;
|
|
30
|
-
/**
|
|
31
|
-
* @param container optional CloudContainer holding database
|
|
32
|
-
* @beta
|
|
33
|
-
*/
|
|
34
|
-
openDb(dbName: string, openMode: OpenMode | SQLiteDb.OpenParams, container?: CloudSqlite.CloudContainer): void;
|
|
35
|
-
/** Close SQLiteDb.
|
|
36
|
-
* @param saveChanges if true, call `saveChanges` before closing db. Otherwise unsaved changes are abandoned.
|
|
37
|
-
*/
|
|
38
|
-
closeDb(saveChanges?: boolean): void;
|
|
39
|
-
/** Returns true if this SQLiteDb is open */
|
|
40
|
-
get isOpen(): boolean;
|
|
41
|
-
/** Returns true if this SQLiteDb is open readonly */
|
|
42
|
-
get isReadonly(): boolean;
|
|
43
|
-
/**
|
|
44
|
-
* Open a database, perform an operation, then close the database.
|
|
45
|
-
*
|
|
46
|
-
* Details:
|
|
47
|
-
* - if database is open, throw an error
|
|
48
|
-
* - open a database
|
|
49
|
-
* - call a function with the database opened. If it is async, await its return.
|
|
50
|
-
* - if function throws, abandon all changes, close database, and rethrow
|
|
51
|
-
* - save all changes
|
|
52
|
-
* - close the database
|
|
53
|
-
* @return value from operation
|
|
54
|
-
*/
|
|
55
|
-
withOpenDb<T>(args: SQLiteDb.WithOpenDbArgs, operation: () => T): T;
|
|
56
|
-
/**
|
|
57
|
-
* Perform an operation on a database in a CloudContainer with the write lock held.
|
|
58
|
-
*
|
|
59
|
-
* Details:
|
|
60
|
-
* - acquire the write lock on a CloudContainer
|
|
61
|
-
* - call `withOpenDb` with openMode `ReadWrite`
|
|
62
|
-
* - upload changes
|
|
63
|
-
* - release the write lock
|
|
64
|
-
* @param args arguments to lock the container and open the database
|
|
65
|
-
* @param operation an operation performed on the database with the write lock held.
|
|
66
|
-
* @return value from operation
|
|
67
|
-
* @internal
|
|
68
|
-
*/
|
|
69
|
-
withLockedContainer<T>(args: CloudSqlite.LockAndOpenArgs, operation: () => T): Promise<T>;
|
|
70
|
-
/** vacuum this database
|
|
71
|
-
* @see https://www.sqlite.org/lang_vacuum.html
|
|
72
|
-
*/
|
|
73
|
-
vacuum(args?: SQLiteDb.VacuumDbArgs): void;
|
|
74
|
-
/** Commit the outermost transaction, writing changes to the file. Then, restart the transaction. */
|
|
75
|
-
saveChanges(): void;
|
|
76
|
-
/** Abandon (cancel) the outermost transaction, discarding all changes since last save. Then, restart the transaction. */
|
|
77
|
-
abandonChanges(): void;
|
|
78
|
-
/**
|
|
79
|
-
* Use a prepared SQL statement, potentially from the statement cache. If the requested statement doesn't exist
|
|
80
|
-
* in the statement cache, a new statement is prepared. After the callback completes, the statement is reset and saved
|
|
81
|
-
* in the statement cache so it can be reused in the future. Use this method for SQL statements that will be
|
|
82
|
-
* reused often and are expensive to prepare. The statement cache holds the most recently used statements, discarding
|
|
83
|
-
* the oldest statements as it fills. For statements you don't intend to reuse, instead use [[withSqliteStatement]].
|
|
84
|
-
* @param sql The SQLite SQL statement to execute
|
|
85
|
-
* @param callback the callback to invoke on the prepared statement
|
|
86
|
-
* @returns the value returned by `callback`.
|
|
87
|
-
*/
|
|
88
|
-
withPreparedSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T): T;
|
|
89
|
-
/**
|
|
90
|
-
* Prepared and execute a callback on a SQL statement. After the callback completes the statement is disposed.
|
|
91
|
-
* Use this method for SQL statements are either not expected to be reused, or are not expensive to prepare.
|
|
92
|
-
* For statements that will be reused often, instead use [[withPreparedSqliteStatement]].
|
|
93
|
-
* @param sql The SQLite SQL statement to execute
|
|
94
|
-
* @param callback the callback to invoke on the prepared statement
|
|
95
|
-
* @returns the value returned by `callback`.
|
|
96
|
-
*/
|
|
97
|
-
withSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T): T;
|
|
98
|
-
/**
|
|
99
|
-
* Perform an operation on this database within a [savepoint](https://www.sqlite.org/lang_savepoint.html). If the operation completes successfully, the
|
|
100
|
-
* changes remain in the current transaction. If the operation throws an exception, the savepoint is rolled back
|
|
101
|
-
* and all changes to the database from this method are reversed, leaving the transaction exactly as it was before this method.
|
|
102
|
-
*/
|
|
103
|
-
withSavePoint(savePointName: string, operation: () => void): void;
|
|
104
|
-
/** Prepare an SQL statement.
|
|
105
|
-
* @param sql The SQLite SQL statement to prepare
|
|
106
|
-
* @param logErrors Determine if errors are logged or not
|
|
107
|
-
* @internal
|
|
108
|
-
*/
|
|
109
|
-
prepareSqliteStatement(sql: string, logErrors?: boolean): SqliteStatement;
|
|
110
|
-
/** execute an SQL statement */
|
|
111
|
-
executeSQL(sql: string): DbResult;
|
|
112
|
-
}
|
|
113
|
-
/** @public */
|
|
114
|
-
export declare namespace SQLiteDb {
|
|
115
|
-
/** interface for reading and writing to a blob in a SQLiteDb
|
|
116
|
-
* @internal
|
|
117
|
-
*/
|
|
118
|
-
interface BlobIO {
|
|
119
|
-
/** Close this BlobIO if it is opened.
|
|
120
|
-
* @note this BlobIO *may* be reused after this call by calling `open` again.
|
|
121
|
-
*/
|
|
122
|
-
close(): void;
|
|
123
|
-
/** get the total number of bytes in the blob */
|
|
124
|
-
getNumBytes(): number;
|
|
125
|
-
/** @return true if this BlobIO was successfully opened and may be use to read or write the blob */
|
|
126
|
-
isValid(): boolean;
|
|
127
|
-
/** Open this BlobIO against a table/row/column in a Db */
|
|
128
|
-
open(
|
|
129
|
-
/** The database for the blob */
|
|
130
|
-
db: IModelJsNative.AnyDb, args: {
|
|
131
|
-
/** the name of the table for the blob*/
|
|
132
|
-
tableName: string;
|
|
133
|
-
/** the name of the column for the blob */
|
|
134
|
-
columnName: string;
|
|
135
|
-
/** The rowId of the blob */
|
|
136
|
-
row: number;
|
|
137
|
-
/** If true, open this BlobIO for write access */
|
|
138
|
-
writeable?: boolean;
|
|
139
|
-
}): void;
|
|
140
|
-
/** Read from a blob
|
|
141
|
-
* @returns the contents of the requested byte range
|
|
142
|
-
*/
|
|
143
|
-
read(args: {
|
|
144
|
-
/** The number of bytes to read */
|
|
145
|
-
numBytes: number;
|
|
146
|
-
/** starting offset within the blob to read */
|
|
147
|
-
offset: number;
|
|
148
|
-
/** If present and of sufficient size, use this ArrayBuffer for the value. */
|
|
149
|
-
blob?: ArrayBuffer;
|
|
150
|
-
}): Uint8Array;
|
|
151
|
-
/** Reposition this BlobIO to a new rowId
|
|
152
|
-
* @note this BlobIO must be valid when this methods is called.
|
|
153
|
-
*/
|
|
154
|
-
changeRow(row: number): void;
|
|
155
|
-
/** Write to a blob */
|
|
156
|
-
write(args: {
|
|
157
|
-
/** The number of bytes to write */
|
|
158
|
-
numBytes: number;
|
|
159
|
-
/** starting offset within the blob to write */
|
|
160
|
-
offset: number;
|
|
161
|
-
/** the value to write */
|
|
162
|
-
blob: ArrayBuffer;
|
|
163
|
-
}): void;
|
|
164
|
-
}
|
|
165
|
-
/** Default transaction mode for SQLiteDbs.
|
|
166
|
-
* @see https://www.sqlite.org/lang_transaction.html
|
|
167
|
-
*/
|
|
168
|
-
enum DefaultTxnMode {
|
|
169
|
-
/** no default transaction is started. You must use BEGIN/COMMIT or SQLite will use implicit transactions */
|
|
170
|
-
None = 0,
|
|
171
|
-
/** A deferred transaction is started when the file is first opened. This is the default. */
|
|
172
|
-
Deferred = 1,
|
|
173
|
-
/** An immediate transaction is started when the file is first opened. */
|
|
174
|
-
Immediate = 2,
|
|
175
|
-
/** An exclusive transaction is started when the file is first opened. */
|
|
176
|
-
Exclusive = 3
|
|
177
|
-
}
|
|
178
|
-
/** parameters common to opening or creating a new SQLiteDb */
|
|
179
|
-
interface OpenOrCreateParams {
|
|
180
|
-
/** If true, do not require that the `be_Prop` table exist */
|
|
181
|
-
rawSQLite?: boolean;
|
|
182
|
-
/** @see immutable option at https://www.sqlite.org/c3ref/open.html */
|
|
183
|
-
immutable?: boolean;
|
|
184
|
-
/** Do not attempt to verify that the file is a valid sQLite file before opening. */
|
|
185
|
-
skipFileCheck?: boolean;
|
|
186
|
-
/** the default transaction mode
|
|
187
|
-
* @see [[SQLiteDb.DefaultTxnMode]]
|
|
188
|
-
*/
|
|
189
|
-
defaultTxn?: 0 | 1 | 2 | 3;
|
|
190
|
-
/** see query parameters from 'URI Filenames' in https://www.sqlite.org/c3ref/open.html */
|
|
191
|
-
queryParam?: string;
|
|
192
|
-
}
|
|
193
|
-
/** Parameters for opening an existing SQLiteDb */
|
|
194
|
-
interface OpenParams extends OpenOrCreateParams {
|
|
195
|
-
/** use OpenMode.ReadWrite to open the file with write access */
|
|
196
|
-
openMode: OpenMode;
|
|
197
|
-
}
|
|
198
|
-
/** Size of a SQLiteDb page in bytes */
|
|
199
|
-
interface PageSize {
|
|
200
|
-
/** see https://www.sqlite.org/pragma.html#pragma_page_size */
|
|
201
|
-
pageSize?: number;
|
|
202
|
-
}
|
|
203
|
-
/** Parameters for creating a new SQLiteDb */
|
|
204
|
-
type CreateParams = OpenOrCreateParams & PageSize;
|
|
205
|
-
/** Arguments for `SqliteDb.withOpenDb` */
|
|
206
|
-
interface WithOpenDbArgs {
|
|
207
|
-
/** The name of the database to open */
|
|
208
|
-
dbName: string;
|
|
209
|
-
/** either an object with the open parameters or just OpenMode value. */
|
|
210
|
-
openMode?: OpenMode | SQLiteDb.OpenParams;
|
|
211
|
-
/** @internal */
|
|
212
|
-
container?: CloudSqlite.CloudContainer;
|
|
213
|
-
}
|
|
214
|
-
/** Arguments for `SQLiteDb.vacuum` */
|
|
215
|
-
interface VacuumDbArgs extends PageSize {
|
|
216
|
-
/** if present, name of new file to [vacuum into](https://www.sqlite.org/lang_vacuum.html) */
|
|
217
|
-
into?: LocalFileName;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
1
|
+
/** @packageDocumentation
|
|
2
|
+
* @module SQLiteDb
|
|
3
|
+
*/
|
|
4
|
+
import { IModelJsNative } from "@bentley/imodeljs-native";
|
|
5
|
+
import { DbResult, IDisposable, OpenMode } from "@itwin/core-bentley";
|
|
6
|
+
import { LocalFileName } from "@itwin/core-common";
|
|
7
|
+
import { CloudSqlite } from "./CloudSqlite";
|
|
8
|
+
import { SqliteStatement } from "./SqliteStatement";
|
|
9
|
+
/** A SQLiteDb file
|
|
10
|
+
* @public
|
|
11
|
+
*/
|
|
12
|
+
export declare class SQLiteDb implements IDisposable {
|
|
13
|
+
/** @internal */
|
|
14
|
+
readonly nativeDb: IModelJsNative.SQLiteDb;
|
|
15
|
+
private _sqliteStatementCache;
|
|
16
|
+
/** @internal */
|
|
17
|
+
static createBlobIO(): SQLiteDb.BlobIO;
|
|
18
|
+
/** alias for closeDb. */
|
|
19
|
+
dispose(): void;
|
|
20
|
+
/** Create a SQLiteDb
|
|
21
|
+
* @param dbName The path to the SQLiteDb file to create.
|
|
22
|
+
*/
|
|
23
|
+
createDb(dbName: string): void;
|
|
24
|
+
/** @beta */
|
|
25
|
+
createDb(dbName: string, container?: CloudSqlite.CloudContainer, params?: SQLiteDb.CreateParams): void;
|
|
26
|
+
/** Open a SQLiteDb.
|
|
27
|
+
* @param dbName The path to the SQLiteDb file to open
|
|
28
|
+
*/
|
|
29
|
+
openDb(dbName: string, openMode: OpenMode | SQLiteDb.OpenParams): void;
|
|
30
|
+
/**
|
|
31
|
+
* @param container optional CloudContainer holding database
|
|
32
|
+
* @beta
|
|
33
|
+
*/
|
|
34
|
+
openDb(dbName: string, openMode: OpenMode | SQLiteDb.OpenParams, container?: CloudSqlite.CloudContainer): void;
|
|
35
|
+
/** Close SQLiteDb.
|
|
36
|
+
* @param saveChanges if true, call `saveChanges` before closing db. Otherwise unsaved changes are abandoned.
|
|
37
|
+
*/
|
|
38
|
+
closeDb(saveChanges?: boolean): void;
|
|
39
|
+
/** Returns true if this SQLiteDb is open */
|
|
40
|
+
get isOpen(): boolean;
|
|
41
|
+
/** Returns true if this SQLiteDb is open readonly */
|
|
42
|
+
get isReadonly(): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* Open a database, perform an operation, then close the database.
|
|
45
|
+
*
|
|
46
|
+
* Details:
|
|
47
|
+
* - if database is open, throw an error
|
|
48
|
+
* - open a database
|
|
49
|
+
* - call a function with the database opened. If it is async, await its return.
|
|
50
|
+
* - if function throws, abandon all changes, close database, and rethrow
|
|
51
|
+
* - save all changes
|
|
52
|
+
* - close the database
|
|
53
|
+
* @return value from operation
|
|
54
|
+
*/
|
|
55
|
+
withOpenDb<T>(args: SQLiteDb.WithOpenDbArgs, operation: () => T): T;
|
|
56
|
+
/**
|
|
57
|
+
* Perform an operation on a database in a CloudContainer with the write lock held.
|
|
58
|
+
*
|
|
59
|
+
* Details:
|
|
60
|
+
* - acquire the write lock on a CloudContainer
|
|
61
|
+
* - call `withOpenDb` with openMode `ReadWrite`
|
|
62
|
+
* - upload changes
|
|
63
|
+
* - release the write lock
|
|
64
|
+
* @param args arguments to lock the container and open the database
|
|
65
|
+
* @param operation an operation performed on the database with the write lock held.
|
|
66
|
+
* @return value from operation
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
withLockedContainer<T>(args: CloudSqlite.LockAndOpenArgs, operation: () => T): Promise<T>;
|
|
70
|
+
/** vacuum this database
|
|
71
|
+
* @see https://www.sqlite.org/lang_vacuum.html
|
|
72
|
+
*/
|
|
73
|
+
vacuum(args?: SQLiteDb.VacuumDbArgs): void;
|
|
74
|
+
/** Commit the outermost transaction, writing changes to the file. Then, restart the transaction. */
|
|
75
|
+
saveChanges(): void;
|
|
76
|
+
/** Abandon (cancel) the outermost transaction, discarding all changes since last save. Then, restart the transaction. */
|
|
77
|
+
abandonChanges(): void;
|
|
78
|
+
/**
|
|
79
|
+
* Use a prepared SQL statement, potentially from the statement cache. If the requested statement doesn't exist
|
|
80
|
+
* in the statement cache, a new statement is prepared. After the callback completes, the statement is reset and saved
|
|
81
|
+
* in the statement cache so it can be reused in the future. Use this method for SQL statements that will be
|
|
82
|
+
* reused often and are expensive to prepare. The statement cache holds the most recently used statements, discarding
|
|
83
|
+
* the oldest statements as it fills. For statements you don't intend to reuse, instead use [[withSqliteStatement]].
|
|
84
|
+
* @param sql The SQLite SQL statement to execute
|
|
85
|
+
* @param callback the callback to invoke on the prepared statement
|
|
86
|
+
* @returns the value returned by `callback`.
|
|
87
|
+
*/
|
|
88
|
+
withPreparedSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T): T;
|
|
89
|
+
/**
|
|
90
|
+
* Prepared and execute a callback on a SQL statement. After the callback completes the statement is disposed.
|
|
91
|
+
* Use this method for SQL statements are either not expected to be reused, or are not expensive to prepare.
|
|
92
|
+
* For statements that will be reused often, instead use [[withPreparedSqliteStatement]].
|
|
93
|
+
* @param sql The SQLite SQL statement to execute
|
|
94
|
+
* @param callback the callback to invoke on the prepared statement
|
|
95
|
+
* @returns the value returned by `callback`.
|
|
96
|
+
*/
|
|
97
|
+
withSqliteStatement<T>(sql: string, callback: (stmt: SqliteStatement) => T): T;
|
|
98
|
+
/**
|
|
99
|
+
* Perform an operation on this database within a [savepoint](https://www.sqlite.org/lang_savepoint.html). If the operation completes successfully, the
|
|
100
|
+
* changes remain in the current transaction. If the operation throws an exception, the savepoint is rolled back
|
|
101
|
+
* and all changes to the database from this method are reversed, leaving the transaction exactly as it was before this method.
|
|
102
|
+
*/
|
|
103
|
+
withSavePoint(savePointName: string, operation: () => void): void;
|
|
104
|
+
/** Prepare an SQL statement.
|
|
105
|
+
* @param sql The SQLite SQL statement to prepare
|
|
106
|
+
* @param logErrors Determine if errors are logged or not
|
|
107
|
+
* @internal
|
|
108
|
+
*/
|
|
109
|
+
prepareSqliteStatement(sql: string, logErrors?: boolean): SqliteStatement;
|
|
110
|
+
/** execute an SQL statement */
|
|
111
|
+
executeSQL(sql: string): DbResult;
|
|
112
|
+
}
|
|
113
|
+
/** @public */
|
|
114
|
+
export declare namespace SQLiteDb {
|
|
115
|
+
/** interface for reading and writing to a blob in a SQLiteDb
|
|
116
|
+
* @internal
|
|
117
|
+
*/
|
|
118
|
+
interface BlobIO {
|
|
119
|
+
/** Close this BlobIO if it is opened.
|
|
120
|
+
* @note this BlobIO *may* be reused after this call by calling `open` again.
|
|
121
|
+
*/
|
|
122
|
+
close(): void;
|
|
123
|
+
/** get the total number of bytes in the blob */
|
|
124
|
+
getNumBytes(): number;
|
|
125
|
+
/** @return true if this BlobIO was successfully opened and may be use to read or write the blob */
|
|
126
|
+
isValid(): boolean;
|
|
127
|
+
/** Open this BlobIO against a table/row/column in a Db */
|
|
128
|
+
open(
|
|
129
|
+
/** The database for the blob */
|
|
130
|
+
db: IModelJsNative.AnyDb, args: {
|
|
131
|
+
/** the name of the table for the blob*/
|
|
132
|
+
tableName: string;
|
|
133
|
+
/** the name of the column for the blob */
|
|
134
|
+
columnName: string;
|
|
135
|
+
/** The rowId of the blob */
|
|
136
|
+
row: number;
|
|
137
|
+
/** If true, open this BlobIO for write access */
|
|
138
|
+
writeable?: boolean;
|
|
139
|
+
}): void;
|
|
140
|
+
/** Read from a blob
|
|
141
|
+
* @returns the contents of the requested byte range
|
|
142
|
+
*/
|
|
143
|
+
read(args: {
|
|
144
|
+
/** The number of bytes to read */
|
|
145
|
+
numBytes: number;
|
|
146
|
+
/** starting offset within the blob to read */
|
|
147
|
+
offset: number;
|
|
148
|
+
/** If present and of sufficient size, use this ArrayBuffer for the value. */
|
|
149
|
+
blob?: ArrayBuffer;
|
|
150
|
+
}): Uint8Array;
|
|
151
|
+
/** Reposition this BlobIO to a new rowId
|
|
152
|
+
* @note this BlobIO must be valid when this methods is called.
|
|
153
|
+
*/
|
|
154
|
+
changeRow(row: number): void;
|
|
155
|
+
/** Write to a blob */
|
|
156
|
+
write(args: {
|
|
157
|
+
/** The number of bytes to write */
|
|
158
|
+
numBytes: number;
|
|
159
|
+
/** starting offset within the blob to write */
|
|
160
|
+
offset: number;
|
|
161
|
+
/** the value to write */
|
|
162
|
+
blob: ArrayBuffer;
|
|
163
|
+
}): void;
|
|
164
|
+
}
|
|
165
|
+
/** Default transaction mode for SQLiteDbs.
|
|
166
|
+
* @see https://www.sqlite.org/lang_transaction.html
|
|
167
|
+
*/
|
|
168
|
+
enum DefaultTxnMode {
|
|
169
|
+
/** no default transaction is started. You must use BEGIN/COMMIT or SQLite will use implicit transactions */
|
|
170
|
+
None = 0,
|
|
171
|
+
/** A deferred transaction is started when the file is first opened. This is the default. */
|
|
172
|
+
Deferred = 1,
|
|
173
|
+
/** An immediate transaction is started when the file is first opened. */
|
|
174
|
+
Immediate = 2,
|
|
175
|
+
/** An exclusive transaction is started when the file is first opened. */
|
|
176
|
+
Exclusive = 3
|
|
177
|
+
}
|
|
178
|
+
/** parameters common to opening or creating a new SQLiteDb */
|
|
179
|
+
interface OpenOrCreateParams {
|
|
180
|
+
/** If true, do not require that the `be_Prop` table exist */
|
|
181
|
+
rawSQLite?: boolean;
|
|
182
|
+
/** @see immutable option at https://www.sqlite.org/c3ref/open.html */
|
|
183
|
+
immutable?: boolean;
|
|
184
|
+
/** Do not attempt to verify that the file is a valid sQLite file before opening. */
|
|
185
|
+
skipFileCheck?: boolean;
|
|
186
|
+
/** the default transaction mode
|
|
187
|
+
* @see [[SQLiteDb.DefaultTxnMode]]
|
|
188
|
+
*/
|
|
189
|
+
defaultTxn?: 0 | 1 | 2 | 3;
|
|
190
|
+
/** see query parameters from 'URI Filenames' in https://www.sqlite.org/c3ref/open.html */
|
|
191
|
+
queryParam?: string;
|
|
192
|
+
}
|
|
193
|
+
/** Parameters for opening an existing SQLiteDb */
|
|
194
|
+
interface OpenParams extends OpenOrCreateParams {
|
|
195
|
+
/** use OpenMode.ReadWrite to open the file with write access */
|
|
196
|
+
openMode: OpenMode;
|
|
197
|
+
}
|
|
198
|
+
/** Size of a SQLiteDb page in bytes */
|
|
199
|
+
interface PageSize {
|
|
200
|
+
/** see https://www.sqlite.org/pragma.html#pragma_page_size */
|
|
201
|
+
pageSize?: number;
|
|
202
|
+
}
|
|
203
|
+
/** Parameters for creating a new SQLiteDb */
|
|
204
|
+
type CreateParams = OpenOrCreateParams & PageSize;
|
|
205
|
+
/** Arguments for `SqliteDb.withOpenDb` */
|
|
206
|
+
interface WithOpenDbArgs {
|
|
207
|
+
/** The name of the database to open */
|
|
208
|
+
dbName: string;
|
|
209
|
+
/** either an object with the open parameters or just OpenMode value. */
|
|
210
|
+
openMode?: OpenMode | SQLiteDb.OpenParams;
|
|
211
|
+
/** @internal */
|
|
212
|
+
container?: CloudSqlite.CloudContainer;
|
|
213
|
+
}
|
|
214
|
+
/** Arguments for `SQLiteDb.vacuum` */
|
|
215
|
+
interface VacuumDbArgs extends PageSize {
|
|
216
|
+
/** if present, name of new file to [vacuum into](https://www.sqlite.org/lang_vacuum.html) */
|
|
217
|
+
into?: LocalFileName;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
220
|
//# sourceMappingURL=SQLiteDb.d.ts.map
|