@mathrunet/masamune_cloudflare_turso 3.5.2 → 3.5.4
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/CHANGELOG.md +2 -1
- package/README.md +22 -1
- package/dist/functions/turso.js +17 -4
- package/dist/functions/turso.js.map +1 -1
- package/dist/functions/turso_token.js +6 -1
- package/dist/functions/turso_token.js.map +1 -1
- package/dist/lib/turso_client.d.ts +5 -0
- package/dist/lib/turso_client.js +158 -6
- package/dist/lib/turso_client.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## 3.5.
|
|
1
|
+
## 3.5.4 (2026-08-04)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### chore
|
|
@@ -79,6 +79,7 @@
|
|
|
79
79
|
* Move development, requirements, and setup guide documents to masamune_asset_pipeline package. ([1aa4ccb](https://github.com/mathrunet/node_masamune/commit/1aa4ccb995791c34de7901e98554aaca80bf22cc))
|
|
80
80
|
* ReadMe changes. ([8e55b7d](https://github.com/mathrunet/node_masamune/commit/8e55b7d10d6d3f8f61ff09541fafbfb9ea52b73a))
|
|
81
81
|
* ReadMe creation. ([6f91ba9](https://github.com/mathrunet/node_masamune/commit/6f91ba97d8c8e3f7d41a6299d95e51a69b90fe1c))
|
|
82
|
+
* update README with TursoDB deployment instructions and clarify database creation process; refactor Turso client to support concurrent writes and improve error handling; enhance tests for database validation and error scenarios ([fdc42da](https://github.com/mathrunet/node_masamune/commit/fdc42da0deb25907cdedd9aa84fabaac62b2161c))
|
|
82
83
|
|
|
83
84
|
### feat
|
|
84
85
|
|
package/README.md
CHANGED
|
@@ -44,6 +44,10 @@ npm install @mathrunet/masamune_cloudflare_turso
|
|
|
44
44
|
|
|
45
45
|
# Implementation
|
|
46
46
|
|
|
47
|
+
Before deploying, enable **Concurrent Writes** in Turso Dashboard under
|
|
48
|
+
`Settings > General`. Masamune provisions only the new TursoDB (MVCC) engine;
|
|
49
|
+
it never silently falls back to the legacy SQLite engine.
|
|
50
|
+
|
|
47
51
|
Pass the return value of the `deploy` function to `export default`. It is defined by passing various Workers to the `deploy` function.
|
|
48
52
|
|
|
49
53
|
```typescript
|
|
@@ -160,7 +164,18 @@ The previous query/body style is still accepted for compatibility:
|
|
|
160
164
|
|
|
161
165
|
# Database and schema management
|
|
162
166
|
|
|
163
|
-
The worker can create
|
|
167
|
+
The worker can create TursoDB databases and tables automatically. Platform API
|
|
168
|
+
creation requests always include `use_tursodb: true`.
|
|
169
|
+
|
|
170
|
+
If a database with the requested name already exists, its database ID is
|
|
171
|
+
validated using the same TursoDB marker as the Turso CLI. A legacy SQLite
|
|
172
|
+
database, or a response whose engine cannot be verified, is rejected. Existing
|
|
173
|
+
SQLite databases cannot be converted in place; create a replacement and migrate
|
|
174
|
+
the data before using the same logical database path.
|
|
175
|
+
|
|
176
|
+
```bash
|
|
177
|
+
turso db create --tursodb <new-database-name>
|
|
178
|
+
```
|
|
164
179
|
|
|
165
180
|
Database creation is disabled by default. Set `autoCreateDatabase: true`
|
|
166
181
|
explicitly on every Turso function or adapter that is allowed to provision a
|
|
@@ -227,6 +242,12 @@ Automatic migration is intentionally limited to additive field changes.
|
|
|
227
242
|
- Field rename, field deletion, primary key changes, unique constraints, and foreign keys are not automatically migrated.
|
|
228
243
|
- `PUT` and `DELETE` require `indexKey` or `where` to avoid accidental full-table changes.
|
|
229
244
|
|
|
245
|
+
Worker-side `POST`, `PUT`, and `DELETE` operations use the native
|
|
246
|
+
`@tursodatabase/serverless` connection API and a `BEGIN CONCURRENT`
|
|
247
|
+
transaction. Row conflicts and `SQLITE_BUSY` at commit are rolled back and
|
|
248
|
+
retried with bounded backoff; constraints and other SQL errors are returned
|
|
249
|
+
without retrying.
|
|
250
|
+
|
|
230
251
|
The default table shape is:
|
|
231
252
|
|
|
232
253
|
```sql
|
package/dist/functions/turso.js
CHANGED
|
@@ -24,6 +24,7 @@ module.exports = (hono, options, data) => {
|
|
|
24
24
|
async function handleCrud(context, options, method) {
|
|
25
25
|
let request;
|
|
26
26
|
let resolvedOptions;
|
|
27
|
+
let client;
|
|
27
28
|
let phase = "parse";
|
|
28
29
|
try {
|
|
29
30
|
resolvedOptions = (0, env_1.resolveTursoWorkersOptionsFromEnv)(context, options);
|
|
@@ -32,7 +33,8 @@ async function handleCrud(context, options, method) {
|
|
|
32
33
|
const databaseOptions = (0, database_prefix_1.applyRequestDatabasePrefix)(resolvedOptions, crudRequest.prefix);
|
|
33
34
|
phase = "connect";
|
|
34
35
|
const connection = await (0, turso_client_1.resolveDatabaseConnection)(crudRequest.database, databaseOptions);
|
|
35
|
-
const
|
|
36
|
+
const connectedClient = (0, turso_client_1.createTursoClient)(connection);
|
|
37
|
+
client = connectedClient;
|
|
36
38
|
const engine = (0, rules_1.createTursoRulesEngine)(resolvedOptions.rules);
|
|
37
39
|
const authentication = context.get("authentication");
|
|
38
40
|
phase = "rules";
|
|
@@ -45,7 +47,7 @@ async function handleCrud(context, options, method) {
|
|
|
45
47
|
}),
|
|
46
48
|
operation: resolveCrudRulesOperation(method, crudRequest),
|
|
47
49
|
authentication,
|
|
48
|
-
fetchDocument: async () => (0, crud_1.fetchDocumentForRules)(
|
|
50
|
+
fetchDocument: async () => (0, crud_1.fetchDocumentForRules)(connectedClient, crudRequest),
|
|
49
51
|
server: true,
|
|
50
52
|
});
|
|
51
53
|
if (!result.allowed) {
|
|
@@ -60,13 +62,16 @@ async function handleCrud(context, options, method) {
|
|
|
60
62
|
(0, turso_client_1.cacheDatabaseConnection)(crudRequest.database, databaseOptions, connection);
|
|
61
63
|
}
|
|
62
64
|
phase = method === "POST" ? "create-table-or-insert" : "execute";
|
|
63
|
-
const
|
|
64
|
-
client,
|
|
65
|
+
const execute = () => (0, crud_1.executeCrud)({
|
|
66
|
+
client: connectedClient,
|
|
65
67
|
method,
|
|
66
68
|
request: crudRequest,
|
|
67
69
|
autoCreateTable: resolvedOptions.autoCreateTable !== false,
|
|
68
70
|
autoMigrateAddColumns: resolvedOptions.autoMigrateAddColumns !== false,
|
|
69
71
|
});
|
|
72
|
+
const response = method === "GET"
|
|
73
|
+
? await execute()
|
|
74
|
+
: await (0, turso_client_1.executeConcurrentWrite)(connectedClient, execute);
|
|
70
75
|
return context.json({ data: response });
|
|
71
76
|
}
|
|
72
77
|
catch (error) {
|
|
@@ -81,6 +86,14 @@ async function handleCrud(context, options, method) {
|
|
|
81
86
|
}
|
|
82
87
|
return (0, request_1.jsonError)(context, error);
|
|
83
88
|
}
|
|
89
|
+
finally {
|
|
90
|
+
try {
|
|
91
|
+
await client?.close();
|
|
92
|
+
}
|
|
93
|
+
catch (_) {
|
|
94
|
+
// The request result is authoritative; closing a completed stream is best effort.
|
|
95
|
+
}
|
|
96
|
+
}
|
|
84
97
|
}
|
|
85
98
|
function resolveCrudRulesOperation(method, request) {
|
|
86
99
|
if (method === "POST" && request.indexKey) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turso.js","sourceRoot":"","sources":["../../src/functions/turso.ts"],"names":[],"mappings":";;AAQA,sCAAiE;AACjE,4CAA6D;AAC7D,wCAIsB;AACtB,
|
|
1
|
+
{"version":3,"file":"turso.js","sourceRoot":"","sources":["../../src/functions/turso.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,7 +56,12 @@ async function handleToken(context, options) {
|
|
|
56
56
|
url: endpoint.url,
|
|
57
57
|
authToken: token.token,
|
|
58
58
|
});
|
|
59
|
-
|
|
59
|
+
try {
|
|
60
|
+
await (0, turso_client_1.waitForDatabaseReady)(client);
|
|
61
|
+
}
|
|
62
|
+
finally {
|
|
63
|
+
await client.close();
|
|
64
|
+
}
|
|
60
65
|
(0, turso_client_1.cacheDatabaseEndpoint)(request.database, databaseOptions, endpoint.url);
|
|
61
66
|
}
|
|
62
67
|
return context.json({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turso_token.js","sourceRoot":"","sources":["../../src/functions/turso_token.ts"],"names":[],"mappings":";;AAEA,4CAA8D;AAC9D,wCAGsB;AACtB,sDAK6B;AAC7B,wCAAkD;AAClD,oCAA+D;AAC/D,4DAAoE;AAEpE,MAAM,CAAC,OAAO,GAAG,CACf,IAAU,EACV,OAA4B,EAC5B,IAAgC,EAChC,EAAE;IACF,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACjE,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IACnF,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,KAAK,UAAU,WAAW,CACxB,OAAgB,EAChB,OAA4B;IAE5B,IAAI,KAAK,GAAG,OAAO,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,eAAe,GAAG,IAAA,uCAAiC,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,MAAM,IAAA,2BAAiB,EAAC,OAAO,CAAC,CAAC;QACjD,MAAM,eAAe,GAAG,IAAA,4CAA0B,EAChD,eAAe,EACf,OAAO,CAAC,MAAM,CACf,CAAC;QACF,KAAK,GAAG,OAAO,CAAC;QAChB,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAsC,CAAC;QAC1F,MAAM,MAAM,GAAG,IAAA,8BAAsB,EAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAA,kCAA0B,EAAC;YAC9C,MAAM;YACN,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,KAAK,EAAE,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK;YACvC,cAAc;SACf,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC,IAAI,CACjB;gBACE,KAAK,EAAE,QAAQ;aAChB,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC1B,OAAO,OAAO,CAAC,IAAI,CAAC;gBAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,SAAS,EAAE,MAAM,CAAC,SAAS;gBAC3B,OAAO,EAAE,MAAM,CAAC,MAAM;gBACtB,MAAM,EAAE,MAAM,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;QACD,KAAK,GAAG,SAAS,CAAC;QAClB,MAAM,QAAQ,GAAG,MAAM,IAAA,sCAAuB,EAC5C,OAAO,CAAC,QAAQ,EAChB,eAAe,CAChB,CAAC;QACF,KAAK,GAAG,aAAa,CAAC;QACtB,MAAM,KAAK,GAAG,MAAM,IAAA,0BAAkB,EAAC;YACrC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,OAAO,EAAE,eAAe;SACzB,CAAC,CAAC;QACH,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,KAAK,GAAG,gBAAgB,CAAC;YACzB,MAAM,MAAM,GAAG,IAAA,gCAAiB,EAAC;gBAC/B,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,SAAS,EAAE,KAAK,CAAC,KAAK;aACvB,CAAC,CAAC;YACH,MAAM,IAAA,mCAAoB,EAAC,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"turso_token.js","sourceRoot":"","sources":["../../src/functions/turso_token.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,8 @@ export interface TursoClient {
|
|
|
12
12
|
args?: SqlValue[];
|
|
13
13
|
}): Promise<TursoResultSet>;
|
|
14
14
|
execute(sql: string, args?: SqlValue[]): Promise<TursoResultSet>;
|
|
15
|
+
concurrent<T>(callback: () => Promise<T>): Promise<T>;
|
|
16
|
+
close(): Promise<void>;
|
|
15
17
|
}
|
|
16
18
|
export type SqlValue = null | string | number | bigint | ArrayBuffer | boolean | Uint8Array | Date;
|
|
17
19
|
export declare function createTursoClient(connection: TursoDatabaseConnection): TursoClient;
|
|
@@ -21,4 +23,7 @@ export declare function cacheDatabaseEndpoint(database: string, options: TursoWo
|
|
|
21
23
|
export declare function cacheDatabaseConnection(database: string, options: TursoWorkersOptions, connection: TursoDatabaseConnection): void;
|
|
22
24
|
export declare function clearDatabaseConnectionCache(database: string, options: TursoWorkersOptions): void;
|
|
23
25
|
export declare function waitForDatabaseReady(client: TursoClient): Promise<void>;
|
|
26
|
+
export declare function executeConcurrentWrite<T>(client: TursoClient, callback: () => Promise<T>): Promise<T>;
|
|
27
|
+
export declare function isTursoDatabaseId(databaseId: string): boolean;
|
|
24
28
|
export declare function isTransientTursoError(error: unknown): boolean;
|
|
29
|
+
export declare function isTursoWriteConflict(error: unknown): boolean;
|
package/dist/lib/turso_client.js
CHANGED
|
@@ -7,21 +7,50 @@ exports.cacheDatabaseEndpoint = cacheDatabaseEndpoint;
|
|
|
7
7
|
exports.cacheDatabaseConnection = cacheDatabaseConnection;
|
|
8
8
|
exports.clearDatabaseConnectionCache = clearDatabaseConnectionCache;
|
|
9
9
|
exports.waitForDatabaseReady = waitForDatabaseReady;
|
|
10
|
+
exports.executeConcurrentWrite = executeConcurrentWrite;
|
|
11
|
+
exports.isTursoDatabaseId = isTursoDatabaseId;
|
|
10
12
|
exports.isTransientTursoError = isTransientTursoError;
|
|
13
|
+
exports.isTursoWriteConflict = isTursoWriteConflict;
|
|
11
14
|
const request_1 = require("./request");
|
|
12
15
|
const database_name_1 = require("./database_name");
|
|
13
16
|
const connectionCache = new Map();
|
|
14
17
|
const databaseEndpointCache = new Map();
|
|
15
18
|
const connectionRefreshes = new Map();
|
|
19
|
+
// In-flight cold resolutions, de-duplicated per database.
|
|
20
|
+
//
|
|
21
|
+
// Resolving a database that is not cached yet costs 2〜4 sequential round trips
|
|
22
|
+
// to the Turso Platform API. A client that loads several tables of the same
|
|
23
|
+
// database concurrently on a cold isolate would otherwise repeat that whole
|
|
24
|
+
// sequence once per caller, multiplying external latency by the number of
|
|
25
|
+
// concurrent loads. Callers arriving while a resolution is running share it.
|
|
26
|
+
const connectionResolutions = new Map();
|
|
27
|
+
const endpointResolutions = new Map();
|
|
28
|
+
// Guards a cache write issued by a resolution that started before a cache
|
|
29
|
+
// clear. Without this, a resolution already in flight would repopulate
|
|
30
|
+
// [connectionCache] immediately after [clearDatabaseConnectionCache] emptied
|
|
31
|
+
// it, resurrecting the connection the caller asked to discard.
|
|
32
|
+
const connectionCacheEpochs = new Map();
|
|
16
33
|
const readyRetryDelaysMs = [250, 500, 1000, 2000, 4000, 8000];
|
|
34
|
+
const writeRetryDelaysMs = [10, 25, 50, 100, 250, 500];
|
|
17
35
|
const defaultServerTokenTtlSeconds = 3600;
|
|
18
36
|
const tokenRefreshWindowSeconds = 60;
|
|
19
37
|
function createTursoClient(connection) {
|
|
20
|
-
const {
|
|
21
|
-
|
|
38
|
+
const { connect } = require("@tursodatabase/serverless");
|
|
39
|
+
const client = connect({
|
|
22
40
|
url: connection.url,
|
|
23
41
|
authToken: connection.authToken,
|
|
24
42
|
});
|
|
43
|
+
return {
|
|
44
|
+
execute: (statement, args) => typeof statement === "string"
|
|
45
|
+
? args === undefined
|
|
46
|
+
? client.execute(statement)
|
|
47
|
+
: client.execute(statement, args)
|
|
48
|
+
: statement.args === undefined
|
|
49
|
+
? client.execute(statement.sql)
|
|
50
|
+
: client.execute(statement.sql, statement.args),
|
|
51
|
+
concurrent: (callback) => client.transaction(callback).concurrent(),
|
|
52
|
+
close: () => client.close(),
|
|
53
|
+
};
|
|
25
54
|
}
|
|
26
55
|
async function resolveDatabaseConnection(database, options) {
|
|
27
56
|
const normalizedDatabase = (0, request_1.validateLogicalName)(database, "database");
|
|
@@ -36,6 +65,28 @@ async function resolveDatabaseConnection(database, options) {
|
|
|
36
65
|
created: false,
|
|
37
66
|
};
|
|
38
67
|
}
|
|
68
|
+
// Share a single cold resolution with every concurrent caller. A joiner
|
|
69
|
+
// receives the leader's `created` verdict unchanged, so a freshly created
|
|
70
|
+
// database still instructs every caller to wait for readiness before use.
|
|
71
|
+
const inFlight = connectionResolutions.get(cacheKey);
|
|
72
|
+
if (inFlight) {
|
|
73
|
+
return inFlight;
|
|
74
|
+
}
|
|
75
|
+
const resolution = resolveColdDatabaseConnection(database, normalizedDatabase, cacheKey, options);
|
|
76
|
+
connectionResolutions.set(cacheKey, resolution);
|
|
77
|
+
try {
|
|
78
|
+
return await resolution;
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
// Never retain a settled promise. A rejection therefore reaches every
|
|
82
|
+
// joiner while a later retry starts a fresh resolution.
|
|
83
|
+
if (connectionResolutions.get(cacheKey) === resolution) {
|
|
84
|
+
connectionResolutions.delete(cacheKey);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
async function resolveColdDatabaseConnection(database, normalizedDatabase, cacheKey, options) {
|
|
89
|
+
const epoch = connectionCacheEpoch(cacheKey);
|
|
39
90
|
const endpoint = await resolveDatabaseEndpoint(normalizedDatabase, options);
|
|
40
91
|
const organizationName = options.organization;
|
|
41
92
|
const platformApiToken = options.platformApiToken;
|
|
@@ -57,7 +108,7 @@ async function resolveDatabaseConnection(database, options) {
|
|
|
57
108
|
authTokenExpiresAt: authToken.expiresAt,
|
|
58
109
|
created: endpoint.created,
|
|
59
110
|
};
|
|
60
|
-
if (!endpoint.created) {
|
|
111
|
+
if (!endpoint.created && epoch === connectionCacheEpoch(cacheKey)) {
|
|
61
112
|
cacheDatabaseConnection(database, options, connection);
|
|
62
113
|
}
|
|
63
114
|
return connection;
|
|
@@ -73,6 +124,24 @@ async function resolveDatabaseEndpoint(database, options) {
|
|
|
73
124
|
if (cachedUrl) {
|
|
74
125
|
return { url: cachedUrl, created: false };
|
|
75
126
|
}
|
|
127
|
+
// The token endpoint resolves here on every cold client request, so this is
|
|
128
|
+
// the hot path for a client that loads several tables concurrently at boot.
|
|
129
|
+
const inFlight = endpointResolutions.get(cacheKey);
|
|
130
|
+
if (inFlight) {
|
|
131
|
+
return inFlight;
|
|
132
|
+
}
|
|
133
|
+
const resolution = resolveColdDatabaseEndpoint(normalizedDatabase, cacheKey, options);
|
|
134
|
+
endpointResolutions.set(cacheKey, resolution);
|
|
135
|
+
try {
|
|
136
|
+
return await resolution;
|
|
137
|
+
}
|
|
138
|
+
finally {
|
|
139
|
+
if (endpointResolutions.get(cacheKey) === resolution) {
|
|
140
|
+
endpointResolutions.delete(cacheKey);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
async function resolveColdDatabaseEndpoint(normalizedDatabase, cacheKey, options) {
|
|
76
145
|
const databaseName = await (0, database_name_1.resolvePhysicalDatabaseName)(normalizedDatabase, options);
|
|
77
146
|
const endpoint = await ensurePlatformDatabase(databaseName, options);
|
|
78
147
|
if (!endpoint.created) {
|
|
@@ -96,7 +165,18 @@ function cacheDatabaseConnection(database, options, connection) {
|
|
|
96
165
|
}
|
|
97
166
|
function clearDatabaseConnectionCache(database, options) {
|
|
98
167
|
const normalizedDatabase = (0, request_1.validateLogicalName)(database, "database");
|
|
99
|
-
|
|
168
|
+
const cacheKey = databaseCacheKey(normalizedDatabase, options);
|
|
169
|
+
connectionCache.delete(cacheKey);
|
|
170
|
+
// Abandon in-flight work so the next caller resolves a fresh connection, and
|
|
171
|
+
// invalidate the epoch so a resolution or refresh that is already running
|
|
172
|
+
// cannot write its result back over this clear. The endpoint cache is left
|
|
173
|
+
// untouched on purpose: a transient error invalidates the token, not the URL.
|
|
174
|
+
connectionResolutions.delete(cacheKey);
|
|
175
|
+
connectionRefreshes.delete(cacheKey);
|
|
176
|
+
connectionCacheEpochs.set(cacheKey, connectionCacheEpoch(cacheKey) + 1);
|
|
177
|
+
}
|
|
178
|
+
function connectionCacheEpoch(cacheKey) {
|
|
179
|
+
return connectionCacheEpochs.get(cacheKey) ?? 0;
|
|
100
180
|
}
|
|
101
181
|
function databaseCacheKey(database, options) {
|
|
102
182
|
return `${options.databasePrefix ?? ""}\u0000${database}`;
|
|
@@ -119,6 +199,22 @@ async function waitForDatabaseReady(client) {
|
|
|
119
199
|
}
|
|
120
200
|
throw lastError;
|
|
121
201
|
}
|
|
202
|
+
async function executeConcurrentWrite(client, callback) {
|
|
203
|
+
let lastError;
|
|
204
|
+
for (let attempt = 0; attempt <= writeRetryDelaysMs.length; attempt++) {
|
|
205
|
+
try {
|
|
206
|
+
return await client.concurrent(callback);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
lastError = error;
|
|
210
|
+
if (!isTursoWriteConflict(error) || attempt === writeRetryDelaysMs.length) {
|
|
211
|
+
throw error;
|
|
212
|
+
}
|
|
213
|
+
await sleep(writeRetryDelaysMs[attempt]);
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
throw lastError;
|
|
217
|
+
}
|
|
122
218
|
async function ensurePlatformDatabase(databaseName, options) {
|
|
123
219
|
const organizationName = options.organization;
|
|
124
220
|
const platformApiToken = options.platformApiToken;
|
|
@@ -146,10 +242,13 @@ async function ensurePlatformDatabase(databaseName, options) {
|
|
|
146
242
|
body: JSON.stringify({
|
|
147
243
|
name: databaseName,
|
|
148
244
|
group: groupName,
|
|
245
|
+
use_tursodb: true,
|
|
149
246
|
}),
|
|
150
247
|
});
|
|
151
248
|
if (!response.ok) {
|
|
152
|
-
|
|
249
|
+
const detail = await readPlatformError(response);
|
|
250
|
+
throw new request_1.HttpError(500, `Failed to create TursoDB database: ${response.status}${detail}. ` +
|
|
251
|
+
"Enable Concurrent Writes in Turso Dashboard Settings > General before creating databases.");
|
|
153
252
|
}
|
|
154
253
|
created = true;
|
|
155
254
|
}
|
|
@@ -168,6 +267,7 @@ async function ensurePlatformDatabase(databaseName, options) {
|
|
|
168
267
|
}
|
|
169
268
|
info = (await infoResponse.json());
|
|
170
269
|
}
|
|
270
|
+
assertTursoDatabase(info, databaseName);
|
|
171
271
|
const url = findDatabaseUrl(info);
|
|
172
272
|
if (!url) {
|
|
173
273
|
throw new request_1.HttpError(500, "Turso database URL was not found in Platform API response.");
|
|
@@ -177,6 +277,50 @@ async function ensurePlatformDatabase(databaseName, options) {
|
|
|
177
277
|
created,
|
|
178
278
|
};
|
|
179
279
|
}
|
|
280
|
+
function assertTursoDatabase(info, databaseName) {
|
|
281
|
+
const databaseId = findDatabaseId(info);
|
|
282
|
+
if (!databaseId) {
|
|
283
|
+
throw new request_1.HttpError(500, `Could not verify that database is TursoDB: ${databaseName}. ` +
|
|
284
|
+
"Refusing to fall back to a SQLite database.");
|
|
285
|
+
}
|
|
286
|
+
if (!isTursoDatabaseId(databaseId)) {
|
|
287
|
+
throw new request_1.HttpError(409, `Database is a legacy SQLite database, not TursoDB: ${databaseName}. ` +
|
|
288
|
+
"Create a new database with `turso db create --tursodb <name>` and migrate the data.");
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
function isTursoDatabaseId(databaseId) {
|
|
292
|
+
const hex = databaseId.replaceAll("-", "");
|
|
293
|
+
if (!/^[0-9a-fA-F]{32}$/.test(hex)) {
|
|
294
|
+
return false;
|
|
295
|
+
}
|
|
296
|
+
return Number.parseInt(hex.slice(10, 12), 16) === 0x10;
|
|
297
|
+
}
|
|
298
|
+
function findDatabaseId(value) {
|
|
299
|
+
if (typeof value !== "object" || value === null) {
|
|
300
|
+
return undefined;
|
|
301
|
+
}
|
|
302
|
+
const record = value;
|
|
303
|
+
const id = record.DbId ?? record.dbId ?? record.id ?? record.ID;
|
|
304
|
+
if (typeof id === "string" && id.length > 0) {
|
|
305
|
+
return id;
|
|
306
|
+
}
|
|
307
|
+
for (const item of Object.values(record)) {
|
|
308
|
+
const found = findDatabaseId(item);
|
|
309
|
+
if (found) {
|
|
310
|
+
return found;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
return undefined;
|
|
314
|
+
}
|
|
315
|
+
async function readPlatformError(response) {
|
|
316
|
+
try {
|
|
317
|
+
const body = await response.clone().text();
|
|
318
|
+
return body.trim().length > 0 ? `: ${body.trim()}` : "";
|
|
319
|
+
}
|
|
320
|
+
catch (_) {
|
|
321
|
+
return "";
|
|
322
|
+
}
|
|
323
|
+
}
|
|
180
324
|
async function createDatabaseToken(baseUrl, databaseName, headers, ttlSeconds = defaultServerTokenTtlSeconds) {
|
|
181
325
|
const normalizedTtl = normalizeServerTokenTtl(ttlSeconds);
|
|
182
326
|
const response = await fetch(`${baseUrl}/databases/${encodeURIComponent(databaseName)}/auth/tokens` +
|
|
@@ -199,6 +343,7 @@ async function refreshDatabaseConnection(database, cacheKey, cached, options) {
|
|
|
199
343
|
if (refreshing) {
|
|
200
344
|
return refreshing;
|
|
201
345
|
}
|
|
346
|
+
const epoch = connectionCacheEpoch(cacheKey);
|
|
202
347
|
const refresh = (async () => {
|
|
203
348
|
const organizationName = options.organization;
|
|
204
349
|
const platformApiToken = options.platformApiToken;
|
|
@@ -220,7 +365,9 @@ async function refreshDatabaseConnection(database, cacheKey, cached, options) {
|
|
|
220
365
|
authTokenExpiresAt: token.expiresAt,
|
|
221
366
|
created: false,
|
|
222
367
|
};
|
|
223
|
-
|
|
368
|
+
if (epoch === connectionCacheEpoch(cacheKey)) {
|
|
369
|
+
connectionCache.set(cacheKey, connection);
|
|
370
|
+
}
|
|
224
371
|
return connection;
|
|
225
372
|
})();
|
|
226
373
|
connectionRefreshes.set(cacheKey, refresh);
|
|
@@ -268,6 +415,11 @@ function isTransientTursoError(error) {
|
|
|
268
415
|
/status=?(404|409|425|429|500|502|503|504)\b/.test(message) ||
|
|
269
416
|
/no route configured for host/i.test(message));
|
|
270
417
|
}
|
|
418
|
+
function isTursoWriteConflict(error) {
|
|
419
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
420
|
+
return /(?:SQLITE_BUSY|SQLITE_BUSY_SNAPSHOT|write conflict|transaction conflict|conflict at commit|database is locked)/i
|
|
421
|
+
.test(message);
|
|
422
|
+
}
|
|
271
423
|
function sleep(milliseconds) {
|
|
272
424
|
return new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
273
425
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turso_client.js","sourceRoot":"","sources":["../../src/lib/turso_client.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"turso_client.js","sourceRoot":"","sources":["../../src/lib/turso_client.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED