@rei-standard/amsg-server 2.6.0-next.27 → 2.6.0-next.28
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.
|
@@ -5423,7 +5423,7 @@ function createClientStateHandler(ctx) {
|
|
|
5423
5423
|
}
|
|
5424
5424
|
|
|
5425
5425
|
// src/server/lib/version.js
|
|
5426
|
-
var SERVER_VERSION = true ? "2.6.0-next.
|
|
5426
|
+
var SERVER_VERSION = true ? "2.6.0-next.28" : "0.0.0-dev";
|
|
5427
5427
|
|
|
5428
5428
|
// src/server/handlers/capabilities.js
|
|
5429
5429
|
var SERVER_FEATURES = Object.freeze([
|
|
@@ -5423,7 +5423,7 @@ function createClientStateHandler(ctx) {
|
|
|
5423
5423
|
}
|
|
5424
5424
|
|
|
5425
5425
|
// src/server/lib/version.js
|
|
5426
|
-
var SERVER_VERSION = true ? "2.6.0-next.
|
|
5426
|
+
var SERVER_VERSION = true ? "2.6.0-next.28" : "0.0.0-dev";
|
|
5427
5427
|
|
|
5428
5428
|
// src/server/handlers/capabilities.js
|
|
5429
5429
|
var SERVER_FEATURES = Object.freeze([
|
package/dist/cloudflare.cjs
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _chunkPBOY4LG7cjs = require('./chunk-PBOY4LG7.cjs');
|
|
30
30
|
require('./chunk-7NMQFTDJ.cjs');
|
|
31
31
|
|
|
32
32
|
|
|
@@ -56,4 +56,4 @@ require('./chunk-7NMQFTDJ.cjs');
|
|
|
56
56
|
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
exports.DEFAULT_MAX_REQUEST_BODY_BYTES =
|
|
59
|
+
exports.DEFAULT_MAX_REQUEST_BODY_BYTES = _chunkPBOY4LG7cjs.DEFAULT_MAX_REQUEST_BODY_BYTES; exports.MAX_PUSH_PAYLOAD_BYTES = _chunkPBOY4LG7cjs.MAX_PUSH_PAYLOAD_BYTES; exports.NonRetryableError = _chunkPBOY4LG7cjs.NonRetryableError; exports.PUSH_ENVELOPE_RESERVED_BYTES = _chunkPBOY4LG7cjs.PUSH_ENVELOPE_RESERVED_BYTES; exports.SCHEMA_VERSION = _chunkPBOY4LG7cjs.SCHEMA_VERSION; exports.WEB_PUSH_ENCRYPTION_OVERHEAD_BYTES = _chunkPBOY4LG7cjs.WEB_PUSH_ENCRYPTION_OVERHEAD_BYTES; exports.WEB_PUSH_MAX_BODY_BYTES = _chunkPBOY4LG7cjs.WEB_PUSH_MAX_BODY_BYTES; exports.advanceOccurrence = _chunkPBOY4LG7cjs.advanceOccurrence; exports.createD1Adapter = _chunkPBOY4LG7cjs.createD1Adapter; exports.createSingleUserCloudflareWorker = _chunkPBOY4LG7cjs.createSingleUserCloudflareWorker; exports.createSingleUserServer = _chunkPBOY4LG7cjs.createSingleUserServer; exports.createWebCryptoWebPush = _chunkPBOY4LG7cjs.createWebCryptoWebPush; exports.decryptFromStorage = _chunkPBOY4LG7cjs.decryptFromStorage; exports.decryptPayload = _chunkPBOY4LG7cjs.decryptPayload; exports.deriveUserEncryptionKey = _chunkPBOY4LG7cjs.deriveUserEncryptionKey; exports.encryptForStorage = _chunkPBOY4LG7cjs.encryptForStorage; exports.ensureSchema = _chunkPBOY4LG7cjs.ensureSchema; exports.getSchemaVersion = _chunkPBOY4LG7cjs.getSchemaVersion; exports.isNonRetryableError = _chunkPBOY4LG7cjs.isNonRetryableError; exports.isValidTimeZoneId = _chunkPBOY4LG7cjs.isValidTimeZoneId; exports.measurePushPayload = _chunkPBOY4LG7cjs.measurePushPayload; exports.nextFutureOccurrence = _chunkPBOY4LG7cjs.nextFutureOccurrence; exports.planNextOccurrence = _chunkPBOY4LG7cjs.planNextOccurrence; exports.readRequestBody = _chunkPBOY4LG7cjs.readRequestBody; exports.runScheduledTick = _chunkPBOY4LG7cjs.runScheduledTick; exports.runTask = _chunkPBOY4LG7cjs.runTask; exports.summarizeErrorCause = _chunkPBOY4LG7cjs.summarizeErrorCause;
|
package/dist/cloudflare.mjs
CHANGED
package/dist/index.cjs
CHANGED
|
@@ -71,7 +71,7 @@
|
|
|
71
71
|
|
|
72
72
|
|
|
73
73
|
|
|
74
|
-
var
|
|
74
|
+
var _chunkPBOY4LG7cjs = require('./chunk-PBOY4LG7.cjs');
|
|
75
75
|
require('./chunk-7NMQFTDJ.cjs');
|
|
76
76
|
|
|
77
77
|
// src/server/adapters/factory.js
|
|
@@ -105,7 +105,7 @@ async function createAdapter(config) {
|
|
|
105
105
|
// src/server/handlers/init-tenant.js
|
|
106
106
|
function createInitTenantHandler(ctx) {
|
|
107
107
|
async function POST(headers, body) {
|
|
108
|
-
const initSecret =
|
|
108
|
+
const initSecret = _chunkPBOY4LG7cjs.getHeader.call(void 0, headers, "x-init-secret");
|
|
109
109
|
if (ctx.tenant.initSecret && initSecret !== ctx.tenant.initSecret) {
|
|
110
110
|
return {
|
|
111
111
|
status: 401,
|
|
@@ -118,7 +118,7 @@ function createInitTenantHandler(ctx) {
|
|
|
118
118
|
}
|
|
119
119
|
};
|
|
120
120
|
}
|
|
121
|
-
const parsed =
|
|
121
|
+
const parsed = _chunkPBOY4LG7cjs.parseJsonBody.call(void 0, body);
|
|
122
122
|
if (!parsed.ok) {
|
|
123
123
|
return {
|
|
124
124
|
status: 400,
|
|
@@ -132,7 +132,7 @@ function createInitTenantHandler(ctx) {
|
|
|
132
132
|
const tenantId = payload.tenantId || void 0;
|
|
133
133
|
const driver = payload.driver;
|
|
134
134
|
const databaseUrl = payload.databaseUrl || payload.connectionString;
|
|
135
|
-
if (tenantId && !
|
|
135
|
+
if (tenantId && !_chunkPBOY4LG7cjs.isValidUUIDv4.call(void 0, tenantId)) {
|
|
136
136
|
return {
|
|
137
137
|
status: 400,
|
|
138
138
|
body: {
|
|
@@ -252,7 +252,7 @@ function createSendNotificationsHandler(ctx) {
|
|
|
252
252
|
}
|
|
253
253
|
};
|
|
254
254
|
}
|
|
255
|
-
const data = await
|
|
255
|
+
const data = await _chunkPBOY4LG7cjs.runScheduledTick.call(void 0, { ...ctx, db, masterKey });
|
|
256
256
|
return { status: 200, body: { success: true, data } };
|
|
257
257
|
}
|
|
258
258
|
return { POST };
|
|
@@ -274,16 +274,16 @@ function encryptConfig(config, kekBuffer) {
|
|
|
274
274
|
const plaintext = Buffer.from(JSON.stringify(config), "utf8");
|
|
275
275
|
const ciphertext = Buffer.concat([cipher.update(plaintext), cipher.final()]);
|
|
276
276
|
const authTag = cipher.getAuthTag();
|
|
277
|
-
return `v1.${
|
|
277
|
+
return `v1.${_chunkPBOY4LG7cjs.bytesToBase64Url.call(void 0, iv)}.${_chunkPBOY4LG7cjs.bytesToBase64Url.call(void 0, authTag)}.${_chunkPBOY4LG7cjs.bytesToBase64Url.call(void 0, ciphertext)}`;
|
|
278
278
|
}
|
|
279
279
|
function decryptConfig(encrypted, kekBuffer) {
|
|
280
280
|
const parts = String(encrypted || "").split(".");
|
|
281
281
|
if (parts.length !== 4 || parts[0] !== "v1") {
|
|
282
282
|
throw new Error("INVALID_TENANT_CONFIG");
|
|
283
283
|
}
|
|
284
|
-
const iv =
|
|
285
|
-
const authTag =
|
|
286
|
-
const ciphertext =
|
|
284
|
+
const iv = _chunkPBOY4LG7cjs.base64UrlToBytes.call(void 0, parts[1]);
|
|
285
|
+
const authTag = _chunkPBOY4LG7cjs.base64UrlToBytes.call(void 0, parts[2]);
|
|
286
|
+
const ciphertext = _chunkPBOY4LG7cjs.base64UrlToBytes.call(void 0, parts[3]);
|
|
287
287
|
const decipher = _crypto.createDecipheriv.call(void 0, "aes-256-gcm", kekBuffer, iv);
|
|
288
288
|
decipher.setAuthTag(authTag);
|
|
289
289
|
const plaintext = Buffer.concat([decipher.update(ciphertext), decipher.final()]).toString("utf8");
|
|
@@ -351,7 +351,7 @@ function createTenantBlobStore(options) {
|
|
|
351
351
|
// src/server/tenant/token.js
|
|
352
352
|
|
|
353
353
|
function sign(input, secret) {
|
|
354
|
-
return
|
|
354
|
+
return _chunkPBOY4LG7cjs.bytesToBase64Url.call(void 0, _crypto.createHmac.call(void 0, "sha256", secret).update(input).digest());
|
|
355
355
|
}
|
|
356
356
|
function nowEpochSeconds() {
|
|
357
357
|
return Math.floor(Date.now() / 1e3);
|
|
@@ -367,8 +367,8 @@ function createTenantToken(params, secret) {
|
|
|
367
367
|
v: 1
|
|
368
368
|
};
|
|
369
369
|
const header = { alg: "HS256", typ: "JWT" };
|
|
370
|
-
const encodedHeader =
|
|
371
|
-
const encodedPayload =
|
|
370
|
+
const encodedHeader = _chunkPBOY4LG7cjs.bytesToBase64Url.call(void 0, _chunkPBOY4LG7cjs.utf8.call(void 0, JSON.stringify(header)));
|
|
371
|
+
const encodedPayload = _chunkPBOY4LG7cjs.bytesToBase64Url.call(void 0, _chunkPBOY4LG7cjs.utf8.call(void 0, JSON.stringify(payload)));
|
|
372
372
|
const signingInput = `${encodedHeader}.${encodedPayload}`;
|
|
373
373
|
const signature = sign(signingInput, secret);
|
|
374
374
|
return `${signingInput}.${signature}`;
|
|
@@ -387,17 +387,17 @@ function verifyTenantToken(token, secret, options = {}) {
|
|
|
387
387
|
let receivedBytes;
|
|
388
388
|
let expectedBytes;
|
|
389
389
|
try {
|
|
390
|
-
receivedBytes =
|
|
391
|
-
expectedBytes =
|
|
390
|
+
receivedBytes = _chunkPBOY4LG7cjs.base64UrlToBytes.call(void 0, receivedSignature);
|
|
391
|
+
expectedBytes = _chunkPBOY4LG7cjs.base64UrlToBytes.call(void 0, expectedSignature);
|
|
392
392
|
} catch (e) {
|
|
393
393
|
throw new Error("INVALID_TENANT_AUTH");
|
|
394
394
|
}
|
|
395
|
-
if (!
|
|
395
|
+
if (!_chunkPBOY4LG7cjs.timingSafeEqualBytes.call(void 0, receivedBytes, expectedBytes)) {
|
|
396
396
|
throw new Error("INVALID_TENANT_AUTH");
|
|
397
397
|
}
|
|
398
398
|
let payload;
|
|
399
399
|
try {
|
|
400
|
-
payload = JSON.parse(
|
|
400
|
+
payload = JSON.parse(_chunkPBOY4LG7cjs.utf8Decode.call(void 0, _chunkPBOY4LG7cjs.base64UrlToBytes.call(void 0, encodedPayload)));
|
|
401
401
|
} catch (e2) {
|
|
402
402
|
throw new Error("INVALID_TENANT_AUTH");
|
|
403
403
|
}
|
|
@@ -621,15 +621,15 @@ async function createReiServer(config) {
|
|
|
621
621
|
return {
|
|
622
622
|
handlers: {
|
|
623
623
|
initTenant: createInitTenantHandler(ctx),
|
|
624
|
-
getUserKey:
|
|
625
|
-
scheduleMessage:
|
|
624
|
+
getUserKey: _chunkPBOY4LG7cjs.createGetUserKeyHandler.call(void 0, ctx),
|
|
625
|
+
scheduleMessage: _chunkPBOY4LG7cjs.createScheduleMessageHandler.call(void 0, ctx),
|
|
626
626
|
sendNotifications: createSendNotificationsHandler(ctx),
|
|
627
|
-
updateMessage:
|
|
628
|
-
cancelMessage:
|
|
629
|
-
messages:
|
|
630
|
-
getMessage:
|
|
631
|
-
pushSubscription:
|
|
632
|
-
llmCredentials:
|
|
627
|
+
updateMessage: _chunkPBOY4LG7cjs.createUpdateMessageHandler.call(void 0, ctx),
|
|
628
|
+
cancelMessage: _chunkPBOY4LG7cjs.createCancelMessageHandler.call(void 0, ctx),
|
|
629
|
+
messages: _chunkPBOY4LG7cjs.createMessagesHandler.call(void 0, ctx),
|
|
630
|
+
getMessage: _chunkPBOY4LG7cjs.createGetMessageHandler.call(void 0, ctx),
|
|
631
|
+
pushSubscription: _chunkPBOY4LG7cjs.createPushSubscriptionHandler.call(void 0, ctx),
|
|
632
|
+
llmCredentials: _chunkPBOY4LG7cjs.createLlmCredentialsHandler.call(void 0, ctx)
|
|
633
633
|
}
|
|
634
634
|
};
|
|
635
635
|
}
|
|
@@ -695,4 +695,4 @@ async function createReiServer(config) {
|
|
|
695
695
|
|
|
696
696
|
|
|
697
697
|
|
|
698
|
-
exports.CORS_ALLOW_HEADERS =
|
|
698
|
+
exports.CORS_ALLOW_HEADERS = _chunkPBOY4LG7cjs.CORS_ALLOW_HEADERS; exports.CORS_ALLOW_METHODS = _chunkPBOY4LG7cjs.CORS_ALLOW_METHODS; exports.CRED_ID_MAX_LENGTH = _chunkPBOY4LG7cjs.CRED_ID_MAX_LENGTH; exports.CRED_PUT_BATCH_MAX = _chunkPBOY4LG7cjs.CRED_PUT_BATCH_MAX; exports.CRED_REFS_MAX_ENTRIES = _chunkPBOY4LG7cjs.CRED_REFS_MAX_ENTRIES; exports.CRED_ROWS_PER_USER_MAX = _chunkPBOY4LG7cjs.CRED_ROWS_PER_USER_MAX; exports.DEFAULT_CLAIM_LEASE_MS = _chunkPBOY4LG7cjs.DEFAULT_CLAIM_LEASE_MS; exports.DEFAULT_HEARTBEAT_LEASE_TTL_MS = _chunkPBOY4LG7cjs.DEFAULT_HEARTBEAT_LEASE_TTL_MS; exports.DEFAULT_LEASE_HEARTBEAT_MS = _chunkPBOY4LG7cjs.DEFAULT_LEASE_HEARTBEAT_MS; exports.DEFAULT_MAX_REQUEST_BODY_BYTES = _chunkPBOY4LG7cjs.DEFAULT_MAX_REQUEST_BODY_BYTES; exports.DEFAULT_MAX_SCHEDULED_TASKS_PER_FIRE = _chunkPBOY4LG7cjs.DEFAULT_MAX_SCHEDULED_TASKS_PER_FIRE; exports.DEFAULT_MAX_TOOL_ITERATIONS = _chunkPBOY4LG7cjs.DEFAULT_MAX_TOOL_ITERATIONS; exports.DEFAULT_TOTAL_TIMEOUT_MS = _chunkPBOY4LG7cjs.DEFAULT_TOTAL_TIMEOUT_MS; exports.DeploymentConfigError = _chunkPBOY4LG7cjs.DeploymentConfigError; exports.MAX_PUSH_PAYLOAD_BYTES = _chunkPBOY4LG7cjs.MAX_PUSH_PAYLOAD_BYTES; exports.MAX_TASK_PAYLOAD_BYTES = _chunkPBOY4LG7cjs.MAX_TASK_PAYLOAD_BYTES; exports.MIN_SCHEDULE_LEAD_MS = _chunkPBOY4LG7cjs.MIN_SCHEDULE_LEAD_MS; exports.NonRetryableError = _chunkPBOY4LG7cjs.NonRetryableError; exports.PUSH_ENVELOPE_RESERVED_BYTES = _chunkPBOY4LG7cjs.PUSH_ENVELOPE_RESERVED_BYTES; exports.SCHEMA_VERSION = _chunkPBOY4LG7cjs.SCHEMA_VERSION; exports.WEB_PUSH_ENCRYPTION_OVERHEAD_BYTES = _chunkPBOY4LG7cjs.WEB_PUSH_ENCRYPTION_OVERHEAD_BYTES; exports.WEB_PUSH_MAX_BODY_BYTES = _chunkPBOY4LG7cjs.WEB_PUSH_MAX_BODY_BYTES; exports.advanceOccurrence = _chunkPBOY4LG7cjs.advanceOccurrence; exports.createAdapter = createAdapter; exports.createD1Adapter = _chunkPBOY4LG7cjs.createD1Adapter; exports.createReiServer = createReiServer; exports.createSingleUserCloudflareWorker = _chunkPBOY4LG7cjs.createSingleUserCloudflareWorker; exports.createSingleUserServer = _chunkPBOY4LG7cjs.createSingleUserServer; exports.createTenantToken = createTenantToken; exports.createWebCryptoWebPush = _chunkPBOY4LG7cjs.createWebCryptoWebPush; exports.decryptFromStorage = _chunkPBOY4LG7cjs.decryptFromStorage; exports.decryptPayload = _chunkPBOY4LG7cjs.decryptPayload; exports.deriveUserEncryptionKey = _chunkPBOY4LG7cjs.deriveUserEncryptionKey; exports.encryptForStorage = _chunkPBOY4LG7cjs.encryptForStorage; exports.ensureSchema = _chunkPBOY4LG7cjs.ensureSchema; exports.getSchemaVersion = _chunkPBOY4LG7cjs.getSchemaVersion; exports.hasChatCredRef = _chunkPBOY4LG7cjs.hasChatCredRef; exports.isNonRetryableError = _chunkPBOY4LG7cjs.isNonRetryableError; exports.isValidCredId = _chunkPBOY4LG7cjs.isValidCredId; exports.isValidISO8601 = _chunkPBOY4LG7cjs.isValidISO8601; exports.isValidTimeZoneId = _chunkPBOY4LG7cjs.isValidTimeZoneId; exports.isValidUUID = _chunkPBOY4LG7cjs.isValidUUID; exports.isValidUUIDv4 = _chunkPBOY4LG7cjs.isValidUUIDv4; exports.isValidUrl = _chunkPBOY4LG7cjs.isValidUrl; exports.measurePushPayload = _chunkPBOY4LG7cjs.measurePushPayload; exports.nextFutureOccurrence = _chunkPBOY4LG7cjs.nextFutureOccurrence; exports.planNextOccurrence = _chunkPBOY4LG7cjs.planNextOccurrence; exports.readRequestBody = _chunkPBOY4LG7cjs.readRequestBody; exports.resolveLlmCredential = _chunkPBOY4LG7cjs.resolveLlmCredential; exports.runScheduledTick = _chunkPBOY4LG7cjs.runScheduledTick; exports.runTask = _chunkPBOY4LG7cjs.runTask; exports.sanitizeErrorSummary = _chunkPBOY4LG7cjs.sanitizeErrorSummary; exports.summarizeErrorCause = _chunkPBOY4LG7cjs.summarizeErrorCause; exports.supportsLlmCredentialsStore = _chunkPBOY4LG7cjs.supportsLlmCredentialsStore; exports.validateAvatarUrl = _chunkPBOY4LG7cjs.validateAvatarUrl; exports.validateCredRefs = _chunkPBOY4LG7cjs.validateCredRefs; exports.validateCredValue = _chunkPBOY4LG7cjs.validateCredValue; exports.validateLlmMessagesArray = _chunkPBOY4LG7cjs.validateLlmMessagesArray; exports.validateScheduleMessagePayload = _chunkPBOY4LG7cjs.validateScheduleMessagePayload; exports.validateSplitPattern = _chunkPBOY4LG7cjs.validateSplitPattern; exports.verifyTenantToken = verifyTenantToken;
|
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.28",
|
|
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",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@netlify/blobs": "^8.1.0",
|
|
42
|
-
"@rei-standard/amsg-shared": "^0.4.0-next.
|
|
42
|
+
"@rei-standard/amsg-shared": "^0.4.0-next.10",
|
|
43
43
|
"web-push": "^3.6.7"
|
|
44
44
|
},
|
|
45
45
|
"peerDependencies": {
|