@openclaw/line 2026.7.2-beta.5 → 2026.8.1-beta.2
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/{accounts-CSH5sk8U.js → accounts-BqEVsDoB.js} +24 -88
- package/dist/api.js +2 -3
- package/dist/{card-command-BEMIm8D8.js → card-command-DALdUSnc.js} +14 -22
- package/dist/{channel-CTaWrzfl.js → channel-CAdQJRw7.js} +75 -77
- package/dist/channel-plugin-api.js +1 -1
- package/dist/channel.runtime-CuKoy9xw.js +4 -0
- package/dist/contract-api.js +1 -1
- package/dist/{flex-templates-DVy_wog4.js → flex-templates-BBBlNqpV.js} +108 -83
- package/dist/index.js +1 -1
- package/dist/markdown-to-line-D4I-6lm6.js +499 -0
- package/dist/{monitor-DzFU5UPV.js → monitor-QEh_ZqyR.js} +114 -94
- package/dist/monitor.runtime-72isajCp.js +2 -0
- package/dist/outbound.runtime-CWQMIE7N.js +3 -0
- package/dist/{reply-payload-transform-BRM2fRvK.js → reply-payload-transform-BOPGHVPo.js} +4 -3
- package/dist/runtime-api.js +9 -7
- package/dist/send-CFFr0-rZ.js +366 -0
- package/dist/setup-api.js +1 -1
- package/dist/{setup-surface-BHQOSD8R.js → setup-surface-W0Dbgu58.js} +51 -68
- package/openclaw.plugin.json +7 -0
- package/package.json +9 -5
- package/dist/channel.runtime-D4Paci2y.js +0 -4
- package/dist/markdown-to-line-Dn00k1bq.js +0 -799
- package/dist/monitor.runtime-B8xjVqev.js +0 -2
- package/dist/outbound.runtime-eHl7NNHu.js +0 -2
- package/dist/send-receipt-CY2ey8XH.js +0 -107
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/LICENSE +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/README.md +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/assert/strict.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/assert.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/async_hooks.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/buffer.buffer.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/buffer.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/child_process.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/cluster.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/compatibility/iterators.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/console.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/constants.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/crypto.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/dgram.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/diagnostics_channel.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/dns/promises.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/dns.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/domain.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/events.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/fs/promises.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/fs.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/globals.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/globals.typedarray.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/http.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/http2.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/https.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/index.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/inspector.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/inspector.generated.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/module.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/net.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/os.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/package.json +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/path.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/perf_hooks.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/process.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/punycode.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/querystring.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/readline/promises.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/readline.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/repl.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/sea.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/sqlite.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/stream/consumers.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/stream/promises.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/stream/web.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/stream.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/string_decoder.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/test.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/timers/promises.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/timers.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/tls.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/trace_events.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/ts5.6/buffer.buffer.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/ts5.6/compatibility/float16array.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/ts5.6/globals.typedarray.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/ts5.6/index.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/ts5.7/compatibility/float16array.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/ts5.7/index.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/tty.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/url.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/util.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/v8.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/vm.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/wasi.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/web-globals/abortcontroller.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/web-globals/crypto.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/web-globals/domexception.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/web-globals/events.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/web-globals/fetch.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/web-globals/navigator.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/web-globals/storage.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/web-globals/streams.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/worker_threads.d.ts +0 -0
- /package/node_modules/{@types → @line/bot-sdk/node_modules/@types}/node/zlib.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/LICENSE +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/README.md +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/agent.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/api.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/balanced-pool.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/cache-interceptor.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/cache.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/client-stats.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/client.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/connector.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/content-type.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/cookies.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/diagnostics-channel.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/dispatcher.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/env-http-proxy-agent.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/errors.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/eventsource.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/fetch.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/formdata.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/global-dispatcher.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/global-origin.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/h2c-client.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/handlers.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/header.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/index.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/interceptors.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/mock-agent.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/mock-call-history.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/mock-client.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/mock-errors.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/mock-interceptor.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/mock-pool.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/package.json +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/patch.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/pool-stats.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/pool.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/proxy-agent.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/readable.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/retry-agent.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/retry-handler.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/round-robin-pool.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/snapshot-agent.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/util.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/utility.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/webidl.d.ts +0 -0
- /package/node_modules/{undici-types → @line/bot-sdk/node_modules/undici-types}/websocket.d.ts +0 -0
|
@@ -4,37 +4,19 @@ import { resolveAccountEntry, resolveListedDefaultAccountId } from "openclaw/plu
|
|
|
4
4
|
import { tryReadSecretFileSync } from "openclaw/plugin-sdk/secret-file-runtime";
|
|
5
5
|
//#region extensions/line/src/accounts.ts
|
|
6
6
|
const { resolveAccountConfig: resolveMergedLineAccountConfig } = createAccountListHelpers("line", { omitKeys: ["defaultAccount"] });
|
|
7
|
-
function
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
source: "config",
|
|
15
|
-
status: "available"
|
|
16
|
-
};
|
|
17
|
-
if (accountConfig?.tokenFile?.trim()) {
|
|
18
|
-
const result = readCredentialFile(accountConfig.tokenFile, `channels.line.accounts.${accountId}.tokenFile`);
|
|
19
|
-
return result.status === "available" ? {
|
|
20
|
-
value: result.value,
|
|
21
|
-
source: "file",
|
|
22
|
-
status: "available"
|
|
23
|
-
} : {
|
|
24
|
-
value: "",
|
|
25
|
-
source: "file",
|
|
26
|
-
status: "configured_unavailable",
|
|
27
|
-
diagnostic: result.diagnostic
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
if (accountId === DEFAULT_ACCOUNT_ID) {
|
|
31
|
-
if (baseConfig?.channelAccessToken?.trim()) return {
|
|
32
|
-
value: baseConfig.channelAccessToken.trim(),
|
|
7
|
+
function resolveLineCredential(params) {
|
|
8
|
+
const { accountId, baseConfig, accountConfig, credentialKey, fileKey, envKey } = params;
|
|
9
|
+
const candidates = accountId === DEFAULT_ACCOUNT_ID ? [accountConfig, baseConfig] : [accountConfig];
|
|
10
|
+
for (const [index, config] of candidates.entries()) {
|
|
11
|
+
const credential = config?.[credentialKey]?.trim();
|
|
12
|
+
if (credential) return {
|
|
13
|
+
value: credential,
|
|
33
14
|
source: "config",
|
|
34
15
|
status: "available"
|
|
35
16
|
};
|
|
36
|
-
|
|
37
|
-
|
|
17
|
+
const file = config?.[fileKey];
|
|
18
|
+
if (file?.trim()) {
|
|
19
|
+
const result = tryReadSecretFileSync(file, "LINE credential file", { rejectSymlink: true }, { configPath: `channels.line.${index === 0 ? `accounts.${accountId}.` : ""}${fileKey}` });
|
|
38
20
|
return result.status === "available" ? {
|
|
39
21
|
value: result.value,
|
|
40
22
|
source: "file",
|
|
@@ -46,65 +28,13 @@ function resolveToken(params) {
|
|
|
46
28
|
diagnostic: result.diagnostic
|
|
47
29
|
};
|
|
48
30
|
}
|
|
49
|
-
const envToken = process.env.LINE_CHANNEL_ACCESS_TOKEN?.trim();
|
|
50
|
-
if (envToken) return {
|
|
51
|
-
value: envToken,
|
|
52
|
-
source: "env",
|
|
53
|
-
status: "available"
|
|
54
|
-
};
|
|
55
31
|
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
function resolveSecret(params) {
|
|
63
|
-
const { accountId, baseConfig, accountConfig } = params;
|
|
64
|
-
if (accountConfig?.channelSecret?.trim()) return {
|
|
65
|
-
value: accountConfig.channelSecret.trim(),
|
|
66
|
-
source: "config",
|
|
32
|
+
const envCredential = accountId === DEFAULT_ACCOUNT_ID ? process.env[envKey]?.trim() : void 0;
|
|
33
|
+
if (envCredential) return {
|
|
34
|
+
value: envCredential,
|
|
35
|
+
source: "env",
|
|
67
36
|
status: "available"
|
|
68
37
|
};
|
|
69
|
-
if (accountConfig?.secretFile?.trim()) {
|
|
70
|
-
const result = readCredentialFile(accountConfig.secretFile, `channels.line.accounts.${accountId}.secretFile`);
|
|
71
|
-
return result.status === "available" ? {
|
|
72
|
-
value: result.value,
|
|
73
|
-
source: "file",
|
|
74
|
-
status: "available"
|
|
75
|
-
} : {
|
|
76
|
-
value: "",
|
|
77
|
-
source: "file",
|
|
78
|
-
status: "configured_unavailable",
|
|
79
|
-
diagnostic: result.diagnostic
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
if (accountId === DEFAULT_ACCOUNT_ID) {
|
|
83
|
-
if (baseConfig?.channelSecret?.trim()) return {
|
|
84
|
-
value: baseConfig.channelSecret.trim(),
|
|
85
|
-
source: "config",
|
|
86
|
-
status: "available"
|
|
87
|
-
};
|
|
88
|
-
if (baseConfig?.secretFile?.trim()) {
|
|
89
|
-
const result = readCredentialFile(baseConfig.secretFile, "channels.line.secretFile");
|
|
90
|
-
return result.status === "available" ? {
|
|
91
|
-
value: result.value,
|
|
92
|
-
source: "file",
|
|
93
|
-
status: "available"
|
|
94
|
-
} : {
|
|
95
|
-
value: "",
|
|
96
|
-
source: "file",
|
|
97
|
-
status: "configured_unavailable",
|
|
98
|
-
diagnostic: result.diagnostic
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
const envSecret = process.env.LINE_CHANNEL_SECRET?.trim();
|
|
102
|
-
if (envSecret) return {
|
|
103
|
-
value: envSecret,
|
|
104
|
-
source: "env",
|
|
105
|
-
status: "available"
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
38
|
return {
|
|
109
39
|
value: "",
|
|
110
40
|
source: "none",
|
|
@@ -117,15 +47,21 @@ function resolveLineAccount(params) {
|
|
|
117
47
|
const lineConfig = cfg.channels?.line;
|
|
118
48
|
const accounts = lineConfig?.accounts;
|
|
119
49
|
const accountConfig = resolveAccountEntry(accounts, accountId);
|
|
120
|
-
const token =
|
|
50
|
+
const token = resolveLineCredential({
|
|
121
51
|
accountId,
|
|
122
52
|
baseConfig: lineConfig,
|
|
123
|
-
accountConfig
|
|
53
|
+
accountConfig,
|
|
54
|
+
credentialKey: "channelAccessToken",
|
|
55
|
+
fileKey: "tokenFile",
|
|
56
|
+
envKey: "LINE_CHANNEL_ACCESS_TOKEN"
|
|
124
57
|
});
|
|
125
|
-
const secret =
|
|
58
|
+
const secret = resolveLineCredential({
|
|
126
59
|
accountId,
|
|
127
60
|
baseConfig: lineConfig,
|
|
128
|
-
accountConfig
|
|
61
|
+
accountConfig,
|
|
62
|
+
credentialKey: "channelSecret",
|
|
63
|
+
fileKey: "secretFile",
|
|
64
|
+
envKey: "LINE_CHANNEL_SECRET"
|
|
129
65
|
});
|
|
130
66
|
const mergedConfig = resolveMergedLineAccountConfig(cfg, accountId);
|
|
131
67
|
const baseEnabled = lineConfig?.enabled !== false;
|
package/dist/api.js
CHANGED
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import { n as lineChannelPluginCommon, t as linePlugin } from "./channel-
|
|
2
|
-
import {
|
|
1
|
+
import { n as lineChannelPluginCommon, t as linePlugin } from "./channel-CAdQJRw7.js";
|
|
2
|
+
import { r as lineSetupContract, t as lineSetupWizard } from "./setup-surface-W0Dbgu58.js";
|
|
3
3
|
//#region extensions/line/src/channel.setup.ts
|
|
4
4
|
const lineSetupPlugin = {
|
|
5
5
|
id: "line",
|
|
6
6
|
...lineChannelPluginCommon,
|
|
7
7
|
setupWizard: lineSetupWizard,
|
|
8
|
-
setup: lineSetupAdapter,
|
|
9
8
|
setupContract: lineSetupContract
|
|
10
9
|
};
|
|
11
10
|
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as createImageCard, f as messageAction, g as uriAction, h as postbackAction, l as createInfoCard, o as createReceiptCard, s as createActionCard, u as createListCard } from "./flex-templates-BBBlNqpV.js";
|
|
2
|
+
import { n as createFlexMessage } from "./send-CFFr0-rZ.js";
|
|
2
3
|
import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
3
|
-
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
4
4
|
import { expectDefined } from "openclaw/plugin-sdk/expect-runtime";
|
|
5
5
|
//#region extensions/line/src/card-command.ts
|
|
6
6
|
const CARD_USAGE = `Usage: /card <type> "title" "body" [options]
|
|
@@ -21,6 +21,13 @@ Examples:
|
|
|
21
21
|
function buildLineReply(lineData) {
|
|
22
22
|
return { channelData: { line: lineData } };
|
|
23
23
|
}
|
|
24
|
+
function buildLineFlexReply(altText, contents) {
|
|
25
|
+
const message = createFlexMessage(altText, contents);
|
|
26
|
+
return buildLineReply({ flexMessage: {
|
|
27
|
+
altText: message.altText,
|
|
28
|
+
contents: message.contents
|
|
29
|
+
} });
|
|
30
|
+
}
|
|
24
31
|
/**
|
|
25
32
|
* Parse action string format: "Label|data,Label2|data2"
|
|
26
33
|
* Data can be a URL (uri action) or plain text (message action) or key=value (postback)
|
|
@@ -118,40 +125,28 @@ function registerLineCardCommand(api) {
|
|
|
118
125
|
case "info": {
|
|
119
126
|
const [title = "Info", body = "", footer] = args;
|
|
120
127
|
const bubble = createInfoCard(title, body, footer);
|
|
121
|
-
return
|
|
122
|
-
altText: truncateUtf16Safe(`${title}: ${body}`, 400),
|
|
123
|
-
contents: bubble
|
|
124
|
-
} });
|
|
128
|
+
return buildLineFlexReply(`${title}: ${body}`, bubble);
|
|
125
129
|
}
|
|
126
130
|
case "image": {
|
|
127
131
|
const [title = "Image", caption = ""] = args;
|
|
128
132
|
const imageUrl = flags.url || flags.image;
|
|
129
133
|
if (!imageUrl) return { text: "Error: Image card requires --url <image-url>" };
|
|
130
134
|
const bubble = createImageCard(imageUrl, title, caption);
|
|
131
|
-
return
|
|
132
|
-
altText: truncateUtf16Safe(`${title}: ${caption}`, 400),
|
|
133
|
-
contents: bubble
|
|
134
|
-
} });
|
|
135
|
+
return buildLineFlexReply(`${title}: ${caption}`, bubble);
|
|
135
136
|
}
|
|
136
137
|
case "action": {
|
|
137
138
|
const [title = "Actions", body = ""] = args;
|
|
138
139
|
const actions = parseActions(flags.actions);
|
|
139
140
|
if (actions.length === 0) return { text: "Error: Action card requires --actions \"Label1|data1,Label2|data2\"" };
|
|
140
141
|
const bubble = createActionCard(title, body, actions, { imageUrl: flags.url || flags.image });
|
|
141
|
-
return
|
|
142
|
-
altText: truncateUtf16Safe(`${title}: ${body}`, 400),
|
|
143
|
-
contents: bubble
|
|
144
|
-
} });
|
|
142
|
+
return buildLineFlexReply(`${title}: ${body}`, bubble);
|
|
145
143
|
}
|
|
146
144
|
case "list": {
|
|
147
145
|
const [title = "List", itemsStr = ""] = args;
|
|
148
146
|
const items = parseListItems(itemsStr || flags.items || "");
|
|
149
147
|
if (items.length === 0) return { text: "Error: List card requires items. Usage: /card list \"Title\" \"Item1|Desc1,Item2|Desc2\"" };
|
|
150
148
|
const bubble = createListCard(title, items);
|
|
151
|
-
return
|
|
152
|
-
altText: truncateUtf16Safe(`${title}: ${items.map((i) => i.title).join(", ")}`, 400),
|
|
153
|
-
contents: bubble
|
|
154
|
-
} });
|
|
149
|
+
return buildLineFlexReply(`${title}: ${items.map((item) => item.title).join(", ")}`, bubble);
|
|
155
150
|
}
|
|
156
151
|
case "receipt": {
|
|
157
152
|
const [title = "Receipt", itemsStr = ""] = args;
|
|
@@ -168,10 +163,7 @@ function registerLineCardCommand(api) {
|
|
|
168
163
|
total,
|
|
169
164
|
footer
|
|
170
165
|
});
|
|
171
|
-
return
|
|
172
|
-
altText: truncateUtf16Safe(`${title}: ${items.map((i) => `${i.name} ${i.value}`).join(", ")}`, 400),
|
|
173
|
-
contents: bubble
|
|
174
|
-
} });
|
|
166
|
+
return buildLineFlexReply(`${title}: ${items.map((item) => `${item.name} ${item.value}`).join(", ")}`, bubble);
|
|
175
167
|
}
|
|
176
168
|
case "confirm": {
|
|
177
169
|
const [question = "Confirm?"] = args;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-
|
|
2
|
-
import { i as hasLineCredentials,
|
|
1
|
+
import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-BqEVsDoB.js";
|
|
2
|
+
import { i as hasLineCredentials, r as lineSetupContract, t as lineSetupWizard } from "./setup-surface-W0Dbgu58.js";
|
|
3
3
|
import { i as resolveExactLineGroupConfigKey, n as getLineRuntime, t as buildLineQuickReplyFallbackText } from "./quick-reply-fallback-D86FwAfr.js";
|
|
4
|
-
import { n as parseLineDirectives, r as LineChannelConfigSchema, t as hasLineDirectives } from "./reply-payload-transform-
|
|
5
|
-
import {
|
|
4
|
+
import { n as parseLineDirectives, r as LineChannelConfigSchema, t as hasLineDirectives } from "./reply-payload-transform-BOPGHVPo.js";
|
|
5
|
+
import { _ as createLineSendReceipt, b as resolveLineOutboundMedia, v as buildLineMediaMessage, y as hasLineSpecificMediaOptions } from "./flex-templates-BBBlNqpV.js";
|
|
6
6
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
7
7
|
import { buildDmGroupAccountAllowlistAdapter, createFlatAllowlistOverrideResolver } from "openclaw/plugin-sdk/allowlist-config-edit";
|
|
8
8
|
import { buildChannelOutboundSessionRoute, createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
@@ -14,11 +14,11 @@ import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/
|
|
|
14
14
|
import { createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
|
|
15
15
|
import { normalizeStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
16
16
|
import { clearAccountEntryFields } from "openclaw/plugin-sdk/core";
|
|
17
|
-
import { defineChannelMessageAdapter } from "openclaw/plugin-sdk/channel-outbound";
|
|
17
|
+
import { createAccountStatusSink, defineChannelMessageAdapter, listMessageReceiptPlatformIds } from "openclaw/plugin-sdk/channel-outbound";
|
|
18
|
+
import { createChannelPartialDeliveryError } from "openclaw/plugin-sdk/channel-inbound";
|
|
18
19
|
import { createAttachedChannelResultAdapter, createEmptyChannelResult } from "openclaw/plugin-sdk/channel-send-result";
|
|
19
20
|
import { resolveOutboundMediaUrls } from "openclaw/plugin-sdk/reply-payload";
|
|
20
21
|
import { sanitizeAssistantVisibleText } from "openclaw/plugin-sdk/text-chunking";
|
|
21
|
-
import { truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
|
|
22
22
|
import { buildTokenChannelStatusSummary, createComputedAccountStatusAdapter, createDefaultChannelRuntimeState, createDependentCredentialStatusIssueCollector } from "openclaw/plugin-sdk/status-helpers";
|
|
23
23
|
//#region extensions/line/src/bindings.ts
|
|
24
24
|
function normalizeLineConversationId(raw) {
|
|
@@ -71,9 +71,11 @@ const lineConfigAdapter = createScopedChannelConfigAdapter({
|
|
|
71
71
|
}),
|
|
72
72
|
defaultAccountId: resolveDefaultLineAccountId,
|
|
73
73
|
clearBaseFields: [
|
|
74
|
+
"channelAccessToken",
|
|
74
75
|
"channelSecret",
|
|
75
76
|
"tokenFile",
|
|
76
|
-
"secretFile"
|
|
77
|
+
"secretFile",
|
|
78
|
+
"name"
|
|
77
79
|
],
|
|
78
80
|
resolveAllowFrom: (account) => account.config.allowFrom,
|
|
79
81
|
formatAllowFrom: (allowFrom) => normalizeStringEntries(allowFrom).map(normalizeLineAllowFrom)
|
|
@@ -118,14 +120,19 @@ const lineChannelPluginCommon = {
|
|
|
118
120
|
//#endregion
|
|
119
121
|
//#region extensions/line/src/gateway.ts
|
|
120
122
|
const loadLineProbeRuntime$1 = createLazyRuntimeModule(() => import("./probe.runtime-D13ZtXsd.js"));
|
|
121
|
-
const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-
|
|
123
|
+
const loadLineMonitorRuntime = createLazyRuntimeModule(() => import("./monitor.runtime-72isajCp.js"));
|
|
122
124
|
const lineGatewayAdapter = {
|
|
123
125
|
startAccount: async (ctx) => {
|
|
124
126
|
const account = ctx.account;
|
|
127
|
+
const statusSink = createAccountStatusSink({
|
|
128
|
+
accountId: account.accountId,
|
|
129
|
+
setStatus: ctx.setStatus
|
|
130
|
+
});
|
|
125
131
|
const token = account.channelAccessToken.trim();
|
|
126
132
|
const secret = account.channelSecret.trim();
|
|
127
133
|
if (!token) throw new Error(`LINE webhook mode requires a non-empty channel access token for account "${account.accountId}".`);
|
|
128
134
|
if (!secret) throw new Error(`LINE webhook mode requires a non-empty channel secret for account "${account.accountId}".`);
|
|
135
|
+
statusSink({ lifecycle: "starting" });
|
|
129
136
|
let lineBotLabel = "";
|
|
130
137
|
try {
|
|
131
138
|
const probe = await (await loadLineProbeRuntime$1()).probeLineBot(token, 2500);
|
|
@@ -141,8 +148,10 @@ const lineGatewayAdapter = {
|
|
|
141
148
|
accountId: account.accountId,
|
|
142
149
|
config: ctx.cfg,
|
|
143
150
|
runtime: ctx.runtime,
|
|
151
|
+
buildContext: ctx.channelRuntime?.inbound.buildContext,
|
|
144
152
|
abortSignal: ctx.abortSignal,
|
|
145
|
-
webhookPath: account.config.webhookPath
|
|
153
|
+
webhookPath: account.config.webhookPath,
|
|
154
|
+
statusSink
|
|
146
155
|
});
|
|
147
156
|
},
|
|
148
157
|
logoutAccount: async ({ accountId, cfg }) => {
|
|
@@ -233,8 +242,7 @@ function inferLineTargetChatType(target) {
|
|
|
233
242
|
}
|
|
234
243
|
//#endregion
|
|
235
244
|
//#region extensions/line/src/outbound.ts
|
|
236
|
-
const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-
|
|
237
|
-
const LINE_FLEX_ALT_TEXT_LIMIT = 1500;
|
|
245
|
+
const loadLineOutboundRuntime = createLazyRuntimeModule(() => import("./outbound.runtime-CWQMIE7N.js"));
|
|
238
246
|
const lineOutboundAdapter = {
|
|
239
247
|
deliveryMode: "direct",
|
|
240
248
|
chunker: (text, limit) => getLineRuntime().channel.text.chunkMarkdownText(text, limit),
|
|
@@ -245,6 +253,9 @@ const lineOutboundAdapter = {
|
|
|
245
253
|
const outboundRuntime = await loadLineOutboundRuntime();
|
|
246
254
|
const lineData = payload.channelData?.line ?? {};
|
|
247
255
|
const lineRuntime = runtime.channel.line;
|
|
256
|
+
const location = lineData.location;
|
|
257
|
+
const locationMessage = location ? outboundRuntime.createLocationMessage(location) : null;
|
|
258
|
+
const validLocation = locationMessage ? location : void 0;
|
|
248
259
|
const sendText = lineRuntime?.pushMessageLine ?? outboundRuntime.pushMessageLine;
|
|
249
260
|
const sendBatch = lineRuntime?.pushMessagesLine ?? outboundRuntime.pushMessagesLine;
|
|
250
261
|
const sendFlex = lineRuntime?.pushFlexMessage ?? outboundRuntime.pushFlexMessage;
|
|
@@ -256,7 +267,15 @@ const lineOutboundAdapter = {
|
|
|
256
267
|
const recordResult = async (resultPromise) => {
|
|
257
268
|
const result = await resultPromise;
|
|
258
269
|
lastResult = result;
|
|
259
|
-
|
|
270
|
+
try {
|
|
271
|
+
await onDeliveryResult?.(createEmptyChannelResult("line", { ...result }));
|
|
272
|
+
} catch (error) {
|
|
273
|
+
throw createChannelPartialDeliveryError(error, {
|
|
274
|
+
messageIds: listMessageReceiptPlatformIds(result.receipt),
|
|
275
|
+
receipt: result.receipt,
|
|
276
|
+
visibleReplySent: true
|
|
277
|
+
});
|
|
278
|
+
}
|
|
260
279
|
return result;
|
|
261
280
|
};
|
|
262
281
|
const quickReplies = lineData.quickReplies ?? [];
|
|
@@ -278,7 +297,11 @@ const lineOutboundAdapter = {
|
|
|
278
297
|
flexMessages: []
|
|
279
298
|
};
|
|
280
299
|
const chunkLimit = runtime.channel.text.resolveTextChunkLimit?.(cfg, "line", accountId ?? void 0, { fallbackLimit: 5e3 }) ?? 5e3;
|
|
281
|
-
const
|
|
300
|
+
const orderedMessages = processed.segments?.flatMap((segment) => segment.type === "flex" ? [segment.message] : runtime.channel.text.chunkMarkdownText(segment.text, chunkLimit).map((text) => ({
|
|
301
|
+
type: "text",
|
|
302
|
+
text
|
|
303
|
+
})));
|
|
304
|
+
const chunks = orderedMessages ? orderedMessages.flatMap((message) => message.type === "text" ? [message.text] : []) : processed.text ? runtime.channel.text.chunkMarkdownText(processed.text, chunkLimit) : [];
|
|
282
305
|
const mediaUrls = resolveOutboundMediaUrls(payload);
|
|
283
306
|
const useLineSpecificMedia = hasLineSpecificMediaOptions(lineData);
|
|
284
307
|
const mediaOptions = {
|
|
@@ -331,23 +354,42 @@ const lineOutboundAdapter = {
|
|
|
331
354
|
accountId: accountId ?? void 0
|
|
332
355
|
}));
|
|
333
356
|
}
|
|
334
|
-
if (
|
|
357
|
+
if (validLocation) await recordResult(sendLocation(to, validLocation, {
|
|
358
|
+
verbose: false,
|
|
359
|
+
cfg,
|
|
360
|
+
accountId: accountId ?? void 0
|
|
361
|
+
}));
|
|
362
|
+
if (!orderedMessages) for (const flexMsg of processed.flexMessages) await recordResult(sendFlex(to, flexMsg.altText, flexMsg.contents, {
|
|
335
363
|
verbose: false,
|
|
336
364
|
cfg,
|
|
337
365
|
accountId: accountId ?? void 0
|
|
338
366
|
}));
|
|
339
|
-
for (const flexMsg of processed.flexMessages) {
|
|
340
|
-
const flexContents = flexMsg.contents;
|
|
341
|
-
await recordResult(sendFlex(to, flexMsg.altText, flexContents, {
|
|
342
|
-
verbose: false,
|
|
343
|
-
cfg,
|
|
344
|
-
accountId: accountId ?? void 0
|
|
345
|
-
}));
|
|
346
|
-
}
|
|
347
367
|
}
|
|
348
368
|
const sendMediaAfterText = !(hasQuickReplies && chunks.length > 0);
|
|
349
369
|
if (mediaUrls.length > 0 && !shouldSendQuickRepliesInline && !sendMediaAfterText) await sendMediaMessages();
|
|
350
|
-
if (
|
|
370
|
+
if (orderedMessages) for (const [index, message] of orderedMessages.entries()) {
|
|
371
|
+
const isLast = index === orderedMessages.length - 1;
|
|
372
|
+
if (message.type === "flex") if (isLast && quickReply) await sendMessageBatch([{
|
|
373
|
+
...message,
|
|
374
|
+
quickReply
|
|
375
|
+
}]);
|
|
376
|
+
else await recordResult(sendFlex(to, message.altText, message.contents, {
|
|
377
|
+
verbose: false,
|
|
378
|
+
cfg,
|
|
379
|
+
accountId: accountId ?? void 0
|
|
380
|
+
}));
|
|
381
|
+
else if (isLast && hasQuickReplies) await recordResult(sendQuickReplies(to, message.text, quickReplies, {
|
|
382
|
+
verbose: false,
|
|
383
|
+
cfg,
|
|
384
|
+
accountId: accountId ?? void 0
|
|
385
|
+
}));
|
|
386
|
+
else await recordResult(sendText(to, message.text, {
|
|
387
|
+
verbose: false,
|
|
388
|
+
cfg,
|
|
389
|
+
accountId: accountId ?? void 0
|
|
390
|
+
}));
|
|
391
|
+
}
|
|
392
|
+
else if (chunks.length > 0) for (const [i, chunk] of chunks.entries()) if (i === chunks.length - 1 && hasQuickReplies) await recordResult(sendQuickReplies(to, chunk, quickReplies, {
|
|
351
393
|
verbose: false,
|
|
352
394
|
cfg,
|
|
353
395
|
accountId: accountId ?? void 0
|
|
@@ -359,27 +401,13 @@ const lineOutboundAdapter = {
|
|
|
359
401
|
}));
|
|
360
402
|
else if (shouldSendQuickRepliesInline) {
|
|
361
403
|
const quickReplyMessages = [];
|
|
362
|
-
if (lineData.flexMessage) quickReplyMessages.push(
|
|
363
|
-
type: "flex",
|
|
364
|
-
altText: truncateUtf16Safe(lineData.flexMessage.altText, LINE_FLEX_ALT_TEXT_LIMIT),
|
|
365
|
-
contents: lineData.flexMessage.contents
|
|
366
|
-
});
|
|
404
|
+
if (lineData.flexMessage) quickReplyMessages.push(outboundRuntime.createFlexMessage(lineData.flexMessage.altText, lineData.flexMessage.contents));
|
|
367
405
|
if (lineData.templateMessage) {
|
|
368
406
|
const template = buildTemplate(lineData.templateMessage);
|
|
369
407
|
if (template) quickReplyMessages.push(template);
|
|
370
408
|
}
|
|
371
|
-
if (
|
|
372
|
-
|
|
373
|
-
title: truncateUtf16Safe(lineData.location.title, 100),
|
|
374
|
-
address: truncateUtf16Safe(lineData.location.address, 100),
|
|
375
|
-
latitude: lineData.location.latitude,
|
|
376
|
-
longitude: lineData.location.longitude
|
|
377
|
-
});
|
|
378
|
-
for (const flexMsg of processed.flexMessages) quickReplyMessages.push({
|
|
379
|
-
type: "flex",
|
|
380
|
-
altText: truncateUtf16Safe(flexMsg.altText, LINE_FLEX_ALT_TEXT_LIMIT),
|
|
381
|
-
contents: flexMsg.contents
|
|
382
|
-
});
|
|
409
|
+
if (locationMessage) quickReplyMessages.push(locationMessage);
|
|
410
|
+
for (const flexMsg of processed.flexMessages) quickReplyMessages.push(outboundRuntime.createFlexMessage(flexMsg.altText, flexMsg.contents));
|
|
383
411
|
for (const url of mediaUrls) {
|
|
384
412
|
const trimmed = url?.trim();
|
|
385
413
|
if (!trimmed) continue;
|
|
@@ -400,44 +428,15 @@ const lineOutboundAdapter = {
|
|
|
400
428
|
}
|
|
401
429
|
if (mediaUrls.length > 0 && !shouldSendQuickRepliesInline && sendMediaAfterText) await sendMediaMessages();
|
|
402
430
|
const completedResult = lastResult;
|
|
403
|
-
if (completedResult)
|
|
404
|
-
return createEmptyChannelResult("line", {
|
|
405
|
-
messageId: "empty",
|
|
406
|
-
chatId: to
|
|
407
|
-
});
|
|
431
|
+
if (!completedResult) throw new Error("Message must be non-empty for LINE sends");
|
|
432
|
+
return createEmptyChannelResult("line", { ...completedResult });
|
|
408
433
|
},
|
|
409
434
|
...createAttachedChannelResultAdapter({
|
|
410
435
|
channel: "line",
|
|
411
|
-
sendText: async (
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
const processed = outboundRuntime.processLineMessage(text);
|
|
416
|
-
let result;
|
|
417
|
-
if (processed.text.trim()) result = await sendText(to, processed.text, {
|
|
418
|
-
verbose: false,
|
|
419
|
-
cfg,
|
|
420
|
-
accountId: accountId ?? void 0
|
|
421
|
-
});
|
|
422
|
-
else result = {
|
|
423
|
-
messageId: "processed",
|
|
424
|
-
chatId: to,
|
|
425
|
-
receipt: createLineSendReceipt({
|
|
426
|
-
messageId: "processed",
|
|
427
|
-
chatId: to,
|
|
428
|
-
kind: "card"
|
|
429
|
-
})
|
|
430
|
-
};
|
|
431
|
-
for (const flexMsg of processed.flexMessages) {
|
|
432
|
-
const flexContents = flexMsg.contents;
|
|
433
|
-
await sendFlex(to, flexMsg.altText, flexContents, {
|
|
434
|
-
verbose: false,
|
|
435
|
-
cfg,
|
|
436
|
-
accountId: accountId ?? void 0
|
|
437
|
-
});
|
|
438
|
-
}
|
|
439
|
-
return result;
|
|
440
|
-
},
|
|
436
|
+
sendText: async (ctx) => await lineOutboundAdapter.sendPayload({
|
|
437
|
+
...ctx,
|
|
438
|
+
payload: { text: ctx.text }
|
|
439
|
+
}),
|
|
441
440
|
sendMedia: async ({ cfg, to, text, mediaUrl, accountId }) => await (await loadLineOutboundRuntime()).sendMessageLine(to, text, {
|
|
442
441
|
verbose: false,
|
|
443
442
|
mediaUrl,
|
|
@@ -531,7 +530,7 @@ const lineStatusAdapter = createComputedAccountStatusAdapter({
|
|
|
531
530
|
});
|
|
532
531
|
//#endregion
|
|
533
532
|
//#region extensions/line/src/channel.ts
|
|
534
|
-
const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-
|
|
533
|
+
const loadLineChannelRuntime = createLazyRuntimeModule(() => import("./channel.runtime-CuKoy9xw.js"));
|
|
535
534
|
const lineSecurityAdapter = createRestrictSendersChannelSecurity({
|
|
536
535
|
channelKey: "line",
|
|
537
536
|
resolveDmPolicy: (account) => account.config.dmPolicy,
|
|
@@ -612,7 +611,6 @@ const linePlugin = createChatChannelPlugin({
|
|
|
612
611
|
}
|
|
613
612
|
},
|
|
614
613
|
directory: createEmptyChannelDirectoryAdapter(),
|
|
615
|
-
setup: lineSetupAdapter,
|
|
616
614
|
setupContract: lineSetupContract,
|
|
617
615
|
status: lineStatusAdapter,
|
|
618
616
|
gateway: lineGatewayAdapter,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as linePlugin } from "./channel-
|
|
1
|
+
import { t as linePlugin } from "./channel-CAdQJRw7.js";
|
|
2
2
|
export { linePlugin };
|
package/dist/contract-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-
|
|
1
|
+
import { i as resolveLineAccount, r as resolveDefaultLineAccountId, t as listLineAccountIds } from "./accounts-BqEVsDoB.js";
|
|
2
2
|
export { listLineAccountIds, resolveDefaultLineAccountId, resolveLineAccount };
|