nextclaw 0.16.21 → 0.16.23

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.
Files changed (36) hide show
  1. package/dist/cli/index.js +84 -8
  2. package/package.json +11 -11
  3. package/templates/USAGE.md +12 -4
  4. package/ui-dist/assets/{ChannelsList-C63gOoYI.js → ChannelsList-BlQD1VuM.js} +4 -4
  5. package/ui-dist/assets/ChatPage-DBvm558n.js +37 -0
  6. package/ui-dist/assets/{DocBrowser-CI4jOzJY.js → DocBrowser-DTww3NZc.js} +1 -1
  7. package/ui-dist/assets/{LogoBadge-DImV63-L.js → LogoBadge-D0ogG1ut.js} +1 -1
  8. package/ui-dist/assets/{MarketplacePage-B360oSAV.js → MarketplacePage-DTHw6n0X.js} +1 -1
  9. package/ui-dist/assets/{McpMarketplacePage-KIQgx_7h.js → McpMarketplacePage-BikE0mBl.js} +2 -2
  10. package/ui-dist/assets/{ModelConfig-Ben3tQoX.js → ModelConfig-CvM__Pz1.js} +1 -1
  11. package/ui-dist/assets/{ProvidersList-DE-S9mq0.js → ProvidersList-DtZWZlL0.js} +1 -1
  12. package/ui-dist/assets/RemoteAccessPage-E5fT1pem.js +1 -0
  13. package/ui-dist/assets/RuntimeConfig-DyZNiqYT.js +1 -0
  14. package/ui-dist/assets/{SearchConfig-DeOa-M6j.js → SearchConfig-C1bhOCNX.js} +1 -1
  15. package/ui-dist/assets/{SecretsConfig-Ci8pJmzd.js → SecretsConfig-CYmy1Sqy.js} +2 -2
  16. package/ui-dist/assets/{SessionsConfig-B6zq55yu.js → SessionsConfig-DSlhPpIE.js} +2 -2
  17. package/ui-dist/assets/{chat-session-display--oo5yuIw.js → chat-session-display-D9YuDGe3.js} +1 -1
  18. package/ui-dist/assets/index-BBz4mi7g.js +8 -0
  19. package/ui-dist/assets/{index-Bro-iRcb.css → index-CfVmBgkf.css} +1 -1
  20. package/ui-dist/assets/{label-3TKt0PoZ.js → label-C7Xd_hqz.js} +1 -1
  21. package/ui-dist/assets/{page-layout-CopkIM3Q.js → page-layout-VxCaUcrD.js} +1 -1
  22. package/ui-dist/assets/{popover-CUx8uRJw.js → popover-CC4znqAM.js} +1 -1
  23. package/ui-dist/assets/security-config-7eVxJq8b.js +1 -0
  24. package/ui-dist/assets/skeleton-DhZRDdHm.js +1 -0
  25. package/ui-dist/assets/{status-dot-D6vJMwD7.js → status-dot-Bi7Ze-LS.js} +1 -1
  26. package/ui-dist/assets/{switch-A3-ClT1P.js → switch-COBEivEX.js} +1 -1
  27. package/ui-dist/assets/{tabs-custom-BVSd5urq.js → tabs-custom-B9j40wuu.js} +1 -1
  28. package/ui-dist/assets/{useConfirmDialog-ChPriea6.js → useConfirmDialog-N8nuxOq-.js} +1 -1
  29. package/ui-dist/assets/{vendor-BEQcLDx6.js → vendor-MCpnpiKt.js} +35 -35
  30. package/ui-dist/index.html +3 -3
  31. package/ui-dist/assets/ChatPage-Ci3Gz0qh.js +0 -37
  32. package/ui-dist/assets/RemoteAccessPage-DxUia6R-.js +0 -1
  33. package/ui-dist/assets/RuntimeConfig-CQcGfNZT.js +0 -1
  34. package/ui-dist/assets/index-LhlkB00c.js +0 -8
  35. package/ui-dist/assets/security-config-BL29kTzz.js +0 -1
  36. package/ui-dist/assets/skeleton-Bs4zvcql.js +0 -1
package/dist/cli/index.js CHANGED
@@ -3076,7 +3076,7 @@ function printCronJobs(jobs) {
3076
3076
  return;
3077
3077
  }
3078
3078
  for (const job of jobs) {
3079
- console.log(`${job.id} ${job.name} ${formatCronSchedule(job.schedule)}`);
3079
+ console.log(`${job.id} [${job.enabled ? "enabled" : "disabled"}] ${job.name} ${formatCronSchedule(job.schedule)}`);
3080
3080
  }
3081
3081
  }
3082
3082
 
@@ -3152,10 +3152,11 @@ var CronCommands = class {
3152
3152
  return new UiBridgeApiClient(apiBase);
3153
3153
  };
3154
3154
  cronList = async (opts) => {
3155
+ const includeDisabled = opts.enabledOnly !== true;
3155
3156
  const apiClient = this.createApiClient();
3156
3157
  if (apiClient) {
3157
3158
  try {
3158
- const query = opts.all ? "?all=1" : "";
3159
+ const query = includeDisabled ? "" : "?enabledOnly=1";
3159
3160
  const data = await apiClient.request({
3160
3161
  path: `/api/cron${query}`
3161
3162
  });
@@ -3164,7 +3165,7 @@ var CronCommands = class {
3164
3165
  } catch {
3165
3166
  }
3166
3167
  }
3167
- printCronJobs(this.local.list(Boolean(opts.all)));
3168
+ printCronJobs(this.local.list(includeDisabled));
3168
3169
  };
3169
3170
  cronAdd = async (opts) => {
3170
3171
  const result = this.local.add(opts);
@@ -5701,7 +5702,20 @@ var NextclawNcpToolRegistry = class {
5701
5702
  contextTokens: initialConfig.agents.defaults.contextTokens,
5702
5703
  searchConfig: initialConfig.search,
5703
5704
  execConfig: initialConfig.tools.exec,
5704
- restrictToWorkspace: initialConfig.tools.restrictToWorkspace
5705
+ restrictToWorkspace: initialConfig.tools.restrictToWorkspace,
5706
+ completionSink: async (params) => {
5707
+ const sessionId = params.origin.sessionKey?.trim();
5708
+ if (!sessionId || !this.options.writeSubagentCompletionToSession) {
5709
+ return;
5710
+ }
5711
+ await this.options.writeSubagentCompletionToSession({
5712
+ sessionId,
5713
+ label: params.label,
5714
+ task: params.task,
5715
+ result: params.result,
5716
+ status: params.status
5717
+ });
5718
+ }
5705
5719
  });
5706
5720
  }
5707
5721
  subagents;
@@ -6393,6 +6407,45 @@ var NextclawAgentSessionStore = class {
6393
6407
  }
6394
6408
  };
6395
6409
 
6410
+ // src/cli/commands/ncp/ncp-subagent-completion-message.ts
6411
+ function buildSubagentCompletionMessage(params) {
6412
+ const timestamp = (/* @__PURE__ */ new Date()).toISOString();
6413
+ const statusLabel = params.status === "ok" ? "completed" : "failed";
6414
+ return {
6415
+ id: `${params.sessionId}:service:subagent:${timestamp}`,
6416
+ sessionId: params.sessionId,
6417
+ role: "service",
6418
+ status: "final",
6419
+ timestamp,
6420
+ parts: [
6421
+ {
6422
+ type: "text",
6423
+ text: [
6424
+ `Subagent "${params.label}" ${statusLabel}.`,
6425
+ `Task: ${params.task}`,
6426
+ `Result: ${params.result}`
6427
+ ].join("\n\n")
6428
+ },
6429
+ {
6430
+ type: "extension",
6431
+ extensionType: "nextclaw.subagent.completion",
6432
+ data: {
6433
+ label: params.label,
6434
+ task: params.task,
6435
+ result: params.result,
6436
+ status: params.status,
6437
+ completedAt: timestamp
6438
+ }
6439
+ }
6440
+ ],
6441
+ metadata: {
6442
+ subagent_label: params.label,
6443
+ subagent_status: params.status,
6444
+ subagent_task: params.task
6445
+ }
6446
+ };
6447
+ }
6448
+
6396
6449
  // src/cli/commands/ncp/provider-manager-ncp-llm-api.ts
6397
6450
  import { parseThinkingLevel as parseThinkingLevel3 } from "@nextclaw/core";
6398
6451
  function normalizeModel(value) {
@@ -6667,7 +6720,7 @@ async function createMcpRuntimeSupport(getConfig) {
6667
6720
  }
6668
6721
  };
6669
6722
  }
6670
- function createNativeRuntimeFactory(params, mcpToolRegistryAdapter, assetStore) {
6723
+ function createNativeRuntimeFactory(params, mcpToolRegistryAdapter, assetStore, resolveBackend) {
6671
6724
  return ({
6672
6725
  stateManager,
6673
6726
  sessionMetadata,
@@ -6693,6 +6746,22 @@ function createNativeRuntimeFactory(params, mcpToolRegistryAdapter, assetStore)
6693
6746
  gatewayController: params.gatewayController,
6694
6747
  getConfig: params.getConfig,
6695
6748
  getExtensionRegistry: params.getExtensionRegistry,
6749
+ writeSubagentCompletionToSession: async (completion) => {
6750
+ const backend = resolveBackend();
6751
+ if (!backend) {
6752
+ throw new Error("NCP backend is not ready for subagent completion persistence.");
6753
+ }
6754
+ await backend.appendMessage(
6755
+ completion.sessionId,
6756
+ buildSubagentCompletionMessage({
6757
+ sessionId: completion.sessionId,
6758
+ label: completion.label,
6759
+ task: completion.task,
6760
+ result: completion.result,
6761
+ status: completion.status
6762
+ })
6763
+ );
6764
+ },
6696
6765
  getAdditionalTools: (context) => [
6697
6766
  ...createAssetTools({
6698
6767
  assetStore
@@ -6801,7 +6870,13 @@ async function createUiNcpAgent(params) {
6801
6870
  const assetStore = new LocalAssetStore({
6802
6871
  rootDir: join5(getDataDir7(), "assets")
6803
6872
  });
6804
- const createNativeRuntime = createNativeRuntimeFactory(params, toolRegistryAdapter, assetStore);
6873
+ let backend = null;
6874
+ const createNativeRuntime = createNativeRuntimeFactory(
6875
+ params,
6876
+ toolRegistryAdapter,
6877
+ assetStore,
6878
+ () => backend
6879
+ );
6805
6880
  runtimeRegistry.register({
6806
6881
  kind: "native",
6807
6882
  label: "Native",
@@ -6814,7 +6889,7 @@ async function createUiNcpAgent(params) {
6814
6889
  createNativeRuntime
6815
6890
  });
6816
6891
  pluginRuntimeRegistrationController.refreshPluginRuntimeRegistrations();
6817
- const backend = new DefaultNcpAgentBackend({
6892
+ backend = new DefaultNcpAgentBackend({
6818
6893
  endpointId: "nextclaw-ui-agent",
6819
6894
  sessionStore,
6820
6895
  createRuntime: (runtimeParams) => {
@@ -10717,10 +10792,11 @@ channels.command("add").description("Configure a plugin channel (OpenClaw-compat
10717
10792
  channels.command("status").description("Show channel status").action(() => runtime.channelsStatus());
10718
10793
  channels.command("login").description("Link device via QR code").option("--channel <id>", "Plugin channel id").option("--account <id>", "Channel account id").option("--url <url>", "Channel API base URL").option("--http-url <url>", "Alias for --url").option("-v, --verbose", "Verbose output", false).action(async (opts) => runtime.channelsLogin(opts));
10719
10794
  var cron = program.command("cron").description("Manage scheduled tasks");
10720
- cron.command("list").option("-a, --all", "Include disabled jobs").action(async (opts) => runtime.cronList(opts));
10795
+ cron.command("list").option("--enabled-only", "Show only enabled jobs", false).option("-a, --all", "Deprecated: list all jobs (default behavior)", false).action(async (opts) => runtime.cronList({ enabledOnly: Boolean(opts.enabledOnly) }));
10721
10796
  cron.command("add").requiredOption("-n, --name <name>", "Job name").requiredOption("-m, --message <message>", "Message for agent").option("-e, --every <seconds>", "Run every N seconds").option("-c, --cron <expr>", "Cron expression").option("--at <iso>", "Run once at time (ISO format)").option("-d, --deliver", "Deliver response to channel").option("--to <recipient>", "Recipient for delivery").option("--channel <channel>", "Channel for delivery").option("--account <id>", "Account id for channel delivery").action(async (opts) => runtime.cronAdd(opts));
10722
10797
  cron.command("remove <jobId>").action(async (jobId) => runtime.cronRemove(jobId));
10723
10798
  cron.command("enable <jobId>").option("--disable", "Disable instead of enable").action(async (jobId, opts) => runtime.cronEnable(jobId, opts));
10799
+ cron.command("disable <jobId>").action(async (jobId) => runtime.cronEnable(jobId, { disable: true }));
10724
10800
  cron.command("run <jobId>").option("-f, --force", "Run even if disabled").action(async (jobId, opts) => runtime.cronRun(jobId, opts));
10725
10801
  program.command("status").description(`Show ${APP_NAME6} status`).option("--json", "Output JSON", false).option("--verbose", "Show extra diagnostics", false).option("--fix", "Fix stale service state when safe", false).action(async (opts) => runtime.status(opts));
10726
10802
  program.command("doctor").description(`Run ${APP_NAME6} diagnostics`).option("--json", "Output JSON", false).option("--verbose", "Show extra diagnostics", false).option("--fix", "Fix stale service state when safe", false).action(async (opts) => runtime.doctor(opts));
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nextclaw",
3
- "version": "0.16.21",
3
+ "version": "0.16.23",
4
4
  "description": "Lightweight personal AI assistant with CLI, multi-provider routing, and channel integrations.",
5
5
  "private": false,
6
6
  "type": "module",
@@ -39,16 +39,16 @@
39
39
  "chokidar": "^3.6.0",
40
40
  "commander": "^12.1.0",
41
41
  "yaml": "^2.8.1",
42
- "@nextclaw/core": "0.11.8",
43
- "@nextclaw/ncp-agent-runtime": "0.3.1",
42
+ "@nextclaw/core": "0.11.10",
43
+ "@nextclaw/mcp": "0.1.57",
44
+ "@nextclaw/ncp-mcp": "0.1.58",
45
+ "@nextclaw/ncp-toolkit": "0.4.8",
46
+ "@nextclaw/remote": "0.1.67",
47
+ "@nextclaw/runtime": "0.2.24",
48
+ "@nextclaw/server": "0.11.15",
49
+ "@nextclaw/openclaw-compat": "0.3.49",
44
50
  "@nextclaw/ncp": "0.4.1",
45
- "@nextclaw/ncp-mcp": "0.1.56",
46
- "@nextclaw/ncp-toolkit": "0.4.7",
47
- "@nextclaw/runtime": "0.2.22",
48
- "@nextclaw/openclaw-compat": "0.3.47",
49
- "@nextclaw/remote": "0.1.65",
50
- "@nextclaw/mcp": "0.1.55",
51
- "@nextclaw/server": "0.11.13"
51
+ "@nextclaw/ncp-agent-runtime": "0.3.1"
52
52
  },
53
53
  "devDependencies": {
54
54
  "@types/node": "^20.17.6",
@@ -57,7 +57,7 @@
57
57
  "tsx": "^4.19.2",
58
58
  "typescript": "^5.6.3",
59
59
  "vitest": "^2.1.2",
60
- "@nextclaw/ui": "0.11.12"
60
+ "@nextclaw/ui": "0.11.13"
61
61
  },
62
62
  "scripts": {
63
63
  "dev": "tsx watch --tsconfig tsconfig.json src/cli/index.ts",
@@ -502,10 +502,11 @@ Created under the workspace:
502
502
  | `nextclaw doctor` | Run runtime diagnostics (`--json`, `--verbose`, `--fix`) |
503
503
  | `nextclaw channels login` | Open QR login for supported channels |
504
504
  | `nextclaw channels add --channel <id> ...` | Configure plugin channel via setup adapter |
505
- | `nextclaw cron list` | List scheduled jobs |
505
+ | `nextclaw cron list` | List all scheduled jobs, including disabled ones |
506
506
  | `nextclaw cron add ...` | Add a cron job (see [Cron](#cron--heartbeat)) |
507
507
  | `nextclaw cron remove <jobId>` | Remove a job |
508
- | `nextclaw cron enable <jobId>` | Enable a job (use `--disable` to disable) |
508
+ | `nextclaw cron enable <jobId>` | Enable a disabled job |
509
+ | `nextclaw cron disable <jobId>` | Disable a job without deleting it |
509
510
  | `nextclaw cron run <jobId>` | Run a job once (optionally with `--force` if disabled) |
510
511
  | `nextclaw skills install <slug>` | Install a skill from NextClaw marketplace |
511
512
  | `nextclaw skills publish <dir>` | Upload/create a skill to marketplace |
@@ -944,12 +945,19 @@ Optional: deliver the agent’s reply to a channel:
944
945
  nextclaw cron add -n "daily" -m "Daily briefing" -c "0 9 * * *" --deliver --to <recipient> --channel <channel>
945
946
  ```
946
947
 
947
- Remove, enable, or disable a job:
948
+ List all jobs by default, or only enabled ones if needed:
949
+
950
+ ```bash
951
+ nextclaw cron list
952
+ nextclaw cron list --enabled-only
953
+ ```
954
+
955
+ Remove or change a job's enabled state:
948
956
 
949
957
  ```bash
950
958
  nextclaw cron remove <jobId>
951
959
  nextclaw cron enable <jobId>
952
- nextclaw cron enable <jobId> --disable
960
+ nextclaw cron disable <jobId>
953
961
  ```
954
962
 
955
963
  Run a job once (e.g. for testing):
@@ -1,8 +1,8 @@
1
- import{r as L,j as u,X as It,K as Pt,av as Bt,a$ as Tt,b0 as Mt,b1 as Rt,a0 as Lt,g as ut,f as kt,b2 as Me,ae as Re,b3 as Dt,ai as dt,e as q,a3 as Ft,i as Ut,G as qt,H as _t}from"./vendor-BEQcLDx6.js";import{V as zt,t as c,c as K,I as Q,S as Ot,e as Ht,f as Kt,g as Vt,h as Jt,X as ft,B as je,i as Gt,u as gt,a as ht,b as mt,Y as Yt,Z as Qt}from"./index-LhlkB00c.js";import{S as pt}from"./status-dot-D6vJMwD7.js";import{L as yt}from"./LogoBadge-DImV63-L.js";import{h as Se}from"./config-hints-CApS3K_7.js";import{c as Wt,b as Xt,a as Zt,C as $t}from"./config-layout-BHnOoweL.js";import{L as en}from"./label-3TKt0PoZ.js";import{S as tn}from"./switch-A3-ClT1P.js";import{T as nn}from"./tabs-custom-BVSd5urq.js";import{P as rn,a as sn}from"./page-layout-CopkIM3Q.js";function bt(e){var n,t;const s=zt();return((n=e.tutorialUrls)==null?void 0:n[s])||((t=e.tutorialUrls)==null?void 0:t.default)||e.tutorialUrl}const an={telegram:"telegram.svg",slack:"slack.svg",discord:"discord.svg",whatsapp:"whatsapp.svg",qq:"qq.svg",feishu:"feishu.svg",dingtalk:"dingtalk.svg",wecom:"wecom.svg",weixin:"weixin.svg",mochat:"mochat.svg",email:"email.svg"};function on(e,s){const a=s.toLowerCase(),n=e[a];return n?`/logos/${n}`:null}function wt(e){return on(an,e)}function ln({value:e,onChange:s,className:a,placeholder:n=""}){const[t,r]=L.useState(""),i=l=>{l.key==="Enter"&&t.trim()?(l.preventDefault(),s([...e,t.trim()]),r("")):l.key==="Backspace"&&!t&&e.length>0&&s(e.slice(0,-1))},o=l=>{s(e.filter((d,h)=>h!==l))};return u.jsxs("div",{className:K("flex flex-wrap gap-2 p-2 border rounded-md min-h-[42px]",a),children:[e.map((l,d)=>u.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-primary text-primary-foreground rounded text-sm",children:[l,u.jsx("button",{type:"button",onClick:()=>o(d),className:"hover:text-red-300 transition-colors",children:u.jsx(It,{className:"h-3 w-3"})})]},d)),u.jsx("input",{type:"text",value:t,onChange:l=>r(l.target.value),onKeyDown:i,className:"flex-1 outline-none min-w-[100px] bg-transparent text-sm",placeholder:n||c("enterTag")})]})}function cn(e){return e.includes("token")||e.includes("secret")||e.includes("password")?u.jsx(Pt,{className:"h-3.5 w-3.5 text-gray-500"}):e.includes("url")||e.includes("host")?u.jsx(Bt,{className:"h-3.5 w-3.5 text-gray-500"}):e.includes("email")||e.includes("mail")?u.jsx(Tt,{className:"h-3.5 w-3.5 text-gray-500"}):e.includes("id")||e.includes("from")?u.jsx(Mt,{className:"h-3.5 w-3.5 text-gray-500"}):e==="enabled"||e==="consentGranted"?u.jsx(Rt,{className:"h-3.5 w-3.5 text-gray-500"}):u.jsx(Lt,{className:"h-3.5 w-3.5 text-gray-500"})}function Le({channelName:e,fields:s,formData:a,jsonDrafts:n,setJsonDrafts:t,updateField:r,uiHints:i}){return u.jsx(u.Fragment,{children:s.map(o=>{const l=Se(`channels.${e}.${o.name}`,i),d=(l==null?void 0:l.label)??o.label,h=l==null?void 0:l.placeholder;return u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(en,{htmlFor:o.name,className:"flex items-center gap-2 text-sm font-medium text-gray-900",children:[cn(o.name),d]}),o.type==="boolean"&&u.jsxs("div",{className:"flex items-center justify-between rounded-xl bg-gray-50 p-3",children:[u.jsx("span",{className:"text-sm text-gray-500",children:a[o.name]?c("enabled"):c("disabled")}),u.jsx(tn,{id:o.name,checked:a[o.name]||!1,onCheckedChange:f=>r(o.name,f),className:"data-[state=checked]:bg-emerald-500"})]}),(o.type==="text"||o.type==="email")&&u.jsx(Q,{id:o.name,type:o.type,value:a[o.name]||"",onChange:f=>r(o.name,f.target.value),placeholder:h,className:"rounded-xl"}),o.type==="password"&&u.jsx(Q,{id:o.name,type:"password",value:a[o.name]||"",onChange:f=>r(o.name,f.target.value),placeholder:h??c("leaveBlankToKeepUnchanged"),className:"rounded-xl"}),o.type==="number"&&u.jsx(Q,{id:o.name,type:"number",value:a[o.name]||0,onChange:f=>r(o.name,parseInt(f.target.value,10)||0),placeholder:h,className:"rounded-xl"}),o.type==="tags"&&u.jsx(ln,{value:a[o.name]||[],onChange:f=>r(o.name,f)}),o.type==="select"&&u.jsxs(Ot,{value:a[o.name]||"",onValueChange:f=>r(o.name,f),children:[u.jsx(Ht,{className:"rounded-xl",children:u.jsx(Kt,{})}),u.jsx(Vt,{children:(o.options??[]).map(f=>u.jsx(Jt,{value:f.value,children:f.label},f.value))})]}),o.type==="json"&&u.jsx("textarea",{id:o.name,value:n[o.name]??"{}",onChange:f=>t(x=>({...x,[o.name]:f.target.value})),className:"min-h-[120px] w-full resize-none rounded-lg border border-gray-200 bg-white px-3 py-2 text-xs font-mono"})]},o.name)})})}const te=[{value:"pairing",label:"pairing"},{value:"allowlist",label:"allowlist"},{value:"open",label:"open"},{value:"disabled",label:"disabled"}],ne=[{value:"open",label:"open"},{value:"allowlist",label:"allowlist"},{value:"disabled",label:"disabled"}],un=[{value:"off",label:"off"},{value:"partial",label:"partial"},{value:"block",label:"block"},{value:"progress",label:"progress"}];function ke(){return{telegram:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"token",type:"password",label:c("botToken")},{name:"allowFrom",type:"tags",label:c("allowFrom")},{name:"proxy",type:"text",label:c("proxy")},{name:"accountId",type:"text",label:c("accountId")},{name:"dmPolicy",type:"select",label:c("dmPolicy"),options:te},{name:"groupPolicy",type:"select",label:c("groupPolicy"),options:ne},{name:"groupAllowFrom",type:"tags",label:c("groupAllowFrom")},{name:"requireMention",type:"boolean",label:c("requireMention")},{name:"mentionPatterns",type:"tags",label:c("mentionPatterns")},{name:"groups",type:"json",label:c("groupRulesJson")}],discord:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"token",type:"password",label:c("botToken")},{name:"allowBots",type:"boolean",label:c("allowBotMessages")},{name:"allowFrom",type:"tags",label:c("allowFrom")},{name:"gatewayUrl",type:"text",label:c("gatewayUrl")},{name:"intents",type:"number",label:c("intents")},{name:"proxy",type:"text",label:c("proxy")},{name:"mediaMaxMb",type:"number",label:c("attachmentMaxSizeMb")},{name:"streaming",type:"select",label:c("streamingMode"),options:un},{name:"draftChunk",type:"json",label:c("draftChunkingJson")},{name:"textChunkLimit",type:"number",label:c("textChunkLimit")},{name:"accountId",type:"text",label:c("accountId")},{name:"dmPolicy",type:"select",label:c("dmPolicy"),options:te},{name:"groupPolicy",type:"select",label:c("groupPolicy"),options:ne},{name:"groupAllowFrom",type:"tags",label:c("groupAllowFrom")},{name:"requireMention",type:"boolean",label:c("requireMention")},{name:"mentionPatterns",type:"tags",label:c("mentionPatterns")},{name:"groups",type:"json",label:c("groupRulesJson")}],whatsapp:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"bridgeUrl",type:"text",label:c("bridgeUrl")},{name:"allowFrom",type:"tags",label:c("allowFrom")}],feishu:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"appId",type:"text",label:c("appId")},{name:"appSecret",type:"password",label:c("appSecret")},{name:"encryptKey",type:"password",label:c("encryptKey")},{name:"verificationToken",type:"password",label:c("verificationToken")},{name:"domain",type:"text",label:"Domain"},{name:"allowFrom",type:"tags",label:c("allowFrom")},{name:"dmPolicy",type:"select",label:c("dmPolicy"),options:te},{name:"groupPolicy",type:"select",label:c("groupPolicy"),options:ne},{name:"groupAllowFrom",type:"tags",label:c("groupAllowFrom")},{name:"requireMention",type:"boolean",label:c("requireMention")},{name:"mentionPatterns",type:"tags",label:c("mentionPatterns")},{name:"groups",type:"json",label:c("groupRulesJson")},{name:"accounts",type:"json",label:c("accountsJson")}],dingtalk:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"clientId",type:"text",label:c("clientId")},{name:"clientSecret",type:"password",label:c("clientSecret")},{name:"allowFrom",type:"tags",label:c("allowFrom")}],wecom:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"corpId",type:"text",label:c("corpId")},{name:"agentId",type:"text",label:c("agentId")},{name:"secret",type:"password",label:c("secret")},{name:"token",type:"password",label:c("token")},{name:"callbackPort",type:"number",label:c("callbackPort")},{name:"callbackPath",type:"text",label:c("callbackPath")},{name:"allowFrom",type:"tags",label:c("allowFrom")}],weixin:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"defaultAccountId",type:"text",label:c("defaultAccountId")},{name:"baseUrl",type:"text",label:c("baseUrl")},{name:"pollTimeoutMs",type:"number",label:c("pollTimeoutMs")},{name:"allowFrom",type:"tags",label:c("allowFrom")},{name:"accounts",type:"json",label:c("accountsJson")}],slack:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"mode",type:"text",label:c("mode")},{name:"webhookPath",type:"text",label:c("webhookPath")},{name:"allowBots",type:"boolean",label:c("allowBotMessages")},{name:"botToken",type:"password",label:c("botToken")},{name:"appToken",type:"password",label:c("appToken")}],email:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"consentGranted",type:"boolean",label:c("consentGranted")},{name:"imapHost",type:"text",label:c("imapHost")},{name:"imapPort",type:"number",label:c("imapPort")},{name:"imapUsername",type:"text",label:c("imapUsername")},{name:"imapPassword",type:"password",label:c("imapPassword")},{name:"fromAddress",type:"email",label:c("fromAddress")}],mochat:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"baseUrl",type:"text",label:c("baseUrl")},{name:"clawToken",type:"password",label:c("clawToken")},{name:"agentUserId",type:"text",label:c("agentUserId")},{name:"allowFrom",type:"tags",label:c("allowFrom")}],qq:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"appId",type:"text",label:c("appId")},{name:"secret",type:"password",label:c("appSecret")},{name:"markdownSupport",type:"boolean",label:c("markdownSupport")},{name:"allowFrom",type:"tags",label:c("allowFrom")}]}}var H={},re,De;function dn(){return De||(De=1,re=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),re}var se={},U={},Fe;function _(){if(Fe)return U;Fe=1;let e;const s=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return U.getSymbolSize=function(n){if(!n)throw new Error('"version" cannot be null or undefined');if(n<1||n>40)throw new Error('"version" should be in range from 1 to 40');return n*4+17},U.getSymbolTotalCodewords=function(n){return s[n]},U.getBCHDigit=function(a){let n=0;for(;a!==0;)n++,a>>>=1;return n},U.setToSJISFunction=function(n){if(typeof n!="function")throw new Error('"toSJISFunc" is not a valid function.');e=n},U.isKanjiModeEnabled=function(){return typeof e<"u"},U.toSJIS=function(n){return e(n)},U}var ae={},Ue;function Ie(){return Ue||(Ue=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function s(a){if(typeof a!="string")throw new Error("Param is not a string");switch(a.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+a)}}e.isValid=function(n){return n&&typeof n.bit<"u"&&n.bit>=0&&n.bit<4},e.from=function(n,t){if(e.isValid(n))return n;try{return s(n)}catch{return t}}})(ae)),ae}var oe,qe;function fn(){if(qe)return oe;qe=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(s){const a=Math.floor(s/8);return(this.buffer[a]>>>7-s%8&1)===1},put:function(s,a){for(let n=0;n<a;n++)this.putBit((s>>>a-n-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(s){const a=Math.floor(this.length/8);this.buffer.length<=a&&this.buffer.push(0),s&&(this.buffer[a]|=128>>>this.length%8),this.length++}},oe=e,oe}var ie,_e;function gn(){if(_e)return ie;_e=1;function e(s){if(!s||s<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=s,this.data=new Uint8Array(s*s),this.reservedBit=new Uint8Array(s*s)}return e.prototype.set=function(s,a,n,t){const r=s*this.size+a;this.data[r]=n,t&&(this.reservedBit[r]=!0)},e.prototype.get=function(s,a){return this.data[s*this.size+a]},e.prototype.xor=function(s,a,n){this.data[s*this.size+a]^=n},e.prototype.isReserved=function(s,a){return this.reservedBit[s*this.size+a]},ie=e,ie}var le={},ze;function hn(){return ze||(ze=1,(function(e){const s=_().getSymbolSize;e.getRowColCoords=function(n){if(n===1)return[];const t=Math.floor(n/7)+2,r=s(n),i=r===145?26:Math.ceil((r-13)/(2*t-2))*2,o=[r-7];for(let l=1;l<t-1;l++)o[l]=o[l-1]-i;return o.push(6),o.reverse()},e.getPositions=function(n){const t=[],r=e.getRowColCoords(n),i=r.length;for(let o=0;o<i;o++)for(let l=0;l<i;l++)o===0&&l===0||o===0&&l===i-1||o===i-1&&l===0||t.push([r[o],r[l]]);return t}})(le)),le}var ce={},Oe;function mn(){if(Oe)return ce;Oe=1;const e=_().getSymbolSize,s=7;return ce.getPositions=function(n){const t=e(n);return[[0,0],[t-s,0],[0,t-s]]},ce}var ue={},He;function pn(){return He||(He=1,(function(e){e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const s={N1:3,N2:3,N3:40,N4:10};e.isValid=function(t){return t!=null&&t!==""&&!isNaN(t)&&t>=0&&t<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(t){const r=t.size;let i=0,o=0,l=0,d=null,h=null;for(let f=0;f<r;f++){o=l=0,d=h=null;for(let x=0;x<r;x++){let g=t.get(f,x);g===d?o++:(o>=5&&(i+=s.N1+(o-5)),d=g,o=1),g=t.get(x,f),g===h?l++:(l>=5&&(i+=s.N1+(l-5)),h=g,l=1)}o>=5&&(i+=s.N1+(o-5)),l>=5&&(i+=s.N1+(l-5))}return i},e.getPenaltyN2=function(t){const r=t.size;let i=0;for(let o=0;o<r-1;o++)for(let l=0;l<r-1;l++){const d=t.get(o,l)+t.get(o,l+1)+t.get(o+1,l)+t.get(o+1,l+1);(d===4||d===0)&&i++}return i*s.N2},e.getPenaltyN3=function(t){const r=t.size;let i=0,o=0,l=0;for(let d=0;d<r;d++){o=l=0;for(let h=0;h<r;h++)o=o<<1&2047|t.get(d,h),h>=10&&(o===1488||o===93)&&i++,l=l<<1&2047|t.get(h,d),h>=10&&(l===1488||l===93)&&i++}return i*s.N3},e.getPenaltyN4=function(t){let r=0;const i=t.data.length;for(let l=0;l<i;l++)r+=t.data[l];return Math.abs(Math.ceil(r*100/i/5)-10)*s.N4};function a(n,t,r){switch(n){case e.Patterns.PATTERN000:return(t+r)%2===0;case e.Patterns.PATTERN001:return t%2===0;case e.Patterns.PATTERN010:return r%3===0;case e.Patterns.PATTERN011:return(t+r)%3===0;case e.Patterns.PATTERN100:return(Math.floor(t/2)+Math.floor(r/3))%2===0;case e.Patterns.PATTERN101:return t*r%2+t*r%3===0;case e.Patterns.PATTERN110:return(t*r%2+t*r%3)%2===0;case e.Patterns.PATTERN111:return(t*r%3+(t+r)%2)%2===0;default:throw new Error("bad maskPattern:"+n)}}e.applyMask=function(t,r){const i=r.size;for(let o=0;o<i;o++)for(let l=0;l<i;l++)r.isReserved(l,o)||r.xor(l,o,a(t,l,o))},e.getBestMask=function(t,r){const i=Object.keys(e.Patterns).length;let o=0,l=1/0;for(let d=0;d<i;d++){r(d),e.applyMask(d,t);const h=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(d,t),h<l&&(l=h,o=d)}return o}})(ue)),ue}var Y={},Ke;function xt(){if(Ke)return Y;Ke=1;const e=Ie(),s=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],a=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return Y.getBlocksCount=function(t,r){switch(r){case e.L:return s[(t-1)*4+0];case e.M:return s[(t-1)*4+1];case e.Q:return s[(t-1)*4+2];case e.H:return s[(t-1)*4+3];default:return}},Y.getTotalCodewordsCount=function(t,r){switch(r){case e.L:return a[(t-1)*4+0];case e.M:return a[(t-1)*4+1];case e.Q:return a[(t-1)*4+2];case e.H:return a[(t-1)*4+3];default:return}},Y}var de={},J={},Ve;function yn(){if(Ve)return J;Ve=1;const e=new Uint8Array(512),s=new Uint8Array(256);return(function(){let n=1;for(let t=0;t<255;t++)e[t]=n,s[n]=t,n<<=1,n&256&&(n^=285);for(let t=255;t<512;t++)e[t]=e[t-255]})(),J.log=function(n){if(n<1)throw new Error("log("+n+")");return s[n]},J.exp=function(n){return e[n]},J.mul=function(n,t){return n===0||t===0?0:e[s[n]+s[t]]},J}var Je;function bn(){return Je||(Je=1,(function(e){const s=yn();e.mul=function(n,t){const r=new Uint8Array(n.length+t.length-1);for(let i=0;i<n.length;i++)for(let o=0;o<t.length;o++)r[i+o]^=s.mul(n[i],t[o]);return r},e.mod=function(n,t){let r=new Uint8Array(n);for(;r.length-t.length>=0;){const i=r[0];for(let l=0;l<t.length;l++)r[l]^=s.mul(t[l],i);let o=0;for(;o<r.length&&r[o]===0;)o++;r=r.slice(o)}return r},e.generateECPolynomial=function(n){let t=new Uint8Array([1]);for(let r=0;r<n;r++)t=e.mul(t,new Uint8Array([1,s.exp(r)]));return t}})(de)),de}var fe,Ge;function wn(){if(Ge)return fe;Ge=1;const e=bn();function s(a){this.genPoly=void 0,this.degree=a,this.degree&&this.initialize(this.degree)}return s.prototype.initialize=function(n){this.degree=n,this.genPoly=e.generateECPolynomial(this.degree)},s.prototype.encode=function(n){if(!this.genPoly)throw new Error("Encoder not initialized");const t=new Uint8Array(n.length+this.degree);t.set(n);const r=e.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){const o=new Uint8Array(this.degree);return o.set(r,i),o}return r},fe=s,fe}var ge={},he={},me={},Ye;function Ct(){return Ye||(Ye=1,me.isValid=function(s){return!isNaN(s)&&s>=1&&s<=40}),me}var k={},Qe;function At(){if(Qe)return k;Qe=1;const e="[0-9]+",s="[A-Z $%*+\\-./:]+";let a="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";a=a.replace(/u/g,"\\u");const n="(?:(?![A-Z0-9 $%*+\\-./:]|"+a+`)(?:.|[\r
2
- ]))+`;k.KANJI=new RegExp(a,"g"),k.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),k.BYTE=new RegExp(n,"g"),k.NUMERIC=new RegExp(e,"g"),k.ALPHANUMERIC=new RegExp(s,"g");const t=new RegExp("^"+a+"$"),r=new RegExp("^"+e+"$"),i=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return k.testKanji=function(l){return t.test(l)},k.testNumeric=function(l){return r.test(l)},k.testAlphanumeric=function(l){return i.test(l)},k}var We;function z(){return We||(We=1,(function(e){const s=Ct(),a=At();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(r,i){if(!r.ccBits)throw new Error("Invalid mode: "+r);if(!s.isValid(i))throw new Error("Invalid version: "+i);return i>=1&&i<10?r.ccBits[0]:i<27?r.ccBits[1]:r.ccBits[2]},e.getBestModeForData=function(r){return a.testNumeric(r)?e.NUMERIC:a.testAlphanumeric(r)?e.ALPHANUMERIC:a.testKanji(r)?e.KANJI:e.BYTE},e.toString=function(r){if(r&&r.id)return r.id;throw new Error("Invalid mode")},e.isValid=function(r){return r&&r.bit&&r.ccBits};function n(t){if(typeof t!="string")throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}e.from=function(r,i){if(e.isValid(r))return r;try{return n(r)}catch{return i}}})(he)),he}var Xe;function xn(){return Xe||(Xe=1,(function(e){const s=_(),a=xt(),n=Ie(),t=z(),r=Ct(),i=7973,o=s.getBCHDigit(i);function l(x,g,y){for(let A=1;A<=40;A++)if(g<=e.getCapacity(A,y,x))return A}function d(x,g){return t.getCharCountIndicator(x,g)+4}function h(x,g){let y=0;return x.forEach(function(A){const T=d(A.mode,g);y+=T+A.getBitsLength()}),y}function f(x,g){for(let y=1;y<=40;y++)if(h(x,y)<=e.getCapacity(y,g,t.MIXED))return y}e.from=function(g,y){return r.isValid(g)?parseInt(g,10):y},e.getCapacity=function(g,y,A){if(!r.isValid(g))throw new Error("Invalid QR Code version");typeof A>"u"&&(A=t.BYTE);const T=s.getSymbolTotalCodewords(g),E=a.getTotalCodewordsCount(g,y),B=(T-E)*8;if(A===t.MIXED)return B;const b=B-d(A,g);switch(A){case t.NUMERIC:return Math.floor(b/10*3);case t.ALPHANUMERIC:return Math.floor(b/11*2);case t.KANJI:return Math.floor(b/13);case t.BYTE:default:return Math.floor(b/8)}},e.getBestVersionForData=function(g,y){let A;const T=n.from(y,n.M);if(Array.isArray(g)){if(g.length>1)return f(g,T);if(g.length===0)return 1;A=g[0]}else A=g;return l(A.mode,A.getLength(),T)},e.getEncodedBits=function(g){if(!r.isValid(g)||g<7)throw new Error("Invalid QR Code version");let y=g<<12;for(;s.getBCHDigit(y)-o>=0;)y^=i<<s.getBCHDigit(y)-o;return g<<12|y}})(ge)),ge}var pe={},Ze;function Cn(){if(Ze)return pe;Ze=1;const e=_(),s=1335,a=21522,n=e.getBCHDigit(s);return pe.getEncodedBits=function(r,i){const o=r.bit<<3|i;let l=o<<10;for(;e.getBCHDigit(l)-n>=0;)l^=s<<e.getBCHDigit(l)-n;return(o<<10|l)^a},pe}var ye={},be,$e;function An(){if($e)return be;$e=1;const e=z();function s(a){this.mode=e.NUMERIC,this.data=a.toString()}return s.getBitsLength=function(n){return 10*Math.floor(n/3)+(n%3?n%3*3+1:0)},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(n){let t,r,i;for(t=0;t+3<=this.data.length;t+=3)r=this.data.substr(t,3),i=parseInt(r,10),n.put(i,10);const o=this.data.length-t;o>0&&(r=this.data.substr(t),i=parseInt(r,10),n.put(i,o*3+1))},be=s,be}var we,et;function vn(){if(et)return we;et=1;const e=z(),s=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function a(n){this.mode=e.ALPHANUMERIC,this.data=n}return a.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(t){let r;for(r=0;r+2<=this.data.length;r+=2){let i=s.indexOf(this.data[r])*45;i+=s.indexOf(this.data[r+1]),t.put(i,11)}this.data.length%2&&t.put(s.indexOf(this.data[r]),6)},we=a,we}var xe,tt;function Nn(){if(tt)return xe;tt=1;const e=z();function s(a){this.mode=e.BYTE,typeof a=="string"?this.data=new TextEncoder().encode(a):this.data=new Uint8Array(a)}return s.getBitsLength=function(n){return n*8},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(a){for(let n=0,t=this.data.length;n<t;n++)a.put(this.data[n],8)},xe=s,xe}var Ce,nt;function En(){if(nt)return Ce;nt=1;const e=z(),s=_();function a(n){this.mode=e.KANJI,this.data=n}return a.getBitsLength=function(t){return t*13},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(n){let t;for(t=0;t<this.data.length;t++){let r=s.toSJIS(this.data[t]);if(r>=33088&&r<=40956)r-=33088;else if(r>=57408&&r<=60351)r-=49472;else throw new Error("Invalid SJIS character: "+this.data[t]+`
1
+ import{r as L,j as u,X as It,K as Pt,aw as Bt,b0 as Tt,b1 as Mt,b2 as Rt,a0 as Lt,g as ut,f as kt,b3 as Me,ae as Re,b4 as Dt,aj as dt,e as q,a3 as Ft,i as Ut,G as qt,H as _t}from"./vendor-MCpnpiKt.js";import{W as zt,t as c,c as K,I as Q,S as Ot,e as Ht,f as Kt,g as Jt,h as Vt,Y as ft,B as je,i as Gt,u as gt,a as ht,b as mt,Z as Yt,_ as Qt}from"./index-BBz4mi7g.js";import{S as pt}from"./status-dot-Bi7Ze-LS.js";import{L as yt}from"./LogoBadge-D0ogG1ut.js";import{h as Se}from"./config-hints-CApS3K_7.js";import{c as Wt,b as Zt,a as Xt,C as $t}from"./config-layout-BHnOoweL.js";import{L as en}from"./label-C7Xd_hqz.js";import{S as tn}from"./switch-COBEivEX.js";import{T as nn}from"./tabs-custom-B9j40wuu.js";import{P as rn,a as sn}from"./page-layout-VxCaUcrD.js";function bt(e){var n,t;const s=zt();return((n=e.tutorialUrls)==null?void 0:n[s])||((t=e.tutorialUrls)==null?void 0:t.default)||e.tutorialUrl}const an={telegram:"telegram.svg",slack:"slack.svg",discord:"discord.svg",whatsapp:"whatsapp.svg",qq:"qq.svg",feishu:"feishu.svg",dingtalk:"dingtalk.svg",wecom:"wecom.svg",weixin:"weixin.svg",mochat:"mochat.svg",email:"email.svg"};function on(e,s){const a=s.toLowerCase(),n=e[a];return n?`/logos/${n}`:null}function wt(e){return on(an,e)}function ln({value:e,onChange:s,className:a,placeholder:n=""}){const[t,r]=L.useState(""),i=l=>{l.key==="Enter"&&t.trim()?(l.preventDefault(),s([...e,t.trim()]),r("")):l.key==="Backspace"&&!t&&e.length>0&&s(e.slice(0,-1))},o=l=>{s(e.filter((d,h)=>h!==l))};return u.jsxs("div",{className:K("flex flex-wrap gap-2 p-2 border rounded-md min-h-[42px]",a),children:[e.map((l,d)=>u.jsxs("span",{className:"inline-flex items-center gap-1 px-2 py-1 bg-primary text-primary-foreground rounded text-sm",children:[l,u.jsx("button",{type:"button",onClick:()=>o(d),className:"hover:text-red-300 transition-colors",children:u.jsx(It,{className:"h-3 w-3"})})]},d)),u.jsx("input",{type:"text",value:t,onChange:l=>r(l.target.value),onKeyDown:i,className:"flex-1 outline-none min-w-[100px] bg-transparent text-sm",placeholder:n||c("enterTag")})]})}function cn(e){return e.includes("token")||e.includes("secret")||e.includes("password")?u.jsx(Pt,{className:"h-3.5 w-3.5 text-gray-500"}):e.includes("url")||e.includes("host")?u.jsx(Bt,{className:"h-3.5 w-3.5 text-gray-500"}):e.includes("email")||e.includes("mail")?u.jsx(Tt,{className:"h-3.5 w-3.5 text-gray-500"}):e.includes("id")||e.includes("from")?u.jsx(Mt,{className:"h-3.5 w-3.5 text-gray-500"}):e==="enabled"||e==="consentGranted"?u.jsx(Rt,{className:"h-3.5 w-3.5 text-gray-500"}):u.jsx(Lt,{className:"h-3.5 w-3.5 text-gray-500"})}function Le({channelName:e,fields:s,formData:a,jsonDrafts:n,setJsonDrafts:t,updateField:r,uiHints:i}){return u.jsx(u.Fragment,{children:s.map(o=>{const l=Se(`channels.${e}.${o.name}`,i),d=(l==null?void 0:l.label)??o.label,h=l==null?void 0:l.placeholder;return u.jsxs("div",{className:"space-y-2.5",children:[u.jsxs(en,{htmlFor:o.name,className:"flex items-center gap-2 text-sm font-medium text-gray-900",children:[cn(o.name),d]}),o.type==="boolean"&&u.jsxs("div",{className:"flex items-center justify-between rounded-xl bg-gray-50 p-3",children:[u.jsx("span",{className:"text-sm text-gray-500",children:a[o.name]?c("enabled"):c("disabled")}),u.jsx(tn,{id:o.name,checked:a[o.name]||!1,onCheckedChange:f=>r(o.name,f),className:"data-[state=checked]:bg-emerald-500"})]}),(o.type==="text"||o.type==="email")&&u.jsx(Q,{id:o.name,type:o.type,value:a[o.name]||"",onChange:f=>r(o.name,f.target.value),placeholder:h,className:"rounded-xl"}),o.type==="password"&&u.jsx(Q,{id:o.name,type:"password",value:a[o.name]||"",onChange:f=>r(o.name,f.target.value),placeholder:h??c("leaveBlankToKeepUnchanged"),className:"rounded-xl"}),o.type==="number"&&u.jsx(Q,{id:o.name,type:"number",value:a[o.name]||0,onChange:f=>r(o.name,parseInt(f.target.value,10)||0),placeholder:h,className:"rounded-xl"}),o.type==="tags"&&u.jsx(ln,{value:a[o.name]||[],onChange:f=>r(o.name,f)}),o.type==="select"&&u.jsxs(Ot,{value:a[o.name]||"",onValueChange:f=>r(o.name,f),children:[u.jsx(Ht,{className:"rounded-xl",children:u.jsx(Kt,{})}),u.jsx(Jt,{children:(o.options??[]).map(f=>u.jsx(Vt,{value:f.value,children:f.label},f.value))})]}),o.type==="json"&&u.jsx("textarea",{id:o.name,value:n[o.name]??"{}",onChange:f=>t(x=>({...x,[o.name]:f.target.value})),className:"min-h-[120px] w-full resize-none rounded-lg border border-gray-200 bg-white px-3 py-2 text-xs font-mono"})]},o.name)})})}const te=[{value:"pairing",label:"pairing"},{value:"allowlist",label:"allowlist"},{value:"open",label:"open"},{value:"disabled",label:"disabled"}],ne=[{value:"open",label:"open"},{value:"allowlist",label:"allowlist"},{value:"disabled",label:"disabled"}],un=[{value:"off",label:"off"},{value:"partial",label:"partial"},{value:"block",label:"block"},{value:"progress",label:"progress"}];function ke(){return{telegram:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"token",type:"password",label:c("botToken")},{name:"allowFrom",type:"tags",label:c("allowFrom")},{name:"proxy",type:"text",label:c("proxy")},{name:"accountId",type:"text",label:c("accountId")},{name:"dmPolicy",type:"select",label:c("dmPolicy"),options:te},{name:"groupPolicy",type:"select",label:c("groupPolicy"),options:ne},{name:"groupAllowFrom",type:"tags",label:c("groupAllowFrom")},{name:"requireMention",type:"boolean",label:c("requireMention")},{name:"mentionPatterns",type:"tags",label:c("mentionPatterns")},{name:"groups",type:"json",label:c("groupRulesJson")}],discord:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"token",type:"password",label:c("botToken")},{name:"allowBots",type:"boolean",label:c("allowBotMessages")},{name:"allowFrom",type:"tags",label:c("allowFrom")},{name:"gatewayUrl",type:"text",label:c("gatewayUrl")},{name:"intents",type:"number",label:c("intents")},{name:"proxy",type:"text",label:c("proxy")},{name:"mediaMaxMb",type:"number",label:c("attachmentMaxSizeMb")},{name:"streaming",type:"select",label:c("streamingMode"),options:un},{name:"draftChunk",type:"json",label:c("draftChunkingJson")},{name:"textChunkLimit",type:"number",label:c("textChunkLimit")},{name:"accountId",type:"text",label:c("accountId")},{name:"dmPolicy",type:"select",label:c("dmPolicy"),options:te},{name:"groupPolicy",type:"select",label:c("groupPolicy"),options:ne},{name:"groupAllowFrom",type:"tags",label:c("groupAllowFrom")},{name:"requireMention",type:"boolean",label:c("requireMention")},{name:"mentionPatterns",type:"tags",label:c("mentionPatterns")},{name:"groups",type:"json",label:c("groupRulesJson")}],whatsapp:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"bridgeUrl",type:"text",label:c("bridgeUrl")},{name:"allowFrom",type:"tags",label:c("allowFrom")}],feishu:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"appId",type:"text",label:c("appId")},{name:"appSecret",type:"password",label:c("appSecret")},{name:"encryptKey",type:"password",label:c("encryptKey")},{name:"verificationToken",type:"password",label:c("verificationToken")},{name:"domain",type:"text",label:"Domain"},{name:"allowFrom",type:"tags",label:c("allowFrom")},{name:"dmPolicy",type:"select",label:c("dmPolicy"),options:te},{name:"groupPolicy",type:"select",label:c("groupPolicy"),options:ne},{name:"groupAllowFrom",type:"tags",label:c("groupAllowFrom")},{name:"requireMention",type:"boolean",label:c("requireMention")},{name:"mentionPatterns",type:"tags",label:c("mentionPatterns")},{name:"groups",type:"json",label:c("groupRulesJson")},{name:"accounts",type:"json",label:c("accountsJson")}],dingtalk:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"clientId",type:"text",label:c("clientId")},{name:"clientSecret",type:"password",label:c("clientSecret")},{name:"allowFrom",type:"tags",label:c("allowFrom")}],wecom:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"corpId",type:"text",label:c("corpId")},{name:"agentId",type:"text",label:c("agentId")},{name:"secret",type:"password",label:c("secret")},{name:"token",type:"password",label:c("token")},{name:"callbackPort",type:"number",label:c("callbackPort")},{name:"callbackPath",type:"text",label:c("callbackPath")},{name:"allowFrom",type:"tags",label:c("allowFrom")}],weixin:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"defaultAccountId",type:"text",label:c("defaultAccountId")},{name:"baseUrl",type:"text",label:c("baseUrl")},{name:"pollTimeoutMs",type:"number",label:c("pollTimeoutMs")},{name:"allowFrom",type:"tags",label:c("allowFrom")},{name:"accounts",type:"json",label:c("accountsJson")}],slack:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"mode",type:"text",label:c("mode")},{name:"webhookPath",type:"text",label:c("webhookPath")},{name:"allowBots",type:"boolean",label:c("allowBotMessages")},{name:"botToken",type:"password",label:c("botToken")},{name:"appToken",type:"password",label:c("appToken")}],email:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"consentGranted",type:"boolean",label:c("consentGranted")},{name:"imapHost",type:"text",label:c("imapHost")},{name:"imapPort",type:"number",label:c("imapPort")},{name:"imapUsername",type:"text",label:c("imapUsername")},{name:"imapPassword",type:"password",label:c("imapPassword")},{name:"fromAddress",type:"email",label:c("fromAddress")}],mochat:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"baseUrl",type:"text",label:c("baseUrl")},{name:"clawToken",type:"password",label:c("clawToken")},{name:"agentUserId",type:"text",label:c("agentUserId")},{name:"allowFrom",type:"tags",label:c("allowFrom")}],qq:[{name:"enabled",type:"boolean",label:c("enabled")},{name:"appId",type:"text",label:c("appId")},{name:"secret",type:"password",label:c("appSecret")},{name:"markdownSupport",type:"boolean",label:c("markdownSupport")},{name:"allowFrom",type:"tags",label:c("allowFrom")}]}}var H={},re,De;function dn(){return De||(De=1,re=function(){return typeof Promise=="function"&&Promise.prototype&&Promise.prototype.then}),re}var se={},U={},Fe;function _(){if(Fe)return U;Fe=1;let e;const s=[0,26,44,70,100,134,172,196,242,292,346,404,466,532,581,655,733,815,901,991,1085,1156,1258,1364,1474,1588,1706,1828,1921,2051,2185,2323,2465,2611,2761,2876,3034,3196,3362,3532,3706];return U.getSymbolSize=function(n){if(!n)throw new Error('"version" cannot be null or undefined');if(n<1||n>40)throw new Error('"version" should be in range from 1 to 40');return n*4+17},U.getSymbolTotalCodewords=function(n){return s[n]},U.getBCHDigit=function(a){let n=0;for(;a!==0;)n++,a>>>=1;return n},U.setToSJISFunction=function(n){if(typeof n!="function")throw new Error('"toSJISFunc" is not a valid function.');e=n},U.isKanjiModeEnabled=function(){return typeof e<"u"},U.toSJIS=function(n){return e(n)},U}var ae={},Ue;function Ie(){return Ue||(Ue=1,(function(e){e.L={bit:1},e.M={bit:0},e.Q={bit:3},e.H={bit:2};function s(a){if(typeof a!="string")throw new Error("Param is not a string");switch(a.toLowerCase()){case"l":case"low":return e.L;case"m":case"medium":return e.M;case"q":case"quartile":return e.Q;case"h":case"high":return e.H;default:throw new Error("Unknown EC Level: "+a)}}e.isValid=function(n){return n&&typeof n.bit<"u"&&n.bit>=0&&n.bit<4},e.from=function(n,t){if(e.isValid(n))return n;try{return s(n)}catch{return t}}})(ae)),ae}var oe,qe;function fn(){if(qe)return oe;qe=1;function e(){this.buffer=[],this.length=0}return e.prototype={get:function(s){const a=Math.floor(s/8);return(this.buffer[a]>>>7-s%8&1)===1},put:function(s,a){for(let n=0;n<a;n++)this.putBit((s>>>a-n-1&1)===1)},getLengthInBits:function(){return this.length},putBit:function(s){const a=Math.floor(this.length/8);this.buffer.length<=a&&this.buffer.push(0),s&&(this.buffer[a]|=128>>>this.length%8),this.length++}},oe=e,oe}var ie,_e;function gn(){if(_e)return ie;_e=1;function e(s){if(!s||s<1)throw new Error("BitMatrix size must be defined and greater than 0");this.size=s,this.data=new Uint8Array(s*s),this.reservedBit=new Uint8Array(s*s)}return e.prototype.set=function(s,a,n,t){const r=s*this.size+a;this.data[r]=n,t&&(this.reservedBit[r]=!0)},e.prototype.get=function(s,a){return this.data[s*this.size+a]},e.prototype.xor=function(s,a,n){this.data[s*this.size+a]^=n},e.prototype.isReserved=function(s,a){return this.reservedBit[s*this.size+a]},ie=e,ie}var le={},ze;function hn(){return ze||(ze=1,(function(e){const s=_().getSymbolSize;e.getRowColCoords=function(n){if(n===1)return[];const t=Math.floor(n/7)+2,r=s(n),i=r===145?26:Math.ceil((r-13)/(2*t-2))*2,o=[r-7];for(let l=1;l<t-1;l++)o[l]=o[l-1]-i;return o.push(6),o.reverse()},e.getPositions=function(n){const t=[],r=e.getRowColCoords(n),i=r.length;for(let o=0;o<i;o++)for(let l=0;l<i;l++)o===0&&l===0||o===0&&l===i-1||o===i-1&&l===0||t.push([r[o],r[l]]);return t}})(le)),le}var ce={},Oe;function mn(){if(Oe)return ce;Oe=1;const e=_().getSymbolSize,s=7;return ce.getPositions=function(n){const t=e(n);return[[0,0],[t-s,0],[0,t-s]]},ce}var ue={},He;function pn(){return He||(He=1,(function(e){e.Patterns={PATTERN000:0,PATTERN001:1,PATTERN010:2,PATTERN011:3,PATTERN100:4,PATTERN101:5,PATTERN110:6,PATTERN111:7};const s={N1:3,N2:3,N3:40,N4:10};e.isValid=function(t){return t!=null&&t!==""&&!isNaN(t)&&t>=0&&t<=7},e.from=function(t){return e.isValid(t)?parseInt(t,10):void 0},e.getPenaltyN1=function(t){const r=t.size;let i=0,o=0,l=0,d=null,h=null;for(let f=0;f<r;f++){o=l=0,d=h=null;for(let x=0;x<r;x++){let g=t.get(f,x);g===d?o++:(o>=5&&(i+=s.N1+(o-5)),d=g,o=1),g=t.get(x,f),g===h?l++:(l>=5&&(i+=s.N1+(l-5)),h=g,l=1)}o>=5&&(i+=s.N1+(o-5)),l>=5&&(i+=s.N1+(l-5))}return i},e.getPenaltyN2=function(t){const r=t.size;let i=0;for(let o=0;o<r-1;o++)for(let l=0;l<r-1;l++){const d=t.get(o,l)+t.get(o,l+1)+t.get(o+1,l)+t.get(o+1,l+1);(d===4||d===0)&&i++}return i*s.N2},e.getPenaltyN3=function(t){const r=t.size;let i=0,o=0,l=0;for(let d=0;d<r;d++){o=l=0;for(let h=0;h<r;h++)o=o<<1&2047|t.get(d,h),h>=10&&(o===1488||o===93)&&i++,l=l<<1&2047|t.get(h,d),h>=10&&(l===1488||l===93)&&i++}return i*s.N3},e.getPenaltyN4=function(t){let r=0;const i=t.data.length;for(let l=0;l<i;l++)r+=t.data[l];return Math.abs(Math.ceil(r*100/i/5)-10)*s.N4};function a(n,t,r){switch(n){case e.Patterns.PATTERN000:return(t+r)%2===0;case e.Patterns.PATTERN001:return t%2===0;case e.Patterns.PATTERN010:return r%3===0;case e.Patterns.PATTERN011:return(t+r)%3===0;case e.Patterns.PATTERN100:return(Math.floor(t/2)+Math.floor(r/3))%2===0;case e.Patterns.PATTERN101:return t*r%2+t*r%3===0;case e.Patterns.PATTERN110:return(t*r%2+t*r%3)%2===0;case e.Patterns.PATTERN111:return(t*r%3+(t+r)%2)%2===0;default:throw new Error("bad maskPattern:"+n)}}e.applyMask=function(t,r){const i=r.size;for(let o=0;o<i;o++)for(let l=0;l<i;l++)r.isReserved(l,o)||r.xor(l,o,a(t,l,o))},e.getBestMask=function(t,r){const i=Object.keys(e.Patterns).length;let o=0,l=1/0;for(let d=0;d<i;d++){r(d),e.applyMask(d,t);const h=e.getPenaltyN1(t)+e.getPenaltyN2(t)+e.getPenaltyN3(t)+e.getPenaltyN4(t);e.applyMask(d,t),h<l&&(l=h,o=d)}return o}})(ue)),ue}var Y={},Ke;function xt(){if(Ke)return Y;Ke=1;const e=Ie(),s=[1,1,1,1,1,1,1,1,1,1,2,2,1,2,2,4,1,2,4,4,2,4,4,4,2,4,6,5,2,4,6,6,2,5,8,8,4,5,8,8,4,5,8,11,4,8,10,11,4,9,12,16,4,9,16,16,6,10,12,18,6,10,17,16,6,11,16,19,6,13,18,21,7,14,21,25,8,16,20,25,8,17,23,25,9,17,23,34,9,18,25,30,10,20,27,32,12,21,29,35,12,23,34,37,12,25,34,40,13,26,35,42,14,28,38,45,15,29,40,48,16,31,43,51,17,33,45,54,18,35,48,57,19,37,51,60,19,38,53,63,20,40,56,66,21,43,59,70,22,45,62,74,24,47,65,77,25,49,68,81],a=[7,10,13,17,10,16,22,28,15,26,36,44,20,36,52,64,26,48,72,88,36,64,96,112,40,72,108,130,48,88,132,156,60,110,160,192,72,130,192,224,80,150,224,264,96,176,260,308,104,198,288,352,120,216,320,384,132,240,360,432,144,280,408,480,168,308,448,532,180,338,504,588,196,364,546,650,224,416,600,700,224,442,644,750,252,476,690,816,270,504,750,900,300,560,810,960,312,588,870,1050,336,644,952,1110,360,700,1020,1200,390,728,1050,1260,420,784,1140,1350,450,812,1200,1440,480,868,1290,1530,510,924,1350,1620,540,980,1440,1710,570,1036,1530,1800,570,1064,1590,1890,600,1120,1680,1980,630,1204,1770,2100,660,1260,1860,2220,720,1316,1950,2310,750,1372,2040,2430];return Y.getBlocksCount=function(t,r){switch(r){case e.L:return s[(t-1)*4+0];case e.M:return s[(t-1)*4+1];case e.Q:return s[(t-1)*4+2];case e.H:return s[(t-1)*4+3];default:return}},Y.getTotalCodewordsCount=function(t,r){switch(r){case e.L:return a[(t-1)*4+0];case e.M:return a[(t-1)*4+1];case e.Q:return a[(t-1)*4+2];case e.H:return a[(t-1)*4+3];default:return}},Y}var de={},V={},Je;function yn(){if(Je)return V;Je=1;const e=new Uint8Array(512),s=new Uint8Array(256);return(function(){let n=1;for(let t=0;t<255;t++)e[t]=n,s[n]=t,n<<=1,n&256&&(n^=285);for(let t=255;t<512;t++)e[t]=e[t-255]})(),V.log=function(n){if(n<1)throw new Error("log("+n+")");return s[n]},V.exp=function(n){return e[n]},V.mul=function(n,t){return n===0||t===0?0:e[s[n]+s[t]]},V}var Ve;function bn(){return Ve||(Ve=1,(function(e){const s=yn();e.mul=function(n,t){const r=new Uint8Array(n.length+t.length-1);for(let i=0;i<n.length;i++)for(let o=0;o<t.length;o++)r[i+o]^=s.mul(n[i],t[o]);return r},e.mod=function(n,t){let r=new Uint8Array(n);for(;r.length-t.length>=0;){const i=r[0];for(let l=0;l<t.length;l++)r[l]^=s.mul(t[l],i);let o=0;for(;o<r.length&&r[o]===0;)o++;r=r.slice(o)}return r},e.generateECPolynomial=function(n){let t=new Uint8Array([1]);for(let r=0;r<n;r++)t=e.mul(t,new Uint8Array([1,s.exp(r)]));return t}})(de)),de}var fe,Ge;function wn(){if(Ge)return fe;Ge=1;const e=bn();function s(a){this.genPoly=void 0,this.degree=a,this.degree&&this.initialize(this.degree)}return s.prototype.initialize=function(n){this.degree=n,this.genPoly=e.generateECPolynomial(this.degree)},s.prototype.encode=function(n){if(!this.genPoly)throw new Error("Encoder not initialized");const t=new Uint8Array(n.length+this.degree);t.set(n);const r=e.mod(t,this.genPoly),i=this.degree-r.length;if(i>0){const o=new Uint8Array(this.degree);return o.set(r,i),o}return r},fe=s,fe}var ge={},he={},me={},Ye;function Ct(){return Ye||(Ye=1,me.isValid=function(s){return!isNaN(s)&&s>=1&&s<=40}),me}var k={},Qe;function At(){if(Qe)return k;Qe=1;const e="[0-9]+",s="[A-Z $%*+\\-./:]+";let a="(?:[u3000-u303F]|[u3040-u309F]|[u30A0-u30FF]|[uFF00-uFFEF]|[u4E00-u9FAF]|[u2605-u2606]|[u2190-u2195]|u203B|[u2010u2015u2018u2019u2025u2026u201Cu201Du2225u2260]|[u0391-u0451]|[u00A7u00A8u00B1u00B4u00D7u00F7])+";a=a.replace(/u/g,"\\u");const n="(?:(?![A-Z0-9 $%*+\\-./:]|"+a+`)(?:.|[\r
2
+ ]))+`;k.KANJI=new RegExp(a,"g"),k.BYTE_KANJI=new RegExp("[^A-Z0-9 $%*+\\-./:]+","g"),k.BYTE=new RegExp(n,"g"),k.NUMERIC=new RegExp(e,"g"),k.ALPHANUMERIC=new RegExp(s,"g");const t=new RegExp("^"+a+"$"),r=new RegExp("^"+e+"$"),i=new RegExp("^[A-Z0-9 $%*+\\-./:]+$");return k.testKanji=function(l){return t.test(l)},k.testNumeric=function(l){return r.test(l)},k.testAlphanumeric=function(l){return i.test(l)},k}var We;function z(){return We||(We=1,(function(e){const s=Ct(),a=At();e.NUMERIC={id:"Numeric",bit:1,ccBits:[10,12,14]},e.ALPHANUMERIC={id:"Alphanumeric",bit:2,ccBits:[9,11,13]},e.BYTE={id:"Byte",bit:4,ccBits:[8,16,16]},e.KANJI={id:"Kanji",bit:8,ccBits:[8,10,12]},e.MIXED={bit:-1},e.getCharCountIndicator=function(r,i){if(!r.ccBits)throw new Error("Invalid mode: "+r);if(!s.isValid(i))throw new Error("Invalid version: "+i);return i>=1&&i<10?r.ccBits[0]:i<27?r.ccBits[1]:r.ccBits[2]},e.getBestModeForData=function(r){return a.testNumeric(r)?e.NUMERIC:a.testAlphanumeric(r)?e.ALPHANUMERIC:a.testKanji(r)?e.KANJI:e.BYTE},e.toString=function(r){if(r&&r.id)return r.id;throw new Error("Invalid mode")},e.isValid=function(r){return r&&r.bit&&r.ccBits};function n(t){if(typeof t!="string")throw new Error("Param is not a string");switch(t.toLowerCase()){case"numeric":return e.NUMERIC;case"alphanumeric":return e.ALPHANUMERIC;case"kanji":return e.KANJI;case"byte":return e.BYTE;default:throw new Error("Unknown mode: "+t)}}e.from=function(r,i){if(e.isValid(r))return r;try{return n(r)}catch{return i}}})(he)),he}var Ze;function xn(){return Ze||(Ze=1,(function(e){const s=_(),a=xt(),n=Ie(),t=z(),r=Ct(),i=7973,o=s.getBCHDigit(i);function l(x,g,y){for(let A=1;A<=40;A++)if(g<=e.getCapacity(A,y,x))return A}function d(x,g){return t.getCharCountIndicator(x,g)+4}function h(x,g){let y=0;return x.forEach(function(A){const T=d(A.mode,g);y+=T+A.getBitsLength()}),y}function f(x,g){for(let y=1;y<=40;y++)if(h(x,y)<=e.getCapacity(y,g,t.MIXED))return y}e.from=function(g,y){return r.isValid(g)?parseInt(g,10):y},e.getCapacity=function(g,y,A){if(!r.isValid(g))throw new Error("Invalid QR Code version");typeof A>"u"&&(A=t.BYTE);const T=s.getSymbolTotalCodewords(g),E=a.getTotalCodewordsCount(g,y),B=(T-E)*8;if(A===t.MIXED)return B;const b=B-d(A,g);switch(A){case t.NUMERIC:return Math.floor(b/10*3);case t.ALPHANUMERIC:return Math.floor(b/11*2);case t.KANJI:return Math.floor(b/13);case t.BYTE:default:return Math.floor(b/8)}},e.getBestVersionForData=function(g,y){let A;const T=n.from(y,n.M);if(Array.isArray(g)){if(g.length>1)return f(g,T);if(g.length===0)return 1;A=g[0]}else A=g;return l(A.mode,A.getLength(),T)},e.getEncodedBits=function(g){if(!r.isValid(g)||g<7)throw new Error("Invalid QR Code version");let y=g<<12;for(;s.getBCHDigit(y)-o>=0;)y^=i<<s.getBCHDigit(y)-o;return g<<12|y}})(ge)),ge}var pe={},Xe;function Cn(){if(Xe)return pe;Xe=1;const e=_(),s=1335,a=21522,n=e.getBCHDigit(s);return pe.getEncodedBits=function(r,i){const o=r.bit<<3|i;let l=o<<10;for(;e.getBCHDigit(l)-n>=0;)l^=s<<e.getBCHDigit(l)-n;return(o<<10|l)^a},pe}var ye={},be,$e;function An(){if($e)return be;$e=1;const e=z();function s(a){this.mode=e.NUMERIC,this.data=a.toString()}return s.getBitsLength=function(n){return 10*Math.floor(n/3)+(n%3?n%3*3+1:0)},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(n){let t,r,i;for(t=0;t+3<=this.data.length;t+=3)r=this.data.substr(t,3),i=parseInt(r,10),n.put(i,10);const o=this.data.length-t;o>0&&(r=this.data.substr(t),i=parseInt(r,10),n.put(i,o*3+1))},be=s,be}var we,et;function vn(){if(et)return we;et=1;const e=z(),s=["0","1","2","3","4","5","6","7","8","9","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," ","$","%","*","+","-",".","/",":"];function a(n){this.mode=e.ALPHANUMERIC,this.data=n}return a.getBitsLength=function(t){return 11*Math.floor(t/2)+6*(t%2)},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(t){let r;for(r=0;r+2<=this.data.length;r+=2){let i=s.indexOf(this.data[r])*45;i+=s.indexOf(this.data[r+1]),t.put(i,11)}this.data.length%2&&t.put(s.indexOf(this.data[r]),6)},we=a,we}var xe,tt;function Nn(){if(tt)return xe;tt=1;const e=z();function s(a){this.mode=e.BYTE,typeof a=="string"?this.data=new TextEncoder().encode(a):this.data=new Uint8Array(a)}return s.getBitsLength=function(n){return n*8},s.prototype.getLength=function(){return this.data.length},s.prototype.getBitsLength=function(){return s.getBitsLength(this.data.length)},s.prototype.write=function(a){for(let n=0,t=this.data.length;n<t;n++)a.put(this.data[n],8)},xe=s,xe}var Ce,nt;function En(){if(nt)return Ce;nt=1;const e=z(),s=_();function a(n){this.mode=e.KANJI,this.data=n}return a.getBitsLength=function(t){return t*13},a.prototype.getLength=function(){return this.data.length},a.prototype.getBitsLength=function(){return a.getBitsLength(this.data.length)},a.prototype.write=function(n){let t;for(t=0;t<this.data.length;t++){let r=s.toSJIS(this.data[t]);if(r>=33088&&r<=40956)r-=33088;else if(r>=57408&&r<=60351)r-=49472;else throw new Error("Invalid SJIS character: "+this.data[t]+`
3
3
  Make sure your charset is UTF-8`);r=(r>>>8&255)*192+(r&255),n.put(r,13)}},Ce=a,Ce}var Ae={exports:{}},rt;function jn(){return rt||(rt=1,(function(e){var s={single_source_shortest_paths:function(a,n,t){var r={},i={};i[n]=0;var o=s.PriorityQueue.make();o.push(n,0);for(var l,d,h,f,x,g,y,A,T;!o.empty();){l=o.pop(),d=l.value,f=l.cost,x=a[d]||{};for(h in x)x.hasOwnProperty(h)&&(g=x[h],y=f+g,A=i[h],T=typeof i[h]>"u",(T||A>y)&&(i[h]=y,o.push(h,y),r[h]=d))}if(typeof t<"u"&&typeof i[t]>"u"){var E=["Could not find a path from ",n," to ",t,"."].join("");throw new Error(E)}return r},extract_shortest_path_from_predecessor_list:function(a,n){for(var t=[],r=n;r;)t.push(r),a[r],r=a[r];return t.reverse(),t},find_path:function(a,n,t){var r=s.single_source_shortest_paths(a,n,t);return s.extract_shortest_path_from_predecessor_list(r,t)},PriorityQueue:{make:function(a){var n=s.PriorityQueue,t={},r;a=a||{};for(r in n)n.hasOwnProperty(r)&&(t[r]=n[r]);return t.queue=[],t.sorter=a.sorter||n.default_sorter,t},default_sorter:function(a,n){return a.cost-n.cost},push:function(a,n){var t={value:a,cost:n};this.queue.push(t),this.queue.sort(this.sorter)},pop:function(){return this.queue.shift()},empty:function(){return this.queue.length===0}}};e.exports=s})(Ae)),Ae.exports}var st;function Sn(){return st||(st=1,(function(e){const s=z(),a=An(),n=vn(),t=Nn(),r=En(),i=At(),o=_(),l=jn();function d(E){return unescape(encodeURIComponent(E)).length}function h(E,B,b){const N=[];let M;for(;(M=E.exec(b))!==null;)N.push({data:M[0],index:M.index,mode:B,length:M[0].length});return N}function f(E){const B=h(i.NUMERIC,s.NUMERIC,E),b=h(i.ALPHANUMERIC,s.ALPHANUMERIC,E);let N,M;return o.isKanjiModeEnabled()?(N=h(i.BYTE,s.BYTE,E),M=h(i.KANJI,s.KANJI,E)):(N=h(i.BYTE_KANJI,s.BYTE,E),M=[]),B.concat(b,N,M).sort(function(S,I){return S.index-I.index}).map(function(S){return{data:S.data,mode:S.mode,length:S.length}})}function x(E,B){switch(B){case s.NUMERIC:return a.getBitsLength(E);case s.ALPHANUMERIC:return n.getBitsLength(E);case s.KANJI:return r.getBitsLength(E);case s.BYTE:return t.getBitsLength(E)}}function g(E){return E.reduce(function(B,b){const N=B.length-1>=0?B[B.length-1]:null;return N&&N.mode===b.mode?(B[B.length-1].data+=b.data,B):(B.push(b),B)},[])}function y(E){const B=[];for(let b=0;b<E.length;b++){const N=E[b];switch(N.mode){case s.NUMERIC:B.push([N,{data:N.data,mode:s.ALPHANUMERIC,length:N.length},{data:N.data,mode:s.BYTE,length:N.length}]);break;case s.ALPHANUMERIC:B.push([N,{data:N.data,mode:s.BYTE,length:N.length}]);break;case s.KANJI:B.push([N,{data:N.data,mode:s.BYTE,length:d(N.data)}]);break;case s.BYTE:B.push([{data:N.data,mode:s.BYTE,length:d(N.data)}])}}return B}function A(E,B){const b={},N={start:{}};let M=["start"];for(let w=0;w<E.length;w++){const S=E[w],I=[];for(let v=0;v<S.length;v++){const P=S[v],j=""+w+v;I.push(j),b[j]={node:P,lastCount:0},N[j]={};for(let m=0;m<M.length;m++){const p=M[m];b[p]&&b[p].node.mode===P.mode?(N[p][j]=x(b[p].lastCount+P.length,P.mode)-x(b[p].lastCount,P.mode),b[p].lastCount+=P.length):(b[p]&&(b[p].lastCount=P.length),N[p][j]=x(P.length,P.mode)+4+s.getCharCountIndicator(P.mode,B))}}M=I}for(let w=0;w<M.length;w++)N[M[w]].end=0;return{map:N,table:b}}function T(E,B){let b;const N=s.getBestModeForData(E);if(b=s.from(B,N),b!==s.BYTE&&b.bit<N.bit)throw new Error('"'+E+'" cannot be encoded with mode '+s.toString(b)+`.
4
- Suggested mode is: `+s.toString(N));switch(b===s.KANJI&&!o.isKanjiModeEnabled()&&(b=s.BYTE),b){case s.NUMERIC:return new a(E);case s.ALPHANUMERIC:return new n(E);case s.KANJI:return new r(E);case s.BYTE:return new t(E)}}e.fromArray=function(B){return B.reduce(function(b,N){return typeof N=="string"?b.push(T(N,null)):N.data&&b.push(T(N.data,N.mode)),b},[])},e.fromString=function(B,b){const N=f(B,o.isKanjiModeEnabled()),M=y(N),w=A(M,b),S=l.find_path(w.map,"start","end"),I=[];for(let v=1;v<S.length-1;v++)I.push(w.table[S[v]].node);return e.fromArray(g(I))},e.rawSplit=function(B){return e.fromArray(f(B,o.isKanjiModeEnabled()))}})(ye)),ye}var at;function In(){if(at)return se;at=1;const e=_(),s=Ie(),a=fn(),n=gn(),t=hn(),r=mn(),i=pn(),o=xt(),l=wn(),d=xn(),h=Cn(),f=z(),x=Sn();function g(w,S){const I=w.size,v=r.getPositions(S);for(let P=0;P<v.length;P++){const j=v[P][0],m=v[P][1];for(let p=-1;p<=7;p++)if(!(j+p<=-1||I<=j+p))for(let C=-1;C<=7;C++)m+C<=-1||I<=m+C||(p>=0&&p<=6&&(C===0||C===6)||C>=0&&C<=6&&(p===0||p===6)||p>=2&&p<=4&&C>=2&&C<=4?w.set(j+p,m+C,!0,!0):w.set(j+p,m+C,!1,!0))}}function y(w){const S=w.size;for(let I=8;I<S-8;I++){const v=I%2===0;w.set(I,6,v,!0),w.set(6,I,v,!0)}}function A(w,S){const I=t.getPositions(S);for(let v=0;v<I.length;v++){const P=I[v][0],j=I[v][1];for(let m=-2;m<=2;m++)for(let p=-2;p<=2;p++)m===-2||m===2||p===-2||p===2||m===0&&p===0?w.set(P+m,j+p,!0,!0):w.set(P+m,j+p,!1,!0)}}function T(w,S){const I=w.size,v=d.getEncodedBits(S);let P,j,m;for(let p=0;p<18;p++)P=Math.floor(p/3),j=p%3+I-8-3,m=(v>>p&1)===1,w.set(P,j,m,!0),w.set(j,P,m,!0)}function E(w,S,I){const v=w.size,P=h.getEncodedBits(S,I);let j,m;for(j=0;j<15;j++)m=(P>>j&1)===1,j<6?w.set(j,8,m,!0):j<8?w.set(j+1,8,m,!0):w.set(v-15+j,8,m,!0),j<8?w.set(8,v-j-1,m,!0):j<9?w.set(8,15-j-1+1,m,!0):w.set(8,15-j-1,m,!0);w.set(v-8,8,1,!0)}function B(w,S){const I=w.size;let v=-1,P=I-1,j=7,m=0;for(let p=I-1;p>0;p-=2)for(p===6&&p--;;){for(let C=0;C<2;C++)if(!w.isReserved(P,p-C)){let R=!1;m<S.length&&(R=(S[m]>>>j&1)===1),w.set(P,p-C,R),j--,j===-1&&(m++,j=7)}if(P+=v,P<0||I<=P){P-=v,v=-v;break}}}function b(w,S,I){const v=new a;I.forEach(function(C){v.put(C.mode.bit,4),v.put(C.getLength(),f.getCharCountIndicator(C.mode,w)),C.write(v)});const P=e.getSymbolTotalCodewords(w),j=o.getTotalCodewordsCount(w,S),m=(P-j)*8;for(v.getLengthInBits()+4<=m&&v.put(0,4);v.getLengthInBits()%8!==0;)v.putBit(0);const p=(m-v.getLengthInBits())/8;for(let C=0;C<p;C++)v.put(C%2?17:236,8);return N(v,w,S)}function N(w,S,I){const v=e.getSymbolTotalCodewords(S),P=o.getTotalCodewordsCount(S,I),j=v-P,m=o.getBlocksCount(S,I),p=v%m,C=m-p,R=Math.floor(v/m),V=Math.floor(j/m),Et=V+1,Pe=R-V,jt=new l(Pe);let X=0;const G=new Array(m),Be=new Array(m);let Z=0;const St=new Uint8Array(w.buffer);for(let O=0;O<m;O++){const ee=O<C?V:Et;G[O]=St.slice(X,X+ee),Be[O]=jt.encode(G[O]),X+=ee,Z=Math.max(Z,ee)}const $=new Uint8Array(v);let Te=0,D,F;for(D=0;D<Z;D++)for(F=0;F<m;F++)D<G[F].length&&($[Te++]=G[F][D]);for(D=0;D<Pe;D++)for(F=0;F<m;F++)$[Te++]=Be[F][D];return $}function M(w,S,I,v){let P;if(Array.isArray(w))P=x.fromArray(w);else if(typeof w=="string"){let R=S;if(!R){const V=x.rawSplit(w);R=d.getBestVersionForData(V,I)}P=x.fromString(w,R||40)}else throw new Error("Invalid data");const j=d.getBestVersionForData(P,I);if(!j)throw new Error("The amount of data is too big to be stored in a QR Code");if(!S)S=j;else if(S<j)throw new Error(`
4
+ Suggested mode is: `+s.toString(N));switch(b===s.KANJI&&!o.isKanjiModeEnabled()&&(b=s.BYTE),b){case s.NUMERIC:return new a(E);case s.ALPHANUMERIC:return new n(E);case s.KANJI:return new r(E);case s.BYTE:return new t(E)}}e.fromArray=function(B){return B.reduce(function(b,N){return typeof N=="string"?b.push(T(N,null)):N.data&&b.push(T(N.data,N.mode)),b},[])},e.fromString=function(B,b){const N=f(B,o.isKanjiModeEnabled()),M=y(N),w=A(M,b),S=l.find_path(w.map,"start","end"),I=[];for(let v=1;v<S.length-1;v++)I.push(w.table[S[v]].node);return e.fromArray(g(I))},e.rawSplit=function(B){return e.fromArray(f(B,o.isKanjiModeEnabled()))}})(ye)),ye}var at;function In(){if(at)return se;at=1;const e=_(),s=Ie(),a=fn(),n=gn(),t=hn(),r=mn(),i=pn(),o=xt(),l=wn(),d=xn(),h=Cn(),f=z(),x=Sn();function g(w,S){const I=w.size,v=r.getPositions(S);for(let P=0;P<v.length;P++){const j=v[P][0],m=v[P][1];for(let p=-1;p<=7;p++)if(!(j+p<=-1||I<=j+p))for(let C=-1;C<=7;C++)m+C<=-1||I<=m+C||(p>=0&&p<=6&&(C===0||C===6)||C>=0&&C<=6&&(p===0||p===6)||p>=2&&p<=4&&C>=2&&C<=4?w.set(j+p,m+C,!0,!0):w.set(j+p,m+C,!1,!0))}}function y(w){const S=w.size;for(let I=8;I<S-8;I++){const v=I%2===0;w.set(I,6,v,!0),w.set(6,I,v,!0)}}function A(w,S){const I=t.getPositions(S);for(let v=0;v<I.length;v++){const P=I[v][0],j=I[v][1];for(let m=-2;m<=2;m++)for(let p=-2;p<=2;p++)m===-2||m===2||p===-2||p===2||m===0&&p===0?w.set(P+m,j+p,!0,!0):w.set(P+m,j+p,!1,!0)}}function T(w,S){const I=w.size,v=d.getEncodedBits(S);let P,j,m;for(let p=0;p<18;p++)P=Math.floor(p/3),j=p%3+I-8-3,m=(v>>p&1)===1,w.set(P,j,m,!0),w.set(j,P,m,!0)}function E(w,S,I){const v=w.size,P=h.getEncodedBits(S,I);let j,m;for(j=0;j<15;j++)m=(P>>j&1)===1,j<6?w.set(j,8,m,!0):j<8?w.set(j+1,8,m,!0):w.set(v-15+j,8,m,!0),j<8?w.set(8,v-j-1,m,!0):j<9?w.set(8,15-j-1+1,m,!0):w.set(8,15-j-1,m,!0);w.set(v-8,8,1,!0)}function B(w,S){const I=w.size;let v=-1,P=I-1,j=7,m=0;for(let p=I-1;p>0;p-=2)for(p===6&&p--;;){for(let C=0;C<2;C++)if(!w.isReserved(P,p-C)){let R=!1;m<S.length&&(R=(S[m]>>>j&1)===1),w.set(P,p-C,R),j--,j===-1&&(m++,j=7)}if(P+=v,P<0||I<=P){P-=v,v=-v;break}}}function b(w,S,I){const v=new a;I.forEach(function(C){v.put(C.mode.bit,4),v.put(C.getLength(),f.getCharCountIndicator(C.mode,w)),C.write(v)});const P=e.getSymbolTotalCodewords(w),j=o.getTotalCodewordsCount(w,S),m=(P-j)*8;for(v.getLengthInBits()+4<=m&&v.put(0,4);v.getLengthInBits()%8!==0;)v.putBit(0);const p=(m-v.getLengthInBits())/8;for(let C=0;C<p;C++)v.put(C%2?17:236,8);return N(v,w,S)}function N(w,S,I){const v=e.getSymbolTotalCodewords(S),P=o.getTotalCodewordsCount(S,I),j=v-P,m=o.getBlocksCount(S,I),p=v%m,C=m-p,R=Math.floor(v/m),J=Math.floor(j/m),Et=J+1,Pe=R-J,jt=new l(Pe);let Z=0;const G=new Array(m),Be=new Array(m);let X=0;const St=new Uint8Array(w.buffer);for(let O=0;O<m;O++){const ee=O<C?J:Et;G[O]=St.slice(Z,Z+ee),Be[O]=jt.encode(G[O]),Z+=ee,X=Math.max(X,ee)}const $=new Uint8Array(v);let Te=0,D,F;for(D=0;D<X;D++)for(F=0;F<m;F++)D<G[F].length&&($[Te++]=G[F][D]);for(D=0;D<Pe;D++)for(F=0;F<m;F++)$[Te++]=Be[F][D];return $}function M(w,S,I,v){let P;if(Array.isArray(w))P=x.fromArray(w);else if(typeof w=="string"){let R=S;if(!R){const J=x.rawSplit(w);R=d.getBestVersionForData(J,I)}P=x.fromString(w,R||40)}else throw new Error("Invalid data");const j=d.getBestVersionForData(P,I);if(!j)throw new Error("The amount of data is too big to be stored in a QR Code");if(!S)S=j;else if(S<j)throw new Error(`
5
5
  The chosen QR Code version cannot contain this amount of data.
6
6
  Minimum version required to store current data is: `+j+`.
7
7
  `);const m=b(S,I,P),p=e.getSymbolSize(S),C=new n(p);return g(C,S),y(C),A(C,S),E(C,I,0),S>=7&&T(C,S),B(C,m),isNaN(v)&&(v=i.getBestMask(C,E.bind(null,C,I))),i.applyMask(v,C),E(C,I,v),{modules:C,version:S,errorCorrectionLevel:I,maskPattern:v,segments:P}}return se.create=function(S,I){if(typeof S>"u"||S==="")throw new Error("No input text");let v=s.M,P,j;return typeof I<"u"&&(v=s.from(I.errorCorrectionLevel,s.M),P=d.from(I.version),j=i.from(I.maskPattern),I.toSJISFunc&&e.setToSJISFunction(I.toSJISFunc)),M(S,P,v,j)},se}var ve={},Ne={},ot;function vt(){return ot||(ot=1,(function(e){function s(a){if(typeof a=="number"&&(a=a.toString()),typeof a!="string")throw new Error("Color should be defined as hex string");let n=a.slice().replace("#","").split("");if(n.length<3||n.length===5||n.length>8)throw new Error("Invalid hex color: "+a);(n.length===3||n.length===4)&&(n=Array.prototype.concat.apply([],n.map(function(r){return[r,r]}))),n.length===6&&n.push("F","F");const t=parseInt(n.join(""),16);return{r:t>>24&255,g:t>>16&255,b:t>>8&255,a:t&255,hex:"#"+n.slice(0,6).join("")}}e.getOptions=function(n){n||(n={}),n.color||(n.color={});const t=typeof n.margin>"u"||n.margin===null||n.margin<0?4:n.margin,r=n.width&&n.width>=21?n.width:void 0,i=n.scale||4;return{width:r,scale:r?4:i,margin:t,color:{dark:s(n.color.dark||"#000000ff"),light:s(n.color.light||"#ffffffff")},type:n.type,rendererOpts:n.rendererOpts||{}}},e.getScale=function(n,t){return t.width&&t.width>=n+t.margin*2?t.width/(n+t.margin*2):t.scale},e.getImageWidth=function(n,t){const r=e.getScale(n,t);return Math.floor((n+t.margin*2)*r)},e.qrToImageData=function(n,t,r){const i=t.modules.size,o=t.modules.data,l=e.getScale(i,r),d=Math.floor((i+r.margin*2)*l),h=r.margin*l,f=[r.color.light,r.color.dark];for(let x=0;x<d;x++)for(let g=0;g<d;g++){let y=(x*d+g)*4,A=r.color.light;if(x>=h&&g>=h&&x<d-h&&g<d-h){const T=Math.floor((x-h)/l),E=Math.floor((g-h)/l);A=f[o[T*i+E]?1:0]}n[y++]=A.r,n[y++]=A.g,n[y++]=A.b,n[y]=A.a}}})(Ne)),Ne}var it;function Pn(){return it||(it=1,(function(e){const s=vt();function a(t,r,i){t.clearRect(0,0,r.width,r.height),r.style||(r.style={}),r.height=i,r.width=i,r.style.height=i+"px",r.style.width=i+"px"}function n(){try{return document.createElement("canvas")}catch{throw new Error("You need to specify a canvas element")}}e.render=function(r,i,o){let l=o,d=i;typeof l>"u"&&(!i||!i.getContext)&&(l=i,i=void 0),i||(d=n()),l=s.getOptions(l);const h=s.getImageWidth(r.modules.size,l),f=d.getContext("2d"),x=f.createImageData(h,h);return s.qrToImageData(x.data,r,l),a(f,d,h),f.putImageData(x,0,0),d},e.renderToDataURL=function(r,i,o){let l=o;typeof l>"u"&&(!i||!i.getContext)&&(l=i,i=void 0),l||(l={});const d=e.render(r,i,l),h=l.type||"image/png",f=l.rendererOpts||{};return d.toDataURL(h,f.quality)}})(ve)),ve}var Ee={},lt;function Bn(){if(lt)return Ee;lt=1;const e=vt();function s(t,r){const i=t.a/255,o=r+'="'+t.hex+'"';return i<1?o+" "+r+'-opacity="'+i.toFixed(2).slice(1)+'"':o}function a(t,r,i){let o=t+r;return typeof i<"u"&&(o+=" "+i),o}function n(t,r,i){let o="",l=0,d=!1,h=0;for(let f=0;f<t.length;f++){const x=Math.floor(f%r),g=Math.floor(f/r);!x&&!d&&(d=!0),t[f]?(h++,f>0&&x>0&&t[f-1]||(o+=d?a("M",x+i,.5+g+i):a("m",l,0),l=0,d=!1),x+1<r&&t[f+1]||(o+=a("h",h),h=0)):l++}return o}return Ee.render=function(r,i,o){const l=e.getOptions(i),d=r.modules.size,h=r.modules.data,f=d+l.margin*2,x=l.color.light.a?"<path "+s(l.color.light,"fill")+' d="M0 0h'+f+"v"+f+'H0z"/>':"",g="<path "+s(l.color.dark,"stroke")+' d="'+n(h,d,l.margin)+'"/>',y='viewBox="0 0 '+f+" "+f+'"',T='<svg xmlns="http://www.w3.org/2000/svg" '+(l.width?'width="'+l.width+'" height="'+l.width+'" ':"")+y+' shape-rendering="crispEdges">'+x+g+`</svg>
8
- `;return typeof o=="function"&&o(null,T),T},Ee}var ct;function Tn(){if(ct)return H;ct=1;const e=dn(),s=In(),a=Pn(),n=Bn();function t(r,i,o,l,d){const h=[].slice.call(arguments,1),f=h.length,x=typeof h[f-1]=="function";if(!x&&!e())throw new Error("Callback required as last argument");if(x){if(f<2)throw new Error("Too few arguments provided");f===2?(d=o,o=i,i=l=void 0):f===3&&(i.getContext&&typeof d>"u"?(d=l,l=void 0):(d=l,l=o,o=i,i=void 0))}else{if(f<1)throw new Error("Too few arguments provided");return f===1?(o=i,i=l=void 0):f===2&&!i.getContext&&(l=o,o=i,i=void 0),new Promise(function(g,y){try{const A=s.create(o,l);g(r(A,i,l))}catch(A){y(A)}})}try{const g=s.create(o,l);d(null,r(g,i,l))}catch(g){d(g)}}return H.create=s.create,H.toCanvas=t.bind(null,a.render),H.toDataURL=t.bind(null,a.renderToDataURL),H.toString=t.bind(null,function(r,i,o){return n.render(r,o)}),H}var Mn=Tn();async function Rn(e,s={}){const a=await ft.post(`/api/config/channels/${e}/auth/start`,s);if(!a.ok)throw new Error(a.error.message);return a.data}async function Ln(e,s){const a=await ft.post(`/api/config/channels/${e}/auth/poll`,s);if(!a.ok)throw new Error(a.error.message);return a.data}function kn(){return ut({mutationFn:({channel:e,data:s})=>Rn(e,s)})}function Dn(){return ut({mutationFn:({channel:e,data:s})=>Ln(e,s)})}function Fn(e){const s=e.accounts,a=new Set;if(typeof e.defaultAccountId=="string"&&e.defaultAccountId.trim()&&a.add(e.defaultAccountId.trim()),s&&typeof s=="object"&&!Array.isArray(s))for(const n of Object.keys(s)){const t=n.trim();t&&a.add(t)}return[...a]}function Un(e,s){if(typeof e.baseUrl=="string"&&e.baseUrl.trim())return e.baseUrl.trim();if(typeof s.baseUrl=="string"&&s.baseUrl.trim())return s.baseUrl.trim()}function qn({channelConfig:e,formData:s,disabled:a=!1}){const n=kt(),t=kn(),r=Dn(),[i,o]=L.useState(null),[l,d]=L.useState(null),[h,f]=L.useState(null),x=L.useMemo(()=>Fn(e),[e]),g=x[0],y=Un(s,e),A=x.length>0;L.useEffect(()=>{A&&(o(null),d(b=>(b==null?void 0:b.status)==="authorized"?b:{channel:"weixin",status:"authorized",message:c("weixinAuthAuthorized"),accountId:g??null}))},[A,g]),L.useEffect(()=>{if(!i){f(null);return}let b=!1;return Mn.toDataURL(i.qrCodeUrl,{errorCorrectionLevel:"M",margin:1,width:480}).then(N=>{b||f(N)}).catch(()=>{b||f(null)}),()=>{b=!0}},[i]),L.useEffect(()=>{if(!i)return;let b=!1,N=null;const M=async()=>{try{const w=await r.mutateAsync({channel:"weixin",data:{sessionId:i.sessionId}});if(b)return;if(d(w),w.status==="authorized"){await n.invalidateQueries({queryKey:["config"]}),await n.invalidateQueries({queryKey:["config-meta"]}),q.success(w.message||c("weixinAuthAuthorized")),o(null);return}if(w.status==="expired"||w.status==="error"){q.error(w.message||c("weixinAuthRetryRequired")),o(null);return}N=setTimeout(M,w.nextPollMs??i.intervalMs)}catch(w){if(b)return;const S=w instanceof Error?w.message:String(w);q.error(`${c("error")}: ${S}`),o(null)}};return N=setTimeout(M,i.intervalMs),()=>{b=!0,N&&clearTimeout(N)}},[i,r,n]);const T=async()=>{try{const b=await t.mutateAsync({channel:"weixin",data:{baseUrl:y,accountId:typeof s.defaultAccountId=="string"&&s.defaultAccountId.trim()?s.defaultAccountId.trim():void 0}});o(b),d({channel:"weixin",status:"pending",message:b.note,nextPollMs:b.intervalMs})}catch(b){const N=b instanceof Error?b.message:String(b);q.error(`${c("error")}: ${N}`)}},E=i?(l==null?void 0:l.status)==="scanned"?c("weixinAuthScanned"):c("weixinAuthWaiting"):A?c("weixinAuthAuthorized"):c("weixinAuthNotConnected"),B=t.isPending?c("weixinAuthStarting"):i?c("weixinAuthWaiting"):A?c("weixinAuthReconnect"):c("weixinAuthConnect");return u.jsx("section",{className:"rounded-2xl border border-primary/20 bg-gradient-to-br from-primary-50/70 via-white to-emerald-50/60 p-5",children:u.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[u.jsxs("div",{className:"space-y-3",children:[u.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full bg-white/90 px-3 py-1 text-xs font-medium text-primary shadow-sm",children:[u.jsx(Me,{className:"h-3.5 w-3.5"}),c("weixinAuthTitle")]}),u.jsxs("div",{children:[u.jsx("h4",{className:"text-base font-semibold text-gray-900",children:c("weixinAuthDescription")}),u.jsx("p",{className:"mt-1 text-sm text-gray-600",children:c("weixinAuthHint")})]}),u.jsxs("div",{className:K("inline-flex w-fit items-center gap-2 rounded-full px-3 py-1 text-xs font-medium",i?"bg-amber-50 text-amber-700":A?"bg-emerald-50 text-emerald-700":"bg-gray-100 text-gray-600"),children:[i?u.jsx(Re,{className:"h-3.5 w-3.5 animate-spin"}):u.jsx(Dt,{className:"h-3.5 w-3.5"}),E]}),u.jsxs("div",{className:"space-y-1 text-sm text-gray-600",children:[u.jsx("p",{children:c("weixinAuthCapabilityHint")}),g?u.jsxs("p",{children:[c("weixinAuthPrimaryAccount"),": ",u.jsx("span",{className:"font-mono text-xs text-gray-900",children:g})]}):null,x.length>1?u.jsxs("p",{children:[c("weixinAuthConnectedAccounts"),": ",u.jsx("span",{className:"font-mono text-xs text-gray-900",children:x.join(", ")})]}):null,y?u.jsxs("p",{children:[c("weixinAuthBaseUrl"),": ",u.jsx("span",{className:"font-mono text-xs text-gray-900",children:y})]}):null]}),u.jsx(je,{type:"button",onClick:T,disabled:a||t.isPending||!!i,className:"rounded-xl",children:B})]}),u.jsx("div",{className:"w-full max-w-sm rounded-2xl border border-dashed border-primary/25 bg-white/85 p-4 shadow-sm",children:i?u.jsxs("div",{className:"space-y-3",children:[u.jsx("div",{className:"overflow-hidden rounded-2xl border border-gray-100 bg-white p-3",children:h?u.jsx("img",{src:h,alt:c("weixinAuthQrAlt"),className:"mx-auto aspect-square w-full max-w-[240px] object-contain"}):u.jsx("div",{className:"flex aspect-square w-full items-center justify-center rounded-xl bg-gray-50 text-gray-500",children:u.jsxs("div",{className:"flex flex-col items-center gap-2 text-center",children:[u.jsx(Re,{className:"h-5 w-5 animate-spin"}),u.jsx("p",{className:"text-xs",children:c("weixinAuthStarting")})]})})}),u.jsxs("div",{className:"space-y-1 text-xs text-gray-500",children:[u.jsx("p",{children:(l==null?void 0:l.message)||i.note||c("weixinAuthScanPrompt")}),u.jsxs("p",{children:[c("weixinAuthExpiresAt"),": ",Gt(i.expiresAt)]})]}),u.jsxs("a",{href:i.qrCodeUrl,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 text-xs text-primary transition-colors hover:text-primary-hover",children:[u.jsx(dt,{className:"h-3.5 w-3.5"}),c("weixinAuthOpenQr")]})]}):u.jsxs("div",{className:"flex min-h-[280px] flex-col items-center justify-center rounded-2xl bg-gray-50/80 px-6 text-center",children:[u.jsx(Me,{className:"h-9 w-9 text-gray-300"}),u.jsx("p",{className:"mt-3 text-sm font-medium text-gray-700",children:c("weixinAuthReadyTitle")}),u.jsx("p",{className:"mt-1 text-xs leading-5 text-gray-500",children:c("weixinAuthReadyDescription")})]})})]})})}function W(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Nt(e,s){const a={...e};for(const[n,t]of Object.entries(s)){const r=a[n];if(W(r)&&W(t)){a[n]=Nt(r,t);continue}a[n]=t}return a}function _n(e,s){const a=e.split("."),n={};let t=n;for(let r=0;r<a.length-1;r+=1){const i=a[r];t[i]={},t=t[i]}return t[a[a.length-1]]=s,n}function zn({channelName:e}){var P,j;const{data:s}=gt(),{data:a}=ht(),{data:n}=mt(),t=Yt(),r=Qt(),[i,o]=L.useState({}),[l,d]=L.useState({}),[h,f]=L.useState(null),x=e?s==null?void 0:s.channels[e]:null,g=e?ke()[e]??[]:[],y=n==null?void 0:n.uiHints,A=e?`channels.${e}`:null,T=((P=n==null?void 0:n.actions)==null?void 0:P.filter(m=>m.scope===A))??[],E=e&&(((j=Se(`channels.${e}`,y))==null?void 0:j.label)??e),B=a==null?void 0:a.channels.find(m=>m.name===e),b=B?bt(B):void 0,N=e==="weixin";L.useEffect(()=>{if(x){o({...x});const m={};(e?ke()[e]??[]:[]).filter(C=>C.type==="json").forEach(C=>{const R=x[C.name];m[C.name]=JSON.stringify(R??{},null,2)}),d(m)}else o({}),d({})},[x,e]);const M=(m,p)=>{o(C=>({...C,[m]:p}))},w=m=>{if(m.preventDefault(),!e)return;const p={...i};for(const C of g){if(C.type!=="password")continue;const R=p[C.name];(typeof R!="string"||R.length===0)&&delete p[C.name]}for(const C of g){if(C.type!=="json")continue;const R=l[C.name]??"";try{p[C.name]=R.trim()?JSON.parse(R):{}}catch{q.error(`${c("invalidJson")}: ${C.name}`);return}}t.mutate({channel:e,data:p})},S=m=>{if(!m||!e)return;const p=m.channels;if(!W(p))return;const C=p[e];W(C)&&o(R=>Nt(R,C))},I=async m=>{if(!(!e||!A)){f(m.id);try{let p={...i};m.saveBeforeRun&&(p={...p,...m.savePatch??{}},o(p),await t.mutateAsync({channel:e,data:p}));const C=await r.mutateAsync({actionId:m.id,data:{scope:A,draftConfig:_n(A,p)}});S(C.patch),C.ok?q.success(C.message||c("success")):q.error(C.message||c("error"))}catch(p){const C=p instanceof Error?p.message:String(p);q.error(`${c("error")}: ${C}`)}finally{f(null)}}};if(!e||!B||!x)return u.jsx("div",{className:Wt,children:u.jsxs("div",{children:[u.jsx("h3",{className:"text-base font-semibold text-gray-900",children:c("channelsSelectTitle")}),u.jsx("p",{className:"mt-2 text-sm text-gray-500",children:c("channelsSelectDescription")})]})});const v=!!x.enabled;return u.jsxs("div",{className:Xt,children:[u.jsx("div",{className:"border-b border-gray-100 px-6 py-5",children:u.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[u.jsxs("div",{className:"min-w-0",children:[u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx(yt,{name:e,src:wt(e),className:K("h-9 w-9 rounded-lg border",v?"border-primary/30 bg-white":"border-gray-200/70 bg-white"),imgClassName:"h-5 w-5 object-contain",fallback:u.jsx("span",{className:"text-sm font-semibold uppercase text-gray-500",children:e[0]})}),u.jsx("h3",{className:"truncate text-lg font-semibold text-gray-900 capitalize",children:E})]}),u.jsx("p",{className:"mt-2 text-sm text-gray-500",children:c("channelsFormDescription")}),b&&u.jsxs("a",{href:b,className:"mt-2 inline-flex items-center gap-1.5 text-xs text-primary transition-colors hover:text-primary-hover",children:[u.jsx(Ft,{className:"h-3.5 w-3.5"}),c("channelsGuideTitle")]})]}),u.jsx(pt,{status:v?"active":"inactive",label:v?c("statusActive"):c("statusInactive")})]})}),u.jsxs("form",{onSubmit:w,className:"flex min-h-0 flex-1 flex-col",children:[u.jsx("div",{className:"min-h-0 flex-1 space-y-6 overflow-y-auto overscroll-contain px-6 py-5",children:N?u.jsxs(u.Fragment,{children:[u.jsx(qn,{channelConfig:x,formData:i,disabled:t.isPending||!!h}),u.jsxs("details",{className:"group rounded-2xl border border-gray-200/80 bg-white",children:[u.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-3 px-5 py-4 text-sm font-medium text-gray-900",children:[u.jsxs("div",{children:[u.jsx("p",{children:c("weixinAuthAdvancedTitle")}),u.jsx("p",{className:"mt-1 text-xs font-normal text-gray-500",children:c("weixinAuthAdvancedDescription")})]}),u.jsx(Ut,{className:"h-4 w-4 text-gray-400 transition-transform group-open:rotate-180"})]}),u.jsx("div",{className:"space-y-6 border-t border-gray-100 px-5 py-5",children:u.jsx(Le,{channelName:e,fields:g,formData:i,jsonDrafts:l,setJsonDrafts:d,updateField:M,uiHints:y})})]})]}):u.jsx(Le,{channelName:e,fields:g,formData:i,jsonDrafts:l,setJsonDrafts:d,updateField:M,uiHints:y})}),u.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-t border-gray-100 px-6 py-4",children:[u.jsx("div",{className:"flex flex-wrap items-center gap-2",children:T.filter(m=>m.trigger==="manual").map(m=>u.jsx(je,{type:"button",onClick:()=>I(m),disabled:t.isPending||!!h,variant:"secondary",children:h===m.id?c("connecting"):m.title},m.id))}),u.jsx(je,{type:"submit",disabled:t.isPending||!!h,children:t.isPending?c("saving"):c("save")})]})]})]})}const On={telegram:"channelDescTelegram",slack:"channelDescSlack",email:"channelDescEmail",webhook:"channelDescWebhook",discord:"channelDescDiscord",feishu:"channelDescFeishu",weixin:"channelDescWeixin"};function $n(){const{data:e}=gt(),{data:s}=ht(),{data:a}=mt(),[n,t]=L.useState("enabled"),[r,i]=L.useState(),[o,l]=L.useState(""),d=a==null?void 0:a.uiHints,h=s==null?void 0:s.channels,f=e==null?void 0:e.channels,x=[{id:"enabled",label:c("channelsTabEnabled"),count:(h??[]).filter(y=>{var A;return(A=f==null?void 0:f[y.name])==null?void 0:A.enabled}).length},{id:"all",label:c("channelsTabAll"),count:(h??[]).length}],g=L.useMemo(()=>{const y=o.trim().toLowerCase();return(h??[]).filter(A=>{var E;const T=((E=f==null?void 0:f[A.name])==null?void 0:E.enabled)||!1;return n==="enabled"?T:!0}).filter(A=>y?(A.displayName||A.name).toLowerCase().includes(y)||A.name.toLowerCase().includes(y):!0)},[n,f,h,o]);return L.useEffect(()=>{if(g.length===0){i(void 0);return}g.some(A=>A.name===r)||i(g[0].name)},[g,r]),!e||!s?u.jsx("div",{className:"p-8 text-gray-400",children:c("channelsLoading")}):u.jsxs(rn,{className:"xl:flex xl:h-full xl:min-h-0 xl:flex-col xl:pb-0",children:[u.jsx(sn,{title:c("channelsPageTitle"),description:c("channelsPageDescription")}),u.jsxs("div",{className:K($t,"xl:min-h-0 xl:flex-1"),children:[u.jsxs("section",{className:Zt,children:[u.jsx("div",{className:"border-b border-gray-100 px-4 pt-4",children:u.jsx(nn,{tabs:x,activeTab:n,onChange:t,className:"mb-0"})}),u.jsx("div",{className:"border-b border-gray-100 px-4 py-3",children:u.jsxs("div",{className:"relative",children:[u.jsx(qt,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),u.jsx(Q,{value:o,onChange:y=>l(y.target.value),placeholder:c("channelsFilterPlaceholder"),className:"h-10 rounded-xl pl-9"})]})}),u.jsxs("div",{className:"min-h-0 flex-1 space-y-2 overflow-y-auto overscroll-contain p-3",children:[g.map(y=>{const A=e.channels[y.name],T=(A==null?void 0:A.enabled)||!1,E=Se(`channels.${y.name}`,d),B=bt(y),b=(E==null?void 0:E.help)||c(On[y.name]||"channelDescriptionDefault"),N=r===y.name;return u.jsx("button",{type:"button",onClick:()=>i(y.name),className:K("w-full rounded-xl border p-2.5 text-left transition-all",N?"border-primary/30 bg-primary-50/40 shadow-sm":"border-gray-200/70 bg-white hover:border-gray-300 hover:bg-gray-50/70"),children:u.jsxs("div",{className:"flex items-start justify-between gap-3",children:[u.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[u.jsx(yt,{name:y.name,src:wt(y.name),className:K("h-10 w-10 rounded-lg border",T?"border-primary/30 bg-white":"border-gray-200/70 bg-white"),imgClassName:"h-5 w-5 object-contain",fallback:u.jsx("span",{className:"text-sm font-semibold uppercase text-gray-500",children:y.name[0]})}),u.jsxs("div",{className:"min-w-0",children:[u.jsx("p",{className:"truncate text-sm font-semibold text-gray-900",children:y.displayName||y.name}),u.jsx("p",{className:"line-clamp-1 text-[11px] text-gray-500",children:b})]})]}),u.jsxs("div",{className:"flex items-center gap-2",children:[B&&u.jsx("a",{href:B,onClick:M=>M.stopPropagation(),className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-gray-300 transition-colors hover:bg-gray-100/70 hover:text-gray-500",title:c("channelsGuideTitle"),children:u.jsx(dt,{className:"h-3.5 w-3.5"})}),u.jsx(pt,{status:T?"active":"inactive",label:T?c("statusActive"):c("statusInactive"),className:"min-w-[56px] justify-center"})]})]})},y.name)}),g.length===0&&u.jsxs("div",{className:"flex h-full min-h-[220px] flex-col items-center justify-center rounded-xl border border-dashed border-gray-200 bg-gray-50/70 py-10 text-center",children:[u.jsx("div",{className:"mb-3 flex h-10 w-10 items-center justify-center rounded-lg bg-white",children:u.jsx(_t,{className:"h-5 w-5 text-gray-300"})}),u.jsx("p",{className:"text-sm font-medium text-gray-700",children:c("channelsNoMatch")})]})]})]}),u.jsx(zn,{channelName:r})]})]})}export{$n as ChannelsList};
8
+ `;return typeof o=="function"&&o(null,T),T},Ee}var ct;function Tn(){if(ct)return H;ct=1;const e=dn(),s=In(),a=Pn(),n=Bn();function t(r,i,o,l,d){const h=[].slice.call(arguments,1),f=h.length,x=typeof h[f-1]=="function";if(!x&&!e())throw new Error("Callback required as last argument");if(x){if(f<2)throw new Error("Too few arguments provided");f===2?(d=o,o=i,i=l=void 0):f===3&&(i.getContext&&typeof d>"u"?(d=l,l=void 0):(d=l,l=o,o=i,i=void 0))}else{if(f<1)throw new Error("Too few arguments provided");return f===1?(o=i,i=l=void 0):f===2&&!i.getContext&&(l=o,o=i,i=void 0),new Promise(function(g,y){try{const A=s.create(o,l);g(r(A,i,l))}catch(A){y(A)}})}try{const g=s.create(o,l);d(null,r(g,i,l))}catch(g){d(g)}}return H.create=s.create,H.toCanvas=t.bind(null,a.render),H.toDataURL=t.bind(null,a.renderToDataURL),H.toString=t.bind(null,function(r,i,o){return n.render(r,o)}),H}var Mn=Tn();async function Rn(e,s={}){const a=await ft.post(`/api/config/channels/${e}/auth/start`,s);if(!a.ok)throw new Error(a.error.message);return a.data}async function Ln(e,s){const a=await ft.post(`/api/config/channels/${e}/auth/poll`,s);if(!a.ok)throw new Error(a.error.message);return a.data}function kn(){return ut({mutationFn:({channel:e,data:s})=>Rn(e,s)})}function Dn(){return ut({mutationFn:({channel:e,data:s})=>Ln(e,s)})}function Fn(e){const s=e.accounts,a=new Set;if(typeof e.defaultAccountId=="string"&&e.defaultAccountId.trim()&&a.add(e.defaultAccountId.trim()),s&&typeof s=="object"&&!Array.isArray(s))for(const n of Object.keys(s)){const t=n.trim();t&&a.add(t)}return[...a]}function Un(e,s){if(typeof e.baseUrl=="string"&&e.baseUrl.trim())return e.baseUrl.trim();if(typeof s.baseUrl=="string"&&s.baseUrl.trim())return s.baseUrl.trim()}function qn({channelConfig:e,formData:s,disabled:a=!1}){const n=kt(),t=kn(),r=Dn(),[i,o]=L.useState(null),[l,d]=L.useState(null),[h,f]=L.useState(null),x=L.useMemo(()=>Fn(e),[e]),g=x[0],y=Un(s,e),A=x.length>0;L.useEffect(()=>{A&&(o(null),d(b=>(b==null?void 0:b.status)==="authorized"?b:{channel:"weixin",status:"authorized",message:c("weixinAuthAuthorized"),accountId:g??null}))},[A,g]),L.useEffect(()=>{if(!i){f(null);return}let b=!1;return Mn.toDataURL(i.qrCodeUrl,{errorCorrectionLevel:"M",margin:1,width:480}).then(N=>{b||f(N)}).catch(()=>{b||f(null)}),()=>{b=!0}},[i]),L.useEffect(()=>{if(!i)return;let b=!1,N=null;const M=async()=>{try{const w=await r.mutateAsync({channel:"weixin",data:{sessionId:i.sessionId}});if(b)return;if(d(w),w.status==="authorized"){await n.invalidateQueries({queryKey:["config"]}),await n.invalidateQueries({queryKey:["config-meta"]}),q.success(w.message||c("weixinAuthAuthorized")),o(null);return}if(w.status==="expired"||w.status==="error"){q.error(w.message||c("weixinAuthRetryRequired")),o(null);return}N=setTimeout(M,w.nextPollMs??i.intervalMs)}catch(w){if(b)return;const S=w instanceof Error?w.message:String(w);q.error(`${c("error")}: ${S}`),o(null)}};return N=setTimeout(M,i.intervalMs),()=>{b=!0,N&&clearTimeout(N)}},[i,r,n]);const T=async()=>{try{const b=await t.mutateAsync({channel:"weixin",data:{baseUrl:y,accountId:typeof s.defaultAccountId=="string"&&s.defaultAccountId.trim()?s.defaultAccountId.trim():void 0}});o(b),d({channel:"weixin",status:"pending",message:b.note,nextPollMs:b.intervalMs})}catch(b){const N=b instanceof Error?b.message:String(b);q.error(`${c("error")}: ${N}`)}},E=i?(l==null?void 0:l.status)==="scanned"?c("weixinAuthScanned"):c("weixinAuthWaiting"):A?c("weixinAuthAuthorized"):c("weixinAuthNotConnected"),B=t.isPending?c("weixinAuthStarting"):i?c("weixinAuthWaiting"):A?c("weixinAuthReconnect"):c("weixinAuthConnect");return u.jsx("section",{className:"rounded-2xl border border-primary/20 bg-gradient-to-br from-primary-50/70 via-white to-emerald-50/60 p-5",children:u.jsxs("div",{className:"flex flex-col gap-4 lg:flex-row lg:items-start lg:justify-between",children:[u.jsxs("div",{className:"space-y-3",children:[u.jsxs("div",{className:"inline-flex items-center gap-2 rounded-full bg-white/90 px-3 py-1 text-xs font-medium text-primary shadow-sm",children:[u.jsx(Me,{className:"h-3.5 w-3.5"}),c("weixinAuthTitle")]}),u.jsxs("div",{children:[u.jsx("h4",{className:"text-base font-semibold text-gray-900",children:c("weixinAuthDescription")}),u.jsx("p",{className:"mt-1 text-sm text-gray-600",children:c("weixinAuthHint")})]}),u.jsxs("div",{className:K("inline-flex w-fit items-center gap-2 rounded-full px-3 py-1 text-xs font-medium",i?"bg-amber-50 text-amber-700":A?"bg-emerald-50 text-emerald-700":"bg-gray-100 text-gray-600"),children:[i?u.jsx(Re,{className:"h-3.5 w-3.5 animate-spin"}):u.jsx(Dt,{className:"h-3.5 w-3.5"}),E]}),u.jsxs("div",{className:"space-y-1 text-sm text-gray-600",children:[u.jsx("p",{children:c("weixinAuthCapabilityHint")}),g?u.jsxs("p",{children:[c("weixinAuthPrimaryAccount"),": ",u.jsx("span",{className:"font-mono text-xs text-gray-900",children:g})]}):null,x.length>1?u.jsxs("p",{children:[c("weixinAuthConnectedAccounts"),": ",u.jsx("span",{className:"font-mono text-xs text-gray-900",children:x.join(", ")})]}):null,y?u.jsxs("p",{children:[c("weixinAuthBaseUrl"),": ",u.jsx("span",{className:"font-mono text-xs text-gray-900",children:y})]}):null]}),u.jsx(je,{type:"button",onClick:T,disabled:a||t.isPending||!!i,className:"rounded-xl",children:B})]}),u.jsx("div",{className:"w-full max-w-sm rounded-2xl border border-dashed border-primary/25 bg-white/85 p-4 shadow-sm",children:i?u.jsxs("div",{className:"space-y-3",children:[u.jsx("div",{className:"overflow-hidden rounded-2xl border border-gray-100 bg-white p-3",children:h?u.jsx("img",{src:h,alt:c("weixinAuthQrAlt"),className:"mx-auto aspect-square w-full max-w-[240px] object-contain"}):u.jsx("div",{className:"flex aspect-square w-full items-center justify-center rounded-xl bg-gray-50 text-gray-500",children:u.jsxs("div",{className:"flex flex-col items-center gap-2 text-center",children:[u.jsx(Re,{className:"h-5 w-5 animate-spin"}),u.jsx("p",{className:"text-xs",children:c("weixinAuthStarting")})]})})}),u.jsxs("div",{className:"space-y-1 text-xs text-gray-500",children:[u.jsx("p",{children:(l==null?void 0:l.message)||i.note||c("weixinAuthScanPrompt")}),u.jsxs("p",{children:[c("weixinAuthExpiresAt"),": ",Gt(i.expiresAt)]})]}),u.jsxs("a",{href:i.qrCodeUrl,target:"_blank",rel:"noreferrer",className:"inline-flex items-center gap-1.5 text-xs text-primary transition-colors hover:text-primary-hover",children:[u.jsx(dt,{className:"h-3.5 w-3.5"}),c("weixinAuthOpenQr")]})]}):u.jsxs("div",{className:"flex min-h-[280px] flex-col items-center justify-center rounded-2xl bg-gray-50/80 px-6 text-center",children:[u.jsx(Me,{className:"h-9 w-9 text-gray-300"}),u.jsx("p",{className:"mt-3 text-sm font-medium text-gray-700",children:c("weixinAuthReadyTitle")}),u.jsx("p",{className:"mt-1 text-xs leading-5 text-gray-500",children:c("weixinAuthReadyDescription")})]})})]})})}function W(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function Nt(e,s){const a={...e};for(const[n,t]of Object.entries(s)){const r=a[n];if(W(r)&&W(t)){a[n]=Nt(r,t);continue}a[n]=t}return a}function _n(e,s){const a=e.split("."),n={};let t=n;for(let r=0;r<a.length-1;r+=1){const i=a[r];t[i]={},t=t[i]}return t[a[a.length-1]]=s,n}function zn({channelName:e}){var P,j;const{data:s}=gt(),{data:a}=ht(),{data:n}=mt(),t=Yt(),r=Qt(),[i,o]=L.useState({}),[l,d]=L.useState({}),[h,f]=L.useState(null),x=e?s==null?void 0:s.channels[e]:null,g=e?ke()[e]??[]:[],y=n==null?void 0:n.uiHints,A=e?`channels.${e}`:null,T=((P=n==null?void 0:n.actions)==null?void 0:P.filter(m=>m.scope===A))??[],E=e&&(((j=Se(`channels.${e}`,y))==null?void 0:j.label)??e),B=a==null?void 0:a.channels.find(m=>m.name===e),b=B?bt(B):void 0,N=e==="weixin";L.useEffect(()=>{if(x){o({...x});const m={};(e?ke()[e]??[]:[]).filter(C=>C.type==="json").forEach(C=>{const R=x[C.name];m[C.name]=JSON.stringify(R??{},null,2)}),d(m)}else o({}),d({})},[x,e]);const M=(m,p)=>{o(C=>({...C,[m]:p}))},w=m=>{if(m.preventDefault(),!e)return;const p={...i};for(const C of g){if(C.type!=="password")continue;const R=p[C.name];(typeof R!="string"||R.length===0)&&delete p[C.name]}for(const C of g){if(C.type!=="json")continue;const R=l[C.name]??"";try{p[C.name]=R.trim()?JSON.parse(R):{}}catch{q.error(`${c("invalidJson")}: ${C.name}`);return}}t.mutate({channel:e,data:p})},S=m=>{if(!m||!e)return;const p=m.channels;if(!W(p))return;const C=p[e];W(C)&&o(R=>Nt(R,C))},I=async m=>{if(!(!e||!A)){f(m.id);try{let p={...i};m.saveBeforeRun&&(p={...p,...m.savePatch??{}},o(p),await t.mutateAsync({channel:e,data:p}));const C=await r.mutateAsync({actionId:m.id,data:{scope:A,draftConfig:_n(A,p)}});S(C.patch),C.ok?q.success(C.message||c("success")):q.error(C.message||c("error"))}catch(p){const C=p instanceof Error?p.message:String(p);q.error(`${c("error")}: ${C}`)}finally{f(null)}}};if(!e||!B||!x)return u.jsx("div",{className:Wt,children:u.jsxs("div",{children:[u.jsx("h3",{className:"text-base font-semibold text-gray-900",children:c("channelsSelectTitle")}),u.jsx("p",{className:"mt-2 text-sm text-gray-500",children:c("channelsSelectDescription")})]})});const v=!!x.enabled;return u.jsxs("div",{className:Zt,children:[u.jsx("div",{className:"border-b border-gray-100 px-6 py-5",children:u.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[u.jsxs("div",{className:"min-w-0",children:[u.jsxs("div",{className:"flex items-center gap-3",children:[u.jsx(yt,{name:e,src:wt(e),className:K("h-9 w-9 rounded-lg border",v?"border-primary/30 bg-white":"border-gray-200/70 bg-white"),imgClassName:"h-5 w-5 object-contain",fallback:u.jsx("span",{className:"text-sm font-semibold uppercase text-gray-500",children:e[0]})}),u.jsx("h3",{className:"truncate text-lg font-semibold text-gray-900 capitalize",children:E})]}),u.jsx("p",{className:"mt-2 text-sm text-gray-500",children:c("channelsFormDescription")}),b&&u.jsxs("a",{href:b,className:"mt-2 inline-flex items-center gap-1.5 text-xs text-primary transition-colors hover:text-primary-hover",children:[u.jsx(Ft,{className:"h-3.5 w-3.5"}),c("channelsGuideTitle")]})]}),u.jsx(pt,{status:v?"active":"inactive",label:v?c("statusActive"):c("statusInactive")})]})}),u.jsxs("form",{onSubmit:w,className:"flex min-h-0 flex-1 flex-col",children:[u.jsx("div",{className:"min-h-0 flex-1 space-y-6 overflow-y-auto overscroll-contain px-6 py-5",children:N?u.jsxs(u.Fragment,{children:[u.jsx(qn,{channelConfig:x,formData:i,disabled:t.isPending||!!h}),u.jsxs("details",{className:"group rounded-2xl border border-gray-200/80 bg-white",children:[u.jsxs("summary",{className:"flex cursor-pointer list-none items-center justify-between gap-3 px-5 py-4 text-sm font-medium text-gray-900",children:[u.jsxs("div",{children:[u.jsx("p",{children:c("weixinAuthAdvancedTitle")}),u.jsx("p",{className:"mt-1 text-xs font-normal text-gray-500",children:c("weixinAuthAdvancedDescription")})]}),u.jsx(Ut,{className:"h-4 w-4 text-gray-400 transition-transform group-open:rotate-180"})]}),u.jsx("div",{className:"space-y-6 border-t border-gray-100 px-5 py-5",children:u.jsx(Le,{channelName:e,fields:g,formData:i,jsonDrafts:l,setJsonDrafts:d,updateField:M,uiHints:y})})]})]}):u.jsx(Le,{channelName:e,fields:g,formData:i,jsonDrafts:l,setJsonDrafts:d,updateField:M,uiHints:y})}),u.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3 border-t border-gray-100 px-6 py-4",children:[u.jsx("div",{className:"flex flex-wrap items-center gap-2",children:T.filter(m=>m.trigger==="manual").map(m=>u.jsx(je,{type:"button",onClick:()=>I(m),disabled:t.isPending||!!h,variant:"secondary",children:h===m.id?c("connecting"):m.title},m.id))}),u.jsx(je,{type:"submit",disabled:t.isPending||!!h,children:t.isPending?c("saving"):c("save")})]})]})]})}const On={telegram:"channelDescTelegram",slack:"channelDescSlack",email:"channelDescEmail",webhook:"channelDescWebhook",discord:"channelDescDiscord",feishu:"channelDescFeishu",weixin:"channelDescWeixin"};function $n(){const{data:e}=gt(),{data:s}=ht(),{data:a}=mt(),[n,t]=L.useState("enabled"),[r,i]=L.useState(),[o,l]=L.useState(""),d=a==null?void 0:a.uiHints,h=s==null?void 0:s.channels,f=e==null?void 0:e.channels,x=[{id:"enabled",label:c("channelsTabEnabled"),count:(h??[]).filter(y=>{var A;return(A=f==null?void 0:f[y.name])==null?void 0:A.enabled}).length},{id:"all",label:c("channelsTabAll"),count:(h??[]).length}],g=L.useMemo(()=>{const y=o.trim().toLowerCase();return(h??[]).filter(A=>{var E;const T=((E=f==null?void 0:f[A.name])==null?void 0:E.enabled)||!1;return n==="enabled"?T:!0}).filter(A=>y?(A.displayName||A.name).toLowerCase().includes(y)||A.name.toLowerCase().includes(y):!0)},[n,f,h,o]);return L.useEffect(()=>{if(g.length===0){i(void 0);return}g.some(A=>A.name===r)||i(g[0].name)},[g,r]),!e||!s?u.jsx("div",{className:"p-8 text-gray-400",children:c("channelsLoading")}):u.jsxs(rn,{className:"xl:flex xl:h-full xl:min-h-0 xl:flex-col xl:pb-0",children:[u.jsx(sn,{title:c("channelsPageTitle"),description:c("channelsPageDescription")}),u.jsxs("div",{className:K($t,"xl:min-h-0 xl:flex-1"),children:[u.jsxs("section",{className:Xt,children:[u.jsx("div",{className:"border-b border-gray-100 px-4 pt-4",children:u.jsx(nn,{tabs:x,activeTab:n,onChange:t,className:"mb-0"})}),u.jsx("div",{className:"border-b border-gray-100 px-4 py-3",children:u.jsxs("div",{className:"relative",children:[u.jsx(qt,{className:"pointer-events-none absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-gray-400"}),u.jsx(Q,{value:o,onChange:y=>l(y.target.value),placeholder:c("channelsFilterPlaceholder"),className:"h-10 rounded-xl pl-9"})]})}),u.jsxs("div",{className:"min-h-0 flex-1 space-y-2 overflow-y-auto overscroll-contain p-3",children:[g.map(y=>{const A=e.channels[y.name],T=(A==null?void 0:A.enabled)||!1,E=Se(`channels.${y.name}`,d),B=bt(y),b=(E==null?void 0:E.help)||c(On[y.name]||"channelDescriptionDefault"),N=r===y.name;return u.jsx("button",{type:"button",onClick:()=>i(y.name),className:K("w-full rounded-xl border p-2.5 text-left transition-all",N?"border-primary/30 bg-primary-50/40 shadow-sm":"border-gray-200/70 bg-white hover:border-gray-300 hover:bg-gray-50/70"),children:u.jsxs("div",{className:"flex items-start justify-between gap-3",children:[u.jsxs("div",{className:"flex min-w-0 items-center gap-3",children:[u.jsx(yt,{name:y.name,src:wt(y.name),className:K("h-10 w-10 rounded-lg border",T?"border-primary/30 bg-white":"border-gray-200/70 bg-white"),imgClassName:"h-5 w-5 object-contain",fallback:u.jsx("span",{className:"text-sm font-semibold uppercase text-gray-500",children:y.name[0]})}),u.jsxs("div",{className:"min-w-0",children:[u.jsx("p",{className:"truncate text-sm font-semibold text-gray-900",children:y.displayName||y.name}),u.jsx("p",{className:"line-clamp-1 text-[11px] text-gray-500",children:b})]})]}),u.jsxs("div",{className:"flex items-center gap-2",children:[B&&u.jsx("a",{href:B,onClick:M=>M.stopPropagation(),className:"inline-flex h-7 w-7 items-center justify-center rounded-md text-gray-300 transition-colors hover:bg-gray-100/70 hover:text-gray-500",title:c("channelsGuideTitle"),children:u.jsx(dt,{className:"h-3.5 w-3.5"})}),u.jsx(pt,{status:T?"active":"inactive",label:T?c("statusActive"):c("statusInactive"),className:"min-w-[56px] justify-center"})]})]})},y.name)}),g.length===0&&u.jsxs("div",{className:"flex h-full min-h-[220px] flex-col items-center justify-center rounded-xl border border-dashed border-gray-200 bg-gray-50/70 py-10 text-center",children:[u.jsx("div",{className:"mb-3 flex h-10 w-10 items-center justify-center rounded-lg bg-white",children:u.jsx(_t,{className:"h-5 w-5 text-gray-300"})}),u.jsx("p",{className:"text-sm font-medium text-gray-700",children:c("channelsNoMatch")})]})]})]}),u.jsx(zn,{channelName:r})]})]})}export{$n as ChannelsList};