@rei-standard/amsg-server 2.6.0-next.0 → 2.6.0-next.1
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/dist/{chunk-PJAW56VN.mjs → chunk-6WA3XDPP.mjs} +33 -1
- package/dist/{chunk-YKDKY2LE.cjs → chunk-S5DV7AUH.cjs} +33 -1
- package/dist/{cloudflare-BwOfBtLF.d.cts → cloudflare-5Ryuxz10.d.cts} +54 -1
- package/dist/{cloudflare-BwOfBtLF.d.ts → cloudflare-5Ryuxz10.d.ts} +54 -1
- package/dist/cloudflare.cjs +2 -2
- package/dist/cloudflare.d.cts +1 -1
- package/dist/cloudflare.d.ts +1 -1
- package/dist/cloudflare.mjs +1 -1
- package/dist/index.cjs +11 -11
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
|
@@ -1425,6 +1425,35 @@ function createSingleUserInitHandler(ctx) {
|
|
|
1425
1425
|
return { POST };
|
|
1426
1426
|
}
|
|
1427
1427
|
|
|
1428
|
+
// src/server/handlers/vapid-public-key.js
|
|
1429
|
+
function createVapidPublicKeyHandler(ctx) {
|
|
1430
|
+
async function GET(url, headers) {
|
|
1431
|
+
const effectiveHeaders = headers || url || {};
|
|
1432
|
+
const tenantResult = await ctx.tenantManager.resolveTenant(effectiveHeaders);
|
|
1433
|
+
if (!tenantResult.ok) {
|
|
1434
|
+
return tenantResult.error;
|
|
1435
|
+
}
|
|
1436
|
+
const publicKey = ctx.vapid && ctx.vapid.publicKey;
|
|
1437
|
+
if (!publicKey) {
|
|
1438
|
+
return {
|
|
1439
|
+
status: 503,
|
|
1440
|
+
body: {
|
|
1441
|
+
success: false,
|
|
1442
|
+
error: {
|
|
1443
|
+
code: "VAPID_NOT_CONFIGURED",
|
|
1444
|
+
message: "VAPID \u516C\u94A5\u672A\u914D\u7F6E\uFF1A\u8BF7\u4E3A\u672C Worker \u8BBE\u7F6E VAPID_PUBLIC_KEY"
|
|
1445
|
+
}
|
|
1446
|
+
}
|
|
1447
|
+
};
|
|
1448
|
+
}
|
|
1449
|
+
return {
|
|
1450
|
+
status: 200,
|
|
1451
|
+
body: { success: true, publicKey }
|
|
1452
|
+
};
|
|
1453
|
+
}
|
|
1454
|
+
return { GET };
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1428
1457
|
// src/server/single-user.js
|
|
1429
1458
|
function createSingleUserServer(config) {
|
|
1430
1459
|
if (!config || !config.db) throw new Error("[amsg-server single-user] config.db is required");
|
|
@@ -1452,7 +1481,8 @@ function createSingleUserServer(config) {
|
|
|
1452
1481
|
scheduleMessage: createScheduleMessageHandler(ctx),
|
|
1453
1482
|
updateMessage: createUpdateMessageHandler(ctx),
|
|
1454
1483
|
cancelMessage: createCancelMessageHandler(ctx),
|
|
1455
|
-
messages: createMessagesHandler(ctx)
|
|
1484
|
+
messages: createMessagesHandler(ctx),
|
|
1485
|
+
vapidPublicKey: createVapidPublicKeyHandler(ctx)
|
|
1456
1486
|
}
|
|
1457
1487
|
};
|
|
1458
1488
|
}
|
|
@@ -1741,6 +1771,8 @@ function createSingleUserCloudflareWorker(buildConfig) {
|
|
|
1741
1771
|
result = await server.handlers.updateMessage.PUT(url, headers, await request.text());
|
|
1742
1772
|
} else if (method === "DELETE" && pathname.endsWith("/cancel-message")) {
|
|
1743
1773
|
result = await server.handlers.cancelMessage.DELETE(url, headers);
|
|
1774
|
+
} else if (method === "GET" && pathname.endsWith("/vapid-public-key")) {
|
|
1775
|
+
result = await server.handlers.vapidPublicKey.GET(url, headers);
|
|
1744
1776
|
} else {
|
|
1745
1777
|
result = { status: 404, body: { success: false, error: { code: "NOT_FOUND", message: "Unknown route" } } };
|
|
1746
1778
|
}
|
|
@@ -1425,6 +1425,35 @@ function createSingleUserInitHandler(ctx) {
|
|
|
1425
1425
|
return { POST };
|
|
1426
1426
|
}
|
|
1427
1427
|
|
|
1428
|
+
// src/server/handlers/vapid-public-key.js
|
|
1429
|
+
function createVapidPublicKeyHandler(ctx) {
|
|
1430
|
+
async function GET(url, headers) {
|
|
1431
|
+
const effectiveHeaders = headers || url || {};
|
|
1432
|
+
const tenantResult = await ctx.tenantManager.resolveTenant(effectiveHeaders);
|
|
1433
|
+
if (!tenantResult.ok) {
|
|
1434
|
+
return tenantResult.error;
|
|
1435
|
+
}
|
|
1436
|
+
const publicKey = ctx.vapid && ctx.vapid.publicKey;
|
|
1437
|
+
if (!publicKey) {
|
|
1438
|
+
return {
|
|
1439
|
+
status: 503,
|
|
1440
|
+
body: {
|
|
1441
|
+
success: false,
|
|
1442
|
+
error: {
|
|
1443
|
+
code: "VAPID_NOT_CONFIGURED",
|
|
1444
|
+
message: "VAPID \u516C\u94A5\u672A\u914D\u7F6E\uFF1A\u8BF7\u4E3A\u672C Worker \u8BBE\u7F6E VAPID_PUBLIC_KEY"
|
|
1445
|
+
}
|
|
1446
|
+
}
|
|
1447
|
+
};
|
|
1448
|
+
}
|
|
1449
|
+
return {
|
|
1450
|
+
status: 200,
|
|
1451
|
+
body: { success: true, publicKey }
|
|
1452
|
+
};
|
|
1453
|
+
}
|
|
1454
|
+
return { GET };
|
|
1455
|
+
}
|
|
1456
|
+
|
|
1428
1457
|
// src/server/single-user.js
|
|
1429
1458
|
function createSingleUserServer(config) {
|
|
1430
1459
|
if (!config || !config.db) throw new Error("[amsg-server single-user] config.db is required");
|
|
@@ -1452,7 +1481,8 @@ function createSingleUserServer(config) {
|
|
|
1452
1481
|
scheduleMessage: createScheduleMessageHandler(ctx),
|
|
1453
1482
|
updateMessage: createUpdateMessageHandler(ctx),
|
|
1454
1483
|
cancelMessage: createCancelMessageHandler(ctx),
|
|
1455
|
-
messages: createMessagesHandler(ctx)
|
|
1484
|
+
messages: createMessagesHandler(ctx),
|
|
1485
|
+
vapidPublicKey: createVapidPublicKeyHandler(ctx)
|
|
1456
1486
|
}
|
|
1457
1487
|
};
|
|
1458
1488
|
}
|
|
@@ -1741,6 +1771,8 @@ function createSingleUserCloudflareWorker(buildConfig) {
|
|
|
1741
1771
|
result = await server.handlers.updateMessage.PUT(url, headers, await request.text());
|
|
1742
1772
|
} else if (method === "DELETE" && pathname.endsWith("/cancel-message")) {
|
|
1743
1773
|
result = await server.handlers.cancelMessage.DELETE(url, headers);
|
|
1774
|
+
} else if (method === "GET" && pathname.endsWith("/vapid-public-key")) {
|
|
1775
|
+
result = await server.handlers.vapidPublicKey.GET(url, headers);
|
|
1744
1776
|
} else {
|
|
1745
1777
|
result = { status: 404, body: { success: false, error: { code: "NOT_FOUND", message: "Unknown route" } } };
|
|
1746
1778
|
}
|
|
@@ -2151,6 +2151,54 @@ function createSingleUserInitHandler(ctx) {
|
|
|
2151
2151
|
return { POST };
|
|
2152
2152
|
}
|
|
2153
2153
|
|
|
2154
|
+
/**
|
|
2155
|
+
* Handler: vapid-public-key
|
|
2156
|
+
*
|
|
2157
|
+
* Exposes this worker's own VAPID public key so a browser frontend can build a
|
|
2158
|
+
* Web Push subscription (`applicationServerKey`) at runtime. Each self-hosted
|
|
2159
|
+
* worker owns its keypair, so the key can't be baked into the frontend — it
|
|
2160
|
+
* pulls it from here.
|
|
2161
|
+
*
|
|
2162
|
+
* Auth funnels through the same resolveTenant as every other endpoint, so with
|
|
2163
|
+
* a serverToken configured this route requires `X-Client-Token` too (the
|
|
2164
|
+
* all-or-nothing contract). The public key itself is not a secret; gating it
|
|
2165
|
+
* just keeps every endpoint consistent.
|
|
2166
|
+
*
|
|
2167
|
+
* @param {Object} ctx - Server context ({ vapid, tenantManager, ... }).
|
|
2168
|
+
* @returns {{ GET: function }}
|
|
2169
|
+
*/
|
|
2170
|
+
|
|
2171
|
+
function createVapidPublicKeyHandler(ctx) {
|
|
2172
|
+
async function GET(url, headers) {
|
|
2173
|
+
const effectiveHeaders = headers || url || {};
|
|
2174
|
+
const tenantResult = await ctx.tenantManager.resolveTenant(effectiveHeaders);
|
|
2175
|
+
if (!tenantResult.ok) {
|
|
2176
|
+
return tenantResult.error;
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
const publicKey = ctx.vapid && ctx.vapid.publicKey;
|
|
2180
|
+
if (!publicKey) {
|
|
2181
|
+
return {
|
|
2182
|
+
status: 503,
|
|
2183
|
+
body: {
|
|
2184
|
+
success: false,
|
|
2185
|
+
error: {
|
|
2186
|
+
code: 'VAPID_NOT_CONFIGURED',
|
|
2187
|
+
message: 'VAPID 公钥未配置:请为本 Worker 设置 VAPID_PUBLIC_KEY'
|
|
2188
|
+
}
|
|
2189
|
+
}
|
|
2190
|
+
};
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2193
|
+
return {
|
|
2194
|
+
status: 200,
|
|
2195
|
+
body: { success: true, publicKey }
|
|
2196
|
+
};
|
|
2197
|
+
}
|
|
2198
|
+
|
|
2199
|
+
return { GET };
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2154
2202
|
/**
|
|
2155
2203
|
* Single-user ReiStandard server assembly.
|
|
2156
2204
|
*
|
|
@@ -2199,7 +2247,8 @@ function createSingleUserServer(config) {
|
|
|
2199
2247
|
scheduleMessage: createScheduleMessageHandler(ctx),
|
|
2200
2248
|
updateMessage: createUpdateMessageHandler(ctx),
|
|
2201
2249
|
cancelMessage: createCancelMessageHandler(ctx),
|
|
2202
|
-
messages: createMessagesHandler(ctx)
|
|
2250
|
+
messages: createMessagesHandler(ctx),
|
|
2251
|
+
vapidPublicKey: createVapidPublicKeyHandler(ctx)
|
|
2203
2252
|
}
|
|
2204
2253
|
};
|
|
2205
2254
|
}
|
|
@@ -2593,6 +2642,8 @@ function createWebCryptoWebPush(vapid = {}, { ttl = SCHEDULED_DEFAULT_TTL } = {}
|
|
|
2593
2642
|
* GET /messages → list
|
|
2594
2643
|
* PUT /update-message → patch
|
|
2595
2644
|
* DELETE /cancel-message → delete
|
|
2645
|
+
* GET /vapid-public-key → this worker's VAPID public key (for the frontend's
|
|
2646
|
+
* Web Push subscription); 503 if VAPID_PUBLIC_KEY unset
|
|
2596
2647
|
*
|
|
2597
2648
|
* CORS is opt-in: pass `cors: { origin }` in the config (a fixed origin, '*', or
|
|
2598
2649
|
* an (origin) => allowedOrigin function) to answer OPTIONS preflights and echo
|
|
@@ -2689,6 +2740,8 @@ function createSingleUserCloudflareWorker(buildConfig) {
|
|
|
2689
2740
|
result = await server.handlers.updateMessage.PUT(url, headers, await request.text());
|
|
2690
2741
|
} else if (method === 'DELETE' && pathname.endsWith('/cancel-message')) {
|
|
2691
2742
|
result = await server.handlers.cancelMessage.DELETE(url, headers);
|
|
2743
|
+
} else if (method === 'GET' && pathname.endsWith('/vapid-public-key')) {
|
|
2744
|
+
result = await server.handlers.vapidPublicKey.GET(url, headers);
|
|
2692
2745
|
} else {
|
|
2693
2746
|
result = { status: 404, body: { success: false, error: { code: 'NOT_FOUND', message: 'Unknown route' } } };
|
|
2694
2747
|
}
|
|
@@ -2151,6 +2151,54 @@ function createSingleUserInitHandler(ctx) {
|
|
|
2151
2151
|
return { POST };
|
|
2152
2152
|
}
|
|
2153
2153
|
|
|
2154
|
+
/**
|
|
2155
|
+
* Handler: vapid-public-key
|
|
2156
|
+
*
|
|
2157
|
+
* Exposes this worker's own VAPID public key so a browser frontend can build a
|
|
2158
|
+
* Web Push subscription (`applicationServerKey`) at runtime. Each self-hosted
|
|
2159
|
+
* worker owns its keypair, so the key can't be baked into the frontend — it
|
|
2160
|
+
* pulls it from here.
|
|
2161
|
+
*
|
|
2162
|
+
* Auth funnels through the same resolveTenant as every other endpoint, so with
|
|
2163
|
+
* a serverToken configured this route requires `X-Client-Token` too (the
|
|
2164
|
+
* all-or-nothing contract). The public key itself is not a secret; gating it
|
|
2165
|
+
* just keeps every endpoint consistent.
|
|
2166
|
+
*
|
|
2167
|
+
* @param {Object} ctx - Server context ({ vapid, tenantManager, ... }).
|
|
2168
|
+
* @returns {{ GET: function }}
|
|
2169
|
+
*/
|
|
2170
|
+
|
|
2171
|
+
function createVapidPublicKeyHandler(ctx) {
|
|
2172
|
+
async function GET(url, headers) {
|
|
2173
|
+
const effectiveHeaders = headers || url || {};
|
|
2174
|
+
const tenantResult = await ctx.tenantManager.resolveTenant(effectiveHeaders);
|
|
2175
|
+
if (!tenantResult.ok) {
|
|
2176
|
+
return tenantResult.error;
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2179
|
+
const publicKey = ctx.vapid && ctx.vapid.publicKey;
|
|
2180
|
+
if (!publicKey) {
|
|
2181
|
+
return {
|
|
2182
|
+
status: 503,
|
|
2183
|
+
body: {
|
|
2184
|
+
success: false,
|
|
2185
|
+
error: {
|
|
2186
|
+
code: 'VAPID_NOT_CONFIGURED',
|
|
2187
|
+
message: 'VAPID 公钥未配置:请为本 Worker 设置 VAPID_PUBLIC_KEY'
|
|
2188
|
+
}
|
|
2189
|
+
}
|
|
2190
|
+
};
|
|
2191
|
+
}
|
|
2192
|
+
|
|
2193
|
+
return {
|
|
2194
|
+
status: 200,
|
|
2195
|
+
body: { success: true, publicKey }
|
|
2196
|
+
};
|
|
2197
|
+
}
|
|
2198
|
+
|
|
2199
|
+
return { GET };
|
|
2200
|
+
}
|
|
2201
|
+
|
|
2154
2202
|
/**
|
|
2155
2203
|
* Single-user ReiStandard server assembly.
|
|
2156
2204
|
*
|
|
@@ -2199,7 +2247,8 @@ function createSingleUserServer(config) {
|
|
|
2199
2247
|
scheduleMessage: createScheduleMessageHandler(ctx),
|
|
2200
2248
|
updateMessage: createUpdateMessageHandler(ctx),
|
|
2201
2249
|
cancelMessage: createCancelMessageHandler(ctx),
|
|
2202
|
-
messages: createMessagesHandler(ctx)
|
|
2250
|
+
messages: createMessagesHandler(ctx),
|
|
2251
|
+
vapidPublicKey: createVapidPublicKeyHandler(ctx)
|
|
2203
2252
|
}
|
|
2204
2253
|
};
|
|
2205
2254
|
}
|
|
@@ -2593,6 +2642,8 @@ function createWebCryptoWebPush(vapid = {}, { ttl = SCHEDULED_DEFAULT_TTL } = {}
|
|
|
2593
2642
|
* GET /messages → list
|
|
2594
2643
|
* PUT /update-message → patch
|
|
2595
2644
|
* DELETE /cancel-message → delete
|
|
2645
|
+
* GET /vapid-public-key → this worker's VAPID public key (for the frontend's
|
|
2646
|
+
* Web Push subscription); 503 if VAPID_PUBLIC_KEY unset
|
|
2596
2647
|
*
|
|
2597
2648
|
* CORS is opt-in: pass `cors: { origin }` in the config (a fixed origin, '*', or
|
|
2598
2649
|
* an (origin) => allowedOrigin function) to answer OPTIONS preflights and echo
|
|
@@ -2689,6 +2740,8 @@ function createSingleUserCloudflareWorker(buildConfig) {
|
|
|
2689
2740
|
result = await server.handlers.updateMessage.PUT(url, headers, await request.text());
|
|
2690
2741
|
} else if (method === 'DELETE' && pathname.endsWith('/cancel-message')) {
|
|
2691
2742
|
result = await server.handlers.cancelMessage.DELETE(url, headers);
|
|
2743
|
+
} else if (method === 'GET' && pathname.endsWith('/vapid-public-key')) {
|
|
2744
|
+
result = await server.handlers.vapidPublicKey.GET(url, headers);
|
|
2692
2745
|
} else {
|
|
2693
2746
|
result = { status: 404, body: { success: false, error: { code: 'NOT_FOUND', message: 'Unknown route' } } };
|
|
2694
2747
|
}
|
package/dist/cloudflare.cjs
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
|
|
9
9
|
|
|
10
10
|
|
|
11
|
-
var
|
|
11
|
+
var _chunkS5DV7AUHcjs = require('./chunk-S5DV7AUH.cjs');
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
|
|
@@ -19,4 +19,4 @@ var _chunkYKDKY2LEcjs = require('./chunk-YKDKY2LE.cjs');
|
|
|
19
19
|
|
|
20
20
|
|
|
21
21
|
|
|
22
|
-
exports.createD1Adapter =
|
|
22
|
+
exports.createD1Adapter = _chunkS5DV7AUHcjs.createD1Adapter; exports.createSingleUserCloudflareWorker = _chunkS5DV7AUHcjs.createSingleUserCloudflareWorker; exports.createSingleUserServer = _chunkS5DV7AUHcjs.createSingleUserServer; exports.createWebCryptoWebPush = _chunkS5DV7AUHcjs.createWebCryptoWebPush; exports.decryptFromStorage = _chunkS5DV7AUHcjs.decryptFromStorage; exports.decryptPayload = _chunkS5DV7AUHcjs.decryptPayload; exports.deriveUserEncryptionKey = _chunkS5DV7AUHcjs.deriveUserEncryptionKey; exports.encryptForStorage = _chunkS5DV7AUHcjs.encryptForStorage; exports.runScheduledTick = _chunkS5DV7AUHcjs.runScheduledTick;
|
package/dist/cloudflare.d.cts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { f as createD1Adapter, h as createSingleUserCloudflareWorker, j as createSingleUserServer, k as createWebCryptoWebPush, l as decryptFromStorage, m as decryptPayload, n as deriveUserEncryptionKey, o as encryptForStorage, r as runScheduledTick } from './cloudflare-
|
|
1
|
+
export { f as createD1Adapter, h as createSingleUserCloudflareWorker, j as createSingleUserServer, k as createWebCryptoWebPush, l as decryptFromStorage, m as decryptPayload, n as deriveUserEncryptionKey, o as encryptForStorage, r as runScheduledTick } from './cloudflare-5Ryuxz10.cjs';
|
|
2
2
|
import 'crypto';
|
|
3
3
|
import '@rei-standard/amsg-shared';
|
package/dist/cloudflare.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { f as createD1Adapter, h as createSingleUserCloudflareWorker, j as createSingleUserServer, k as createWebCryptoWebPush, l as decryptFromStorage, m as decryptPayload, n as deriveUserEncryptionKey, o as encryptForStorage, r as runScheduledTick } from './cloudflare-
|
|
1
|
+
export { f as createD1Adapter, h as createSingleUserCloudflareWorker, j as createSingleUserServer, k as createWebCryptoWebPush, l as decryptFromStorage, m as decryptPayload, n as deriveUserEncryptionKey, o as encryptForStorage, r as runScheduledTick } from './cloudflare-5Ryuxz10.js';
|
|
2
2
|
import 'crypto';
|
|
3
3
|
import '@rei-standard/amsg-shared';
|
package/dist/cloudflare.mjs
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
|
|
24
24
|
|
|
25
25
|
|
|
26
|
-
var
|
|
26
|
+
var _chunkS5DV7AUHcjs = require('./chunk-S5DV7AUH.cjs');
|
|
27
27
|
|
|
28
28
|
// src/server/adapters/factory.js
|
|
29
29
|
async function createAdapter(config) {
|
|
@@ -56,7 +56,7 @@ async function createAdapter(config) {
|
|
|
56
56
|
// src/server/handlers/init-tenant.js
|
|
57
57
|
function createInitTenantHandler(ctx) {
|
|
58
58
|
async function POST(headers, body) {
|
|
59
|
-
const initSecret =
|
|
59
|
+
const initSecret = _chunkS5DV7AUHcjs.getHeader.call(void 0, headers, "x-init-secret");
|
|
60
60
|
if (ctx.tenant.initSecret && initSecret !== ctx.tenant.initSecret) {
|
|
61
61
|
return {
|
|
62
62
|
status: 401,
|
|
@@ -69,7 +69,7 @@ function createInitTenantHandler(ctx) {
|
|
|
69
69
|
}
|
|
70
70
|
};
|
|
71
71
|
}
|
|
72
|
-
const parsed =
|
|
72
|
+
const parsed = _chunkS5DV7AUHcjs.parseJsonBody.call(void 0, body);
|
|
73
73
|
if (!parsed.ok) {
|
|
74
74
|
return {
|
|
75
75
|
status: 400,
|
|
@@ -83,7 +83,7 @@ function createInitTenantHandler(ctx) {
|
|
|
83
83
|
const tenantId = payload.tenantId || void 0;
|
|
84
84
|
const driver = payload.driver;
|
|
85
85
|
const databaseUrl = payload.databaseUrl || payload.connectionString;
|
|
86
|
-
if (tenantId && !
|
|
86
|
+
if (tenantId && !_chunkS5DV7AUHcjs.isValidUUIDv4.call(void 0, tenantId)) {
|
|
87
87
|
return {
|
|
88
88
|
status: 400,
|
|
89
89
|
body: {
|
|
@@ -203,7 +203,7 @@ function createSendNotificationsHandler(ctx) {
|
|
|
203
203
|
}
|
|
204
204
|
};
|
|
205
205
|
}
|
|
206
|
-
const data = await
|
|
206
|
+
const data = await _chunkS5DV7AUHcjs.runScheduledTick.call(void 0, { ...ctx, db, masterKey });
|
|
207
207
|
return { status: 200, body: { success: true, data } };
|
|
208
208
|
}
|
|
209
209
|
return { POST };
|
|
@@ -575,12 +575,12 @@ async function createReiServer(config) {
|
|
|
575
575
|
return {
|
|
576
576
|
handlers: {
|
|
577
577
|
initTenant: createInitTenantHandler(ctx),
|
|
578
|
-
getUserKey:
|
|
579
|
-
scheduleMessage:
|
|
578
|
+
getUserKey: _chunkS5DV7AUHcjs.createGetUserKeyHandler.call(void 0, ctx),
|
|
579
|
+
scheduleMessage: _chunkS5DV7AUHcjs.createScheduleMessageHandler.call(void 0, ctx),
|
|
580
580
|
sendNotifications: createSendNotificationsHandler(ctx),
|
|
581
|
-
updateMessage:
|
|
582
|
-
cancelMessage:
|
|
583
|
-
messages:
|
|
581
|
+
updateMessage: _chunkS5DV7AUHcjs.createUpdateMessageHandler.call(void 0, ctx),
|
|
582
|
+
cancelMessage: _chunkS5DV7AUHcjs.createCancelMessageHandler.call(void 0, ctx),
|
|
583
|
+
messages: _chunkS5DV7AUHcjs.createMessagesHandler.call(void 0, ctx)
|
|
584
584
|
}
|
|
585
585
|
};
|
|
586
586
|
}
|
|
@@ -606,4 +606,4 @@ async function createReiServer(config) {
|
|
|
606
606
|
|
|
607
607
|
|
|
608
608
|
|
|
609
|
-
exports.createAdapter = createAdapter; exports.createD1Adapter =
|
|
609
|
+
exports.createAdapter = createAdapter; exports.createD1Adapter = _chunkS5DV7AUHcjs.createD1Adapter; exports.createReiServer = createReiServer; exports.createSingleUserCloudflareWorker = _chunkS5DV7AUHcjs.createSingleUserCloudflareWorker; exports.createSingleUserServer = _chunkS5DV7AUHcjs.createSingleUserServer; exports.createTenantToken = createTenantToken; exports.createWebCryptoWebPush = _chunkS5DV7AUHcjs.createWebCryptoWebPush; exports.decryptFromStorage = _chunkS5DV7AUHcjs.decryptFromStorage; exports.decryptPayload = _chunkS5DV7AUHcjs.decryptPayload; exports.deriveUserEncryptionKey = _chunkS5DV7AUHcjs.deriveUserEncryptionKey; exports.encryptForStorage = _chunkS5DV7AUHcjs.encryptForStorage; exports.isValidISO8601 = _chunkS5DV7AUHcjs.isValidISO8601; exports.isValidUUID = _chunkS5DV7AUHcjs.isValidUUID; exports.isValidUUIDv4 = _chunkS5DV7AUHcjs.isValidUUIDv4; exports.isValidUrl = _chunkS5DV7AUHcjs.isValidUrl; exports.runScheduledTick = _chunkS5DV7AUHcjs.runScheduledTick; exports.validateAvatarUrl = _chunkS5DV7AUHcjs.validateAvatarUrl; exports.validateLlmMessagesArray = _chunkS5DV7AUHcjs.validateLlmMessagesArray; exports.validateScheduleMessagePayload = _chunkS5DV7AUHcjs.validateScheduleMessagePayload; exports.validateSplitPattern = _chunkS5DV7AUHcjs.validateSplitPattern; exports.verifyTenantToken = verifyTenantToken;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as getHeader, p as parseJsonBody, i as isValidUUIDv4, r as runScheduledTick, c as createMessagesHandler, a as createCancelMessageHandler, b as createUpdateMessageHandler, d as createScheduleMessageHandler, e as createGetUserKeyHandler } from './cloudflare-
|
|
2
|
-
export { f as createD1Adapter, h as createSingleUserCloudflareWorker, j as createSingleUserServer, k as createWebCryptoWebPush, l as decryptFromStorage, m as decryptPayload, n as deriveUserEncryptionKey, o as encryptForStorage, q as isValidISO8601, s as isValidUUID, t as isValidUrl, v as validateLlmMessagesArray, u as validateScheduleMessagePayload, w as validateSplitPattern } from './cloudflare-
|
|
1
|
+
import { g as getHeader, p as parseJsonBody, i as isValidUUIDv4, r as runScheduledTick, c as createMessagesHandler, a as createCancelMessageHandler, b as createUpdateMessageHandler, d as createScheduleMessageHandler, e as createGetUserKeyHandler } from './cloudflare-5Ryuxz10.cjs';
|
|
2
|
+
export { f as createD1Adapter, h as createSingleUserCloudflareWorker, j as createSingleUserServer, k as createWebCryptoWebPush, l as decryptFromStorage, m as decryptPayload, n as deriveUserEncryptionKey, o as encryptForStorage, q as isValidISO8601, s as isValidUUID, t as isValidUrl, v as validateLlmMessagesArray, u as validateScheduleMessagePayload, w as validateSplitPattern } from './cloudflare-5Ryuxz10.cjs';
|
|
3
3
|
import { createHash, randomBytes, createCipheriv, createDecipheriv, timingSafeEqual, createHmac, randomUUID } from 'crypto';
|
|
4
4
|
import { normalizeVapidSubject } from '@rei-standard/amsg-shared';
|
|
5
5
|
export { validateAvatarUrl } from '@rei-standard/amsg-shared';
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as getHeader, p as parseJsonBody, i as isValidUUIDv4, r as runScheduledTick, c as createMessagesHandler, a as createCancelMessageHandler, b as createUpdateMessageHandler, d as createScheduleMessageHandler, e as createGetUserKeyHandler } from './cloudflare-
|
|
2
|
-
export { f as createD1Adapter, h as createSingleUserCloudflareWorker, j as createSingleUserServer, k as createWebCryptoWebPush, l as decryptFromStorage, m as decryptPayload, n as deriveUserEncryptionKey, o as encryptForStorage, q as isValidISO8601, s as isValidUUID, t as isValidUrl, v as validateLlmMessagesArray, u as validateScheduleMessagePayload, w as validateSplitPattern } from './cloudflare-
|
|
1
|
+
import { g as getHeader, p as parseJsonBody, i as isValidUUIDv4, r as runScheduledTick, c as createMessagesHandler, a as createCancelMessageHandler, b as createUpdateMessageHandler, d as createScheduleMessageHandler, e as createGetUserKeyHandler } from './cloudflare-5Ryuxz10.js';
|
|
2
|
+
export { f as createD1Adapter, h as createSingleUserCloudflareWorker, j as createSingleUserServer, k as createWebCryptoWebPush, l as decryptFromStorage, m as decryptPayload, n as deriveUserEncryptionKey, o as encryptForStorage, q as isValidISO8601, s as isValidUUID, t as isValidUrl, v as validateLlmMessagesArray, u as validateScheduleMessagePayload, w as validateSplitPattern } from './cloudflare-5Ryuxz10.js';
|
|
3
3
|
import { createHash, randomBytes, createCipheriv, createDecipheriv, timingSafeEqual, createHmac, randomUUID } from 'crypto';
|
|
4
4
|
import { normalizeVapidSubject } from '@rei-standard/amsg-shared';
|
|
5
5
|
export { validateAvatarUrl } from '@rei-standard/amsg-shared';
|
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rei-standard/amsg-server",
|
|
3
|
-
"version": "2.6.0-next.
|
|
3
|
+
"version": "2.6.0-next.1",
|
|
4
4
|
"description": "ReiStandard Active Messaging server SDK with pluggable database adapters. Three-axis push schema (messageKind / messageType / messageSubtype) from @rei-standard/amsg-shared. Auto-emits ReasoningPush when the LLM response carries reasoning_content.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|