velocious 1.0.474 → 1.0.476
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/README.md +10 -2
- package/build/configuration-types.js +39 -1
- package/build/configuration.js +46 -1
- package/build/database/drivers/base.js +67 -3
- package/build/database/drivers/mssql/index.js +13 -0
- package/build/database/drivers/mssql/sql/remove-index.js +6 -0
- package/build/database/drivers/mysql/index.js +87 -7
- package/build/database/drivers/mysql/sql/remove-index.js +6 -0
- package/build/database/drivers/pgsql/index.js +13 -0
- package/build/database/drivers/pgsql/sql/remove-index.js +6 -0
- package/build/database/drivers/sqlite/base.js +13 -0
- package/build/database/drivers/sqlite/connection-sql-js.js +16 -5
- package/build/database/drivers/sqlite/index.web.js +29 -15
- package/build/database/drivers/sqlite/sql/remove-index.js +6 -0
- package/build/database/drivers/sqlite/web-persistence.js +521 -0
- package/build/database/migration/index.js +44 -0
- package/build/database/pool/base-methods-forward.js +1 -0
- package/build/database/query/remove-index-base.js +39 -0
- package/build/database/record/index.js +25 -9
- package/build/environment-handlers/node/cli/commands/generate/base-models.js +36 -0
- package/build/environment-handlers/node/cli/commands/generate/frontend-models.js +63 -0
- package/build/frontend-model-controller.js +401 -4
- package/build/frontend-model-resource/base-resource.js +5 -1
- package/build/frontend-models/base.js +146 -2
- package/build/frontend-models/query.js +3 -3
- package/build/frontend-models/resource-definition.js +304 -2
- package/build/routes/hooks/frontend-model-command-route-hook.js +16 -0
- package/build/src/configuration-types.d.ts +118 -2
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +36 -2
- package/build/src/configuration.d.ts +18 -1
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +42 -2
- package/build/src/database/drivers/base.d.ts +50 -0
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +62 -4
- package/build/src/database/drivers/mssql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mssql/index.js +12 -1
- package/build/src/database/drivers/mssql/sql/remove-index.d.ts +4 -0
- package/build/src/database/drivers/mssql/sql/remove-index.d.ts.map +1 -0
- package/build/src/database/drivers/mssql/sql/remove-index.js +5 -0
- package/build/src/database/drivers/mysql/index.d.ts +32 -3
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +76 -7
- package/build/src/database/drivers/mysql/sql/remove-index.d.ts +4 -0
- package/build/src/database/drivers/mysql/sql/remove-index.d.ts.map +1 -0
- package/build/src/database/drivers/mysql/sql/remove-index.js +5 -0
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +12 -1
- package/build/src/database/drivers/pgsql/sql/remove-index.d.ts +4 -0
- package/build/src/database/drivers/pgsql/sql/remove-index.d.ts.map +1 -0
- package/build/src/database/drivers/pgsql/sql/remove-index.js +5 -0
- package/build/src/database/drivers/sqlite/base.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/base.js +12 -1
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts +8 -1
- package/build/src/database/drivers/sqlite/connection-sql-js.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/connection-sql-js.js +15 -6
- package/build/src/database/drivers/sqlite/index.web.d.ts +5 -5
- package/build/src/database/drivers/sqlite/index.web.d.ts.map +1 -1
- package/build/src/database/drivers/sqlite/index.web.js +27 -13
- package/build/src/database/drivers/sqlite/sql/remove-index.d.ts +4 -0
- package/build/src/database/drivers/sqlite/sql/remove-index.d.ts.map +1 -0
- package/build/src/database/drivers/sqlite/sql/remove-index.js +5 -0
- package/build/src/database/drivers/sqlite/web-persistence.d.ts +77 -0
- package/build/src/database/drivers/sqlite/web-persistence.d.ts.map +1 -0
- package/build/src/database/drivers/sqlite/web-persistence.js +464 -0
- package/build/src/database/migration/index.d.ts +25 -0
- package/build/src/database/migration/index.d.ts.map +1 -1
- package/build/src/database/migration/index.js +39 -1
- package/build/src/database/pool/base-methods-forward.d.ts.map +1 -1
- package/build/src/database/pool/base-methods-forward.js +2 -1
- package/build/src/database/query/remove-index-base.d.ts +35 -0
- package/build/src/database/query/remove-index-base.d.ts.map +1 -0
- package/build/src/database/query/remove-index-base.js +34 -0
- package/build/src/database/record/index.d.ts +11 -0
- package/build/src/database/record/index.d.ts.map +1 -1
- package/build/src/database/record/index.js +26 -11
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts +15 -0
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/base-models.js +33 -1
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts +30 -0
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.d.ts.map +1 -1
- package/build/src/environment-handlers/node/cli/commands/generate/frontend-models.js +53 -1
- package/build/src/frontend-model-controller.d.ts +96 -0
- package/build/src/frontend-model-controller.d.ts.map +1 -1
- package/build/src/frontend-model-controller.js +359 -5
- package/build/src/frontend-model-resource/base-resource.d.ts +4 -2
- package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
- package/build/src/frontend-model-resource/base-resource.js +7 -2
- package/build/src/frontend-models/base.d.ts +29 -0
- package/build/src/frontend-models/base.d.ts.map +1 -1
- package/build/src/frontend-models/base.js +131 -3
- package/build/src/frontend-models/query.js +4 -4
- package/build/src/frontend-models/resource-definition.d.ts +6 -0
- package/build/src/frontend-models/resource-definition.d.ts.map +1 -1
- package/build/src/frontend-models/resource-definition.js +272 -3
- package/build/src/routes/hooks/frontend-model-command-route-hook.d.ts.map +1 -1
- package/build/src/routes/hooks/frontend-model-command-route-hook.js +15 -1
- package/build/src/sync/device-identity.d.ts +240 -0
- package/build/src/sync/device-identity.d.ts.map +1 -0
- package/build/src/sync/device-identity.js +454 -0
- package/build/src/sync/local-mutation-log.d.ts +212 -0
- package/build/src/sync/local-mutation-log.d.ts.map +1 -0
- package/build/src/sync/local-mutation-log.js +404 -0
- package/build/src/sync/offline-grant.d.ts +157 -0
- package/build/src/sync/offline-grant.d.ts.map +1 -0
- package/build/src/sync/offline-grant.js +292 -0
- package/build/sync/device-identity.js +503 -0
- package/build/sync/local-mutation-log.js +448 -0
- package/build/sync/offline-grant.js +327 -0
- package/build/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/configuration-types.js +39 -1
- package/src/configuration.js +46 -1
- package/src/database/drivers/base.js +67 -3
- package/src/database/drivers/mssql/index.js +13 -0
- package/src/database/drivers/mssql/sql/remove-index.js +6 -0
- package/src/database/drivers/mysql/index.js +87 -7
- package/src/database/drivers/mysql/sql/remove-index.js +6 -0
- package/src/database/drivers/pgsql/index.js +13 -0
- package/src/database/drivers/pgsql/sql/remove-index.js +6 -0
- package/src/database/drivers/sqlite/base.js +13 -0
- package/src/database/drivers/sqlite/connection-sql-js.js +16 -5
- package/src/database/drivers/sqlite/index.web.js +29 -15
- package/src/database/drivers/sqlite/sql/remove-index.js +6 -0
- package/src/database/drivers/sqlite/web-persistence.js +521 -0
- package/src/database/migration/index.js +44 -0
- package/src/database/pool/base-methods-forward.js +1 -0
- package/src/database/query/remove-index-base.js +39 -0
- package/src/database/record/index.js +25 -9
- package/src/environment-handlers/node/cli/commands/generate/base-models.js +36 -0
- package/src/environment-handlers/node/cli/commands/generate/frontend-models.js +63 -0
- package/src/frontend-model-controller.js +401 -4
- package/src/frontend-model-resource/base-resource.js +5 -1
- package/src/frontend-models/base.js +146 -2
- package/src/frontend-models/query.js +3 -3
- package/src/frontend-models/resource-definition.js +304 -2
- package/src/routes/hooks/frontend-model-command-route-hook.js +16 -0
- package/src/sync/device-identity.js +503 -0
- package/src/sync/local-mutation-log.js +448 -0
- package/src/sync/offline-grant.js +327 -0
|
@@ -1,17 +1,13 @@
|
|
|
1
1
|
// @ts-check
|
|
2
|
-
import BetterLocalStorage from "better-localstorage";
|
|
3
2
|
import ConnectionSqlJs from "./connection-sql-js.js";
|
|
4
3
|
import initSqlJs from "sql.js";
|
|
4
|
+
import { createSqliteWebPersistence, deleteSqliteWebPersistences, sqliteWebPersistenceKey } from "./web-persistence.js";
|
|
5
5
|
import Base from "./base.js";
|
|
6
6
|
/**
|
|
7
7
|
* VelociousDatabaseDriversSqliteWeb class.
|
|
8
8
|
* @typedef {{query: (sql: string) => Promise<Record<string, ?>[]>, close: () => Promise<void>}} SqliteWebConnection
|
|
9
9
|
*/
|
|
10
10
|
export default class VelociousDatabaseDriversSqliteWeb extends Base {
|
|
11
|
-
/**
|
|
12
|
-
* Better local storage.
|
|
13
|
-
* @type {BetterLocalStorage | undefined} */
|
|
14
|
-
betterLocalStorage = undefined;
|
|
15
11
|
/**
|
|
16
12
|
* Connection.
|
|
17
13
|
* @type {ConnectionSqlJs | undefined} */
|
|
@@ -30,19 +26,30 @@ export default class VelociousDatabaseDriversSqliteWeb extends Base {
|
|
|
30
26
|
async connect() {
|
|
31
27
|
this.args = this.getArgs();
|
|
32
28
|
if (!this.args.getConnection) {
|
|
33
|
-
this.betterLocalStorage ||= new BetterLocalStorage();
|
|
34
29
|
if (this.args.reset) {
|
|
35
|
-
await
|
|
30
|
+
await deleteSqliteWebPersistences({ databaseName: this.databaseName() });
|
|
36
31
|
}
|
|
32
|
+
const persistence = await createSqliteWebPersistence({ databaseName: this.databaseName() });
|
|
37
33
|
const SQL = await initSqlJs({ locateFile: this.sqlJsLocateFile() });
|
|
38
|
-
const databaseContent = await
|
|
39
|
-
const connectionSqlJs = new ConnectionSqlJs(this, new SQL.Database(databaseContent));
|
|
34
|
+
const databaseContent = await persistence.load();
|
|
35
|
+
const connectionSqlJs = new ConnectionSqlJs(this, new SQL.Database(databaseContent), persistence);
|
|
40
36
|
this._connection = connectionSqlJs;
|
|
41
37
|
}
|
|
42
38
|
}
|
|
43
39
|
async close() {
|
|
44
40
|
await this.getConnection().close();
|
|
45
41
|
}
|
|
42
|
+
/**
|
|
43
|
+
* Flushes pending SQL.js local persistence writes.
|
|
44
|
+
* @returns {Promise<void>} - Resolves when pending writes are durable.
|
|
45
|
+
*/
|
|
46
|
+
async flushPendingWrites() {
|
|
47
|
+
if (!this.args?.getConnection) {
|
|
48
|
+
if (!this._connection)
|
|
49
|
+
throw new Error("SQLite web connection has not been initialized");
|
|
50
|
+
await this._connection.flushDatabaseSave();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
46
53
|
/**
|
|
47
54
|
* Runs get connection.
|
|
48
55
|
* @returns {ConnectionSqlJs | SqliteWebConnection} - The connection.
|
|
@@ -58,10 +65,17 @@ export default class VelociousDatabaseDriversSqliteWeb extends Base {
|
|
|
58
65
|
}
|
|
59
66
|
}
|
|
60
67
|
localStorageName() {
|
|
61
|
-
|
|
68
|
+
return sqliteWebPersistenceKey(this.databaseName());
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns the configured database name.
|
|
72
|
+
* @returns {string} - Database name.
|
|
73
|
+
*/
|
|
74
|
+
databaseName() {
|
|
75
|
+
const name = this.args?.name;
|
|
76
|
+
if (typeof name !== "string" || name.length < 1)
|
|
62
77
|
throw new Error("No name given in arguments for SQLite Web database");
|
|
63
|
-
|
|
64
|
-
return `VelociousDatabaseDriversSqliteWeb---${this.args?.name}`;
|
|
78
|
+
return name;
|
|
65
79
|
}
|
|
66
80
|
/**
|
|
67
81
|
* Runs query actual.
|
|
@@ -78,4 +92,4 @@ export default class VelociousDatabaseDriversSqliteWeb extends Base {
|
|
|
78
92
|
return result;
|
|
79
93
|
}
|
|
80
94
|
}
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
95
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgud2ViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvc3FsaXRlL2luZGV4LndlYi5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxlQUFlLE1BQU0sd0JBQXdCLENBQUE7QUFDcEQsT0FBTyxTQUFTLE1BQU0sUUFBUSxDQUFBO0FBQzlCLE9BQU8sRUFBQywwQkFBMEIsRUFBRSwyQkFBMkIsRUFBRSx1QkFBdUIsRUFBQyxNQUFNLHNCQUFzQixDQUFBO0FBRXJILE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUU1Qjs7O0dBR0c7QUFFSCxNQUFNLENBQUMsT0FBTyxPQUFPLGlDQUFrQyxTQUFRLElBQUk7SUFDakU7OzZDQUV5QztJQUN6QyxXQUFXLEdBQUcsU0FBUyxDQUFBO0lBRXZCOzs7T0FHRztJQUNILGVBQWU7UUFDYixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsVUFBVSxDQUFBO1FBRTVDLElBQUksT0FBTyxVQUFVLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDckMsT0FBTyxVQUFVLENBQUE7UUFDbkIsQ0FBQztRQUVELE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLDJCQUEyQixJQUFJLEVBQUUsQ0FBQTtJQUNwRCxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDWCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUUxQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM3QixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sMkJBQTJCLENBQUMsRUFBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFDLENBQUMsQ0FBQTtZQUN4RSxDQUFDO1lBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSwwQkFBMEIsQ0FBQyxFQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUMsQ0FBQyxDQUFBO1lBQ3pGLE1BQU0sR0FBRyxHQUFHLE1BQU0sU0FBUyxDQUFDLEVBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBQyxDQUFDLENBQUE7WUFDakUsTUFBTSxlQUFlLEdBQUcsTUFBTSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUE7WUFDaEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQTtZQUVqRyxJQUFJLENBQUMsV0FBVyxHQUFHLGVBQWUsQ0FBQTtRQUNwQyxDQUFDO0lBQ0gsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFLO1FBQ1QsTUFBTSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxFQUFFLENBQUE7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxrQkFBa0I7UUFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0RBQWdELENBQUMsQ0FBQTtZQUV4RixNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLEVBQUUsQ0FBQTtRQUM1QyxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLENBQUM7WUFDN0IsT0FBTyxrQ0FBa0MsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQTtRQUN2RSxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVztnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQUE7WUFDeEYsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFBO1FBQ3pCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQTtJQUNyRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWTtRQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFBO1FBRTVCLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQztZQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0RBQW9ELENBQUMsQ0FBQTtRQUV0SCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLFlBQVksQ0FBQyxHQUFHO1FBQ3BCLE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUVwRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQzNCLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQTtZQUN2QyxNQUFNLGNBQWMsR0FBRyxVQUFVLEVBQUUsV0FBVyxFQUFFLElBQUksSUFBSSxtQkFBbUIsQ0FBQTtZQUUzRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixjQUFjLGlDQUFpQyxPQUFPLE1BQU0sRUFBRSxDQUFDLENBQUE7UUFDMUcsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFBO0lBQ2YsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBDb25uZWN0aW9uU3FsSnMgZnJvbSBcIi4vY29ubmVjdGlvbi1zcWwtanMuanNcIlxuaW1wb3J0IGluaXRTcWxKcyBmcm9tIFwic3FsLmpzXCJcbmltcG9ydCB7Y3JlYXRlU3FsaXRlV2ViUGVyc2lzdGVuY2UsIGRlbGV0ZVNxbGl0ZVdlYlBlcnNpc3RlbmNlcywgc3FsaXRlV2ViUGVyc2lzdGVuY2VLZXl9IGZyb20gXCIuL3dlYi1wZXJzaXN0ZW5jZS5qc1wiXG5cbmltcG9ydCBCYXNlIGZyb20gXCIuL2Jhc2UuanNcIlxuXG4vKipcbiAqIFZlbG9jaW91c0RhdGFiYXNlRHJpdmVyc1NxbGl0ZVdlYiBjbGFzcy5cbiAqIEB0eXBlZGVmIHt7cXVlcnk6IChzcWw6IHN0cmluZykgPT4gUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCA/PltdPiwgY2xvc2U6ICgpID0+IFByb21pc2U8dm9pZD59fSBTcWxpdGVXZWJDb25uZWN0aW9uXG4gKi9cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VEcml2ZXJzU3FsaXRlV2ViIGV4dGVuZHMgQmFzZSB7XG4gIC8qKlxuICAgKiBDb25uZWN0aW9uLlxuICAgKiBAdHlwZSB7Q29ubmVjdGlvblNxbEpzIHwgdW5kZWZpbmVkfSAqL1xuICBfY29ubmVjdGlvbiA9IHVuZGVmaW5lZFxuXG4gIC8qKlxuICAgKiBSdW5zIHNxbCBqcyBsb2NhdGUgZmlsZS5cbiAgICogQHJldHVybnMgeyhmaWxlOiBzdHJpbmcpID0+IHN0cmluZ30gLSBsb2NhdGVGaWxlIGNhbGxiYWNrIGZvciBzcWwuanMuXG4gICAqL1xuICBzcWxKc0xvY2F0ZUZpbGUoKSB7XG4gICAgY29uc3QgbG9jYXRlRmlsZSA9IHRoaXMuZ2V0QXJncygpLmxvY2F0ZUZpbGVcblxuICAgIGlmICh0eXBlb2YgbG9jYXRlRmlsZSA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICByZXR1cm4gbG9jYXRlRmlsZVxuICAgIH1cblxuICAgIHJldHVybiAoZmlsZSkgPT4gYGh0dHBzOi8vc3FsLmpzLm9yZy9kaXN0LyR7ZmlsZX1gXG4gIH1cblxuICBhc3luYyBjb25uZWN0KCkge1xuICAgIHRoaXMuYXJncyA9IHRoaXMuZ2V0QXJncygpXG5cbiAgICBpZiAoIXRoaXMuYXJncy5nZXRDb25uZWN0aW9uKSB7XG4gICAgICBpZiAodGhpcy5hcmdzLnJlc2V0KSB7XG4gICAgICAgIGF3YWl0IGRlbGV0ZVNxbGl0ZVdlYlBlcnNpc3RlbmNlcyh7ZGF0YWJhc2VOYW1lOiB0aGlzLmRhdGFiYXNlTmFtZSgpfSlcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGVyc2lzdGVuY2UgPSBhd2FpdCBjcmVhdGVTcWxpdGVXZWJQZXJzaXN0ZW5jZSh7ZGF0YWJhc2VOYW1lOiB0aGlzLmRhdGFiYXNlTmFtZSgpfSlcbiAgICAgIGNvbnN0IFNRTCA9IGF3YWl0IGluaXRTcWxKcyh7bG9jYXRlRmlsZTogdGhpcy5zcWxKc0xvY2F0ZUZpbGUoKX0pXG4gICAgICBjb25zdCBkYXRhYmFzZUNvbnRlbnQgPSBhd2FpdCBwZXJzaXN0ZW5jZS5sb2FkKClcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb25TcWxKcyA9IG5ldyBDb25uZWN0aW9uU3FsSnModGhpcywgbmV3IFNRTC5EYXRhYmFzZShkYXRhYmFzZUNvbnRlbnQpLCBwZXJzaXN0ZW5jZSlcblxuICAgICAgdGhpcy5fY29ubmVjdGlvbiA9IGNvbm5lY3Rpb25TcWxKc1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGNsb3NlKCkge1xuICAgIGF3YWl0IHRoaXMuZ2V0Q29ubmVjdGlvbigpLmNsb3NlKClcbiAgfVxuXG4gIC8qKlxuICAgKiBGbHVzaGVzIHBlbmRpbmcgU1FMLmpzIGxvY2FsIHBlcnNpc3RlbmNlIHdyaXRlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgd2hlbiBwZW5kaW5nIHdyaXRlcyBhcmUgZHVyYWJsZS5cbiAgICovXG4gIGFzeW5jIGZsdXNoUGVuZGluZ1dyaXRlcygpIHtcbiAgICBpZiAoIXRoaXMuYXJncz8uZ2V0Q29ubmVjdGlvbikge1xuICAgICAgaWYgKCF0aGlzLl9jb25uZWN0aW9uKSB0aHJvdyBuZXcgRXJyb3IoXCJTUUxpdGUgd2ViIGNvbm5lY3Rpb24gaGFzIG5vdCBiZWVuIGluaXRpYWxpemVkXCIpXG5cbiAgICAgIGF3YWl0IHRoaXMuX2Nvbm5lY3Rpb24uZmx1c2hEYXRhYmFzZVNhdmUoKVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGdldCBjb25uZWN0aW9uLlxuICAgKiBAcmV0dXJucyB7Q29ubmVjdGlvblNxbEpzIHwgU3FsaXRlV2ViQ29ubmVjdGlvbn0gLSBUaGUgY29ubmVjdGlvbi5cbiAgICovXG4gIGdldENvbm5lY3Rpb24oKSB7XG4gICAgaWYgKHRoaXMuYXJncz8uZ2V0Q29ubmVjdGlvbikge1xuICAgICAgcmV0dXJuIC8qKiBAdHlwZSB7U3FsaXRlV2ViQ29ubmVjdGlvbn0gKi8gKHRoaXMuYXJncy5nZXRDb25uZWN0aW9uKCkpXG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghdGhpcy5fY29ubmVjdGlvbikgdGhyb3cgbmV3IEVycm9yKFwiU1FMaXRlIHdlYiBjb25uZWN0aW9uIGhhcyBub3QgYmVlbiBpbml0aWFsaXplZFwiKVxuICAgICAgcmV0dXJuIHRoaXMuX2Nvbm5lY3Rpb25cbiAgICB9XG4gIH1cblxuICBsb2NhbFN0b3JhZ2VOYW1lKCkge1xuICAgIHJldHVybiBzcWxpdGVXZWJQZXJzaXN0ZW5jZUtleSh0aGlzLmRhdGFiYXNlTmFtZSgpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGNvbmZpZ3VyZWQgZGF0YWJhc2UgbmFtZS5cbiAgICogQHJldHVybnMge3N0cmluZ30gLSBEYXRhYmFzZSBuYW1lLlxuICAgKi9cbiAgZGF0YWJhc2VOYW1lKCkge1xuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmFyZ3M/Lm5hbWVcblxuICAgIGlmICh0eXBlb2YgbmFtZSAhPT0gXCJzdHJpbmdcIiB8fCBuYW1lLmxlbmd0aCA8IDEpIHRocm93IG5ldyBFcnJvcihcIk5vIG5hbWUgZ2l2ZW4gaW4gYXJndW1lbnRzIGZvciBTUUxpdGUgV2ViIGRhdGFiYXNlXCIpXG5cbiAgICByZXR1cm4gbmFtZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgcXVlcnkgYWN0dWFsLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3FsIC0gU1FMIHN0cmluZy5cbiAgICogQHJldHVybnMge1Byb21pc2U8UmVjb3JkPHN0cmluZywgPz5bXT59IC0gUmVzb2x2ZXMgd2l0aCB0aGUgcXVlcnkgYWN0dWFsLlxuICAgKi9cbiAgYXN5bmMgX3F1ZXJ5QWN0dWFsKHNxbCkge1xuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMuZ2V0Q29ubmVjdGlvbigpLnF1ZXJ5KHNxbClcblxuICAgIGlmICghQXJyYXkuaXNBcnJheShyZXN1bHQpKSB7XG4gICAgICBjb25zdCBjb25uZWN0aW9uID0gdGhpcy5nZXRDb25uZWN0aW9uKClcbiAgICAgIGNvbnN0IGNvbm5lY3Rpb25OYW1lID0gY29ubmVjdGlvbj8uY29uc3RydWN0b3I/Lm5hbWUgfHwgXCJVbmtub3duQ29ubmVjdGlvblwiXG5cbiAgICAgIHRocm93IG5ldyBFcnJvcihgU3FsaXRlIHdlYiBjb25uZWN0aW9uICR7Y29ubmVjdGlvbk5hbWV9IHJldHVybmVkIGEgbm9uLWFycmF5IHJlc3VsdDogJHt0eXBlb2YgcmVzdWx0fWApXG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdFxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-index.d.ts","sourceRoot":"","sources":["../../../../../../src/database/drivers/sqlite/sql/remove-index.js"],"names":[],"mappings":"AAIA;CACC;4BAH2B,qCAAqC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// @ts-check
|
|
2
|
+
import RemoveIndexBase from "../../../query/remove-index-base.js";
|
|
3
|
+
export default class VelociousDatabaseConnectionDriversSqliteSqlRemoveIndex extends RemoveIndexBase {
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLWluZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL2RyaXZlcnMvc3FsaXRlL3NxbC9yZW1vdmUtaW5kZXguanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sZUFBZSxNQUFNLHFDQUFxQyxDQUFBO0FBRWpFLE1BQU0sQ0FBQyxPQUFPLE9BQU8sc0RBQXVELFNBQVEsZUFBZTtDQUNsRyIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgUmVtb3ZlSW5kZXhCYXNlIGZyb20gXCIuLi8uLi8uLi9xdWVyeS9yZW1vdmUtaW5kZXgtYmFzZS5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlQ29ubmVjdGlvbkRyaXZlcnNTcWxpdGVTcWxSZW1vdmVJbmRleCBleHRlbmRzIFJlbW92ZUluZGV4QmFzZSB7XG59XG4iXX0=
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SQLite web persistence adapter.
|
|
3
|
+
* @typedef {object} SqliteWebPersistence
|
|
4
|
+
* @property {"indexeddb" | "localstorage" | "opfs"} name - Persistence backend name.
|
|
5
|
+
* @property {() => Promise<void>} delete - Deletes the persisted database.
|
|
6
|
+
* @property {() => Promise<Uint8Array | undefined>} load - Loads persisted database bytes.
|
|
7
|
+
* @property {(content: Uint8Array) => Promise<void>} save - Saves persisted database bytes.
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Browser-like environment used for web persistence detection.
|
|
11
|
+
* @typedef {object} SqliteWebPersistenceEnvironment
|
|
12
|
+
* @property {unknown} [indexedDB] - IndexedDB global.
|
|
13
|
+
* @property {unknown} [navigator] - Navigator global.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Creates the best SQLite web persistence adapter supported by the current browser.
|
|
17
|
+
* @param {object} args - Arguments.
|
|
18
|
+
* @param {string} args.databaseName - Database name.
|
|
19
|
+
* @param {SqliteWebPersistenceEnvironment} [args.environment] - Browser-like environment.
|
|
20
|
+
* @returns {Promise<SqliteWebPersistence>} - Selected persistence adapter.
|
|
21
|
+
*/
|
|
22
|
+
export function createSqliteWebPersistence({ databaseName, environment }: {
|
|
23
|
+
databaseName: string;
|
|
24
|
+
environment?: SqliteWebPersistenceEnvironment | undefined;
|
|
25
|
+
}): Promise<SqliteWebPersistence>;
|
|
26
|
+
/**
|
|
27
|
+
* Deletes SQLite web database bytes from every available persistence backend.
|
|
28
|
+
* @param {object} args - Arguments.
|
|
29
|
+
* @param {string} args.databaseName - Database name.
|
|
30
|
+
* @param {SqliteWebPersistenceEnvironment} [args.environment] - Browser-like environment.
|
|
31
|
+
* @returns {Promise<void>} - Resolves when all available backends were cleared.
|
|
32
|
+
*/
|
|
33
|
+
export function deleteSqliteWebPersistences({ databaseName, environment }: {
|
|
34
|
+
databaseName: string;
|
|
35
|
+
environment?: SqliteWebPersistenceEnvironment | undefined;
|
|
36
|
+
}): Promise<void>;
|
|
37
|
+
/**
|
|
38
|
+
* Returns the legacy SQLite web storage key for a database name.
|
|
39
|
+
* @param {string} databaseName - Database name.
|
|
40
|
+
* @returns {string} - Persistence key.
|
|
41
|
+
*/
|
|
42
|
+
export function sqliteWebPersistenceKey(databaseName: string): string;
|
|
43
|
+
/**
|
|
44
|
+
* SQLite web persistence adapter.
|
|
45
|
+
*/
|
|
46
|
+
export type SqliteWebPersistence = {
|
|
47
|
+
/**
|
|
48
|
+
* - Persistence backend name.
|
|
49
|
+
*/
|
|
50
|
+
name: "indexeddb" | "localstorage" | "opfs";
|
|
51
|
+
/**
|
|
52
|
+
* - Deletes the persisted database.
|
|
53
|
+
*/
|
|
54
|
+
delete: () => Promise<void>;
|
|
55
|
+
/**
|
|
56
|
+
* - Loads persisted database bytes.
|
|
57
|
+
*/
|
|
58
|
+
load: () => Promise<Uint8Array | undefined>;
|
|
59
|
+
/**
|
|
60
|
+
* - Saves persisted database bytes.
|
|
61
|
+
*/
|
|
62
|
+
save: (content: Uint8Array) => Promise<void>;
|
|
63
|
+
};
|
|
64
|
+
/**
|
|
65
|
+
* Browser-like environment used for web persistence detection.
|
|
66
|
+
*/
|
|
67
|
+
export type SqliteWebPersistenceEnvironment = {
|
|
68
|
+
/**
|
|
69
|
+
* - IndexedDB global.
|
|
70
|
+
*/
|
|
71
|
+
indexedDB?: unknown;
|
|
72
|
+
/**
|
|
73
|
+
* - Navigator global.
|
|
74
|
+
*/
|
|
75
|
+
navigator?: unknown;
|
|
76
|
+
};
|
|
77
|
+
//# sourceMappingURL=web-persistence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web-persistence.d.ts","sourceRoot":"","sources":["../../../../../src/database/drivers/sqlite/web-persistence.js"],"names":[],"mappings":"AAOA;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;;;;;GAMG;AACH,0EAJG;IAAqB,YAAY,EAAzB,MAAM;IACiC,WAAW;CAC1D,GAAU,OAAO,CAAC,oBAAoB,CAAC,CAiBzC;AAED;;;;;;GAMG;AACH,2EAJG;IAAqB,YAAY,EAAzB,MAAM;IACiC,WAAW;CAC1D,GAAU,OAAO,CAAC,IAAI,CAAC,CAUzB;AAED;;;;GAIG;AACH,sDAHW,MAAM,GACJ,MAAM,CAMlB;;;;;;;;UA/Da,WAAW,GAAG,cAAc,GAAG,MAAM;;;;YACrC,MAAM,OAAO,CAAC,IAAI,CAAC;;;;UACnB,MAAM,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC;;;;UACrC,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,IAAI,CAAC;;;;;;;;;gBAMtC,OAAO;;;;gBACP,OAAO"}
|