agent-bridge-aun 1.0.23 → 1.0.25
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.
|
@@ -163,7 +163,8 @@ async function downloadAunAttachments(client, refs) {
|
|
|
163
163
|
return result;
|
|
164
164
|
}
|
|
165
165
|
function checkedDownloadUrl(url) {
|
|
166
|
-
|
|
166
|
+
const storagePort = url.port === "9470" && /^storage\.[a-z0-9-]+(?:\.[a-z0-9-]+)+$/i.test(url.hostname);
|
|
167
|
+
if (url.protocol !== "https:" || url.username || url.password || url.port && !storagePort || url.hash || !url.hostname.includes(".") || /^(?:localhost|127\.|0\.|10\.|192\.168\.|169\.254\.|172\.(?:1[6-9]|2\d|3[01])\.)/.test(url.hostname) || url.hostname.includes(":"))
|
|
167
168
|
throw new Error("AUN 下载地址无效");
|
|
168
169
|
return url;
|
|
169
170
|
}
|
|
@@ -225,21 +226,9 @@ async function uploadAunAttachments(client, ownerAid, peerAid, items) {
|
|
|
225
226
|
const objectKey = `shared/${(0, node_crypto_1.randomUUID)()}/${filename.replace(/[^A-Za-z0-9._-]/g, "_")}`;
|
|
226
227
|
const sha256 = digest(item.data);
|
|
227
228
|
const ref = { ownerAid, bucket: "default", objectKey, filename, contentType: item.contentType.toLowerCase(), sizeBytes: item.data.byteLength, sha256 };
|
|
228
|
-
const uploaded = await client.storage.writeBytes(`/${objectKey}`, item.data, { contentType: item.contentType, public:
|
|
229
|
+
const uploaded = await client.storage.writeBytes(`/${objectKey}`, item.data, { contentType: item.contentType, public: true, overwrite: true });
|
|
229
230
|
checkedMetadata({ ...uploaded, size: uploaded.size ?? uploaded.size_bytes ?? item.data.byteLength }, ref);
|
|
230
|
-
|
|
231
|
-
if (share.owner_aid && share.owner_aid !== ownerAid || share.bucket && share.bucket !== "default" || share.object_key && share.object_key !== objectKey)
|
|
232
|
-
throw new Error("AUN 附件分享对象不一致");
|
|
233
|
-
if (share.allowed_aids !== undefined && (!Array.isArray(share.allowed_aids) || share.allowed_aids.length !== 1 || share.allowed_aids[0] !== peerAid))
|
|
234
|
-
throw new Error("AUN 附件分享授权不一致");
|
|
235
|
-
const shareId = typeof share.share_id === "string" && /^[A-Za-z0-9]{10}$/.test(share.share_id) ? share.share_id : undefined;
|
|
236
|
-
if (share.share_id !== undefined && !shareId)
|
|
237
|
-
throw new Error("AUN 附件分享标识无效");
|
|
238
|
-
const url = typeof share.path_url === "string" && share.path_url ? share.path_url : shareId ? `https://${ownerAid}/${objectKey}?t=${shareId}` : "";
|
|
239
|
-
const token = url ? pathToken(url, ownerAid, objectKey) : undefined;
|
|
240
|
-
if (!token || shareId && shareId !== token)
|
|
241
|
-
throw new Error("AUN 附件分享链接无效");
|
|
242
|
-
result.push({ owner_aid: ownerAid, bucket: "default", object_key: objectKey, url, filename, content_type: item.contentType, size_bytes: item.data.byteLength, sha256 });
|
|
231
|
+
result.push({ owner_aid: ownerAid, object_key: objectKey, filename, size_bytes: item.data.byteLength, sha256, content_type: item.contentType });
|
|
243
232
|
}
|
|
244
233
|
return result;
|
|
245
234
|
}
|
|
@@ -11,7 +11,7 @@ const node_url_1 = require("node:url");
|
|
|
11
11
|
const messages_1 = require("./messages");
|
|
12
12
|
const attachments_1 = require("./attachments");
|
|
13
13
|
const manifest = {
|
|
14
|
-
id: "aun", version: "1.0.
|
|
14
|
+
id: "aun", version: "1.0.25", type: "channel", displayName: "AUN 通道",
|
|
15
15
|
entry: "dist/src-ts/plugins/aun/index.js", apiVersion: "1", process: "in-process",
|
|
16
16
|
capabilities: ["channel", "channel.identity.create", "channel.receive", "channel.send", "health", "cli"],
|
|
17
17
|
configSchema: "config.schema.json",
|
package/package.json
CHANGED