@framers/sql-storage-adapter 0.6.14 → 0.6.16
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 +130 -35
- package/dist/adapters/baseStorageAdapter.d.ts.map +1 -1
- package/dist/adapters/baseStorageAdapter.js +4 -2
- package/dist/adapters/baseStorageAdapter.js.map +1 -1
- package/dist/adapters/betterSqliteAdapter.d.ts.map +1 -1
- package/dist/adapters/betterSqliteAdapter.js +10 -2
- package/dist/adapters/betterSqliteAdapter.js.map +1 -1
- package/dist/adapters/capacitorSqliteAdapter.d.ts.map +1 -1
- package/dist/adapters/capacitorSqliteAdapter.js +7 -0
- package/dist/adapters/capacitorSqliteAdapter.js.map +1 -1
- package/dist/adapters/indexedDbAdapter.d.ts +5 -1
- package/dist/adapters/indexedDbAdapter.d.ts.map +1 -1
- package/dist/adapters/indexedDbAdapter.js +22 -5
- package/dist/adapters/indexedDbAdapter.js.map +1 -1
- package/dist/adapters/postgresAdapter.d.ts +100 -5
- package/dist/adapters/postgresAdapter.d.ts.map +1 -1
- package/dist/adapters/postgresAdapter.js +335 -46
- package/dist/adapters/postgresAdapter.js.map +1 -1
- package/dist/adapters/sqlJsAdapter.d.ts +4 -0
- package/dist/adapters/sqlJsAdapter.d.ts.map +1 -1
- package/dist/adapters/sqlJsAdapter.js +14 -23
- package/dist/adapters/sqlJsAdapter.js.map +1 -1
- package/dist/core/contracts/index.d.ts +9 -0
- package/dist/core/contracts/index.d.ts.map +1 -1
- package/dist/core/contracts/index.js.map +1 -1
- package/dist/core/database.d.ts +40 -4
- package/dist/core/database.d.ts.map +1 -1
- package/dist/core/database.js +37 -3
- package/dist/core/database.js.map +1 -1
- package/dist/core/resolver.d.ts +25 -0
- package/dist/core/resolver.d.ts.map +1 -1
- package/dist/core/resolver.js +24 -8
- package/dist/core/resolver.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/errors.d.ts +23 -0
- package/dist/shared/errors.d.ts.map +1 -0
- package/dist/shared/errors.js +44 -0
- package/dist/shared/errors.js.map +1 -0
- package/dist/shared/logger.d.ts +26 -0
- package/dist/shared/logger.d.ts.map +1 -0
- package/dist/shared/logger.js +26 -0
- package/dist/shared/logger.js.map +1 -0
- package/dist/shared/parameterUtils.d.ts +7 -0
- package/dist/shared/parameterUtils.d.ts.map +1 -1
- package/dist/shared/parameterUtils.js +25 -0
- package/dist/shared/parameterUtils.js.map +1 -1
- package/dist/shared/sqlPlaceholders.d.ts +40 -0
- package/dist/shared/sqlPlaceholders.d.ts.map +1 -0
- package/dist/shared/sqlPlaceholders.js +276 -0
- package/dist/shared/sqlPlaceholders.js.map +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqlJsAdapter.js","sourceRoot":"","sources":["../../src/adapters/sqlJsAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,QAAQ,CAAC;AAE/B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"sqlJsAdapter.js","sourceRoot":"","sources":["../../src/adapters/sqlJsAdapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,15 @@ export interface StorageOpenOptions {
|
|
|
68
68
|
readOnly?: boolean;
|
|
69
69
|
/** Arbitrary adapter-specific options bag. */
|
|
70
70
|
adapterOptions?: Record<string, unknown>;
|
|
71
|
+
/**
|
|
72
|
+
* SQLite: `true` turns foreign-key enforcement on and `false` turns it off
|
|
73
|
+
* (`PRAGMA foreign_keys`) when the adapter opens, and the setting holds
|
|
74
|
+
* when sql.js reopens its connection (a save, an export, an import). Left
|
|
75
|
+
* out, each engine keeps its default: better-sqlite3 is built with
|
|
76
|
+
* `SQLITE_DEFAULT_FOREIGN_KEYS=1` and enforces them; sql.js, IndexedDB and
|
|
77
|
+
* Capacitor do not. PostgreSQL always enforces foreign keys and ignores this.
|
|
78
|
+
*/
|
|
79
|
+
foreignKeys?: boolean;
|
|
71
80
|
}
|
|
72
81
|
/**
|
|
73
82
|
* Core SQL storage adapter interface.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,cAAc,GACd,KAAK,GACL,OAAO,GACP,aAAa,GACb,WAAW,GACX,OAAO,GACP,UAAU,GACV,YAAY,GACZ,MAAM,GACN,QAAQ,CAAA;AAEZ;;;;;;;GAOG;AACH,MAAM,MAAM,iBAAiB,GACzB,SAAS,GACT,IAAI,GACJ,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACvB,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,gDAAgD;IAChD,OAAO,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC1C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,iBAAiB,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,iDAAiD;IACjD,UAAU,EAAE,MAAM,CAAC;IACnB,kCAAkC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,KAAK,CAAA;KAAE,CAAC,CAAC;CACjD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,8CAA8C;IAC9C,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/contracts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/contracts/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsQH;;GAEG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C,YAAY,OAAe,EAAW,SAAoB,EAAE;QAC1D,KAAK,CAAC,OAAO,CAAC,CAAC;QADqB,WAAM,GAAN,MAAM,CAAgB;QAE1D,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED,+EAA+E;AAC/E,wCAAwC;AACxC,+EAA+E;AAE/E;;;GAGG;AACH,cAAc,eAAe,CAAC;AAE9B;;;GAGG;AACH,cAAc,SAAS,CAAC;AAQxB,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/core/database.d.ts
CHANGED
|
@@ -6,11 +6,12 @@
|
|
|
6
6
|
* - connectDatabase() - Explicit connection with clear options
|
|
7
7
|
* - openDatabase() - Simple file-based database
|
|
8
8
|
*/
|
|
9
|
-
import type
|
|
9
|
+
import { type StorageAdapter } from './contracts/index.js';
|
|
10
10
|
import { type AdapterKind } from './resolver.js';
|
|
11
11
|
import type { PostgresAdapterOptions } from '../adapters/postgresAdapter.js';
|
|
12
12
|
import type { CapacitorAdapterOptions } from '../adapters/capacitorSqliteAdapter.js';
|
|
13
13
|
import type { IndexedDbAdapterOptions } from '../adapters/indexedDbAdapter.js';
|
|
14
|
+
import type { StorageLogger } from '../shared/logger.js';
|
|
14
15
|
/**
|
|
15
16
|
* Database connection options.
|
|
16
17
|
*/
|
|
@@ -67,6 +68,34 @@ export interface DatabaseOptions {
|
|
|
67
68
|
* Advanced: Only use if you need fine-grained control.
|
|
68
69
|
*/
|
|
69
70
|
priority?: AdapterKind[];
|
|
71
|
+
/**
|
|
72
|
+
* Strict resolution, for servers: no local database stands in for a
|
|
73
|
+
* Postgres the options configure. Default: false.
|
|
74
|
+
*
|
|
75
|
+
* - A `url` or `postgres` option that names no server (an empty or unset
|
|
76
|
+
* connection string and no host, database or user) fails on Node instead
|
|
77
|
+
* of opening the local default, unless `file` is given.
|
|
78
|
+
* - A postgres candidate that fails ends resolution with an error, whatever
|
|
79
|
+
* `priority` lists after it.
|
|
80
|
+
*
|
|
81
|
+
* `DATABASE_URL` in the environment does not count here, strict or not.
|
|
82
|
+
* See `StorageResolutionOptions.strict` for the resolver's side.
|
|
83
|
+
*/
|
|
84
|
+
strict?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* SQLite: `true` turns foreign-key enforcement on and `false` turns it off
|
|
87
|
+
* when the adapter opens, and the setting holds when sql.js reopens its
|
|
88
|
+
* connection. Left out, each engine keeps its default: better-sqlite3
|
|
89
|
+
* enforces foreign keys, sql.js, IndexedDB and Capacitor do not.
|
|
90
|
+
* PostgreSQL always enforces them and ignores this. On the resolver, pass
|
|
91
|
+
* `openOptions: { foreignKeys: true }`.
|
|
92
|
+
*/
|
|
93
|
+
foreignKeys?: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* The logger for this call's resolver lines (pino's fits). Default: the one
|
|
96
|
+
* `setStorageLogger()` set, else the console.
|
|
97
|
+
*/
|
|
98
|
+
logger?: StorageLogger;
|
|
70
99
|
}
|
|
71
100
|
/**
|
|
72
101
|
* Create a database connection.
|
|
@@ -74,12 +103,15 @@ export interface DatabaseOptions {
|
|
|
74
103
|
*
|
|
75
104
|
* @example
|
|
76
105
|
* ```typescript
|
|
77
|
-
* //
|
|
106
|
+
* // The local default: better-sqlite3 (sql.js without it) on Node, sql.js in a
|
|
107
|
+
* // browser. DATABASE_URL in the environment does not change it.
|
|
78
108
|
* const db = await createDatabase();
|
|
79
109
|
*
|
|
80
|
-
* //
|
|
110
|
+
* // PostgreSQL from DATABASE_URL on a server; strict fails when it is unset
|
|
111
|
+
* // instead of opening a local file
|
|
81
112
|
* const db = await createDatabase({
|
|
82
|
-
* url: process.env.DATABASE_URL
|
|
113
|
+
* url: process.env.DATABASE_URL,
|
|
114
|
+
* strict: true
|
|
83
115
|
* });
|
|
84
116
|
*
|
|
85
117
|
* // Specify file path
|
|
@@ -113,6 +145,10 @@ export interface DatabaseOptions {
|
|
|
113
145
|
* count here.
|
|
114
146
|
* - Node.js otherwise: ['better-sqlite3', 'sqljs'] (native first, wasm fallback)
|
|
115
147
|
*
|
|
148
|
+
* With `strict` on Node, a `url` or `postgres` option that names no server
|
|
149
|
+
* throws instead of choosing the local default (unless `file` is given), and a
|
|
150
|
+
* postgres candidate that fails ends resolution.
|
|
151
|
+
*
|
|
116
152
|
* The function never throws solely due to a native adapter absence; it falls
|
|
117
153
|
* back to next candidates. Only when no candidate can open will it bubble an error.
|
|
118
154
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/core/database.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../../src/core/database.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAA0B,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAwD,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAEpG,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAClF,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAC5E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAatD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAElC;;;OAGG;IACH,MAAM,CAAC,EAAE,uBAAuB,CAAC;IAEjC;;;;;;;;;;;;;;;;OAgBG;IACH,SAAS,CAAC,EAAE,uBAAuB,CAAC;IAEpC;;;OAGG;IACH,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAE/D;;;OAGG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB;;;;;;;;;;;;OAYG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;CACxB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,cAAc,CAAC,OAAO,GAAE,eAAoB,GAAG,OAAO,CAAC,cAAc,CAAC,CA0F3F;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,GAAG,sBAAsB,GACtC,OAAO,CAAC,cAAc,CAAC,CAKzB;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAE5E;AAED;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,cAAc,CAAC,CAEpE;AAGD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
|
package/dist/core/database.js
CHANGED
|
@@ -6,20 +6,36 @@
|
|
|
6
6
|
* - connectDatabase() - Explicit connection with clear options
|
|
7
7
|
* - openDatabase() - Simple file-based database
|
|
8
8
|
*/
|
|
9
|
+
import { StorageResolutionError } from './contracts/index.js';
|
|
9
10
|
import { resolveStorageAdapter } from './resolver.js';
|
|
10
11
|
import { namesPostgresServer } from '../shared/postgresTarget.js';
|
|
12
|
+
/**
|
|
13
|
+
* The options that configure Postgres: `url` when the caller set the key, even
|
|
14
|
+
* to undefined (`{ url: process.env.DATABASE_URL }`), and `postgres`.
|
|
15
|
+
*/
|
|
16
|
+
const configuredPostgresOptions = (options) => {
|
|
17
|
+
const named = [];
|
|
18
|
+
if (Object.prototype.hasOwnProperty.call(options, 'url'))
|
|
19
|
+
named.push('url');
|
|
20
|
+
if (options.postgres !== undefined)
|
|
21
|
+
named.push('postgres');
|
|
22
|
+
return named;
|
|
23
|
+
};
|
|
11
24
|
/**
|
|
12
25
|
* Create a database connection.
|
|
13
26
|
* Automatically picks the best database for your environment.
|
|
14
27
|
*
|
|
15
28
|
* @example
|
|
16
29
|
* ```typescript
|
|
17
|
-
* //
|
|
30
|
+
* // The local default: better-sqlite3 (sql.js without it) on Node, sql.js in a
|
|
31
|
+
* // browser. DATABASE_URL in the environment does not change it.
|
|
18
32
|
* const db = await createDatabase();
|
|
19
33
|
*
|
|
20
|
-
* //
|
|
34
|
+
* // PostgreSQL from DATABASE_URL on a server; strict fails when it is unset
|
|
35
|
+
* // instead of opening a local file
|
|
21
36
|
* const db = await createDatabase({
|
|
22
|
-
* url: process.env.DATABASE_URL
|
|
37
|
+
* url: process.env.DATABASE_URL,
|
|
38
|
+
* strict: true
|
|
23
39
|
* });
|
|
24
40
|
*
|
|
25
41
|
* // Specify file path
|
|
@@ -53,6 +69,10 @@ import { namesPostgresServer } from '../shared/postgresTarget.js';
|
|
|
53
69
|
* count here.
|
|
54
70
|
* - Node.js otherwise: ['better-sqlite3', 'sqljs'] (native first, wasm fallback)
|
|
55
71
|
*
|
|
72
|
+
* With `strict` on Node, a `url` or `postgres` option that names no server
|
|
73
|
+
* throws instead of choosing the local default (unless `file` is given), and a
|
|
74
|
+
* postgres candidate that fails ends resolution.
|
|
75
|
+
*
|
|
56
76
|
* The function never throws solely due to a native adapter absence; it falls
|
|
57
77
|
* back to next candidates. Only when no candidate can open will it bubble an error.
|
|
58
78
|
*/
|
|
@@ -102,6 +122,15 @@ export async function createDatabase(options = {}) {
|
|
|
102
122
|
if (options.priority) {
|
|
103
123
|
resolverOptions.priority = options.priority;
|
|
104
124
|
}
|
|
125
|
+
if (options.strict) {
|
|
126
|
+
resolverOptions.strict = true;
|
|
127
|
+
}
|
|
128
|
+
if (options.foreignKeys !== undefined) {
|
|
129
|
+
resolverOptions.openOptions = { ...resolverOptions.openOptions, foreignKeys: options.foreignKeys };
|
|
130
|
+
}
|
|
131
|
+
if (options.logger) {
|
|
132
|
+
resolverOptions.logger = options.logger;
|
|
133
|
+
}
|
|
105
134
|
// Auto-detect environment ONLY if no priority already set
|
|
106
135
|
if (!resolverOptions.priority || resolverOptions.priority.length === 0) {
|
|
107
136
|
if (isBrowser || isDeno) {
|
|
@@ -111,6 +140,11 @@ export async function createDatabase(options = {}) {
|
|
|
111
140
|
else if (isNode && namesPostgresServer(resolverOptions.postgres)) {
|
|
112
141
|
resolverOptions.priority = ['postgres'];
|
|
113
142
|
}
|
|
143
|
+
else if (isNode && options.strict && !options.file && configuredPostgresOptions(options).length > 0) {
|
|
144
|
+
const named = configuredPostgresOptions(options);
|
|
145
|
+
throw new StorageResolutionError(`[StorageAdapter] Strict resolution: the ${named.join(' and ')} option${named.length > 1 ? 's name' : ' names'} no server. ` +
|
|
146
|
+
'Give a connection string, or a host, database or user, or pass file to open a local database.');
|
|
147
|
+
}
|
|
114
148
|
else if (isNode) {
|
|
115
149
|
resolverOptions.priority = ['better-sqlite3', 'sqljs'];
|
|
116
150
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/core/database.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../../src/core/database.ts"],"names":[],"mappings":"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"}
|
package/dist/core/resolver.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { AdapterKind } from './contracts/context.js';
|
|
|
3
3
|
import { type CapacitorAdapterOptions } from '../adapters/capacitorSqliteAdapter.js';
|
|
4
4
|
import { type PostgresAdapterOptions } from '../adapters/postgresAdapter.js';
|
|
5
5
|
import { type IndexedDbAdapterOptions } from '../adapters/indexedDbAdapter.js';
|
|
6
|
+
import { type StorageLogger } from '../shared/logger.js';
|
|
6
7
|
export type { AdapterKind } from './contracts/context.js';
|
|
7
8
|
export interface StorageResolutionOptions {
|
|
8
9
|
/** Absolute path for sqlite file (used by better-sqlite3/sql.js when persistence is desired). */
|
|
@@ -30,6 +31,30 @@ export interface StorageResolutionOptions {
|
|
|
30
31
|
openOptions?: StorageOpenOptions;
|
|
31
32
|
/** Suppress fallback chain logs (adapter not-found warnings). Default: false. */
|
|
32
33
|
quiet?: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* The logger for this call's resolver lines (pino's fits). Default: the one
|
|
36
|
+
* `setStorageLogger()` set, else the console.
|
|
37
|
+
*/
|
|
38
|
+
logger?: StorageLogger;
|
|
39
|
+
/**
|
|
40
|
+
* Strict resolution, for servers: only the database the options name opens.
|
|
41
|
+
* Default: false.
|
|
42
|
+
*
|
|
43
|
+
* - The postgres candidate is the last one tried. When it fails to open,
|
|
44
|
+
* resolution throws a `StorageResolutionError` instead of trying a local
|
|
45
|
+
* SQLite database, whatever `priority` lists after it.
|
|
46
|
+
* - A Postgres server named by `postgres` or `DATABASE_URL`, with no
|
|
47
|
+
* `priority`, makes `['postgres']` the whole list.
|
|
48
|
+
* - An explicit `filePath` outranks `DATABASE_URL`: with a `filePath` and no
|
|
49
|
+
* `postgres` options that name a server, `DATABASE_URL` is not read.
|
|
50
|
+
* - `postgres` options that name no server, with no `DATABASE_URL` to fill
|
|
51
|
+
* in and no `filePath`, fail instead of opening the local default.
|
|
52
|
+
*
|
|
53
|
+
* Without `strict`, a postgres candidate that fails falls through to the
|
|
54
|
+
* next candidate, and `DATABASE_URL` puts Postgres first even when a
|
|
55
|
+
* `filePath` is given.
|
|
56
|
+
*/
|
|
57
|
+
strict?: boolean;
|
|
33
58
|
}
|
|
34
59
|
/**
|
|
35
60
|
* Resolves the most appropriate storage adapter for the current runtime.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,cAAc,EAAyB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAgC,KAAK,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAChH,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.d.ts","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,cAAc,EAAyB,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAE7F,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGvD,OAAO,EAAgC,KAAK,uBAAuB,EAAE,MAAM,oCAAoC,CAAC;AAChH,OAAO,EAAyB,KAAK,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACjG,OAAO,EAAoB,KAAK,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAE9F,OAAO,EAAoB,KAAK,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAGxE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,MAAM,WAAW,wBAAwB;IACvC,iGAAiG;IACjG,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IACzB,+CAA+C;IAC/C,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,qEAAqE;IACrE,SAAS,CAAC,EAAE,uBAAuB,CAAC;IACpC,yCAAyC;IACzC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,iFAAiF;IACjF,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA+DD;;;GAGG;AACH,eAAO,MAAM,qBAAqB,aAAmB,wBAAwB,KAAQ,OAAO,CAAC,cAAc,CAmK1G,CAAC"}
|
package/dist/core/resolver.js
CHANGED
|
@@ -43,6 +43,7 @@ import { createCapacitorSqliteAdapter } from '../adapters/capacitorSqliteAdapter
|
|
|
43
43
|
import { createPostgresAdapter } from '../adapters/postgresAdapter.js';
|
|
44
44
|
import { IndexedDbAdapter } from '../adapters/indexedDbAdapter.js';
|
|
45
45
|
import { isNonEmpty, namesPostgresServer } from '../shared/postgresTarget.js';
|
|
46
|
+
import { getStorageLogger } from '../shared/logger.js';
|
|
46
47
|
const isCapacitorRuntime = () => {
|
|
47
48
|
if (typeof window === 'undefined') {
|
|
48
49
|
return false;
|
|
@@ -86,13 +87,17 @@ const unsupportedKind = (kind) => {
|
|
|
86
87
|
*/
|
|
87
88
|
export const resolveStorageAdapter = async (options = {}) => {
|
|
88
89
|
const envOverride = getEnv('STORAGE_ADAPTER');
|
|
90
|
+
const log = options.logger ?? getStorageLogger();
|
|
91
|
+
const strict = options.strict === true;
|
|
89
92
|
const postgresOptions = options.postgres;
|
|
90
93
|
const explicitConnection = postgresOptions?.connectionString;
|
|
94
|
+
// In strict resolution an explicit file path outranks DATABASE_URL.
|
|
95
|
+
const fileOutranksEnv = strict && isNonEmpty(options.filePath);
|
|
91
96
|
// Explicit options that name a server are the target; DATABASE_URL fills in
|
|
92
97
|
// only when they name none.
|
|
93
98
|
const postgresConnection = isNonEmpty(explicitConnection)
|
|
94
99
|
? explicitConnection
|
|
95
|
-
: namesPostgresServer(postgresOptions)
|
|
100
|
+
: namesPostgresServer(postgresOptions) || fileOutranksEnv
|
|
96
101
|
? undefined
|
|
97
102
|
: getEnv('DATABASE_URL') || undefined;
|
|
98
103
|
const postgresTarget = isNonEmpty(postgresConnection) || namesPostgresServer(postgresOptions);
|
|
@@ -107,14 +112,14 @@ export const resolveStorageAdapter = async (options = {}) => {
|
|
|
107
112
|
}
|
|
108
113
|
// Electron detection - provide guidance to use dedicated Electron adapters
|
|
109
114
|
if (isElectronMain()) {
|
|
110
|
-
|
|
115
|
+
log.warn({ runtime: 'electron-main' }, 'Electron main process detected. ' +
|
|
111
116
|
'Consider using the dedicated Electron adapter for full framework support:\n' +
|
|
112
117
|
" import { createElectronMainAdapter } from '@framers/sql-storage-adapter/electron';\n" +
|
|
113
118
|
'Falling back to better-sqlite3 adapter.');
|
|
114
119
|
return ['better-sqlite3'];
|
|
115
120
|
}
|
|
116
121
|
if (isElectronRenderer()) {
|
|
117
|
-
|
|
122
|
+
log.warn({ runtime: 'electron-renderer' }, 'Electron renderer process detected. ' +
|
|
118
123
|
'For IPC-based database access, use the dedicated Electron adapter:\n' +
|
|
119
124
|
" import { createElectronRendererAdapter } from '@framers/sql-storage-adapter/electron';\n" +
|
|
120
125
|
'Note: Direct database access in renderer is not recommended for security reasons.');
|
|
@@ -124,7 +129,12 @@ export const resolveStorageAdapter = async (options = {}) => {
|
|
|
124
129
|
return ['capacitor', 'indexeddb', 'sqljs'];
|
|
125
130
|
}
|
|
126
131
|
if (postgresTarget) {
|
|
127
|
-
return ['postgres', 'better-sqlite3', 'indexeddb', 'sqljs'];
|
|
132
|
+
return strict ? ['postgres'] : ['postgres', 'better-sqlite3', 'indexeddb', 'sqljs'];
|
|
133
|
+
}
|
|
134
|
+
if (strict && postgresOptions !== undefined && !isNonEmpty(options.filePath)) {
|
|
135
|
+
// Postgres is configured but names no server: the postgres candidate
|
|
136
|
+
// fails with the reason, where the local default would hide it.
|
|
137
|
+
return ['postgres'];
|
|
128
138
|
}
|
|
129
139
|
// Browser detection (check for IndexedDB)
|
|
130
140
|
if (typeof window !== 'undefined' && window.indexedDB) {
|
|
@@ -140,7 +150,9 @@ export const resolveStorageAdapter = async (options = {}) => {
|
|
|
140
150
|
name,
|
|
141
151
|
factory: async () => {
|
|
142
152
|
if (!postgresTarget) {
|
|
143
|
-
throw new Error(
|
|
153
|
+
throw new Error(fileOutranksEnv
|
|
154
|
+
? 'A postgres connection string, or a postgres host, database or user is required. Strict resolution does not read DATABASE_URL when a filePath is given.'
|
|
155
|
+
: 'DATABASE_URL, a postgres connection string, or a postgres host, database or user is required.');
|
|
144
156
|
}
|
|
145
157
|
return createPostgresAdapter({
|
|
146
158
|
...postgresOptions,
|
|
@@ -205,15 +217,19 @@ export const resolveStorageAdapter = async (options = {}) => {
|
|
|
205
217
|
};
|
|
206
218
|
await adapter.open(openOptions);
|
|
207
219
|
if (!quiet)
|
|
208
|
-
|
|
220
|
+
log.info({ adapter: candidate.name }, `Using adapter "${candidate.name}".`);
|
|
209
221
|
return adapter;
|
|
210
222
|
}
|
|
211
223
|
catch (error) {
|
|
224
|
+
errors.push(error);
|
|
225
|
+
if (strict && candidate.name === 'postgres') {
|
|
226
|
+
const msg = error instanceof Error ? error.message : String(error);
|
|
227
|
+
throw new StorageResolutionError(`PostgreSQL could not be opened, and strict resolution does not fall back to a local database. ${msg}`, errors);
|
|
228
|
+
}
|
|
212
229
|
if (!quiet) {
|
|
213
230
|
const msg = error instanceof Error ? error.message : String(error);
|
|
214
|
-
|
|
231
|
+
log.warn({ adapter: candidate.name, error: msg }, `${candidate.name} not available, trying next. ${msg}`);
|
|
215
232
|
}
|
|
216
|
-
errors.push(error);
|
|
217
233
|
continue;
|
|
218
234
|
}
|
|
219
235
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,MAAM,SAAS,GAAG,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,WAAW,CAAC;AAC1F,MAAM,MAAM,GAAG,OAAO,OAAO,KAAK,WAAW,IAAI,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC;AAE1E,6DAA6D;AAC7D,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAe,EAAmB,EAAE;IAC1D,IAAI,SAAS,EAAE,CAAC;QACd,8EAA8E;QAC9E,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,wCAAwC;IACxC,IAAI,MAAM,EAAE,CAAC;QACX,IAAI,CAAC;YACH,4DAA4D;YAC5D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC;YAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC;QAC7B,CAAC;QAAC,MAAM,CAAC;YACP,2BAA2B;YAC3B,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,kCAAkC;AAClC,MAAM,MAAM,GAAG,CAAC,GAAW,EAAsB,EAAE;IACjD,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,GAAG,GAAW,EAAE;IAC1B,IAAI,MAAM,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAC5D,OAAO,OAAO,CAAC,GAAG,EAAE,CAAC;IACvB,CAAC;IACD,gDAAgD;IAChD,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAGF,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AAErD,OAAO,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,4BAA4B,EAAgC,MAAM,oCAAoC,CAAC;AAChH,OAAO,EAAE,qBAAqB,EAA+B,MAAM,6BAA6B,CAAC;AACjG,OAAO,EAAE,gBAAgB,EAAgC,MAAM,8BAA8B,CAAC;AAC9F,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../src/core/resolver.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -23,4 +23,6 @@ export { BrowserBlobCodec } from './codecs/BrowserBlobCodec.js';
|
|
|
23
23
|
export { SqliteFileExporter } from './exporters/SqliteFileExporter.js';
|
|
24
24
|
export { PostgresExporter } from './exporters/PostgresExporter.js';
|
|
25
25
|
export { createStorageFeatures } from './core/contracts/features.js';
|
|
26
|
+
export { isUniqueViolation } from './shared/errors.js';
|
|
27
|
+
export { setStorageLogger, getStorageLogger, type StorageLogger } from './shared/logger.js';
|
|
26
28
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAQ9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAM5C,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AAGxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAQ9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAM5C,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -35,4 +35,6 @@ export { BrowserBlobCodec } from './codecs/BrowserBlobCodec.js';
|
|
|
35
35
|
export { SqliteFileExporter } from './exporters/SqliteFileExporter.js';
|
|
36
36
|
export { PostgresExporter } from './exporters/PostgresExporter.js';
|
|
37
37
|
export { createStorageFeatures } from './core/contracts/features.js';
|
|
38
|
+
export { isUniqueViolation } from './shared/errors.js';
|
|
39
|
+
export { setStorageLogger, getStorageLogger } from './shared/logger.js';
|
|
38
40
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,SAAS,CAAC;AAExB,8EAA8E;AAC9E,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,+EAA+E;AAC/E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAE9C,wEAAwE;AACxE,yDAAyD;AACzD,2HAA2H;AAC3H,mEAAmE;AAEnE,+EAA+E;AAC/E,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAE5C,uFAAuF;AACvF,sFAAsF;AAEtF,+EAA+E;AAC/E,cAAc,yBAAyB,CAAC;AAExC,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,cAAc,SAAS,CAAC;AAExB,8EAA8E;AAC9E,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAEhC,+EAA+E;AAC/E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAE9C,wEAAwE;AACxE,yDAAyD;AACzD,2HAA2H;AAC3H,mEAAmE;AAEnE,+EAA+E;AAC/E,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,kCAAkC,CAAC;AACjD,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAE5C,uFAAuF;AACvF,sFAAsF;AAEtF,+EAA+E;AAC/E,cAAc,yBAAyB,CAAC;AAExC,iFAAiF;AACjF,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAsB,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error checks that read the same failure from every adapter.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Whether `error` is a unique or primary-key violation, from any adapter:
|
|
6
|
+
* PostgreSQL's SQLSTATE `23505` (`unique_violation`, pg's `code`),
|
|
7
|
+
* better-sqlite3's `SQLITE_CONSTRAINT_UNIQUE` and
|
|
8
|
+
* `SQLITE_CONSTRAINT_PRIMARYKEY`, and the "UNIQUE constraint failed" message
|
|
9
|
+
* that sql.js, the IndexedDB adapter and the Capacitor plugin give. An error
|
|
10
|
+
* that wraps one as its `cause`, to any depth up to ten, counts too.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* try {
|
|
15
|
+
* await db.run('INSERT INTO users (email) VALUES (?)', [email]);
|
|
16
|
+
* } catch (error) {
|
|
17
|
+
* if (isUniqueViolation(error)) return { taken: true };
|
|
18
|
+
* throw error;
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export declare const isUniqueViolation: (error: unknown) => boolean;
|
|
23
|
+
//# sourceMappingURL=errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,iBAAiB,UAAW,OAAO,KAAG,OAYlD,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error checks that read the same failure from every adapter.
|
|
3
|
+
*/
|
|
4
|
+
/** better-sqlite3's extended result codes for a unique or primary-key violation. */
|
|
5
|
+
const SQLITE_UNIQUE_CODES = new Set(['SQLITE_CONSTRAINT_UNIQUE', 'SQLITE_CONSTRAINT_PRIMARYKEY']);
|
|
6
|
+
/** SQLite's message for one, which sql.js and the Capacitor plugin pass on without a code. */
|
|
7
|
+
const SQLITE_UNIQUE_MESSAGE = /\bUNIQUE constraint failed\b/;
|
|
8
|
+
/** How deep isUniqueViolation follows `cause`. */
|
|
9
|
+
const MAX_CAUSE_DEPTH = 10;
|
|
10
|
+
/**
|
|
11
|
+
* Whether `error` is a unique or primary-key violation, from any adapter:
|
|
12
|
+
* PostgreSQL's SQLSTATE `23505` (`unique_violation`, pg's `code`),
|
|
13
|
+
* better-sqlite3's `SQLITE_CONSTRAINT_UNIQUE` and
|
|
14
|
+
* `SQLITE_CONSTRAINT_PRIMARYKEY`, and the "UNIQUE constraint failed" message
|
|
15
|
+
* that sql.js, the IndexedDB adapter and the Capacitor plugin give. An error
|
|
16
|
+
* that wraps one as its `cause`, to any depth up to ten, counts too.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```typescript
|
|
20
|
+
* try {
|
|
21
|
+
* await db.run('INSERT INTO users (email) VALUES (?)', [email]);
|
|
22
|
+
* } catch (error) {
|
|
23
|
+
* if (isUniqueViolation(error)) return { taken: true };
|
|
24
|
+
* throw error;
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export const isUniqueViolation = (error) => {
|
|
29
|
+
const seen = new Set();
|
|
30
|
+
let current = error;
|
|
31
|
+
while (current !== null && typeof current === 'object' && !seen.has(current) && seen.size < MAX_CAUSE_DEPTH) {
|
|
32
|
+
seen.add(current);
|
|
33
|
+
const { code, message } = current;
|
|
34
|
+
if (code === '23505')
|
|
35
|
+
return true;
|
|
36
|
+
if (typeof code === 'string' && SQLITE_UNIQUE_CODES.has(code))
|
|
37
|
+
return true;
|
|
38
|
+
if (typeof message === 'string' && SQLITE_UNIQUE_MESSAGE.test(message))
|
|
39
|
+
return true;
|
|
40
|
+
current = current.cause;
|
|
41
|
+
}
|
|
42
|
+
return false;
|
|
43
|
+
};
|
|
44
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,oFAAoF;AACpF,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,CAAC,0BAA0B,EAAE,8BAA8B,CAAC,CAAC,CAAC;AAElG,8FAA8F;AAC9F,MAAM,qBAAqB,GAAG,8BAA8B,CAAC;AAE7D,kDAAkD;AAClD,MAAM,eAAe,GAAG,EAAE,CAAC;AAE3B;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAc,EAAW,EAAE;IAC3D,MAAM,IAAI,GAAG,IAAI,GAAG,EAAW,CAAC;IAChC,IAAI,OAAO,GAAY,KAAK,CAAC;IAC7B,OAAO,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,eAAe,EAAE,CAAC;QAC5G,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAClB,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAgD,CAAC;QAC3E,IAAI,IAAI,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QAC3E,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC;YAAE,OAAO,IAAI,CAAC;QACpF,OAAO,GAAI,OAA+B,CAAC,KAAK,CAAC;IACnD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Where the library's log lines go. A host hands its own logger in, and
|
|
3
|
+
* pino's logger fits as it is: each call passes the line's fields first and
|
|
4
|
+
* its message second, as pino takes them. Without one, lines go to the
|
|
5
|
+
* console, as the library has always written them.
|
|
6
|
+
*/
|
|
7
|
+
export interface StorageLogger {
|
|
8
|
+
debug?(fields: Record<string, unknown>, message: string): void;
|
|
9
|
+
info(fields: Record<string, unknown>, message: string): void;
|
|
10
|
+
warn(fields: Record<string, unknown>, message: string): void;
|
|
11
|
+
error(fields: Record<string, unknown>, message: string): void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Routes every line the library writes to `logger`, from then on and in every
|
|
15
|
+
* adapter. `null` routes them back to the console.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```typescript
|
|
19
|
+
* import pino from 'pino';
|
|
20
|
+
* setStorageLogger(pino({ name: 'storage' }));
|
|
21
|
+
* ```
|
|
22
|
+
*/
|
|
23
|
+
export declare const setStorageLogger: (logger: StorageLogger | null) => void;
|
|
24
|
+
/** The logger the library writes to now. */
|
|
25
|
+
export declare const getStorageLogger: () => StorageLogger;
|
|
26
|
+
//# sourceMappingURL=logger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/D,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/D;AAgBD;;;;;;;;;GASG;AACH,eAAO,MAAM,gBAAgB,WAAY,aAAa,GAAG,IAAI,KAAG,IAE/D,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,gBAAgB,QAAO,aAAwB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/** The console line's prefix: the field `scope` when a line has one, else StorageAdapter. */
|
|
2
|
+
const prefix = (fields) => `[${typeof fields.scope === 'string' ? fields.scope : 'StorageAdapter'}]`;
|
|
3
|
+
/** The default: one line on the console per call, prefixed as before. */
|
|
4
|
+
const consoleLogger = {
|
|
5
|
+
debug: (fields, message) => console.log(`${prefix(fields)} ${message}`),
|
|
6
|
+
info: (fields, message) => console.info(`${prefix(fields)} ${message}`),
|
|
7
|
+
warn: (fields, message) => console.warn(`${prefix(fields)} ${message}`),
|
|
8
|
+
error: (fields, message) => console.error(`${prefix(fields)} ${message}`),
|
|
9
|
+
};
|
|
10
|
+
let current = consoleLogger;
|
|
11
|
+
/**
|
|
12
|
+
* Routes every line the library writes to `logger`, from then on and in every
|
|
13
|
+
* adapter. `null` routes them back to the console.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* import pino from 'pino';
|
|
18
|
+
* setStorageLogger(pino({ name: 'storage' }));
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export const setStorageLogger = (logger) => {
|
|
22
|
+
current = logger ?? consoleLogger;
|
|
23
|
+
};
|
|
24
|
+
/** The logger the library writes to now. */
|
|
25
|
+
export const getStorageLogger = () => current;
|
|
26
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/shared/logger.ts"],"names":[],"mappings":"AAaA,6FAA6F;AAC7F,MAAM,MAAM,GAAG,CAAC,MAA+B,EAAU,EAAE,CACzD,IAAI,OAAO,MAAM,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,gBAAgB,GAAG,CAAC;AAE5E,yEAAyE;AACzE,MAAM,aAAa,GAAkB;IACnC,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;IACvE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;IACvE,IAAI,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;IACvE,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;CAC1E,CAAC;AAEF,IAAI,OAAO,GAAkB,aAAa,CAAC;AAE3C;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,MAA4B,EAAQ,EAAE;IACrE,OAAO,GAAG,MAAM,IAAI,aAAa,CAAC;AACpC,CAAC,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAkB,EAAE,CAAC,OAAO,CAAC"}
|