@openclaw/nextcloud-talk 2026.5.31-beta.2 → 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-DkTSJyoU.js";
1
+ import { t as nextcloudTalkPlugin } from "./channel-5flc23d2.js";
2
2
  export { nextcloudTalkPlugin };
@@ -916,7 +916,7 @@ async function handleNextcloudTalkInbound(params) {
916
916
  providerKey: "nextcloud-talk",
917
917
  accountId: account.accountId,
918
918
  blockedLabel: GROUP_POLICY_BLOCKED_LABEL.room,
919
- log: (message) => runtime.log?.(message)
919
+ log: (messageValue) => runtime.log?.(messageValue)
920
920
  });
921
921
  const commandAuthorized = access.commandAccess.authorized;
922
922
  const accessReason = access.ingress.reasonCode === "route_blocked" ? "route blocked" : access.senderAccess.reasonCode;
@@ -958,7 +958,7 @@ async function handleNextcloudTalkInbound(params) {
958
958
  }
959
959
  if (access.commandAccess.shouldBlockControlCommand) {
960
960
  logInboundDrop({
961
- log: (message) => runtime.log?.(message),
961
+ log: (messageLocal) => runtime.log?.(messageLocal),
962
962
  channel: CHANNEL_ID,
963
963
  reason: "control command (unauthorized)",
964
964
  target: senderId
@@ -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-DkTSJyoU.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.2",
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.2",
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.2"
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.2",
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.2"
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.2"
43
+ "pluginApi": ">=2026.5.31-beta.4"
44
44
  },
45
45
  "build": {
46
- "openclawVersion": "2026.5.31-beta.2"
46
+ "openclawVersion": "2026.5.31-beta.4"
47
47
  },
48
48
  "release": {
49
49
  "publishToClawHub": true,