@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 CHANGED
@@ -1,4 +1,4 @@
1
- ## 3.5.2 (2026-07-31)
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 Turso databases and tables automatically.
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
@@ -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 client = (0, turso_client_1.createTursoClient)(connection);
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)(client, crudRequest),
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 response = await (0, crud_1.executeCrud)({
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":"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"}
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
- await (0, turso_client_1.waitForDatabaseReady)(client);
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":"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"}
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;
@@ -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 { createClient } = require("@tursodatabase/serverless/compat");
21
- return createClient({
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
- connectionCache.delete(databaseCacheKey(normalizedDatabase, options));
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
- throw new request_1.HttpError(500, `Failed to create Turso database: ${response.status}`);
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
- connectionCache.set(cacheKey, connection);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mathrunet/masamune_cloudflare_turso",
3
- "version": "3.5.2",
3
+ "version": "3.5.4",
4
4
  "description": "Server-side package of the Masamune framework for working with Turso via Cloudflare.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",