@mathrunet/masamune_cloudflare_turso 3.2.3 → 3.2.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 +1 -1
- package/README.md +16 -6
- package/dist/functions/turso.js +6 -4
- package/dist/functions/turso.js.map +1 -1
- package/dist/functions/turso_token.js +5 -3
- package/dist/functions/turso_token.js.map +1 -1
- package/dist/lib/env.d.ts +3 -0
- package/dist/lib/env.js +16 -0
- package/dist/lib/env.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -51,9 +51,8 @@ import * as m from "@mathrunet/masamune_cloudflare_turso";
|
|
|
51
51
|
|
|
52
52
|
export default m.deploy([
|
|
53
53
|
m.Functions.turso({
|
|
54
|
-
organizationName:
|
|
55
|
-
groupName:
|
|
56
|
-
platformApiToken: TURSO_PLATFORM_API_TOKEN,
|
|
54
|
+
organizationName: "xxxx",
|
|
55
|
+
groupName: "xxxx",
|
|
57
56
|
autoCreateDatabase: true,
|
|
58
57
|
autoCreateTable: true,
|
|
59
58
|
autoMigrateAddColumns: true,
|
|
@@ -72,9 +71,8 @@ export default m.deploy([
|
|
|
72
71
|
},
|
|
73
72
|
}),
|
|
74
73
|
m.Functions.tursoToken({
|
|
75
|
-
organizationName:
|
|
76
|
-
groupName:
|
|
77
|
-
platformApiToken: TURSO_PLATFORM_API_TOKEN,
|
|
74
|
+
organizationName: "xxxx",
|
|
75
|
+
groupName: "xxxx",
|
|
78
76
|
rules: {
|
|
79
77
|
version: "1",
|
|
80
78
|
rules: {
|
|
@@ -88,6 +86,18 @@ export default m.deploy([
|
|
|
88
86
|
]);
|
|
89
87
|
```
|
|
90
88
|
|
|
89
|
+
Cloudflare bindings are also supported and take precedence over options:
|
|
90
|
+
|
|
91
|
+
- `TURSO_PLATFORM_API_TOKEN`
|
|
92
|
+
- `TURSO_ORGANIZATION_NAME`
|
|
93
|
+
- `TURSO_GROUP_NAME`
|
|
94
|
+
|
|
95
|
+
For production, store the Platform API token as a secret:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
wrangler secret put TURSO_PLATFORM_API_TOKEN
|
|
99
|
+
```
|
|
100
|
+
|
|
91
101
|
# Endpoints
|
|
92
102
|
|
|
93
103
|
The package exposes Turso through a single provider path.
|
package/dist/functions/turso.js
CHANGED
|
@@ -4,6 +4,7 @@ const crud_1 = require("../lib/crud");
|
|
|
4
4
|
const request_1 = require("../lib/request");
|
|
5
5
|
const rules_1 = require("../lib/rules");
|
|
6
6
|
const turso_client_1 = require("../lib/turso_client");
|
|
7
|
+
const env_1 = require("../lib/env");
|
|
7
8
|
module.exports = (hono, options, data) => {
|
|
8
9
|
hono.get("/", async (context) => handleCrud(context, options, "GET"));
|
|
9
10
|
hono.get("/database/:database/:table", async (context) => handleCrud(context, options, "GET"));
|
|
@@ -21,10 +22,11 @@ module.exports = (hono, options, data) => {
|
|
|
21
22
|
};
|
|
22
23
|
async function handleCrud(context, options, method) {
|
|
23
24
|
try {
|
|
25
|
+
const resolvedOptions = (0, env_1.resolveTursoWorkersOptionsFromEnv)(context, options);
|
|
24
26
|
const request = await (0, request_1.parseCrudRequest)(context);
|
|
25
|
-
const connection = await (0, turso_client_1.resolveDatabaseConnection)(request.database,
|
|
27
|
+
const connection = await (0, turso_client_1.resolveDatabaseConnection)(request.database, resolvedOptions);
|
|
26
28
|
const client = (0, turso_client_1.createTursoClient)(connection);
|
|
27
|
-
const engine = (0, rules_1.createTursoRulesEngine)(
|
|
29
|
+
const engine = (0, rules_1.createTursoRulesEngine)(resolvedOptions.rules);
|
|
28
30
|
const authentication = context.get("authentication");
|
|
29
31
|
const result = await engine.evaluate({
|
|
30
32
|
path: (0, rules_1.buildRulesPath)({
|
|
@@ -47,8 +49,8 @@ async function handleCrud(context, options, method) {
|
|
|
47
49
|
client,
|
|
48
50
|
method,
|
|
49
51
|
request,
|
|
50
|
-
autoCreateTable:
|
|
51
|
-
autoMigrateAddColumns:
|
|
52
|
+
autoCreateTable: resolvedOptions.autoCreateTable !== false,
|
|
53
|
+
autoMigrateAddColumns: resolvedOptions.autoMigrateAddColumns !== false,
|
|
52
54
|
});
|
|
53
55
|
return context.json({ data: response });
|
|
54
56
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"turso.js","sourceRoot":"","sources":["../../src/functions/turso.ts"],"names":[],"mappings":";;AAMA,sCAAiE;AACjE,4CAA6D;AAC7D,wCAIsB;AACtB,sDAG6B;
|
|
1
|
+
{"version":3,"file":"turso.js","sourceRoot":"","sources":["../../src/functions/turso.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ const request_1 = require("../lib/request");
|
|
|
4
4
|
const rules_1 = require("../lib/rules");
|
|
5
5
|
const turso_client_1 = require("../lib/turso_client");
|
|
6
6
|
const token_1 = require("../lib/token");
|
|
7
|
+
const env_1 = require("../lib/env");
|
|
7
8
|
module.exports = (hono, options, data) => {
|
|
8
9
|
hono.post("/", async (context) => handleToken(context, options));
|
|
9
10
|
hono.post("/database/:database", async (context) => handleToken(context, options));
|
|
@@ -12,10 +13,11 @@ module.exports = (hono, options, data) => {
|
|
|
12
13
|
};
|
|
13
14
|
async function handleToken(context, options) {
|
|
14
15
|
try {
|
|
16
|
+
const resolvedOptions = (0, env_1.resolveTursoWorkersOptionsFromEnv)(context, options);
|
|
15
17
|
const request = await (0, request_1.parseTokenRequest)(context);
|
|
16
|
-
const connection = await (0, turso_client_1.resolveDatabaseConnection)(request.database,
|
|
18
|
+
const connection = await (0, turso_client_1.resolveDatabaseConnection)(request.database, resolvedOptions);
|
|
17
19
|
const authentication = context.get("authentication");
|
|
18
|
-
const engine = (0, rules_1.createTursoRulesEngine)(
|
|
20
|
+
const engine = (0, rules_1.createTursoRulesEngine)(resolvedOptions.rules);
|
|
19
21
|
const access = await (0, rules_1.resolveDatabaseTokenAccess)({
|
|
20
22
|
engine,
|
|
21
23
|
database: request.database,
|
|
@@ -32,7 +34,7 @@ async function handleToken(context, options) {
|
|
|
32
34
|
database: request.database,
|
|
33
35
|
authorization: access.authorization,
|
|
34
36
|
ttlSeconds: request.ttlSeconds,
|
|
35
|
-
options,
|
|
37
|
+
options: resolvedOptions,
|
|
36
38
|
})
|
|
37
39
|
: undefined;
|
|
38
40
|
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,sDAAgE;AAChE,wCAAkD;
|
|
1
|
+
{"version":3,"file":"turso_token.js","sourceRoot":"","sources":["../../src/functions/turso_token.ts"],"names":[],"mappings":";;AAEA,4CAA8D;AAC9D,wCAGsB;AACtB,sDAAgE;AAChE,wCAAkD;AAClD,oCAA+D;AAE/D,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,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,UAAU,GAAG,MAAM,IAAA,wCAAyB,EAChD,OAAO,CAAC,QAAQ,EAChB,eAAe,CAChB,CAAC;QACF,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,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,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,MAAM,KAAK,GAAG,MAAM,CAAC,aAAa;YAChC,CAAC,CAAC,MAAM,IAAA,0BAAkB,EAAC;gBACvB,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,OAAO,EAAE,eAAe;aACzB,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QACd,OAAO,OAAO,CAAC,IAAI,CAAC;YAClB,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,mBAAS,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACnC,CAAC;AACH,CAAC"}
|
package/dist/lib/env.js
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveTursoWorkersOptionsFromEnv = resolveTursoWorkersOptionsFromEnv;
|
|
4
|
+
function resolveTursoWorkersOptionsFromEnv(context, options) {
|
|
5
|
+
const env = (context.env ?? {});
|
|
6
|
+
return {
|
|
7
|
+
...options,
|
|
8
|
+
organizationName: firstNonEmpty(env.TURSO_ORGANIZATION_NAME, options.organizationName),
|
|
9
|
+
groupName: firstNonEmpty(env.TURSO_GROUP_NAME, options.groupName),
|
|
10
|
+
platformApiToken: firstNonEmpty(env.TURSO_PLATFORM_API_TOKEN, options.platformApiToken),
|
|
11
|
+
};
|
|
12
|
+
}
|
|
13
|
+
function firstNonEmpty(...values) {
|
|
14
|
+
return values.find((value) => typeof value === "string" && value.length > 0);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=env.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"env.js","sourceRoot":"","sources":["../../src/lib/env.ts"],"names":[],"mappings":";;AASA,8EAiBC;AAjBD,SAAgB,iCAAiC,CAC/C,OAAgB,EAChB,OAA4B;IAE5B,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,CAAoB,CAAC;IACnD,OAAO;QACL,GAAG,OAAO;QACV,gBAAgB,EAAE,aAAa,CAC7B,GAAG,CAAC,uBAAuB,EAC3B,OAAO,CAAC,gBAAgB,CACzB;QACD,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,gBAAgB,EAAE,OAAO,CAAC,SAAS,CAAC;QACjE,gBAAgB,EAAE,aAAa,CAC7B,GAAG,CAAC,wBAAwB,EAC5B,OAAO,CAAC,gBAAgB,CACzB;KACF,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CACpB,GAAG,MAA8B;IAEjC,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC/E,CAAC"}
|
package/package.json
CHANGED