@openclaw/nextcloud-talk 2026.5.31-beta.3 → 2026.5.31-beta.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/dist/api.js CHANGED
@@ -1,2 +1,2 @@
1
- import { t as nextcloudTalkPlugin } from "./channel-BiDCVokP.js";
1
+ import { t as nextcloudTalkPlugin } from "./channel-5flc23d2.js";
2
2
  export { nextcloudTalkPlugin };
@@ -1216,83 +1216,85 @@ function createNextcloudTalkWebhookServer(opts) {
1216
1216
  exemptLoopback: false,
1217
1217
  pruneIntervalMs: authRateLimitWindowMs
1218
1218
  });
1219
- const server = createServer(async (req, res) => {
1220
- if (req.url === HEALTH_PATH) {
1221
- res.writeHead(200, { "Content-Type": "text/plain" });
1222
- res.end("ok");
1223
- return;
1224
- }
1225
- if (req.url !== path || req.method !== "POST") {
1226
- res.writeHead(404);
1227
- res.end();
1228
- return;
1229
- }
1230
- const clientIp = req.socket.remoteAddress ?? "unknown";
1231
- if (!webhookAuthRateLimiter.check(clientIp, WEBHOOK_AUTH_RATE_LIMIT_SCOPE).allowed) {
1232
- res.writeHead(429);
1233
- res.end("Too Many Requests");
1234
- return;
1235
- }
1236
- try {
1237
- const headers = validateWebhookHeaders({
1238
- req,
1239
- res,
1240
- isBackendAllowed
1241
- });
1242
- if (!headers) return;
1243
- const body = await readBody(req, maxBodyBytes);
1244
- if (!verifyWebhookSignature({
1245
- headers,
1246
- body,
1247
- secret,
1248
- res,
1249
- clientIp,
1250
- authRateLimiter: webhookAuthRateLimiter
1251
- })) return;
1252
- const decoded = decodeWebhookCreateMessage({
1253
- body,
1254
- res
1255
- });
1256
- if (decoded.kind === "invalid") return;
1257
- if (decoded.kind === "ignore") {
1258
- writeJsonResponse(res, 200);
1219
+ const server = createServer((req, res) => {
1220
+ (async () => {
1221
+ if (req.url === HEALTH_PATH) {
1222
+ res.writeHead(200, { "Content-Type": "text/plain" });
1223
+ res.end("ok");
1259
1224
  return;
1260
1225
  }
1261
- const message = decoded.message;
1262
- if (processMessage) {
1226
+ if (req.url !== path || req.method !== "POST") {
1227
+ res.writeHead(404);
1228
+ res.end();
1229
+ return;
1230
+ }
1231
+ const clientIp = req.socket.remoteAddress ?? "unknown";
1232
+ if (!webhookAuthRateLimiter.check(clientIp, WEBHOOK_AUTH_RATE_LIMIT_SCOPE).allowed) {
1233
+ res.writeHead(429);
1234
+ res.end("Too Many Requests");
1235
+ return;
1236
+ }
1237
+ try {
1238
+ const headers = validateWebhookHeaders({
1239
+ req,
1240
+ res,
1241
+ isBackendAllowed
1242
+ });
1243
+ if (!headers) return;
1244
+ const body = await readBody(req, maxBodyBytes);
1245
+ if (!verifyWebhookSignature({
1246
+ headers,
1247
+ body,
1248
+ secret,
1249
+ res,
1250
+ clientIp,
1251
+ authRateLimiter: webhookAuthRateLimiter
1252
+ })) return;
1253
+ const decoded = decodeWebhookCreateMessage({
1254
+ body,
1255
+ res
1256
+ });
1257
+ if (decoded.kind === "invalid") return;
1258
+ if (decoded.kind === "ignore") {
1259
+ writeJsonResponse(res, 200);
1260
+ return;
1261
+ }
1262
+ const message = decoded.message;
1263
+ if (processMessage) {
1264
+ writeJsonResponse(res, 200);
1265
+ try {
1266
+ await processMessage(message);
1267
+ } catch (err) {
1268
+ onError?.(err instanceof Error ? err : new Error(formatError(err)));
1269
+ }
1270
+ return;
1271
+ }
1272
+ if (shouldProcessMessage) {
1273
+ if (!await shouldProcessMessage(message)) {
1274
+ writeJsonResponse(res, 200);
1275
+ return;
1276
+ }
1277
+ }
1263
1278
  writeJsonResponse(res, 200);
1264
1279
  try {
1265
- await processMessage(message);
1280
+ await onMessage(message);
1266
1281
  } catch (err) {
1267
1282
  onError?.(err instanceof Error ? err : new Error(formatError(err)));
1268
1283
  }
1269
- return;
1270
- }
1271
- if (shouldProcessMessage) {
1272
- if (!await shouldProcessMessage(message)) {
1273
- writeJsonResponse(res, 200);
1284
+ } catch (err) {
1285
+ if (isRequestBodyLimitError(err, "PAYLOAD_TOO_LARGE")) {
1286
+ writeWebhookError(res, 413, WEBHOOK_ERRORS.payloadTooLarge);
1274
1287
  return;
1275
1288
  }
1289
+ if (isRequestBodyLimitError(err, "REQUEST_BODY_TIMEOUT")) {
1290
+ writeWebhookError(res, 408, requestBodyErrorToText("REQUEST_BODY_TIMEOUT"));
1291
+ return;
1292
+ }
1293
+ const error = err instanceof Error ? err : new Error(formatError(err));
1294
+ onError?.(error);
1295
+ writeWebhookError(res, 500, WEBHOOK_ERRORS.internalServerError);
1276
1296
  }
1277
- writeJsonResponse(res, 200);
1278
- try {
1279
- await onMessage(message);
1280
- } catch (err) {
1281
- onError?.(err instanceof Error ? err : new Error(formatError(err)));
1282
- }
1283
- } catch (err) {
1284
- if (isRequestBodyLimitError(err, "PAYLOAD_TOO_LARGE")) {
1285
- writeWebhookError(res, 413, WEBHOOK_ERRORS.payloadTooLarge);
1286
- return;
1287
- }
1288
- if (isRequestBodyLimitError(err, "REQUEST_BODY_TIMEOUT")) {
1289
- writeWebhookError(res, 408, requestBodyErrorToText("REQUEST_BODY_TIMEOUT"));
1290
- return;
1291
- }
1292
- const error = err instanceof Error ? err : new Error(formatError(err));
1293
- onError?.(error);
1294
- writeWebhookError(res, 500, WEBHOOK_ERRORS.internalServerError);
1295
- }
1297
+ })();
1296
1298
  });
1297
1299
  const start = () => {
1298
1300
  return new Promise((resolve) => {
@@ -1,2 +1,2 @@
1
- import { t as nextcloudTalkPlugin } from "./channel-BiDCVokP.js";
1
+ import { t as nextcloudTalkPlugin } from "./channel-5flc23d2.js";
2
2
  export { nextcloudTalkPlugin };
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "name": "@openclaw/nextcloud-talk",
3
- "version": "2026.5.31-beta.3",
3
+ "version": "2026.5.31-beta.4",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@openclaw/nextcloud-talk",
9
- "version": "2026.5.31-beta.3",
9
+ "version": "2026.5.31-beta.4",
10
10
  "dependencies": {
11
11
  "zod": "4.4.3"
12
12
  },
13
13
  "peerDependencies": {
14
- "openclaw": ">=2026.5.31-beta.3"
14
+ "openclaw": ">=2026.5.31-beta.4"
15
15
  },
16
16
  "peerDependenciesMeta": {
17
17
  "openclaw": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/nextcloud-talk",
3
- "version": "2026.5.31-beta.3",
3
+ "version": "2026.5.31-beta.4",
4
4
  "description": "OpenClaw Nextcloud Talk channel plugin for conversations.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -8,7 +8,7 @@
8
8
  },
9
9
  "type": "module",
10
10
  "peerDependencies": {
11
- "openclaw": ">=2026.5.31-beta.3"
11
+ "openclaw": ">=2026.5.31-beta.4"
12
12
  },
13
13
  "peerDependenciesMeta": {
14
14
  "openclaw": {
@@ -40,10 +40,10 @@
40
40
  "minHostVersion": ">=2026.4.10"
41
41
  },
42
42
  "compat": {
43
- "pluginApi": ">=2026.5.31-beta.3"
43
+ "pluginApi": ">=2026.5.31-beta.4"
44
44
  },
45
45
  "build": {
46
- "openclawVersion": "2026.5.31-beta.3"
46
+ "openclawVersion": "2026.5.31-beta.4"
47
47
  },
48
48
  "release": {
49
49
  "publishToClawHub": true,