@mathrunet/masamune_cloudflare_turso 3.4.1 → 3.4.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 +35 -0
- package/dist/functions/turso_token.js +9 -0
- package/dist/functions/turso_token.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/database_adapter.d.ts +22 -20
- package/dist/lib/database_adapter.js +64 -38
- package/dist/lib/database_adapter.js.map +1 -1
- package/dist/lib/database_name.d.ts +11 -0
- package/dist/lib/database_name.js +26 -0
- package/dist/lib/database_name.js.map +1 -0
- package/dist/lib/request.js +8 -4
- package/dist/lib/request.js.map +1 -1
- package/dist/lib/token.js +2 -1
- package/dist/lib/token.js.map +1 -1
- package/dist/lib/turso_client.js +12 -11
- package/dist/lib/turso_client.js.map +1 -1
- package/package.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
## 3.4.
|
|
1
|
+
## 3.4.4 (2026-07-15)
|
|
2
2
|
|
|
3
3
|
|
|
4
4
|
### chore
|
|
@@ -351,6 +351,7 @@
|
|
|
351
351
|
* enhance SendGrid integration for Cloudflare Workers ([60f9976](https://github.com/mathrunet/node_masamune/commit/60f997643c223c74d9f2344d79e91d2337e4018f))
|
|
352
352
|
* Remove debug log statements from FirestoreNullConverter ([b110a47](https://github.com/mathrunet/node_masamune/commit/b110a47faac178d79e4810221a0c89a943417f59))
|
|
353
353
|
* Remove various cloud functions and tests, and add new tests for short video generation functionality. ([b5a2f34](https://github.com/mathrunet/node_masamune/commit/b5a2f34d474218c76cb25fdc1f6c0fe3b6c13413))
|
|
354
|
+
* reorganize exports by removing middlewares and consolidating adapters ([50b1851](https://github.com/mathrunet/node_masamune/commit/50b185104ed4bd725df81e5854eef1dc6348e781))
|
|
354
355
|
* restructure database rules for improved clarity and consistency ([b541875](https://github.com/mathrunet/node_masamune/commit/b5418755495ef5340657e532466659e5f3c8cf82))
|
|
355
356
|
* Save the interface to a separate file. ([141f8bd](https://github.com/mathrunet/node_masamune/commit/141f8bdf6b06538de2512e52b7fedb58366c4e8b))
|
|
356
357
|
* update Android token functions for Cloudflare Workers integration ([f3d602e](https://github.com/mathrunet/node_masamune/commit/f3d602ec1ac846471217d150ffcf166771f8f247))
|
package/README.md
CHANGED
|
@@ -62,6 +62,7 @@ export default m.deploy(
|
|
|
62
62
|
m.Functions.tursoToken({
|
|
63
63
|
organization: "xxxx",
|
|
64
64
|
group: "xxxx",
|
|
65
|
+
autoCreateDatabase: true,
|
|
65
66
|
}),
|
|
66
67
|
],
|
|
67
68
|
{
|
|
@@ -135,6 +136,10 @@ The previous query/body style is still accepted for compatibility:
|
|
|
135
136
|
|
|
136
137
|
The worker can create Turso databases and tables automatically.
|
|
137
138
|
|
|
139
|
+
Database creation is disabled by default. Set `autoCreateDatabase: true`
|
|
140
|
+
explicitly on every Turso function or adapter that is allowed to provision a
|
|
141
|
+
database. A missing database otherwise returns `404` and is never created.
|
|
142
|
+
|
|
138
143
|
```typescript
|
|
139
144
|
m.Functions.turso({
|
|
140
145
|
organization: TURSO_ORGANIZATION,
|
|
@@ -146,6 +151,36 @@ m.Functions.turso({
|
|
|
146
151
|
});
|
|
147
152
|
```
|
|
148
153
|
|
|
154
|
+
Worker-side integrations such as Purchase and Notification use
|
|
155
|
+
`TursoDatabaseAdapter`. It follows the same full-path contract as the CRUD
|
|
156
|
+
endpoints; the logical database name must be included in every path.
|
|
157
|
+
|
|
158
|
+
```typescript
|
|
159
|
+
const database = new m.TursoDatabaseAdapter({
|
|
160
|
+
options: {
|
|
161
|
+
organization: TURSO_ORGANIZATION,
|
|
162
|
+
group: TURSO_GROUP,
|
|
163
|
+
platformApiToken: TURSO_PLATFORM_API_TOKEN,
|
|
164
|
+
autoCreateDatabase: true,
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
await database.getDocument("database/user-1/userProfiles/user-1");
|
|
169
|
+
await database.query("database/user-1/capturedMonsters");
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
Paths without the `database/{database_name}/` prefix are rejected before a
|
|
173
|
+
Turso connection is resolved. `TursoDatabaseAdapter` has no fixed `database`
|
|
174
|
+
constructor option and never falls back to `main`.
|
|
175
|
+
|
|
176
|
+
Application database paths use a logical database name. When that name already
|
|
177
|
+
matches Turso's physical naming rules (lower-case letters, numbers, and hyphens,
|
|
178
|
+
up to 56 characters), it is used unchanged. Other logical names, including
|
|
179
|
+
mixed-case Firebase UIDs, are mapped deterministically to a lower-case physical
|
|
180
|
+
name before calling the Turso Platform API. Rules continue to evaluate the
|
|
181
|
+
original logical name, so a rule such as `{"type":"path","param":"uid"}` still
|
|
182
|
+
compares the authenticated Firebase UID without weakening authorization.
|
|
183
|
+
|
|
149
184
|
`groupName` must point to an existing Turso group. The region/location is set
|
|
150
185
|
when the group is created, not when each database is created.
|
|
151
186
|
|
|
@@ -12,15 +12,19 @@ module.exports = (hono, options, data) => {
|
|
|
12
12
|
return hono;
|
|
13
13
|
};
|
|
14
14
|
async function handleToken(context, options) {
|
|
15
|
+
let phase = "parse";
|
|
15
16
|
try {
|
|
16
17
|
const resolvedOptions = (0, env_1.resolveTursoWorkersOptionsFromEnv)(context, options);
|
|
17
18
|
const request = await (0, request_1.parseTokenRequest)(context);
|
|
19
|
+
phase = "connect";
|
|
18
20
|
const connection = await (0, turso_client_1.resolveDatabaseConnection)(request.database, resolvedOptions);
|
|
19
21
|
if (connection.created) {
|
|
22
|
+
phase = "database-ready";
|
|
20
23
|
const client = (0, turso_client_1.createTursoClient)(connection);
|
|
21
24
|
await (0, turso_client_1.waitForDatabaseReady)(client);
|
|
22
25
|
(0, turso_client_1.cacheDatabaseConnection)(request.database, resolvedOptions, connection);
|
|
23
26
|
}
|
|
27
|
+
phase = "rules";
|
|
24
28
|
const authentication = context.get("authentication");
|
|
25
29
|
const engine = (0, rules_1.createTursoRulesEngine)(resolvedOptions.rules);
|
|
26
30
|
const access = await (0, rules_1.resolveDatabaseTokenAccess)({
|
|
@@ -35,6 +39,7 @@ async function handleToken(context, options) {
|
|
|
35
39
|
error: "denied",
|
|
36
40
|
}, 403);
|
|
37
41
|
}
|
|
42
|
+
phase = "issue-token";
|
|
38
43
|
const token = access.authorization
|
|
39
44
|
? await (0, token_1.issueDatabaseToken)({
|
|
40
45
|
database: request.database,
|
|
@@ -52,6 +57,10 @@ async function handleToken(context, options) {
|
|
|
52
57
|
});
|
|
53
58
|
}
|
|
54
59
|
catch (error) {
|
|
60
|
+
console.error("Turso token request failed", {
|
|
61
|
+
phase,
|
|
62
|
+
error: error instanceof Error ? error.message : String(error),
|
|
63
|
+
});
|
|
55
64
|
return (0, request_1.jsonError)(context, error);
|
|
56
65
|
}
|
|
57
66
|
}
|
|
@@ -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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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,5 +12,6 @@ export * from "@mathrunet/masamune";
|
|
|
12
12
|
export * from "@mathrunet/masamune_cloudflare";
|
|
13
13
|
export * from "./functions";
|
|
14
14
|
export * from "./lib/database_adapter";
|
|
15
|
+
export * from "./lib/database_name";
|
|
15
16
|
export type { RulesAccessRule, RulesConfig, RulesEntry, RulesOperation, RulesOperationAlias, RulesOperationKey, } from "./lib/types";
|
|
16
17
|
export * from "./lib/types";
|
package/dist/index.js
CHANGED
|
@@ -28,5 +28,6 @@ __exportStar(require("@mathrunet/masamune"), exports);
|
|
|
28
28
|
__exportStar(require("@mathrunet/masamune_cloudflare"), exports);
|
|
29
29
|
__exportStar(require("./functions"), exports);
|
|
30
30
|
__exportStar(require("./lib/database_adapter"), exports);
|
|
31
|
+
__exportStar(require("./lib/database_name"), exports);
|
|
31
32
|
__exportStar(require("./lib/types"), exports);
|
|
32
33
|
//# 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;;;;;;;;;GASG;AACH,sDAAoC;AACpC,iEAA+C;AAC/C,8CAA4B;AAC5B,yDAAuC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;GASG;AACH,sDAAoC;AACpC,iEAA+C;AAC/C,8CAA4B;AAC5B,yDAAuC;AACvC,sDAAoC;AASpC,8CAA4B"}
|
|
@@ -4,15 +4,24 @@ import { TursoWorkersOptions } from "./types";
|
|
|
4
4
|
/**
|
|
5
5
|
* [DatabaseAdapterBase] implementation for Turso.
|
|
6
6
|
*
|
|
7
|
-
* Maps
|
|
7
|
+
* Maps `database/{database}/{collection}/{document}` paths to Turso databases
|
|
8
|
+
* and SQL tables. Collection names after the database prefix are joined with
|
|
9
|
+
* `__` to form the table name, and document IDs are stored in the `id` /
|
|
10
|
+
* `parent_id` columns.
|
|
8
11
|
*
|
|
9
|
-
* e.g. `user/{uid}` ->
|
|
12
|
+
* e.g. `database/{uid}/user/{uid}` -> database `{uid}`, table `user`
|
|
13
|
+
* (id = uid), `database/{uid}/user/{uid}/transaction/{tid}` -> database
|
|
14
|
+
* `{uid}`, table `user__transaction` (id = tid, parent_id = uid)
|
|
10
15
|
*
|
|
11
16
|
* Turso用の[DatabaseAdapterBase]の実装。
|
|
12
17
|
*
|
|
13
|
-
*
|
|
18
|
+
* `database/{database}/{collection}/{document}` 形式のパスをTursoデータベースと
|
|
19
|
+
* SQLテーブルにマッピングします。データベースプレフィックスより後のコレクション名は
|
|
20
|
+
* `__`で連結され、ドキュメントIDは`id`/`parent_id`カラムに保存されます。
|
|
14
21
|
*
|
|
15
|
-
* 例: `user/{uid}` ->
|
|
22
|
+
* 例: `database/{uid}/user/{uid}` -> DB `{uid}`、テーブル`user`(id = uid)、
|
|
23
|
+
* `database/{uid}/user/{uid}/transaction/{tid}` -> DB `{uid}`、
|
|
24
|
+
* テーブル`user__transaction`(id = tid、parent_id = uid)
|
|
16
25
|
*/
|
|
17
26
|
export declare class TursoDatabaseAdapter extends DatabaseAdapterBase {
|
|
18
27
|
/**
|
|
@@ -25,19 +34,15 @@ export declare class TursoDatabaseAdapter extends DatabaseAdapterBase {
|
|
|
25
34
|
*
|
|
26
35
|
* Tursoの接続オプション(organization、group、platformApiTokenなど)。
|
|
27
36
|
*
|
|
28
|
-
* @param config.database
|
|
29
|
-
* Logical database name (default: `main`).
|
|
30
|
-
*
|
|
31
|
-
* 論理データベース名(デフォルト: `main`)。
|
|
32
|
-
*
|
|
33
37
|
* @param config.client
|
|
34
|
-
* Directly injected Turso client. Used for testing
|
|
38
|
+
* Directly injected Turso client. Used for testing only and shared by every
|
|
39
|
+
* database path handled by this adapter.
|
|
35
40
|
*
|
|
36
|
-
* 直接注入するTurso
|
|
41
|
+
* 直接注入するTursoクライアント。テスト時のみ使用し、このアダプターが処理する
|
|
42
|
+
* すべてのデータベースパスで共有します。
|
|
37
43
|
*/
|
|
38
|
-
constructor({ options,
|
|
44
|
+
constructor({ options, client, }?: {
|
|
39
45
|
options?: TursoWorkersOptions | undefined;
|
|
40
|
-
database?: string | undefined;
|
|
41
46
|
client?: TursoClient | undefined;
|
|
42
47
|
});
|
|
43
48
|
/**
|
|
@@ -46,13 +51,8 @@ export declare class TursoDatabaseAdapter extends DatabaseAdapterBase {
|
|
|
46
51
|
* Tursoの接続オプション。
|
|
47
52
|
*/
|
|
48
53
|
readonly options: TursoWorkersOptions;
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
*
|
|
52
|
-
* 論理データベース名。
|
|
53
|
-
*/
|
|
54
|
-
readonly database: string;
|
|
55
|
-
private _client;
|
|
54
|
+
private readonly injectedClient;
|
|
55
|
+
private readonly clients;
|
|
56
56
|
private client;
|
|
57
57
|
private resolveOptions;
|
|
58
58
|
getDocument(path: string): Promise<DatabaseDocument | null>;
|
|
@@ -74,6 +74,7 @@ export declare class TursoDatabaseAdapter extends DatabaseAdapterBase {
|
|
|
74
74
|
* ドキュメントパスをテーブル名、ドキュメントID、親ドキュメントIDにパースします。
|
|
75
75
|
*/
|
|
76
76
|
export declare function parseDocumentPath(path: string): {
|
|
77
|
+
database: string;
|
|
77
78
|
table: string;
|
|
78
79
|
id: string;
|
|
79
80
|
parentId: string;
|
|
@@ -84,6 +85,7 @@ export declare function parseDocumentPath(path: string): {
|
|
|
84
85
|
* コレクションパスをテーブル名と親ドキュメントIDにパースします。
|
|
85
86
|
*/
|
|
86
87
|
export declare function parseCollectionPath(path: string): {
|
|
88
|
+
database: string;
|
|
87
89
|
table: string;
|
|
88
90
|
parentId: string;
|
|
89
91
|
};
|
|
@@ -9,20 +9,34 @@ const masamune_cloudflare_1 = require("@mathrunet/masamune_cloudflare");
|
|
|
9
9
|
const request_1 = require("./request");
|
|
10
10
|
const schema_1 = require("./schema");
|
|
11
11
|
const turso_client_1 = require("./turso_client");
|
|
12
|
-
const reservedColumns = new Set([
|
|
12
|
+
const reservedColumns = new Set([
|
|
13
|
+
"id",
|
|
14
|
+
"parent_id",
|
|
15
|
+
"created_at",
|
|
16
|
+
"updated_at",
|
|
17
|
+
]);
|
|
13
18
|
const atMarkColumnPrefix = "mf_at_";
|
|
14
19
|
/**
|
|
15
20
|
* [DatabaseAdapterBase] implementation for Turso.
|
|
16
21
|
*
|
|
17
|
-
* Maps
|
|
22
|
+
* Maps `database/{database}/{collection}/{document}` paths to Turso databases
|
|
23
|
+
* and SQL tables. Collection names after the database prefix are joined with
|
|
24
|
+
* `__` to form the table name, and document IDs are stored in the `id` /
|
|
25
|
+
* `parent_id` columns.
|
|
18
26
|
*
|
|
19
|
-
* e.g. `user/{uid}` ->
|
|
27
|
+
* e.g. `database/{uid}/user/{uid}` -> database `{uid}`, table `user`
|
|
28
|
+
* (id = uid), `database/{uid}/user/{uid}/transaction/{tid}` -> database
|
|
29
|
+
* `{uid}`, table `user__transaction` (id = tid, parent_id = uid)
|
|
20
30
|
*
|
|
21
31
|
* Turso用の[DatabaseAdapterBase]の実装。
|
|
22
32
|
*
|
|
23
|
-
*
|
|
33
|
+
* `database/{database}/{collection}/{document}` 形式のパスをTursoデータベースと
|
|
34
|
+
* SQLテーブルにマッピングします。データベースプレフィックスより後のコレクション名は
|
|
35
|
+
* `__`で連結され、ドキュメントIDは`id`/`parent_id`カラムに保存されます。
|
|
24
36
|
*
|
|
25
|
-
* 例: `user/{uid}` ->
|
|
37
|
+
* 例: `database/{uid}/user/{uid}` -> DB `{uid}`、テーブル`user`(id = uid)、
|
|
38
|
+
* `database/{uid}/user/{uid}/transaction/{tid}` -> DB `{uid}`、
|
|
39
|
+
* テーブル`user__transaction`(id = tid、parent_id = uid)
|
|
26
40
|
*/
|
|
27
41
|
class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
28
42
|
/**
|
|
@@ -35,21 +49,17 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
35
49
|
*
|
|
36
50
|
* Tursoの接続オプション(organization、group、platformApiTokenなど)。
|
|
37
51
|
*
|
|
38
|
-
* @param config.database
|
|
39
|
-
* Logical database name (default: `main`).
|
|
40
|
-
*
|
|
41
|
-
* 論理データベース名(デフォルト: `main`)。
|
|
42
|
-
*
|
|
43
52
|
* @param config.client
|
|
44
|
-
* Directly injected Turso client. Used for testing
|
|
53
|
+
* Directly injected Turso client. Used for testing only and shared by every
|
|
54
|
+
* database path handled by this adapter.
|
|
45
55
|
*
|
|
46
|
-
* 直接注入するTurso
|
|
56
|
+
* 直接注入するTursoクライアント。テスト時のみ使用し、このアダプターが処理する
|
|
57
|
+
* すべてのデータベースパスで共有します。
|
|
47
58
|
*/
|
|
48
|
-
constructor({ options,
|
|
59
|
+
constructor({ options, client, } = {}) {
|
|
49
60
|
super();
|
|
50
61
|
this.options = options ?? {};
|
|
51
|
-
this.
|
|
52
|
-
this._client = client ?? null;
|
|
62
|
+
this.injectedClient = client ?? null;
|
|
53
63
|
}
|
|
54
64
|
/**
|
|
55
65
|
* Turso connection options.
|
|
@@ -57,25 +67,25 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
57
67
|
* Tursoの接続オプション。
|
|
58
68
|
*/
|
|
59
69
|
options;
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return this._client;
|
|
70
|
+
injectedClient;
|
|
71
|
+
clients = new Map();
|
|
72
|
+
async client(database) {
|
|
73
|
+
if (this.injectedClient) {
|
|
74
|
+
return this.injectedClient;
|
|
75
|
+
}
|
|
76
|
+
const cached = this.clients.get(database);
|
|
77
|
+
if (cached) {
|
|
78
|
+
return cached;
|
|
70
79
|
}
|
|
71
|
-
const connection = await (0, turso_client_1.resolveDatabaseConnection)(
|
|
72
|
-
|
|
73
|
-
|
|
80
|
+
const connection = await (0, turso_client_1.resolveDatabaseConnection)(database, this.resolveOptions());
|
|
81
|
+
const client = (0, turso_client_1.createTursoClient)(connection);
|
|
82
|
+
this.clients.set(database, client);
|
|
83
|
+
return client;
|
|
74
84
|
}
|
|
75
85
|
// 接続時にオプションを解決します。オプションで指定されていない項目は
|
|
76
86
|
// `process.env`(nodejs_compatで注入されるWorkersシークレット)から補完します。
|
|
77
87
|
resolveOptions() {
|
|
78
|
-
const env = typeof process !== "undefined" ? process.env ?? {} : {};
|
|
88
|
+
const env = typeof process !== "undefined" ? (process.env ?? {}) : {};
|
|
79
89
|
return {
|
|
80
90
|
...this.options,
|
|
81
91
|
organization: firstNonEmptyValue(this.options.organization, env["TURSO_ORGANIZATION"]),
|
|
@@ -84,8 +94,8 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
84
94
|
};
|
|
85
95
|
}
|
|
86
96
|
async getDocument(path) {
|
|
87
|
-
const { table, id, parentId } = parseDocumentPath(path);
|
|
88
|
-
const client = await this.client();
|
|
97
|
+
const { database, table, id, parentId } = parseDocumentPath(path);
|
|
98
|
+
const client = await this.client(database);
|
|
89
99
|
let result;
|
|
90
100
|
try {
|
|
91
101
|
result = await client.execute({
|
|
@@ -109,9 +119,9 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
109
119
|
};
|
|
110
120
|
}
|
|
111
121
|
async saveDocument(path, data, options) {
|
|
112
|
-
const { table, id, parentId } = parseDocumentPath(path);
|
|
122
|
+
const { database, table, id, parentId } = parseDocumentPath(path);
|
|
113
123
|
const merge = options?.merge ?? false;
|
|
114
|
-
const client = await this.client();
|
|
124
|
+
const client = await this.client(database);
|
|
115
125
|
const existing = await this.loadExistingRow(client, table, id, parentId);
|
|
116
126
|
const now = Date.now();
|
|
117
127
|
const row = merge && existing ? { ...existing } : {};
|
|
@@ -149,8 +159,8 @@ class TursoDatabaseAdapter extends masamune_cloudflare_1.DatabaseAdapterBase {
|
|
|
149
159
|
});
|
|
150
160
|
}
|
|
151
161
|
async query(collectionPath, options) {
|
|
152
|
-
const { table, parentId } = parseCollectionPath(collectionPath);
|
|
153
|
-
const client = await this.client();
|
|
162
|
+
const { database, table, parentId } = parseCollectionPath(collectionPath);
|
|
163
|
+
const client = await this.client(database);
|
|
154
164
|
const clauses = ["parent_id = ?"];
|
|
155
165
|
const args = [parentId];
|
|
156
166
|
for (const where of options?.wheres ?? []) {
|
|
@@ -216,7 +226,7 @@ exports.TursoDatabaseAdapter = TursoDatabaseAdapter;
|
|
|
216
226
|
* ドキュメントパスをテーブル名、ドキュメントID、親ドキュメントIDにパースします。
|
|
217
227
|
*/
|
|
218
228
|
function parseDocumentPath(path) {
|
|
219
|
-
const segments =
|
|
229
|
+
const { database, segments } = splitDatabasePath(path, "document");
|
|
220
230
|
if (segments.length < 2 || segments.length % 2 !== 0) {
|
|
221
231
|
throw new request_1.HttpError(400, `Invalid document path: ${path}`);
|
|
222
232
|
}
|
|
@@ -227,6 +237,7 @@ function parseDocumentPath(path) {
|
|
|
227
237
|
documentIds.push(segments[i + 1]);
|
|
228
238
|
}
|
|
229
239
|
return {
|
|
240
|
+
database,
|
|
230
241
|
table: collections.join("__"),
|
|
231
242
|
id: documentIds[documentIds.length - 1],
|
|
232
243
|
parentId: documentIds.length > 1 ? documentIds[documentIds.length - 2] : "",
|
|
@@ -238,7 +249,7 @@ function parseDocumentPath(path) {
|
|
|
238
249
|
* コレクションパスをテーブル名と親ドキュメントIDにパースします。
|
|
239
250
|
*/
|
|
240
251
|
function parseCollectionPath(path) {
|
|
241
|
-
const segments =
|
|
252
|
+
const { database, segments } = splitDatabasePath(path, "collection");
|
|
242
253
|
if (segments.length < 1 || segments.length % 2 !== 1) {
|
|
243
254
|
throw new request_1.HttpError(400, `Invalid collection path: ${path}`);
|
|
244
255
|
}
|
|
@@ -251,6 +262,7 @@ function parseCollectionPath(path) {
|
|
|
251
262
|
}
|
|
252
263
|
}
|
|
253
264
|
return {
|
|
265
|
+
database,
|
|
254
266
|
table: collections.join("__"),
|
|
255
267
|
parentId,
|
|
256
268
|
};
|
|
@@ -285,7 +297,21 @@ function firstNonEmptyValue(...values) {
|
|
|
285
297
|
return values.find((value) => typeof value === "string" && value.length > 0);
|
|
286
298
|
}
|
|
287
299
|
function splitPath(path) {
|
|
288
|
-
return path
|
|
300
|
+
return path
|
|
301
|
+
.split("/")
|
|
302
|
+
.map((segment) => segment.trim())
|
|
303
|
+
.filter((segment) => segment.length > 0);
|
|
304
|
+
}
|
|
305
|
+
function splitDatabasePath(path, kind) {
|
|
306
|
+
const segments = splitPath(path);
|
|
307
|
+
if (segments.length < 3 || segments[0] !== "database") {
|
|
308
|
+
throw new request_1.HttpError(400, `Invalid ${kind} path: ${path}`);
|
|
309
|
+
}
|
|
310
|
+
const database = (0, request_1.validateLogicalName)(segments[1], "database");
|
|
311
|
+
return {
|
|
312
|
+
database,
|
|
313
|
+
segments: segments.slice(2),
|
|
314
|
+
};
|
|
289
315
|
}
|
|
290
316
|
function decodeDocumentData(row) {
|
|
291
317
|
const data = {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database_adapter.js","sourceRoot":"","sources":["../../src/lib/database_adapter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"database_adapter.js","sourceRoot":"","sources":["../../src/lib/database_adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { TursoWorkersOptions } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Resolves an application-level logical database name to a Turso-compatible
|
|
4
|
+
* physical database name.
|
|
5
|
+
*
|
|
6
|
+
* Logical names are kept unchanged when Turso already accepts them. Names
|
|
7
|
+
* containing upper-case characters, underscores, or more than 56 characters
|
|
8
|
+
* are mapped deterministically so that rules can continue to evaluate the
|
|
9
|
+
* original logical name.
|
|
10
|
+
*/
|
|
11
|
+
export declare function resolvePhysicalDatabaseName(database: string, options?: Pick<TursoWorkersOptions, "databasePrefix">): Promise<string>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvePhysicalDatabaseName = resolvePhysicalDatabaseName;
|
|
4
|
+
const request_1 = require("./request");
|
|
5
|
+
const tursoDatabaseNamePattern = /^[a-z0-9-]{1,56}$/;
|
|
6
|
+
/**
|
|
7
|
+
* Resolves an application-level logical database name to a Turso-compatible
|
|
8
|
+
* physical database name.
|
|
9
|
+
*
|
|
10
|
+
* Logical names are kept unchanged when Turso already accepts them. Names
|
|
11
|
+
* containing upper-case characters, underscores, or more than 56 characters
|
|
12
|
+
* are mapped deterministically so that rules can continue to evaluate the
|
|
13
|
+
* original logical name.
|
|
14
|
+
*/
|
|
15
|
+
async function resolvePhysicalDatabaseName(database, options = {}) {
|
|
16
|
+
const logicalName = (0, request_1.validateLogicalName)(database, "database");
|
|
17
|
+
const candidate = `${options.databasePrefix ?? ""}${logicalName}`;
|
|
18
|
+
if (tursoDatabaseNamePattern.test(candidate)) {
|
|
19
|
+
return candidate;
|
|
20
|
+
}
|
|
21
|
+
const bytes = new TextEncoder().encode(`masamune-turso:${candidate}`);
|
|
22
|
+
const digest = await globalThis.crypto.subtle.digest("SHA-256", bytes);
|
|
23
|
+
const hex = Array.from(new Uint8Array(digest), (value) => value.toString(16).padStart(2, "0")).join("");
|
|
24
|
+
return `db-${hex.slice(0, 53)}`;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=database_name.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database_name.js","sourceRoot":"","sources":["../../src/lib/database_name.ts"],"names":[],"mappings":";;AAcA,kEAeC;AA7BD,uCAAgD;AAGhD,MAAM,wBAAwB,GAAG,mBAAmB,CAAC;AAErD;;;;;;;;GAQG;AACI,KAAK,UAAU,2BAA2B,CAC/C,QAAgB,EAChB,UAAuD,EAAE;IAEzD,MAAM,WAAW,GAAG,IAAA,6BAAmB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,GAAG,WAAW,EAAE,CAAC;IAClE,IAAI,wBAAwB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,kBAAkB,SAAS,EAAE,CAAC,CAAC;IACtE,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACvE,MAAM,GAAG,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CACvD,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CACpC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACX,OAAO,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;AAClC,CAAC"}
|
package/dist/lib/request.js
CHANGED
|
@@ -24,7 +24,7 @@ async function parseCrudRequest(context) {
|
|
|
24
24
|
const body = method === "GET"
|
|
25
25
|
? parseGetRequest(context)
|
|
26
26
|
: await parseJsonBody(context);
|
|
27
|
-
const database = validateLogicalName(pathDatabase ?? body.database
|
|
27
|
+
const database = validateLogicalName(requiredString(pathDatabase ?? body.database, "database"), "database");
|
|
28
28
|
const table = validateIdentifier(requiredString(pathTable ?? body.table, "table"), "table");
|
|
29
29
|
const requestedIndexKey = pathIndexKey ?? body.indexKey;
|
|
30
30
|
const indexKey = requestedIndexKey
|
|
@@ -49,7 +49,7 @@ async function parseCrudRequest(context) {
|
|
|
49
49
|
async function parseTokenRequest(context) {
|
|
50
50
|
const pathDatabase = optionalParam(context, "database");
|
|
51
51
|
const body = await parseJsonBody(context);
|
|
52
|
-
const database = validateLogicalName(pathDatabase ?? body.database
|
|
52
|
+
const database = validateLogicalName(requiredString(pathDatabase ?? body.database, "database"), "database");
|
|
53
53
|
const operations = body.operations
|
|
54
54
|
? validateOperations(body.operations, "operations")
|
|
55
55
|
: undefined;
|
|
@@ -100,8 +100,12 @@ function jsonError(context, error) {
|
|
|
100
100
|
}
|
|
101
101
|
function parseGetRequest(context) {
|
|
102
102
|
const query = context.req.query();
|
|
103
|
-
const where = query.where
|
|
104
|
-
|
|
103
|
+
const where = query.where
|
|
104
|
+
? parseJsonString(query.where, "where")
|
|
105
|
+
: undefined;
|
|
106
|
+
const orderBy = query.orderBy
|
|
107
|
+
? parseJsonString(query.orderBy, "orderBy")
|
|
108
|
+
: undefined;
|
|
105
109
|
const limit = query.limit === undefined ? undefined : Number(query.limit);
|
|
106
110
|
return {
|
|
107
111
|
database: query.database,
|
package/dist/lib/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":";;;AAoBA,
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/lib/request.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/token.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.issueDatabaseToken = issueDatabaseToken;
|
|
4
|
+
const database_name_1 = require("./database_name");
|
|
4
5
|
async function issueDatabaseToken({ database, authorization, ttlSeconds, options, }) {
|
|
5
6
|
const now = Math.floor(Date.now() / 1000);
|
|
6
7
|
const maxTtl = options.maxTtlSeconds ?? 3600;
|
|
@@ -18,7 +19,7 @@ async function issueDatabaseToken({ database, authorization, ttlSeconds, options
|
|
|
18
19
|
};
|
|
19
20
|
}
|
|
20
21
|
async function issuePlatformDatabaseToken({ database, ttlSeconds, authorization, options, }) {
|
|
21
|
-
const databaseName =
|
|
22
|
+
const databaseName = await (0, database_name_1.resolvePhysicalDatabaseName)(database, options);
|
|
22
23
|
const organizationName = options.organization;
|
|
23
24
|
const platformApiToken = options.platformApiToken;
|
|
24
25
|
if (!organizationName || !platformApiToken) {
|
package/dist/lib/token.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/lib/token.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"token.js","sourceRoot":"","sources":["../../src/lib/token.ts"],"names":[],"mappings":";;AASA,gDAyBC;AAhCD,mDAA8D;AAOvD,KAAK,UAAU,kBAAkB,CAAC,EACvC,QAAQ,EACR,aAAa,EACb,UAAU,EACV,OAAO,GAMR;IACC,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IAC7D,MAAM,SAAS,GAAG,GAAG,GAAG,GAAG,CAAC;IAC5B,MAAM,GAAG,GAAG,MAAM,0BAA0B,CAAC;QAC3C,QAAQ;QACR,UAAU,EAAE,GAAG;QACf,aAAa;QACb,OAAO;KACR,CAAC,CAAC;IACH,OAAO;QACL,KAAK,EAAE,GAAG;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,0BAA0B,CAAC,EACxC,QAAQ,EACR,UAAU,EACV,aAAa,EACb,OAAO,GAMR;IACC,MAAM,YAAY,GAAG,MAAM,IAAA,2CAA2B,EAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAC1E,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAClD,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,0CAA0C;QACxC,GAAG,kBAAkB,CAAC,gBAAgB,CAAC,cAAc,kBAAkB,CAAC,YAAY,CAAC,EAAE;QACvF,2BAA2B,UAAU,mBAAmB,aAAa,EAAE,EACzE;QACE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,UAAU,gBAAgB,EAAE;SAC5C;KACF,CACF,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,gCAAgC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAqB,CAAC;IACzD,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,IAAI,CAAC,GAAG,CAAC;AAClB,CAAC"}
|
package/dist/lib/turso_client.js
CHANGED
|
@@ -7,8 +7,9 @@ exports.clearDatabaseConnectionCache = clearDatabaseConnectionCache;
|
|
|
7
7
|
exports.waitForDatabaseReady = waitForDatabaseReady;
|
|
8
8
|
exports.isTransientTursoError = isTransientTursoError;
|
|
9
9
|
const request_1 = require("./request");
|
|
10
|
+
const database_name_1 = require("./database_name");
|
|
10
11
|
const connectionCache = new Map();
|
|
11
|
-
const readyRetryDelaysMs = [250, 500, 1000, 2000, 4000];
|
|
12
|
+
const readyRetryDelaysMs = [250, 500, 1000, 2000, 4000, 8000];
|
|
12
13
|
function createTursoClient(connection) {
|
|
13
14
|
const { createClient } = require("@tursodatabase/serverless/compat");
|
|
14
15
|
return createClient({
|
|
@@ -18,14 +19,15 @@ function createTursoClient(connection) {
|
|
|
18
19
|
}
|
|
19
20
|
async function resolveDatabaseConnection(database, options) {
|
|
20
21
|
const normalizedDatabase = (0, request_1.validateLogicalName)(database, "database");
|
|
21
|
-
const
|
|
22
|
-
const cached = connectionCache.get(
|
|
22
|
+
const cacheKey = databaseCacheKey(normalizedDatabase, options);
|
|
23
|
+
const cached = connectionCache.get(cacheKey);
|
|
23
24
|
if (cached) {
|
|
24
25
|
return {
|
|
25
26
|
...cached,
|
|
26
27
|
created: false,
|
|
27
28
|
};
|
|
28
29
|
}
|
|
30
|
+
const databaseName = await (0, database_name_1.resolvePhysicalDatabaseName)(normalizedDatabase, options);
|
|
29
31
|
const created = await ensurePlatformDatabase(databaseName, options);
|
|
30
32
|
if (!created.created) {
|
|
31
33
|
cacheDatabaseConnection(database, options, created);
|
|
@@ -34,8 +36,7 @@ async function resolveDatabaseConnection(database, options) {
|
|
|
34
36
|
}
|
|
35
37
|
function cacheDatabaseConnection(database, options, connection) {
|
|
36
38
|
const normalizedDatabase = (0, request_1.validateLogicalName)(database, "database");
|
|
37
|
-
|
|
38
|
-
connectionCache.set(databaseName, {
|
|
39
|
+
connectionCache.set(databaseCacheKey(normalizedDatabase, options), {
|
|
39
40
|
url: connection.url,
|
|
40
41
|
authToken: connection.authToken,
|
|
41
42
|
created: false,
|
|
@@ -43,8 +44,10 @@ function cacheDatabaseConnection(database, options, connection) {
|
|
|
43
44
|
}
|
|
44
45
|
function clearDatabaseConnectionCache(database, options) {
|
|
45
46
|
const normalizedDatabase = (0, request_1.validateLogicalName)(database, "database");
|
|
46
|
-
|
|
47
|
-
|
|
47
|
+
connectionCache.delete(databaseCacheKey(normalizedDatabase, options));
|
|
48
|
+
}
|
|
49
|
+
function databaseCacheKey(database, options) {
|
|
50
|
+
return `${options.databasePrefix ?? ""}\u0000${database}`;
|
|
48
51
|
}
|
|
49
52
|
async function waitForDatabaseReady(client) {
|
|
50
53
|
let lastError;
|
|
@@ -81,7 +84,7 @@ async function ensurePlatformDatabase(databaseName, options) {
|
|
|
81
84
|
headers,
|
|
82
85
|
});
|
|
83
86
|
if (existing.status === 404) {
|
|
84
|
-
if (options.autoCreateDatabase
|
|
87
|
+
if (options.autoCreateDatabase !== true) {
|
|
85
88
|
throw new request_1.HttpError(404, `Database was not found: ${databaseName}`);
|
|
86
89
|
}
|
|
87
90
|
const response = await fetch(`${baseUrl}/databases`, {
|
|
@@ -169,9 +172,7 @@ function findDatabaseUrl(value) {
|
|
|
169
172
|
const record = value;
|
|
170
173
|
const hostname = record.Hostname ?? record.hostname;
|
|
171
174
|
if (typeof hostname === "string" && hostname.length > 0) {
|
|
172
|
-
return hostname.startsWith("libsql://")
|
|
173
|
-
? hostname
|
|
174
|
-
: `libsql://${hostname}`;
|
|
175
|
+
return hostname.startsWith("libsql://") ? hostname : `libsql://${hostname}`;
|
|
175
176
|
}
|
|
176
177
|
for (const item of Object.values(record)) {
|
|
177
178
|
const found = findDatabaseUrl(item);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turso_client.js","sourceRoot":"","sources":["../../src/lib/turso_client.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"turso_client.js","sourceRoot":"","sources":["../../src/lib/turso_client.ts"],"names":[],"mappings":";;AA8BA,8CAQC;AAED,8DAsBC;AAED,0DAWC;AAED,oEAMC;AASD,oDAkBC;AAuID,sDASC;AA7PD,uCAA2D;AAC3D,mDAA8D;AAyB9D,MAAM,eAAe,GAAG,IAAI,GAAG,EAAmC,CAAC;AACnE,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAE9D,SAAgB,iBAAiB,CAC/B,UAAmC;IAEnC,MAAM,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC,kCAAkC,CAAC,CAAC;IACrE,OAAO,YAAY,CAAC;QAClB,GAAG,EAAE,UAAU,CAAC,GAAG;QACnB,SAAS,EAAE,UAAU,CAAC,SAAS;KAChC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAC7C,QAAgB,EAChB,OAA4B;IAE5B,MAAM,kBAAkB,GAAG,IAAA,6BAAmB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;IAC/D,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO;YACL,GAAG,MAAM;YACT,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,MAAM,IAAA,2CAA2B,EACpD,kBAAkB,EAClB,OAAO,CACR,CAAC;IACF,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IACpE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,uBAAuB,CACrC,QAAgB,EAChB,OAA4B,EAC5B,UAAmC;IAEnC,MAAM,kBAAkB,GAAG,IAAA,6BAAmB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrE,eAAe,CAAC,GAAG,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,EAAE;QACjE,GAAG,EAAE,UAAU,CAAC,GAAG;QACnB,SAAS,EAAE,UAAU,CAAC,SAAS;QAC/B,OAAO,EAAE,KAAK;KACf,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,4BAA4B,CAC1C,QAAgB,EAChB,OAA4B;IAE5B,MAAM,kBAAkB,GAAG,IAAA,6BAAmB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACrE,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,gBAAgB,CACvB,QAAgB,EAChB,OAA4B;IAE5B,OAAO,GAAG,OAAO,CAAC,cAAc,IAAI,EAAE,SAAS,QAAQ,EAAE,CAAC;AAC5D,CAAC;AAEM,KAAK,UAAU,oBAAoB,CAAC,MAAmB;IAC5D,IAAI,SAAkB,CAAC;IACvB,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC;QACtE,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;YACjC,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAC;YAClB,IACE,CAAC,qBAAqB,CAAC,KAAK,CAAC;gBAC7B,OAAO,KAAK,kBAAkB,CAAC,MAAM,EACrC,CAAC;gBACD,MAAM,KAAK,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IACD,MAAM,SAAS,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,YAAoB,EACpB,OAA4B;IAE5B,MAAM,gBAAgB,GAAG,OAAO,CAAC,YAAY,CAAC;IAC9C,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAClD,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC3C,MAAM,IAAI,mBAAS,CACjB,GAAG,EACH,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,2CAA2C,kBAAkB,CAAC,gBAAgB,CAAC,EAAE,CAAC;IAClG,MAAM,OAAO,GAAG;QACd,aAAa,EAAE,UAAU,gBAAgB,EAAE;QAC3C,cAAc,EAAE,kBAAkB;KACnC,CAAC;IACF,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,cAAc,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAC1D;QACE,OAAO;KACR,CACF,CAAC;IACF,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,kBAAkB,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,mBAAS,CAAC,GAAG,EAAE,2BAA2B,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,YAAY,EAAE;YACnD,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,IAAI,EAAE,YAAY;gBAClB,KAAK,EAAE,SAAS;aACjB,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,mBAAS,CACjB,GAAG,EACH,oCAAoC,QAAQ,CAAC,MAAM,EAAE,CACtD,CAAC;QACJ,CAAC;QACD,OAAO,GAAG,IAAI,CAAC;IACjB,CAAC;SAAM,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACxB,MAAM,IAAI,mBAAS,CACjB,GAAG,EACH,iCAAiC,QAAQ,CAAC,MAAM,EAAE,CACnD,CAAC;IACJ,CAAC;IAED,MAAM,YAAY,GAAG,MAAM,KAAK,CAC9B,GAAG,OAAO,cAAc,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAC1D;QACE,OAAO;KACR,CACF,CAAC;IACF,IAAI,CAAC,YAAY,CAAC,EAAE,EAAE,CAAC;QACrB,MAAM,IAAI,mBAAS,CACjB,GAAG,EACH,qCAAqC,YAAY,CAAC,MAAM,EAAE,CAC3D,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,YAAY,CAAC,IAAI,EAAE,CAA4B,CAAC;IACpE,MAAM,GAAG,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,MAAM,IAAI,mBAAS,CACjB,GAAG,EACH,4DAA4D,CAC7D,CAAC;IACJ,CAAC;IACD,MAAM,SAAS,GAAG,MAAM,mBAAmB,CAAC,OAAO,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,mBAAS,CACjB,GAAG,EACH,mEAAmE,CACpE,CAAC;IACJ,CAAC;IACD,OAAO;QACL,GAAG;QACH,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,OAAe,EACf,YAAoB,EACpB,OAA+B;IAE/B,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,GAAG,OAAO,cAAc,kBAAkB,CAAC,YAAY,CAAC,cAAc,EACtE;QACE,MAAM,EAAE,MAAM;QACd,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;KACzB,CACF,CAAC;IACF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,mBAAS,CACjB,GAAG,EACH,0CAA0C,QAAQ,CAAC,MAAM,EAAE,CAC5D,CAAC;IACJ,CAAC;IACD,MAAM,IAAI,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAA4B,CAAC;IAChE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,SAAS,wBAAwB,CAAC,OAA4B;IAC5D,MAAM,SAAS,GAAG,aAAa,CAC7B,OAAO,CAAC,KAAK,EACb,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,SAAS,CACtE,CAAC;IACF,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,mBAAS,CACjB,GAAG,EACH,6DAA6D,CAC9D,CAAC;IACJ,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,GAAG,MAA8B;IACtD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,OAAO,GAAG,KAAK,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO,EAAE,CAAC;YACZ,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,qBAAqB,CAAC,KAAc;IAClD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,OAAO,CACL,+GAA+G,CAAC,IAAI,CAClH,OAAO,CACR;QACD,6CAA6C,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3D,+BAA+B,CAAC,IAAI,CAAC,OAAO,CAAC,CAC9C,CAAC;AACJ,CAAC;AAED,SAAS,KAAK,CAAC,YAAoB;IACjC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,SAAS,eAAe,CAAC,KAAc;IACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC5D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,KAAgC,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC;IACpD,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,OAAO,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,QAAQ,EAAE,CAAC;IAC9E,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mathrunet/masamune_cloudflare_turso",
|
|
3
|
-
"version": "3.4.
|
|
3
|
+
"version": "3.4.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",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"homepage": "https://github.com/mathrunet/node_masamune#readme",
|
|
42
42
|
"dependencies": {
|
|
43
43
|
"@mathrunet/masamune": "^3.10.4",
|
|
44
|
-
"@mathrunet/masamune_cloudflare": "^3.3.
|
|
44
|
+
"@mathrunet/masamune_cloudflare": "^3.3.3",
|
|
45
45
|
"@tursodatabase/serverless": "^1.2.3",
|
|
46
46
|
"hono": "^4.12.27",
|
|
47
47
|
"typescript": "^5.9.2"
|