@openclaw/line 2026.7.2-beta.7 → 2026.7.34
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/README.md +1 -1
- package/dist/.setup/accounts-DJVOv1JI.mjs +107 -0
- package/dist/.setup/api-D3h9w6oz.mjs +3 -0
- package/dist/.setup/api-DdlGHKoX.mjs +11 -0
- package/dist/.setup/basic-cards-C8Qwh2X1.mjs +307 -0
- package/dist/{card-command-ty11OJNt.js → .setup/card-command-CWrkUiGY.mjs} +51 -23
- package/dist/{channel-D4i_K4fQ.js → .setup/channel-Du0PrvOH.mjs} +76 -66
- package/dist/.setup/channel.runtime-b3suPB-W.mjs +4 -0
- package/dist/.setup/flex-templates-BP6VHjzK.mjs +814 -0
- package/dist/{markdown-to-line-DMDQTMhx.js → .setup/markdown-to-line-o89GT1Qn.mjs} +252 -254
- package/dist/{monitor-DXEodYFJ.js → .setup/monitor-DpxjN6Ks.mjs} +491 -658
- package/dist/.setup/monitor.runtime-BS-cGD5Q.mjs +2 -0
- package/dist/.setup/outbound.runtime-BeNDuEIF.mjs +2 -0
- package/dist/{probe-CM03wo6r.js → .setup/probe-BslD77tJ.mjs} +9 -7
- package/dist/.setup/probe.runtime-YwWmWIlk.mjs +2 -0
- package/dist/{reply-payload-transform-D5-dHB8b.js → .setup/reply-payload-transform-CYQIy_x8.mjs} +204 -80
- package/dist/{setup-surface-DRQ7n0En.js → .setup/setup-surface-M1ivmZ-G.mjs} +143 -158
- package/dist/api.js +2 -11
- package/dist/channel-plugin-api.js +1 -1
- package/dist/contract-api.js +1 -1
- package/dist/index.js +1 -1
- package/dist/runtime-api.js +56 -15
- package/dist/setup-api.js +1 -1
- package/dist/setup-entry.js +2 -1
- package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupCreateRoute.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupFailedType.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupJobFailedType.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupJobStatus.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/model/audienceGroupStatus.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBoxBorderWidth.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBoxCornerRadius.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexBubble.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexIconSize.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexSpanSize.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/flexTextFontSize.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/numberOfMessagesResponse.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/postbackAction.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/model/subscriptionPeriodDemographic.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/version.d.ts +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/version.js +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/event.d.ts +1 -2
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/event.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.d.ts +0 -1
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.js +0 -1
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/models.js.map +1 -1
- package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupCreateRoute.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupFailedType.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupJobFailedType.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupJobStatus.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/manage-audience/model/audienceGroupStatus.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBoxBorderWidth.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBoxCornerRadius.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexBubble.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexIconSize.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexSpanSize.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/flexTextFontSize.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/numberOfMessagesResponse.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/postbackAction.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/messaging-api/model/subscriptionPeriodDemographic.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/version.d.ts +1 -1
- package/node_modules/@line/bot-sdk/dist/version.js +1 -1
- package/node_modules/@line/bot-sdk/dist/webhook/model/event.d.ts +1 -2
- package/node_modules/@line/bot-sdk/dist/webhook/model/event.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/webhook/model/models.d.ts +0 -1
- package/node_modules/@line/bot-sdk/dist/webhook/model/models.d.ts.map +1 -1
- package/node_modules/@line/bot-sdk/dist/webhook/model/models.js +0 -1
- package/node_modules/@line/bot-sdk/dist/webhook/model/models.js.map +1 -1
- package/node_modules/@line/bot-sdk/lib/insight/model/getNumberOfFollowersResponse.ts +1 -1
- package/node_modules/@line/bot-sdk/lib/liff/model/liffScope.ts +1 -1
- package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupCreateRoute.ts +4 -1
- package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupFailedType.ts +2 -1
- package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupJobFailedType.ts +2 -1
- package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupJobStatus.ts +4 -1
- package/node_modules/@line/bot-sdk/lib/manage-audience/model/audienceGroupStatus.ts +6 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/botInfoResponse.ts +1 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBoxBorderWidth.ts +6 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBoxCornerRadius.ts +7 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexBubble.ts +7 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexIconSize.ts +10 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexSpanSize.ts +10 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/flexTextFontSize.ts +10 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/getAggregationUnitNameListResponse.ts +1 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/getFollowersResponse.ts +1 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/getJoinedMembershipUsersResponse.ts +1 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/issueLinkTokenResponse.ts +1 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/numberOfMessagesResponse.ts +5 -2
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/postbackAction.ts +4 -1
- package/node_modules/@line/bot-sdk/lib/messaging-api/model/subscriptionPeriodDemographic.ts +5 -1
- package/node_modules/@line/bot-sdk/lib/version.ts +1 -1
- package/node_modules/@line/bot-sdk/lib/webhook/.openapi-generator/FILES +0 -1
- package/node_modules/@line/bot-sdk/lib/webhook/model/event.ts +0 -2
- package/node_modules/@line/bot-sdk/lib/webhook/model/models.ts +0 -1
- package/node_modules/@line/bot-sdk/lib/webhook/model/stickerMessageContent.ts +1 -1
- package/node_modules/@line/bot-sdk/node_modules/@types/node/README.md +1 -1
- package/node_modules/@line/bot-sdk/node_modules/@types/node/fs/promises.d.ts +5 -16
- package/node_modules/@line/bot-sdk/node_modules/@types/node/package.json +3 -3
- package/node_modules/@line/bot-sdk/package.json +3 -3
- package/openclaw.plugin.json +75 -57
- package/package.json +6 -71
- package/dist/accounts-BqEVsDoB.js +0 -103
- package/dist/channel.runtime-BdhK8Xw7.js +0 -4
- package/dist/flex-templates-iKJsyCq-.js +0 -1339
- package/dist/monitor.runtime-CZquR7jI.js +0 -2
- package/dist/outbound.runtime-BS0IhU_M.js +0 -2
- package/dist/probe.runtime-D13ZtXsd.js +0 -2
- package/dist/quick-reply-fallback-D86FwAfr.js +0 -56
- package/dist/send-receipt-CY2ey8XH.js +0 -107
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.d.ts +0 -24
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.d.ts.map +0 -1
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.js +0 -14
- package/node_modules/@line/bot-sdk/dist/cjs/webhook/model/messageEditedEvent.js.map +0 -1
- package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.d.ts +0 -24
- package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.d.ts.map +0 -1
- package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.js +0 -13
- package/node_modules/@line/bot-sdk/dist/webhook/model/messageEditedEvent.js.map +0 -1
- package/node_modules/@line/bot-sdk/lib/webhook/model/messageEditedEvent.ts +0 -32
|
@@ -1,23 +1,19 @@
|
|
|
1
|
-
import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { n as parseLineDirectives, r as LineChannelConfigSchema, t as hasLineDirectives } from "./reply-payload-transform-D5-dHB8b.js";
|
|
5
|
-
import { i as resolveLineOutboundMedia, n as buildLineMediaMessage, r as hasLineSpecificMediaOptions, t as createLineSendReceipt } from "./send-receipt-CY2ey8XH.js";
|
|
1
|
+
import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-DJVOv1JI.mjs";
|
|
2
|
+
import { n as lineSetupAdapter, r as hasLineCredentials, t as lineSetupWizard } from "./setup-surface-M1ivmZ-G.mjs";
|
|
3
|
+
import { a as resolveLineOutboundMedia, d as resolveExactLineGroupConfigKey, i as buildLineQuickReplyFallbackText, l as LineChannelConfigSchema, n as parseLineDirectives, r as createLineSendReceipt, s as getLineRuntime, t as hasLineDirectives } from "./reply-payload-transform-CYQIy_x8.mjs";
|
|
6
4
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
7
|
-
import { buildDmGroupAccountAllowlistAdapter, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
|
|
8
5
|
import { buildChannelOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
9
6
|
import { createPairingPrefixStripper } from "openclaw/plugin-sdk/channel-pairing";
|
|
10
|
-
import {
|
|
7
|
+
import { createRestrictSendersChannelSecurity, resolveChannelGroupRequireMention } from "openclaw/plugin-sdk/channel-policy";
|
|
11
8
|
import { createEmptyChannelDirectoryAdapter } from "openclaw/plugin-sdk/directory-runtime";
|
|
12
|
-
import { describeWebhookAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
|
|
13
9
|
import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/account-id";
|
|
10
|
+
import { clearAccountEntryFields } from "openclaw/plugin-sdk/core";
|
|
11
|
+
import { describeWebhookAccountSnapshot } from "openclaw/plugin-sdk/account-helpers";
|
|
14
12
|
import { createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
15
13
|
import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
16
|
-
import { clearAccountEntryFields } from "openclaw/plugin-sdk/core";
|
|
17
14
|
import { defineChannelMessageAdapter } from "openclaw/plugin-sdk/channel-outbound";
|
|
18
15
|
import { createAttachedChannelResultAdapter, createEmptyChannelResult } from "openclaw/plugin-sdk/channel-send-result";
|
|
19
16
|
import { resolveOutboundMediaUrls } from "openclaw/plugin-sdk/reply-payload";
|
|
20
|
-
import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
|
|
21
17
|
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
22
18
|
import { buildTokenChannelStatusSummary, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, createDependentCredentialStatusIssueCollector } from "openclaw/plugin-sdk/status-helpers";
|
|
23
19
|
//#region extensions/line/src/bindings.ts
|
|
@@ -106,19 +102,14 @@ const lineChannelPluginCommon = {
|
|
|
106
102
|
describeAccount: (account) => describeWebhookAccountSnapshot({
|
|
107
103
|
account,
|
|
108
104
|
configured: hasLineCredentials(account),
|
|
109
|
-
extra: {
|
|
110
|
-
tokenSource: account.tokenSource ?? void 0,
|
|
111
|
-
signingSecretSource: account.signingSecretSource ?? void 0,
|
|
112
|
-
tokenStatus: account.tokenStatus,
|
|
113
|
-
signingSecretStatus: account.signingSecretStatus
|
|
114
|
-
}
|
|
105
|
+
extra: { tokenSource: account.tokenSource ?? void 0 }
|
|
115
106
|
})
|
|
116
107
|
}
|
|
117
108
|
};
|
|
118
109
|
//#endregion
|
|
119
110
|
//#region extensions/line/src/gateway.ts
|
|
120
|
-
const loadLineProbeRuntime$1 = createLazyRuntimeModule(() => import("./probe.runtime-
|
|
121
|
-
const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-
|
|
111
|
+
const loadLineProbeRuntime$1 = createLazyRuntimeModule(() => import("./probe.runtime-YwWmWIlk.mjs"));
|
|
112
|
+
const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-BS-cGD5Q.mjs"));
|
|
122
113
|
const lineGatewayAdapter = {
|
|
123
114
|
startAccount: async (ctx) => {
|
|
124
115
|
const account = ctx.account;
|
|
@@ -208,14 +199,16 @@ const lineGatewayAdapter = {
|
|
|
208
199
|
//#endregion
|
|
209
200
|
//#region extensions/line/src/group-policy.ts
|
|
210
201
|
function resolveLineGroupRequireMention(params) {
|
|
211
|
-
const
|
|
212
|
-
|
|
213
|
-
|
|
202
|
+
const exactGroupId = resolveExactLineGroupConfigKey({
|
|
203
|
+
cfg: params.cfg,
|
|
204
|
+
accountId: params.accountId,
|
|
214
205
|
groupId: params.groupId
|
|
215
206
|
});
|
|
216
|
-
return
|
|
217
|
-
|
|
218
|
-
|
|
207
|
+
return resolveChannelGroupRequireMention({
|
|
208
|
+
cfg: params.cfg,
|
|
209
|
+
channel: "line",
|
|
210
|
+
groupId: exactGroupId ?? params.groupId,
|
|
211
|
+
accountId: params.accountId
|
|
219
212
|
});
|
|
220
213
|
}
|
|
221
214
|
//#endregion
|
|
@@ -233,13 +226,42 @@ function inferLineTargetChatType(target) {
|
|
|
233
226
|
}
|
|
234
227
|
//#endregion
|
|
235
228
|
//#region extensions/line/src/outbound.ts
|
|
236
|
-
const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-
|
|
237
|
-
|
|
229
|
+
const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-BeNDuEIF.mjs"));
|
|
230
|
+
function isLineUserTarget(target) {
|
|
231
|
+
const normalized = target.trim().replace(/^line:(group|room|user):/i, "").replace(/^line:/i, "");
|
|
232
|
+
return /^U/i.test(normalized);
|
|
233
|
+
}
|
|
234
|
+
function hasLineSpecificMediaOptions(lineData) {
|
|
235
|
+
return Boolean(lineData.mediaKind ?? lineData.previewImageUrl?.trim() ?? (typeof lineData.durationMs === "number" ? lineData.durationMs : void 0) ?? lineData.trackingId?.trim());
|
|
236
|
+
}
|
|
237
|
+
function buildLineMediaMessageObject(resolved, opts) {
|
|
238
|
+
switch (resolved.mediaKind) {
|
|
239
|
+
case "video": {
|
|
240
|
+
const previewImageUrl = resolved.previewImageUrl?.trim();
|
|
241
|
+
if (!previewImageUrl) throw new Error("LINE video messages require previewImageUrl to reference an image URL");
|
|
242
|
+
return {
|
|
243
|
+
type: "video",
|
|
244
|
+
originalContentUrl: resolved.mediaUrl,
|
|
245
|
+
previewImageUrl,
|
|
246
|
+
...opts?.allowTrackingId && resolved.trackingId ? { trackingId: resolved.trackingId } : {}
|
|
247
|
+
};
|
|
248
|
+
}
|
|
249
|
+
case "audio": return {
|
|
250
|
+
type: "audio",
|
|
251
|
+
originalContentUrl: resolved.mediaUrl,
|
|
252
|
+
duration: resolved.durationMs ?? 6e4
|
|
253
|
+
};
|
|
254
|
+
default: return {
|
|
255
|
+
type: "image",
|
|
256
|
+
originalContentUrl: resolved.mediaUrl,
|
|
257
|
+
previewImageUrl: resolved.previewImageUrl ?? resolved.mediaUrl
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
}
|
|
238
261
|
const lineOutboundAdapter = {
|
|
239
262
|
deliveryMode: "direct",
|
|
240
263
|
chunker: (text, limit) => getLineRuntime().channel.text.chunkMarkdownText(text, limit),
|
|
241
264
|
textChunkLimit: 5e3,
|
|
242
|
-
sanitizeText: ({ text }) => sanitizeAssistantVisibleText(text),
|
|
243
265
|
sendPayload: async ({ to, payload, accountId, cfg, onDeliveryResult }) => {
|
|
244
266
|
const runtime = getLineRuntime();
|
|
245
267
|
const outboundRuntime = await loadLineOutboundRuntime();
|
|
@@ -281,12 +303,6 @@ const lineOutboundAdapter = {
|
|
|
281
303
|
const chunks = processed.text ? runtime.channel.text.chunkMarkdownText(processed.text, chunkLimit) : [];
|
|
282
304
|
const mediaUrls = resolveOutboundMediaUrls(payload);
|
|
283
305
|
const useLineSpecificMedia = hasLineSpecificMediaOptions(lineData);
|
|
284
|
-
const mediaOptions = {
|
|
285
|
-
mediaKind: useLineSpecificMedia ? lineData.mediaKind : "image",
|
|
286
|
-
previewImageUrl: lineData.previewImageUrl,
|
|
287
|
-
durationMs: lineData.durationMs,
|
|
288
|
-
trackingId: lineData.trackingId
|
|
289
|
-
};
|
|
290
306
|
const shouldSendQuickRepliesInline = chunks.length === 0 && hasQuickReplies;
|
|
291
307
|
const sendMediaMessages = async () => {
|
|
292
308
|
for (const url of mediaUrls) {
|
|
@@ -301,7 +317,12 @@ const lineOutboundAdapter = {
|
|
|
301
317
|
}));
|
|
302
318
|
continue;
|
|
303
319
|
}
|
|
304
|
-
const resolved = await resolveLineOutboundMedia(trimmed,
|
|
320
|
+
const resolved = await resolveLineOutboundMedia(trimmed, {
|
|
321
|
+
mediaKind: lineData.mediaKind,
|
|
322
|
+
previewImageUrl: lineData.previewImageUrl,
|
|
323
|
+
durationMs: lineData.durationMs,
|
|
324
|
+
trackingId: lineData.trackingId
|
|
325
|
+
});
|
|
305
326
|
await recordResult((lineRuntime?.sendMessageLine ?? outboundRuntime.sendMessageLine)(to, "", {
|
|
306
327
|
verbose: false,
|
|
307
328
|
mediaUrl: resolved.mediaUrl,
|
|
@@ -347,12 +368,12 @@ const lineOutboundAdapter = {
|
|
|
347
368
|
}
|
|
348
369
|
const sendMediaAfterText = !(hasQuickReplies && chunks.length > 0);
|
|
349
370
|
if (mediaUrls.length > 0 && !shouldSendQuickRepliesInline && !sendMediaAfterText) await sendMediaMessages();
|
|
350
|
-
if (chunks.length > 0) for (
|
|
371
|
+
if (chunks.length > 0) for (let i = 0; i < chunks.length; i += 1) if (i === chunks.length - 1 && hasQuickReplies) await recordResult(sendQuickReplies(to, chunks[i], quickReplies, {
|
|
351
372
|
verbose: false,
|
|
352
373
|
cfg,
|
|
353
374
|
accountId: accountId ?? void 0
|
|
354
375
|
}));
|
|
355
|
-
else await recordResult(sendText(to,
|
|
376
|
+
else await recordResult(sendText(to, chunks[i], {
|
|
356
377
|
verbose: false,
|
|
357
378
|
cfg,
|
|
358
379
|
accountId: accountId ?? void 0
|
|
@@ -361,7 +382,7 @@ const lineOutboundAdapter = {
|
|
|
361
382
|
const quickReplyMessages = [];
|
|
362
383
|
if (lineData.flexMessage) quickReplyMessages.push({
|
|
363
384
|
type: "flex",
|
|
364
|
-
altText: truncateUtf16Safe(lineData.flexMessage.altText,
|
|
385
|
+
altText: truncateUtf16Safe(lineData.flexMessage.altText, 400),
|
|
365
386
|
contents: lineData.flexMessage.contents
|
|
366
387
|
});
|
|
367
388
|
if (lineData.templateMessage) {
|
|
@@ -377,13 +398,27 @@ const lineOutboundAdapter = {
|
|
|
377
398
|
});
|
|
378
399
|
for (const flexMsg of processed.flexMessages) quickReplyMessages.push({
|
|
379
400
|
type: "flex",
|
|
380
|
-
altText: truncateUtf16Safe(flexMsg.altText,
|
|
401
|
+
altText: truncateUtf16Safe(flexMsg.altText, 400),
|
|
381
402
|
contents: flexMsg.contents
|
|
382
403
|
});
|
|
383
404
|
for (const url of mediaUrls) {
|
|
384
405
|
const trimmed = url?.trim();
|
|
385
406
|
if (!trimmed) continue;
|
|
386
|
-
|
|
407
|
+
if (!useLineSpecificMedia) {
|
|
408
|
+
quickReplyMessages.push({
|
|
409
|
+
type: "image",
|
|
410
|
+
originalContentUrl: trimmed,
|
|
411
|
+
previewImageUrl: trimmed
|
|
412
|
+
});
|
|
413
|
+
continue;
|
|
414
|
+
}
|
|
415
|
+
const resolved = await resolveLineOutboundMedia(trimmed, {
|
|
416
|
+
mediaKind: lineData.mediaKind,
|
|
417
|
+
previewImageUrl: lineData.previewImageUrl,
|
|
418
|
+
durationMs: lineData.durationMs,
|
|
419
|
+
trackingId: lineData.trackingId
|
|
420
|
+
});
|
|
421
|
+
quickReplyMessages.push(buildLineMediaMessageObject(resolved, { allowTrackingId: isLineUserTarget(to) }));
|
|
387
422
|
}
|
|
388
423
|
if (quickReplyMessages.length > 0 && quickReply) {
|
|
389
424
|
const lastIndex = quickReplyMessages.length - 1;
|
|
@@ -503,7 +538,7 @@ const lineMessageAdapter = defineChannelMessageAdapter({
|
|
|
503
538
|
});
|
|
504
539
|
//#endregion
|
|
505
540
|
//#region extensions/line/src/status.ts
|
|
506
|
-
const loadLineProbeRuntime = createLazyRuntimeModule(() => import("./probe.runtime-
|
|
541
|
+
const loadLineProbeRuntime = createLazyRuntimeModule(() => import("./probe.runtime-YwWmWIlk.mjs"));
|
|
507
542
|
const collectLineStatusIssues = createDependentCredentialStatusIssueCollector({
|
|
508
543
|
channel: "line",
|
|
509
544
|
dependencySourceKey: "tokenSource",
|
|
@@ -522,16 +557,13 @@ const lineStatusAdapter = createComputedAccountStatusAdapter({
|
|
|
522
557
|
configured: hasLineCredentials(account),
|
|
523
558
|
extra: {
|
|
524
559
|
tokenSource: account.tokenSource,
|
|
525
|
-
signingSecretSource: account.signingSecretSource,
|
|
526
|
-
tokenStatus: account.tokenStatus,
|
|
527
|
-
signingSecretStatus: account.signingSecretStatus,
|
|
528
560
|
mode: "webhook"
|
|
529
561
|
}
|
|
530
562
|
})
|
|
531
563
|
});
|
|
532
564
|
//#endregion
|
|
533
565
|
//#region extensions/line/src/channel.ts
|
|
534
|
-
const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-
|
|
566
|
+
const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-b3suPB-W.mjs"));
|
|
535
567
|
const lineSecurityAdapter = createRestrictSendersChannelSecurity({
|
|
536
568
|
channelKey: "line",
|
|
537
569
|
resolveDmPolicy: (account) => account.config.dmPolicy,
|
|
@@ -552,27 +584,6 @@ const linePlugin = createChatChannelPlugin({
|
|
|
552
584
|
...lineChannelPluginCommon,
|
|
553
585
|
setupWizard: lineSetupWizard,
|
|
554
586
|
groups: { resolveRequireMention: resolveLineGroupRequireMention },
|
|
555
|
-
allowlist: buildDmGroupAccountAllowlistAdapter({
|
|
556
|
-
channelId: "line",
|
|
557
|
-
resolveAccount: ({ cfg, accountId }) => resolveLineAccount({
|
|
558
|
-
cfg,
|
|
559
|
-
accountId: accountId ?? void 0
|
|
560
|
-
}),
|
|
561
|
-
normalize: ({ cfg, accountId, values }) => lineConfigAdapter.formatAllowFrom({
|
|
562
|
-
cfg,
|
|
563
|
-
accountId,
|
|
564
|
-
allowFrom: values
|
|
565
|
-
}),
|
|
566
|
-
resolveDmAllowFrom: (account) => account.config.allowFrom,
|
|
567
|
-
resolveGroupAllowFrom: (account) => account.config.groupAllowFrom,
|
|
568
|
-
resolveDmPolicy: (account) => account.config.dmPolicy,
|
|
569
|
-
resolveGroupPolicy: (account) => account.config.groupPolicy,
|
|
570
|
-
resolveGroupOverrides: createFlatAllowlistOverrideResolver({
|
|
571
|
-
resolveRecord: (account) => account.config.groups,
|
|
572
|
-
label: (groupId) => groupId,
|
|
573
|
-
resolveEntries: (groupCfg) => groupCfg?.allowFrom
|
|
574
|
-
})
|
|
575
|
-
}),
|
|
576
587
|
messaging: {
|
|
577
588
|
targetPrefixes: ["line"],
|
|
578
589
|
normalizeTarget: normalizeLineMessagingTarget,
|
|
@@ -613,7 +624,6 @@ const linePlugin = createChatChannelPlugin({
|
|
|
613
624
|
},
|
|
614
625
|
directory: createEmptyChannelDirectoryAdapter(),
|
|
615
626
|
setup: lineSetupAdapter,
|
|
616
|
-
setupContract: lineSetupContract,
|
|
617
627
|
status: lineStatusAdapter,
|
|
618
628
|
gateway: lineGatewayAdapter,
|
|
619
629
|
message: lineMessageAdapter,
|