@clappstore/connect 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import { resolve, dirname } from "node:path";
3
3
  import { homedir, networkInterfaces } from "node:os";
4
+ import { writeFile } from "node:fs/promises";
4
5
  import QRCode from "qrcode";
5
6
  import { mkdirSync, existsSync, statSync, chownSync, writeFileSync } from "node:fs";
6
7
  import { spawnSync } from "node:child_process";
@@ -31,36 +32,98 @@ function parseArgs(args) {
31
32
  }
32
33
  return { opts, flags };
33
34
  }
35
+ // --- Agent session helpers ---
36
+ function createAgentClient(session, agentToken, label = "acp") {
37
+ return new AgentClient({
38
+ session,
39
+ agentToken,
40
+ onError: (err) => console.error(`[${label}]`, err.message),
41
+ });
42
+ }
43
+ async function startAgentClients(clients) {
44
+ try {
45
+ await Promise.all(clients.map((c) => c.start()));
46
+ return true;
47
+ }
48
+ catch (err) {
49
+ console.error(`⚠️ ACP failed to start: ${err instanceof Error ? err.message : err}`);
50
+ console.error(" Intent processing will not work until ACP is available.");
51
+ return false;
52
+ }
53
+ }
54
+ // --- QR code / connection info ---
55
+ async function generateConnectAssets(port, accessToken, openclawHome) {
56
+ const localIP = getLocalIP();
57
+ const serverURL = `http://${localIP}:${port}`;
58
+ const qrPayload = JSON.stringify({ url: serverURL, token: accessToken ?? "" });
59
+ // Terminal QR
60
+ const qr = await QRCode.toString(qrPayload, { type: "terminal", small: true });
61
+ console.log(`\n📱 Scan to connect the Clapps app:\n${qr}`);
62
+ console.log(` Or visit ${serverURL}/connect in a browser\n`);
63
+ // Save PNG + connection info for the agent
64
+ const uiDir = resolve(openclawHome, ".openclaw", "workspace", "ui");
65
+ const qrPngPath = resolve(uiDir, "connect-qr.png");
66
+ await QRCode.toFile(qrPngPath, qrPayload, { width: 400, margin: 2 });
67
+ await writeFile(resolve(uiDir, "connect-info.json"), JSON.stringify({
68
+ url: serverURL,
69
+ token: accessToken ? formatToken(accessToken) : null,
70
+ connectPage: `${serverURL}/connect`,
71
+ qrCodePath: qrPngPath,
72
+ }, null, 2));
73
+ }
74
+ function getLocalIP() {
75
+ const nets = networkInterfaces();
76
+ for (const name of Object.keys(nets)) {
77
+ for (const net of nets[name] ?? []) {
78
+ if (net.family === "IPv4" && !net.internal) {
79
+ return net.address;
80
+ }
81
+ }
82
+ }
83
+ return "localhost";
84
+ }
85
+ // --- Startup info ---
86
+ function printStartupInfo(stateDir, viewsDir, templatesDir, openclawHome, accessToken) {
87
+ console.log(`📁 State dir: ${stateDir}`);
88
+ console.log(`📄 Views dir: ${viewsDir}`);
89
+ console.log(`📦 Templates dir: ${templatesDir}`);
90
+ if (openclawHome !== homedir()) {
91
+ console.log(`🏠 OpenClaw home: ${openclawHome}`);
92
+ }
93
+ if (accessToken) {
94
+ console.log(`🔐 Access code: ${formatToken(accessToken)}`);
95
+ console.log(` Saved to ~/.openclaw/workspace/ui/.access-token`);
96
+ }
97
+ else {
98
+ console.log(`⚠️ Auth disabled (--no-auth). Server is open to all.`);
99
+ }
100
+ }
101
+ // --- Main ---
34
102
  async function main() {
35
103
  const { opts, flags } = parseArgs(process.argv.slice(2));
36
104
  const port = parseInt(opts.port ?? "3080", 10);
37
105
  const agentToken = opts["agent-token"];
38
106
  const session = opts.session ?? "agent:main:main";
39
- // openclaw home: where openclaw config lives (may differ from process homedir
40
- // when clapps-connect runs as root but the gateway runs as a different user)
41
107
  const openclawHome = opts["openclaw-home"] ?? process.env.OPENCLAW_HOME ?? homedir();
42
- // Initialize access token for auth
43
108
  const accessToken = initAccessToken({
44
109
  token: opts.token,
45
110
  noAuth: flags["no-auth"],
46
111
  });
47
- const stateDir = opts["state-dir"] ??
48
- resolve(openclawHome, ".openclaw", "workspace", "ui", "state");
49
- const viewsDir = opts["views-dir"] ??
50
- resolve(openclawHome, ".openclaw", "workspace", "ui", "views");
112
+ // Directories
113
+ const stateDir = opts["state-dir"] ?? resolve(openclawHome, ".openclaw", "workspace", "ui", "state");
114
+ const viewsDir = opts["views-dir"] ?? resolve(openclawHome, ".openclaw", "workspace", "ui", "views");
51
115
  const templatesDir = resolve(openclawHome, ".openclaw", "workspace", "ui", "templates");
52
- // Ensure directories exist
53
116
  mkdirSync(stateDir, { recursive: true });
54
117
  mkdirSync(viewsDir, { recursive: true });
55
118
  mkdirSync(templatesDir, { recursive: true });
56
- // 1. Create in-memory state store
119
+ // State store + disk defaults
57
120
  const store = new StateStore();
58
- // 2. Seed defaults to disk
121
+ const authPath = resolve(openclawHome, ".openclaw", "agents", "main", "agent", "auth-profiles.json");
59
122
  seedDefaults(viewsDir, stateDir);
60
- checkAuthStatus(stateDir, resolve(openclawHome, ".openclaw", "agents", "main", "agent", "auth-profiles.json"));
123
+ checkAuthStatus(stateDir, authPath);
124
+ // Settings handler
61
125
  const needsOwnershipFix = openclawHome !== homedir();
62
126
  const configPath = resolve(openclawHome, ".openclaw", "openclaw.json");
63
- const authPath = resolve(openclawHome, ".openclaw", "agents", "main", "agent", "auth-profiles.json");
64
127
  const settingsHandler = new SettingsHandler({
65
128
  stateDir,
66
129
  store,
@@ -76,66 +139,23 @@ async function main() {
76
139
  catch { /* best effort */ }
77
140
  } : undefined,
78
141
  onModelDefaultChanged: needsOwnershipFix ? () => {
79
- spawnSync("systemctl", ["restart", "openclaw"], {
80
- encoding: "utf-8",
81
- timeout: 15_000,
82
- });
83
- // Wait for gateway to come back
142
+ spawnSync("systemctl", ["restart", "openclaw"], { encoding: "utf-8", timeout: 15_000 });
84
143
  spawnSync("sleep", ["3"]);
85
144
  } : undefined,
86
145
  });
87
146
  settingsHandler.writeSettingsState();
88
- // 3. Start ACP subprocess for intents
89
- const agentClient = new AgentClient({
90
- session,
91
- agentToken,
92
- onError: (err) => console.error("[acp]", err.message),
93
- });
94
- // 4. Start separate ACP subprocess for chat (dedicated session)
95
- const chatSession = "agent:main:clapps-chat";
96
- const chatAgentClient = new AgentClient({
97
- session: chatSession,
98
- agentToken,
99
- onError: (err) => console.error("[acp:chat]", err.message),
100
- });
101
- // 5. Start separate ACP subprocess for title generation (isolated session)
102
- const titleSession = "agent:main:clapps-title";
103
- const titleAgentClient = new AgentClient({
104
- session: titleSession,
105
- agentToken,
106
- onError: (err) => console.error("[acp:title]", err.message),
107
- });
108
- let agentStarted = false;
109
- try {
110
- await agentClient.start();
111
- await chatAgentClient.start();
112
- await titleAgentClient.start();
113
- agentStarted = true;
114
- }
115
- catch (err) {
116
- console.error(`⚠️ ACP failed to start: ${err instanceof Error ? err.message : err}`);
117
- console.error(" Intent processing will not work until ACP is available.");
118
- }
119
- // Create chat handler (uses dedicated chat and title sessions)
147
+ // ACP agent sessions
148
+ const agentClient = createAgentClient(session, agentToken, "acp");
149
+ const chatAgentClient = createAgentClient("agent:main:clapps-chat", agentToken, "acp:chat");
150
+ const titleAgentClient = createAgentClient("agent:main:clapps-title", agentToken, "acp:title");
151
+ const agentStarted = await startAgentClients([agentClient, chatAgentClient, titleAgentClient]);
152
+ // Handlers
120
153
  const chatHandler = new ChatHandler({ stateDir, store, agentClient: chatAgentClient, titleAgentClient });
121
- // Create slack handler
122
- const slackHandler = new SlackHandler({
123
- stateDir,
124
- store,
125
- openclawHome,
126
- });
127
- // Create OAuth handler (uses openclawHome for auth-profiles.json)
128
- const oauthHandler = new OAuthHandler(resolve(openclawHome, ".openclaw", "agents", "main", "agent", "auth-profiles.json"));
129
- // 4. Create agent handler (syncs disk → store after intents)
130
- const agentHandler = new AgentHandler({
131
- agentClient,
132
- store,
133
- stateDir,
134
- viewsDir,
135
- });
136
- // 5. Initial sync: load all disk state into the store
154
+ const slackHandler = new SlackHandler({ stateDir, store, openclawHome });
155
+ const oauthHandler = new OAuthHandler(authPath);
156
+ const agentHandler = new AgentHandler({ agentClient, store, stateDir, viewsDir });
137
157
  await agentHandler.syncToStore();
138
- // 6. Load clapp handlers
158
+ // Clapp handlers (deterministic intent handlers from disk)
139
159
  const clappsDir = resolve(openclawHome, ".openclaw", "clapps");
140
160
  const clappHandlerCtx = {
141
161
  stateDir,
@@ -146,33 +166,26 @@ async function main() {
146
166
  checkAuthStatus: () => checkAuthStatus(stateDir, authPath),
147
167
  };
148
168
  let clappHandlers = await loadClappHandlers(clappsDir, clappHandlerCtx);
149
- // 7. Resolve static SPA directory
169
+ // HTTP + WebSocket server
150
170
  const __dirname = dirname(fileURLToPath(import.meta.url));
151
- const staticDir = resolve(__dirname, "..", "web-app");
152
- // 8. Start HTTP + WebSocket server
153
171
  const server = startServer({
154
172
  port,
155
173
  store,
156
- staticDir,
174
+ staticDir: resolve(__dirname, "..", "web-app"),
157
175
  accessToken,
158
176
  oauthHandler,
159
177
  openclawHome,
160
178
  templatesDir,
161
179
  stateDir,
162
180
  agentConnected: () => agentStarted,
163
- onConnect: () => {
164
- // Refresh settings state when a client connects (catches external changes)
165
- settingsHandler.refreshSettingsState();
166
- },
181
+ onConnect: () => settingsHandler.refreshSettingsState(),
167
182
  onIntent: (intent, _context) => {
168
- // Let handlers intercept first
169
183
  if (settingsHandler.handleIntent(intent))
170
184
  return;
171
185
  if (chatHandler.handleIntent(intent))
172
186
  return;
173
187
  if (slackHandler.handleIntent(intent))
174
188
  return;
175
- // Handle handler reload
176
189
  if (intent.intent === "system.reloadHandlers") {
177
190
  loadClappHandlers(clappsDir, clappHandlerCtx).then((handlers) => {
178
191
  clappHandlers = handlers;
@@ -180,44 +193,23 @@ async function main() {
180
193
  });
181
194
  return;
182
195
  }
183
- // Try clapp handlers
184
196
  for (const handler of clappHandlers) {
185
197
  if (handler.handleIntent(intent))
186
198
  return;
187
199
  }
188
- // Forward to agent
189
200
  agentHandler.handleIntent(intent).catch((err) => {
190
201
  console.error(`[intent] ${err.message}`);
191
202
  });
192
203
  },
193
204
  });
194
- // 8. Periodic refresh to detect external config changes (every 60s)
195
- const refreshInterval = setInterval(() => {
196
- settingsHandler.refreshSettingsState();
197
- }, 60_000);
198
- console.log(`📁 State dir: ${stateDir}`);
199
- console.log(`📄 Views dir: ${viewsDir}`);
200
- console.log(`📦 Templates dir: ${templatesDir}`);
201
- if (openclawHome !== homedir()) {
202
- console.log(`🏠 OpenClaw home: ${openclawHome}`);
203
- }
204
- if (accessToken) {
205
- console.log(`🔐 Access code: ${formatToken(accessToken)}`);
206
- console.log(` Saved to ~/.openclaw/workspace/ui/.access-token`);
207
- }
208
- else {
209
- console.log(`⚠️ Auth disabled (--no-auth). Server is open to all.`);
210
- }
211
- // Print QR code for mobile app setup
212
- const localIP = getLocalIP();
213
- const serverURL = `http://${localIP}:${port}`;
214
- const qrPayload = JSON.stringify({ url: serverURL, token: accessToken ?? "" });
205
+ // Periodic settings refresh
206
+ const refreshInterval = setInterval(() => settingsHandler.refreshSettingsState(), 60_000);
207
+ // Startup output
208
+ printStartupInfo(stateDir, viewsDir, templatesDir, openclawHome, accessToken);
215
209
  try {
216
- const qr = await QRCode.toString(qrPayload, { type: "terminal", small: true });
217
- console.log(`\n📱 Scan to connect the Clapps app:\n${qr}`);
218
- console.log(` Or visit ${serverURL}/connect in a browser\n`);
210
+ await generateConnectAssets(port, accessToken, openclawHome);
219
211
  }
220
- catch { /* qr generation failed, not critical */ }
212
+ catch { /* QR generation failed, not critical */ }
221
213
  // Graceful shutdown
222
214
  process.on("SIGINT", () => {
223
215
  console.log("\nShutting down...");
@@ -229,17 +221,6 @@ async function main() {
229
221
  process.exit(0);
230
222
  });
231
223
  }
232
- function getLocalIP() {
233
- const nets = networkInterfaces();
234
- for (const name of Object.keys(nets)) {
235
- for (const net of nets[name] ?? []) {
236
- if (net.family === "IPv4" && !net.internal) {
237
- return net.address;
238
- }
239
- }
240
- }
241
- return "localhost";
242
- }
243
224
  main().catch((err) => {
244
225
  console.error(err);
245
226
  process.exit(1);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAQlF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAsBD,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAmDzE"}
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,KAAK,aAAa,EAAkB,MAAM,kBAAkB,CAAC;AAQlF,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAKlD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,OAAO,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AA0DD,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG;IAAE,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CA4DzE"}
package/dist/server.js CHANGED
@@ -7,6 +7,24 @@ import { StateStore } from "./state-store.js";
7
7
  import { authenticateRequest, authenticateWsUpgrade, checkRateLimit, setSessionCookie, getLoginPageHtml, } from "./auth.js";
8
8
  import { OAuthHandler } from "./oauth-handler.js";
9
9
  import QRCode from "qrcode";
10
+ // --- Response helpers ---
11
+ function json(res, data) {
12
+ res.writeHead(200, { "Content-Type": "application/json" });
13
+ res.end(JSON.stringify(data));
14
+ }
15
+ function jsonError(res, status, error) {
16
+ res.writeHead(status, { "Content-Type": "application/json" });
17
+ res.end(JSON.stringify({ error }));
18
+ }
19
+ function readBody(req) {
20
+ return new Promise((resolve, reject) => {
21
+ const chunks = [];
22
+ req.on("data", (chunk) => chunks.push(chunk));
23
+ req.on("end", () => resolve(Buffer.concat(chunks).toString()));
24
+ req.on("error", reject);
25
+ });
26
+ }
27
+ // --- Server entrypoint ---
10
28
  const MIME_TYPES = {
11
29
  ".html": "text/html",
12
30
  ".js": "text/javascript",
@@ -27,14 +45,24 @@ const MIME_TYPES = {
27
45
  ".woff2": "font/woff2",
28
46
  };
29
47
  export function startServer(options) {
30
- const { port, store, onIntent, staticDir, agentConnected, onConnect, accessToken, oauthHandler, openclawHome, templatesDir, stateDir } = options;
48
+ const { port, store, onIntent, onConnect, accessToken, oauthHandler } = options;
49
+ const ctx = {
50
+ store,
51
+ onIntent,
52
+ agentConnected: options.agentConnected,
53
+ accessToken: accessToken ?? null,
54
+ oauthHandler,
55
+ openclawHome: options.openclawHome,
56
+ templatesDir: options.templatesDir,
57
+ stateDir: options.stateDir,
58
+ staticDir: options.staticDir,
59
+ };
31
60
  const server = createServer((req, res) => {
32
- handleRequest(req, res, store, onIntent, staticDir, agentConnected, accessToken ?? null, oauthHandler, openclawHome, templatesDir, stateDir);
61
+ handleRequest(req, res, ctx);
33
62
  });
34
- // Use noServer mode so we can authenticate WS upgrades
35
63
  const wss = new WebSocketServer({ noServer: true });
36
64
  server.on("upgrade", (req, socket, head) => {
37
- if (!authenticateWsUpgrade(req, accessToken ?? null)) {
65
+ if (!authenticateWsUpgrade(req, ctx.accessToken)) {
38
66
  socket.write("HTTP/1.1 401 Unauthorized\r\n\r\n");
39
67
  socket.destroy();
40
68
  return;
@@ -45,7 +73,6 @@ export function startServer(options) {
45
73
  });
46
74
  wss.on("connection", (ws) => {
47
75
  const client = store.addClient(ws);
48
- // Notify that a client connected (for state refresh)
49
76
  onConnect?.();
50
77
  ws.on("message", (raw) => {
51
78
  try {
@@ -97,12 +124,12 @@ function handleWsMessage(msg, client, store, onIntent) {
97
124
  }
98
125
  }
99
126
  }
100
- async function handleRequest(req, res, store, onIntent, staticDir, agentConnected, accessToken, oauthHandler, openclawHome, templatesDir, stateDir) {
127
+ // --- Request router ---
128
+ async function handleRequest(req, res, ctx) {
101
129
  const url = new URL(req.url ?? "/", `http://${req.headers.host}`);
102
130
  const path = url.pathname;
103
- // CORS headers
104
- if (accessToken != null) {
105
- // With auth: reflect origin and allow credentials
131
+ // CORS
132
+ if (ctx.accessToken != null) {
106
133
  const origin = req.headers.origin;
107
134
  if (origin)
108
135
  res.setHeader("Access-Control-Allow-Origin", origin);
@@ -120,9 +147,8 @@ async function handleRequest(req, res, store, onIntent, staticDir, agentConnecte
120
147
  }
121
148
  // Auth-exempt routes
122
149
  if (path === "/api/health") {
123
- return handleApi(req, res, path, store, onIntent, agentConnected, openclawHome, templatesDir, stateDir);
150
+ return handleHealth(res, ctx);
124
151
  }
125
- // Login routes
126
152
  if (path === "/auth/login") {
127
153
  if (req.method === "GET") {
128
154
  res.writeHead(200, { "Content-Type": "text/html" });
@@ -130,326 +156,302 @@ async function handleRequest(req, res, store, onIntent, staticDir, agentConnecte
130
156
  return;
131
157
  }
132
158
  if (req.method === "POST") {
133
- return handleLogin(req, res, accessToken);
159
+ return handleLogin(req, res, ctx.accessToken);
134
160
  }
135
161
  }
136
- // Auth check for everything else
137
- if (accessToken != null) {
138
- const { authenticated } = authenticateRequest(req, accessToken);
162
+ // Auth check
163
+ if (ctx.accessToken != null) {
164
+ const { authenticated } = authenticateRequest(req, ctx.accessToken);
139
165
  if (!authenticated) {
140
166
  if (path.startsWith("/api/")) {
141
- res.writeHead(401, { "Content-Type": "application/json" });
142
- res.end(JSON.stringify({ error: "unauthorized" }));
167
+ jsonError(res, 401, "unauthorized");
143
168
  return;
144
169
  }
145
- // Browser routes → show login page
146
170
  res.writeHead(401, { "Content-Type": "text/html" });
147
171
  res.end(getLoginPageHtml());
148
172
  return;
149
173
  }
150
174
  }
151
- // OAuth routes (authenticated)
152
- if (path === "/api/oauth/init" && oauthHandler) {
153
- return handleOAuthInit(req, res, oauthHandler);
175
+ // Authenticated routes
176
+ if (path === "/api/oauth/init" && ctx.oauthHandler) {
177
+ return handleOAuthInit(req, res, ctx.oauthHandler);
154
178
  }
155
- if (path === "/api/oauth/callback" && oauthHandler) {
156
- return handleOAuthCallback(req, res, oauthHandler);
179
+ if (path === "/api/oauth/callback" && ctx.oauthHandler) {
180
+ return handleOAuthCallback(req, res, ctx.oauthHandler);
157
181
  }
158
- // Connect page (QR code for mobile app setup)
159
182
  if (path === "/connect") {
160
- return handleConnectPage(req, res, accessToken);
183
+ return handleConnectPage(req, res, ctx.accessToken);
161
184
  }
162
185
  // API routes
163
186
  if (path.startsWith("/api/")) {
164
- return handleApi(req, res, path, store, onIntent, agentConnected, openclawHome, templatesDir, stateDir);
187
+ return routeApi(req, res, path, ctx);
165
188
  }
166
- // Serve static SPA files
167
- if (staticDir) {
168
- return serveStatic(req, res, path, staticDir);
189
+ // Static SPA
190
+ if (ctx.staticDir) {
191
+ return serveStatic(res, path, ctx.staticDir);
169
192
  }
170
193
  res.writeHead(404, { "Content-Type": "text/plain" });
171
194
  res.end("Not Found");
172
195
  }
173
- async function handleLogin(req, res, accessToken) {
174
- // If no auth, just redirect
175
- if (accessToken === null) {
176
- res.writeHead(302, { Location: "/" });
177
- res.end();
178
- return;
196
+ // --- API router (dispatches to individual handlers) ---
197
+ async function routeApi(req, res, path, ctx) {
198
+ if (path === "/api/apps" && req.method === "GET") {
199
+ return handleApps(res, ctx);
179
200
  }
180
- const ip = req.headers["x-forwarded-for"]?.split(",")[0]?.trim() ??
181
- req.socket.remoteAddress ??
182
- "unknown";
183
- if (!checkRateLimit(ip)) {
184
- res.writeHead(429, { "Content-Type": "text/html" });
185
- res.end(getLoginPageHtml("Too many attempts. Please wait a minute."));
186
- return;
201
+ const stateMatch = path.match(/^\/api\/state\/([^/]+)$/);
202
+ if (stateMatch && req.method === "GET") {
203
+ return handleState(res, ctx, stateMatch[1]);
187
204
  }
188
- const body = await readBody(req);
189
- const params = new URLSearchParams(body);
190
- const password = params.get("password")?.trim() ?? "";
191
- const remember = params.get("remember") === "1";
192
- // Normalize: strip dashes for comparison (user may paste formatted code)
193
- const normalized = password.replace(/-/g, "");
194
- if (normalized !== accessToken) {
195
- res.writeHead(401, { "Content-Type": "text/html" });
196
- res.end(getLoginPageHtml("Invalid access code."));
197
- return;
205
+ const viewMatch = path.match(/^\/api\/views\/([^/]+)$/);
206
+ if (viewMatch && req.method === "GET") {
207
+ return handleView(res, ctx, viewMatch[1]);
198
208
  }
199
- setSessionCookie(res, accessToken, req, remember);
200
- res.writeHead(302, { Location: "/" });
201
- res.end();
209
+ if (path === "/api/templates" && req.method === "POST") {
210
+ return handleTemplates(req, res, ctx);
211
+ }
212
+ if (path === "/api/intent" && req.method === "POST") {
213
+ return handleIntentRoute(req, res, ctx);
214
+ }
215
+ if (path === "/api/health" && req.method === "GET") {
216
+ return handleHealth(res, ctx);
217
+ }
218
+ const assetMatch = path.match(/^\/api\/chat-assets\/([^/]+)\/([^/]+)$/);
219
+ if (assetMatch && req.method === "GET") {
220
+ return handleChatAsset(res, ctx, decodeURIComponent(assetMatch[1]), decodeURIComponent(assetMatch[2]));
221
+ }
222
+ jsonError(res, 404, "not found");
202
223
  }
203
- async function handleApi(req, res, path, store, onIntent, agentConnected, openclawHome, templatesDir, stateDir) {
204
- // GET /api/apps (merge agent-registered apps with provisioned template manifests)
205
- if (path === "/api/apps" && req.method === "GET") {
206
- const storeApps = store.getApps();
207
- if (!templatesDir || !existsSync(templatesDir)) {
208
- json(res, storeApps);
209
- return;
210
- }
211
- try {
212
- const dirs = await readdir(templatesDir, { withFileTypes: true });
213
- const storeIds = new Set(storeApps.map((a) => a.id));
214
- const allApps = [...storeApps];
215
- for (const dir of dirs) {
216
- if (!dir.isDirectory() || storeIds.has(dir.name))
217
- continue;
218
- const mPath = resolve(templatesDir, dir.name, "manifest.json");
219
- if (!existsSync(mPath))
220
- continue;
221
- try {
222
- const m = JSON.parse(await readFile(mPath, "utf-8"));
223
- allApps.push({ id: m.id, name: m.name, icon: m.icon, color: m.color });
224
- }
225
- catch { /* skip invalid manifests */ }
224
+ // --- Individual API route handlers ---
225
+ async function handleApps(res, ctx) {
226
+ const storeApps = ctx.store.getApps();
227
+ if (!ctx.templatesDir || !existsSync(ctx.templatesDir)) {
228
+ json(res, storeApps);
229
+ return;
230
+ }
231
+ try {
232
+ const dirs = await readdir(ctx.templatesDir, { withFileTypes: true });
233
+ const storeIds = new Set(storeApps.map((a) => a.id));
234
+ const allApps = [...storeApps];
235
+ for (const dir of dirs) {
236
+ if (!dir.isDirectory() || storeIds.has(dir.name))
237
+ continue;
238
+ const mPath = resolve(ctx.templatesDir, dir.name, "manifest.json");
239
+ if (!existsSync(mPath))
240
+ continue;
241
+ try {
242
+ const m = JSON.parse(await readFile(mPath, "utf-8"));
243
+ allApps.push({ id: m.id, name: m.name, icon: m.icon, color: m.color });
226
244
  }
227
- json(res, allApps);
228
- }
229
- catch {
230
- json(res, storeApps);
245
+ catch { /* skip invalid manifests */ }
231
246
  }
247
+ json(res, allApps);
248
+ }
249
+ catch {
250
+ json(res, storeApps);
251
+ }
252
+ }
253
+ async function handleState(res, ctx, clappId) {
254
+ const state = ctx.store.getState(clappId);
255
+ if (!state) {
256
+ jsonError(res, 404, "not found");
232
257
  return;
233
258
  }
234
- // GET /api/state/:clappId (injects _views from provisioned templates)
235
- const stateMatch = path.match(/^\/api\/state\/([^/]+)$/);
236
- if (stateMatch && req.method === "GET") {
237
- const clappId = stateMatch[1];
238
- const state = store.getState(clappId);
239
- if (!state) {
240
- res.writeHead(404, { "Content-Type": "application/json" });
241
- res.end(JSON.stringify({ error: "not found" }));
242
- return;
243
- }
244
- // Inject _views from templates if available
245
- if (templatesDir) {
246
- const viewsPath = resolve(templatesDir, clappId, "views");
247
- if (existsSync(viewsPath)) {
248
- try {
249
- const viewFiles = await readdir(viewsPath);
250
- const views = {};
251
- for (const file of viewFiles) {
252
- if (!file.endsWith(".json"))
253
- continue;
254
- const content = await readFile(resolve(viewsPath, file), "utf-8");
255
- views[file.replace(/\.json$/, "")] = JSON.parse(content);
256
- }
257
- if (Object.keys(views).length > 0) {
258
- json(res, { ...state, _views: views });
259
- return;
260
- }
259
+ // Inject _views from templates if available
260
+ if (ctx.templatesDir) {
261
+ const viewsPath = resolve(ctx.templatesDir, clappId, "views");
262
+ if (existsSync(viewsPath)) {
263
+ try {
264
+ const viewFiles = await readdir(viewsPath);
265
+ const views = {};
266
+ for (const file of viewFiles) {
267
+ if (!file.endsWith(".json"))
268
+ continue;
269
+ const content = await readFile(resolve(viewsPath, file), "utf-8");
270
+ views[file.replace(/\.json$/, "")] = JSON.parse(content);
271
+ }
272
+ if (Object.keys(views).length > 0) {
273
+ json(res, { ...state, _views: views });
274
+ return;
261
275
  }
262
- catch { /* fall through to normal response */ }
263
276
  }
277
+ catch { /* fall through */ }
264
278
  }
265
- json(res, state);
279
+ }
280
+ json(res, state);
281
+ }
282
+ function handleView(res, ctx, viewId) {
283
+ const content = ctx.store.getView(viewId);
284
+ if (!content) {
285
+ res.writeHead(404, { "Content-Type": "text/plain" });
286
+ res.end("not found");
266
287
  return;
267
288
  }
268
- // GET /api/views/:viewId
269
- const viewMatch = path.match(/^\/api\/views\/([^/]+)$/);
270
- if (viewMatch && req.method === "GET") {
271
- const content = store.getView(viewMatch[1]);
272
- if (!content) {
273
- res.writeHead(404, { "Content-Type": "text/plain" });
274
- res.end("not found");
275
- return;
276
- }
277
- res.writeHead(200, { "Content-Type": "text/plain" });
278
- res.end(content);
289
+ res.writeHead(200, { "Content-Type": "text/plain" });
290
+ res.end(content);
291
+ }
292
+ async function handleTemplates(req, res, ctx) {
293
+ if (!ctx.templatesDir || !ctx.stateDir) {
294
+ jsonError(res, 500, "templates not configured");
279
295
  return;
280
296
  }
281
- // POST /api/templates (provision iOS template bundle)
282
- if (path === "/api/templates" && req.method === "POST") {
283
- if (!templatesDir || !stateDir) {
284
- res.writeHead(500, { "Content-Type": "application/json" });
285
- res.end(JSON.stringify({ error: "templates not configured" }));
297
+ const body = await readBody(req);
298
+ try {
299
+ const data = JSON.parse(body);
300
+ const { id, name, version, icon, color, entryView, contract, views, initialState } = data;
301
+ if (!id || !version) {
302
+ jsonError(res, 400, "id and version required");
286
303
  return;
287
304
  }
288
- const body = await readBody(req);
289
- try {
290
- const data = JSON.parse(body);
291
- const { id, name, version, icon, color, entryView, contract, views, initialState } = data;
292
- if (!id || !version) {
293
- res.writeHead(400, { "Content-Type": "application/json" });
294
- res.end(JSON.stringify({ error: "id and version required" }));
295
- return;
296
- }
297
- const templateDir = resolve(templatesDir, id);
298
- const manifestPath = resolve(templateDir, "manifest.json");
299
- // Check if same version already stored
300
- if (existsSync(manifestPath)) {
301
- try {
302
- const existing = JSON.parse(await readFile(manifestPath, "utf-8"));
303
- if (existing.version === version) {
304
- json(res, { status: "unchanged" });
305
- return;
306
- }
307
- }
308
- catch { /* proceed with overwrite */ }
309
- }
310
- const isNew = !existsSync(templateDir);
311
- // Create directory structure
312
- const viewsPath = resolve(templateDir, "views");
313
- await mkdir(viewsPath, { recursive: true });
314
- // Write manifest
315
- await writeFile(manifestPath, JSON.stringify({ id, name, version, icon, color, entryView }, null, 2));
316
- // Write contract
317
- if (contract) {
318
- await writeFile(resolve(templateDir, "contract.json"), JSON.stringify(contract, null, 2));
319
- }
320
- // Write views
321
- if (views && typeof views === "object") {
322
- for (const [viewName, viewData] of Object.entries(views)) {
323
- await writeFile(resolve(viewsPath, `${viewName}.json`), JSON.stringify(viewData, null, 2));
305
+ const templateDir = resolve(ctx.templatesDir, id);
306
+ const manifestPath = resolve(templateDir, "manifest.json");
307
+ // Check if same version already stored
308
+ if (existsSync(manifestPath)) {
309
+ try {
310
+ const existing = JSON.parse(await readFile(manifestPath, "utf-8"));
311
+ if (existing.version === version) {
312
+ json(res, { status: "unchanged" });
313
+ return;
324
314
  }
325
315
  }
326
- // Write initial state if none exists on disk
327
- if (initialState) {
328
- const statePath = resolve(stateDir, `${id}.json`);
329
- if (!existsSync(statePath)) {
330
- await writeFile(statePath, JSON.stringify(initialState, null, 2));
331
- store.setState(id, initialState);
332
- }
316
+ catch { /* proceed with overwrite */ }
317
+ }
318
+ const isNew = !existsSync(templateDir);
319
+ // Create directory structure and write files
320
+ const viewsPath = resolve(templateDir, "views");
321
+ await mkdir(viewsPath, { recursive: true });
322
+ await writeFile(manifestPath, JSON.stringify({ id, name, version, icon, color, entryView }, null, 2));
323
+ if (contract) {
324
+ await writeFile(resolve(templateDir, "contract.json"), JSON.stringify(contract, null, 2));
325
+ }
326
+ if (views && typeof views === "object") {
327
+ for (const [viewName, viewData] of Object.entries(views)) {
328
+ await writeFile(resolve(viewsPath, `${viewName}.json`), JSON.stringify(viewData, null, 2));
333
329
  }
334
- // Notify agent on first provision
335
- if (isNew) {
336
- const installIntent = {
337
- id: crypto.randomUUID(),
338
- agentId: "system",
339
- clappId: id,
340
- intent: "system.templateInstalled",
341
- payload: {
342
- name: name ?? id,
343
- contractPath: resolve(templateDir, "contract.json"),
344
- },
345
- timestamp: new Date().toISOString(),
346
- };
347
- onIntent(installIntent);
330
+ }
331
+ // Write initial state if none exists on disk
332
+ if (initialState) {
333
+ const statePath = resolve(ctx.stateDir, `${id}.json`);
334
+ if (!existsSync(statePath)) {
335
+ await writeFile(statePath, JSON.stringify(initialState, null, 2));
336
+ ctx.store.setState(id, initialState);
348
337
  }
349
- json(res, { status: "provisioned" });
350
338
  }
351
- catch {
352
- res.writeHead(400, { "Content-Type": "application/json" });
353
- res.end(JSON.stringify({ error: "invalid JSON" }));
339
+ // Notify agent on first provision
340
+ if (isNew) {
341
+ ctx.onIntent({
342
+ id: crypto.randomUUID(),
343
+ agentId: "system",
344
+ clappId: id,
345
+ intent: "system.templateInstalled",
346
+ payload: { name: name ?? id, contractPath: resolve(templateDir, "contract.json") },
347
+ timestamp: new Date().toISOString(),
348
+ });
354
349
  }
350
+ json(res, { status: "provisioned" });
351
+ }
352
+ catch {
353
+ jsonError(res, 400, "invalid JSON");
354
+ }
355
+ }
356
+ async function handleIntentRoute(req, res, ctx) {
357
+ const body = await readBody(req);
358
+ try {
359
+ const data = JSON.parse(body);
360
+ ctx.onIntent({
361
+ id: data.id ?? crypto.randomUUID(),
362
+ agentId: data.agentId ?? "local",
363
+ clappId: data.clappId ?? "",
364
+ intent: data.intent,
365
+ payload: data.payload ?? {},
366
+ timestamp: data.timestamp ?? new Date().toISOString(),
367
+ });
368
+ json(res, { ok: true });
369
+ }
370
+ catch {
371
+ jsonError(res, 400, "invalid JSON");
372
+ }
373
+ }
374
+ function handleHealth(res, ctx) {
375
+ json(res, {
376
+ status: "ok",
377
+ agent: ctx.agentConnected ? ctx.agentConnected() : false,
378
+ });
379
+ }
380
+ async function handleChatAsset(res, ctx, sessionKey, fileName) {
381
+ if (!/^session-\d+$/.test(sessionKey) || fileName.includes("..") || fileName.includes("/")) {
382
+ jsonError(res, 400, "invalid asset path");
355
383
  return;
356
384
  }
357
- // POST /api/intent
358
- if (path === "/api/intent" && req.method === "POST") {
359
- const body = await readBody(req);
360
- try {
361
- const data = JSON.parse(body);
362
- const intent = {
363
- id: data.id ?? crypto.randomUUID(),
364
- agentId: data.agentId ?? "local",
365
- clappId: data.clappId ?? "",
366
- intent: data.intent,
367
- payload: data.payload ?? {},
368
- timestamp: data.timestamp ?? new Date().toISOString(),
369
- };
370
- onIntent(intent);
371
- json(res, { ok: true });
372
- }
373
- catch {
374
- res.writeHead(400, { "Content-Type": "application/json" });
375
- res.end(JSON.stringify({ error: "invalid JSON" }));
376
- }
385
+ const { homedir } = await import("node:os");
386
+ const home = ctx.openclawHome ?? homedir();
387
+ const assetPath = resolve(home, ".openclaw", "workspace", "chat-sessions", "assets", sessionKey, fileName);
388
+ if (!existsSync(assetPath)) {
389
+ jsonError(res, 404, "asset not found");
377
390
  return;
378
391
  }
379
- // GET /api/health
380
- if (path === "/api/health" && req.method === "GET") {
381
- json(res, {
382
- status: "ok",
383
- agent: agentConnected ? agentConnected() : false,
384
- });
392
+ try {
393
+ const content = await readFile(assetPath);
394
+ const ext = extname(assetPath);
395
+ const mime = MIME_TYPES[ext] ?? "application/octet-stream";
396
+ res.writeHead(200, { "Content-Type": mime, "Cache-Control": "private, max-age=31536000, immutable" });
397
+ res.end(content);
398
+ }
399
+ catch {
400
+ jsonError(res, 500, "failed to read asset");
401
+ }
402
+ }
403
+ // --- Non-API route handlers ---
404
+ async function handleLogin(req, res, accessToken) {
405
+ if (accessToken === null) {
406
+ res.writeHead(302, { Location: "/" });
407
+ res.end();
385
408
  return;
386
409
  }
387
- // GET /api/chat-assets/:sessionKey/:fileName
388
- const assetMatch = path.match(/^\/api\/chat-assets\/([^/]+)\/([^/]+)$/);
389
- if (assetMatch && req.method === "GET") {
390
- const sessionKey = decodeURIComponent(assetMatch[1]);
391
- const fileName = decodeURIComponent(assetMatch[2]);
392
- if (!/^session-\d+$/.test(sessionKey) || fileName.includes("..") || fileName.includes("/")) {
393
- res.writeHead(400, { "Content-Type": "application/json" });
394
- res.end(JSON.stringify({ error: "invalid asset path" }));
395
- return;
396
- }
397
- const { homedir } = await import("node:os");
398
- const home = openclawHome ?? homedir();
399
- const assetPath = resolve(home, ".openclaw", "workspace", "chat-sessions", "assets", sessionKey, fileName);
400
- if (!existsSync(assetPath)) {
401
- res.writeHead(404, { "Content-Type": "application/json" });
402
- res.end(JSON.stringify({ error: "asset not found" }));
403
- return;
404
- }
405
- try {
406
- const content = await readFile(assetPath);
407
- const ext = extname(assetPath);
408
- const mime = MIME_TYPES[ext] ?? "application/octet-stream";
409
- res.writeHead(200, { "Content-Type": mime, "Cache-Control": "private, max-age=31536000, immutable" });
410
- res.end(content);
411
- return;
412
- }
413
- catch {
414
- res.writeHead(500, { "Content-Type": "application/json" });
415
- res.end(JSON.stringify({ error: "failed to read asset" }));
416
- return;
417
- }
410
+ const ip = req.headers["x-forwarded-for"]?.split(",")[0]?.trim() ??
411
+ req.socket.remoteAddress ??
412
+ "unknown";
413
+ if (!checkRateLimit(ip)) {
414
+ res.writeHead(429, { "Content-Type": "text/html" });
415
+ res.end(getLoginPageHtml("Too many attempts. Please wait a minute."));
416
+ return;
418
417
  }
419
- res.writeHead(404, { "Content-Type": "application/json" });
420
- res.end(JSON.stringify({ error: "not found" }));
418
+ const body = await readBody(req);
419
+ const params = new URLSearchParams(body);
420
+ const password = params.get("password")?.trim() ?? "";
421
+ const remember = params.get("remember") === "1";
422
+ const normalized = password.replace(/-/g, "");
423
+ if (normalized !== accessToken) {
424
+ res.writeHead(401, { "Content-Type": "text/html" });
425
+ res.end(getLoginPageHtml("Invalid access code."));
426
+ return;
427
+ }
428
+ setSessionCookie(res, accessToken, req, remember);
429
+ res.writeHead(302, { Location: "/" });
430
+ res.end();
421
431
  }
422
432
  async function handleOAuthInit(req, res, oauthHandler) {
423
433
  if (req.method !== "POST") {
424
- res.writeHead(405, { "Content-Type": "application/json" });
425
- res.end(JSON.stringify({ error: "method not allowed" }));
434
+ jsonError(res, 405, "method not allowed");
426
435
  return;
427
436
  }
428
437
  try {
429
438
  const body = await readBody(req);
430
439
  const data = JSON.parse(body);
431
440
  const provider = data.provider;
432
- const customName = data.customName;
433
441
  if (!provider) {
434
- res.writeHead(400, { "Content-Type": "application/json" });
435
- res.end(JSON.stringify({ error: "provider is required" }));
442
+ jsonError(res, 400, "provider is required");
436
443
  return;
437
444
  }
438
- const result = oauthHandler.initOAuth(provider, customName);
439
- json(res, result);
445
+ json(res, oauthHandler.initOAuth(provider, data.customName));
440
446
  }
441
447
  catch (error) {
442
448
  console.error("[oauth] Init failed:", error);
443
- res.writeHead(500, { "Content-Type": "application/json" });
444
- res.end(JSON.stringify({
445
- error: error instanceof Error ? error.message : "OAuth init failed"
446
- }));
449
+ jsonError(res, 500, error instanceof Error ? error.message : "OAuth init failed");
447
450
  }
448
451
  }
449
452
  async function handleOAuthCallback(req, res, oauthHandler) {
450
453
  if (req.method !== "POST") {
451
- res.writeHead(405, { "Content-Type": "application/json" });
452
- res.end(JSON.stringify({ error: "method not allowed" }));
454
+ jsonError(res, 405, "method not allowed");
453
455
  return;
454
456
  }
455
457
  try {
@@ -457,31 +459,24 @@ async function handleOAuthCallback(req, res, oauthHandler) {
457
459
  const data = JSON.parse(body);
458
460
  const callbackUrl = data.callbackUrl;
459
461
  if (!callbackUrl) {
460
- res.writeHead(400, { "Content-Type": "application/json" });
461
- res.end(JSON.stringify({ error: "callbackUrl is required" }));
462
+ jsonError(res, 400, "callbackUrl is required");
462
463
  return;
463
464
  }
464
465
  const parsed = new URL(callbackUrl);
465
466
  const code = parsed.searchParams.get("code");
466
467
  const state = parsed.searchParams.get("state");
467
468
  if (!code || !state) {
468
- res.writeHead(400, { "Content-Type": "application/json" });
469
- res.end(JSON.stringify({ error: "URL must contain code and state parameters" }));
469
+ jsonError(res, 400, "URL must contain code and state parameters");
470
470
  return;
471
471
  }
472
- const result = await oauthHandler.handleCallback(code, state);
473
- json(res, result);
472
+ json(res, await oauthHandler.handleCallback(code, state));
474
473
  }
475
474
  catch (error) {
476
475
  console.error("[oauth] Callback failed:", error);
477
- res.writeHead(500, { "Content-Type": "application/json" });
478
- res.end(JSON.stringify({
479
- error: error instanceof Error ? error.message : "OAuth callback failed",
480
- }));
476
+ jsonError(res, 500, error instanceof Error ? error.message : "OAuth callback failed");
481
477
  }
482
478
  }
483
479
  async function handleConnectPage(req, res, accessToken) {
484
- // Derive server URL from the request Host header
485
480
  const host = req.headers.host ?? "localhost";
486
481
  const protocol = req.headers["x-forwarded-proto"] ?? "http";
487
482
  const serverURL = `${protocol}://${host}`;
@@ -534,17 +529,14 @@ async function handleConnectPage(req, res, accessToken) {
534
529
  res.writeHead(200, { "Content-Type": "text/html" });
535
530
  res.end(html);
536
531
  }
537
- async function serveStatic(_req, res, path, staticDir) {
538
- // Normalize path
532
+ async function serveStatic(res, path, staticDir) {
539
533
  let filePath = path === "/" ? "/index.html" : path;
540
- // Security: prevent directory traversal
541
534
  const resolved = resolve(staticDir, filePath.slice(1));
542
535
  if (!resolved.startsWith(resolve(staticDir))) {
543
536
  res.writeHead(403);
544
537
  res.end("Forbidden");
545
538
  return;
546
539
  }
547
- // Try the exact file, then fall back to index.html (SPA routing)
548
540
  let target = resolved;
549
541
  if (!existsSync(target)) {
550
542
  target = resolve(staticDir, "index.html");
@@ -561,16 +553,4 @@ async function serveStatic(_req, res, path, staticDir) {
561
553
  res.end("Not Found");
562
554
  }
563
555
  }
564
- function json(res, data) {
565
- res.writeHead(200, { "Content-Type": "application/json" });
566
- res.end(JSON.stringify(data));
567
- }
568
- function readBody(req) {
569
- return new Promise((resolve, reject) => {
570
- const chunks = [];
571
- req.on("data", (chunk) => chunks.push(chunk));
572
- req.on("end", () => resolve(Buffer.concat(chunks).toString()));
573
- req.on("error", reject);
574
- });
575
- }
576
556
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../src/server.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAA6C,MAAM,WAAW,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,eAAe,EAAkB,MAAM,IAAI,CAAC;AAErD,OAAO,EAAE,UAAU,EAAsC,MAAM,kBAAkB,CAAC;AAClF,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,EACd,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,MAAM,MAAM,QAAQ,CAAC;AA+B5B,2BAA2B;AAE3B,SAAS,IAAI,CAAC,GAAmB,EAAE,IAAa;IAC9C,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;AAChC,CAAC;AAED,SAAS,SAAS,CAAC,GAAmB,EAAE,MAAc,EAAE,KAAa;IACnE,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC9D,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,SAAS,QAAQ,CAAC,GAAoB;IACpC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9C,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/D,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;AACL,CAAC;AAED,4BAA4B;AAE5B,MAAM,UAAU,GAA2B;IACzC,OAAO,EAAE,WAAW;IACpB,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,UAAU;IAClB,OAAO,EAAE,kBAAkB;IAC3B,MAAM,EAAE,YAAY;IACpB,KAAK,EAAE,eAAe;IACtB,MAAM,EAAE,UAAU;IAClB,MAAM,EAAE,iBAAiB;IACzB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE,YAAY;IACrB,OAAO,EAAE,YAAY;IACrB,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,eAAe;IACvB,MAAM,EAAE,cAAc;IACtB,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,YAAY;CACvB,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,OAAsB;IAChD,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAEhF,MAAM,GAAG,GAAmB;QAC1B,KAAK;QACL,QAAQ;QACR,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,WAAW,EAAE,WAAW,IAAI,IAAI;QAChC,YAAY;QACZ,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;KAC7B,CAAC;IAEF,MAAM,MAAM,GAAG,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACvC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC/B,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAEpD,MAAM,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;QACzC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;YACjD,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC;YAClD,MAAM,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QACD,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE;YAC1C,GAAG,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,EAAa,EAAE,EAAE;QACrC,MAAM,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QACnC,SAAS,EAAE,EAAE,CAAC;QAEd,EAAE,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAc,CAAC;gBACjD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;YAAC,MAAM,CAAC;gBACP,4BAA4B;YAC9B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;QACvB,OAAO,CAAC,GAAG,CAAC,2CAA2C,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,KAAK,EAAE,GAAG,EAAE;YACV,GAAG,CAAC,KAAK,EAAE,CAAC;YACZ,MAAM,CAAC,KAAK,EAAE,CAAC;QACjB,CAAC;KACF,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,GAAc,EACd,MAA2C,EAC3C,KAAiB,EACjB,QAAmC;IAEnC,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;QACjB,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,OAAoC,CAAC;YAC1D,MAAM;QACR,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAgC,CAAC;YACtD,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACpC,CAAC;YACD,MAAM;QACR,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAkB;gBAC5B,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAG,GAAG,CAAC,OAAkB,IAAI,EAAE;gBACtC,MAAM,EAAE,GAAG,CAAC,MAAgB;gBAC5B,OAAO,EAAG,GAAG,CAAC,OAAmC,IAAI,EAAE;gBACvD,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC;YACF,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;YACjC,MAAM;QACR,CAAC;IACH,CAAC;AACH,CAAC;AAED,yBAAyB;AAEzB,KAAK,UAAU,aAAa,CAC1B,GAAoB,EACpB,GAAmB,EACnB,GAAmB;IAEnB,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,UAAU,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC;IAE1B,OAAO;IACP,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;QAClC,IAAI,MAAM;YAAE,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,MAAM,CAAC,CAAC;QACjE,GAAG,CAAC,SAAS,CAAC,kCAAkC,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;SAAM,CAAC;QACN,GAAG,CAAC,SAAS,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;IACpD,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,oBAAoB,CAAC,CAAC;IACpE,GAAG,CAAC,SAAS,CAAC,8BAA8B,EAAE,6BAA6B,CAAC,CAAC;IAE7E,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC7B,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,IAAI,KAAK,aAAa,EAAE,CAAC;QAC3B,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;YACzB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC1B,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAED,aAAa;IACb,IAAI,GAAG,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC;QAC5B,MAAM,EAAE,aAAa,EAAE,GAAG,mBAAmB,CAAC,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;QACpE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;gBACpC,OAAO;YACT,CAAC;YACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;YACpD,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;YAC5B,OAAO;QACT,CAAC;IACH,CAAC;IAED,uBAAuB;IACvB,IAAI,IAAI,KAAK,iBAAiB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACnD,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,IAAI,KAAK,qBAAqB,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACvD,OAAO,mBAAmB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACzD,CAAC;IACD,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC;IAED,aAAa;IACb,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7B,OAAO,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,aAAa;IACb,IAAI,GAAG,CAAC,SAAS,EAAE,CAAC;QAClB,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AACvB,CAAC;AAED,yDAAyD;AAEzD,KAAK,UAAU,QAAQ,CACrB,GAAoB,EACpB,GAAmB,EACnB,IAAY,EACZ,GAAmB;IAEnB,IAAI,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACjD,OAAO,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACzD,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACxD,IAAI,SAAS,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACtC,OAAO,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,IAAI,KAAK,gBAAgB,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACvD,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QACpD,OAAO,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,IAAI,IAAI,KAAK,aAAa,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACnD,OAAO,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;IACxE,IAAI,UAAU,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,CAAC;IAED,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AACnC,CAAC;AAED,wCAAwC;AAExC,KAAK,UAAU,UAAU,CAAC,GAAmB,EAAE,GAAmB;IAChE,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IACtC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACrD,MAAM,OAAO,GAAc,CAAC,GAAG,SAAS,CAAC,CAAC;QAE1C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YAC3D,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;gBAAE,SAAS;YACjC,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;gBACrD,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;YACzE,CAAC;YAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAC1C,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;IACvB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAmB,EAAE,GAAmB,EAAE,OAAe;IAClF,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,4CAA4C;IAC5C,IAAI,GAAG,CAAC,YAAY,EAAE,CAAC;QACrB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;gBAC3C,MAAM,KAAK,GAA4B,EAAE,CAAC;gBAC1C,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC7B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC;wBAAE,SAAS;oBACtC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;oBAClE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC3D,CAAC;gBACD,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAClC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAI,KAA4C,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;oBAC/E,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,kBAAkB,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IAED,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,GAAmB,EAAE,GAAmB,EAAE,MAAc;IAC1E,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;QACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IACD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;IACrD,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC;AAED,KAAK,UAAU,eAAe,CAAC,GAAoB,EAAE,GAAmB,EAAE,GAAmB;IAC3F,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACvC,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,0BAA0B,CAAC,CAAC;QAChD,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;QAE1F,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;QAClD,MAAM,YAAY,GAAG,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;QAE3D,uCAAuC;QACvC,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;gBACnE,IAAI,QAAQ,CAAC,OAAO,KAAK,OAAO,EAAE,CAAC;oBACjC,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;oBACnC,OAAO;gBACT,CAAC;YACH,CAAC;YAAC,MAAM,CAAC,CAAC,4BAA4B,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAEvC,6CAA6C;QAC7C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAChD,MAAM,KAAK,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5C,MAAM,SAAS,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEtG,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC5F,CAAC;QAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,KAAK,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzD,MAAM,SAAS,CAAC,OAAO,CAAC,SAAS,EAAE,GAAG,QAAQ,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC7F,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBAC3B,MAAM,SAAS,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClE,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;YACvC,CAAC;QACH,CAAC;QAED,kCAAkC;QAClC,IAAI,KAAK,EAAE,CAAC;YACV,GAAG,CAAC,QAAQ,CAAC;gBACX,EAAE,EAAE,MAAM,CAAC,UAAU,EAAE;gBACvB,OAAO,EAAE,QAAQ;gBACjB,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,0BAA0B;gBAClC,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,eAAe,CAAC,EAAE;gBAClF,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;aACpC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAoB,EAAE,GAAmB,EAAE,GAAmB;IAC7F,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC;YACX,EAAE,EAAE,IAAI,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE;YAClC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,OAAO;YAChC,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE;YAC3B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,cAAc,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,GAAmB,EAAE,GAAmB;IAC5D,IAAI,CAAC,GAAG,EAAE;QACR,MAAM,EAAE,IAAI;QACZ,KAAK,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK;KACzD,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAmB,EACnB,GAAmB,EACnB,UAAkB,EAClB,QAAgB;IAEhB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3F,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,YAAY,IAAI,OAAO,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;IAE3G,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC;QACvC,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;QAC/B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;QAC3D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,eAAe,EAAE,sCAAsC,EAAE,CAAC,CAAC;QACtG,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC;AAED,iCAAiC;AAEjC,KAAK,UAAU,WAAW,CACxB,GAAoB,EACpB,GAAmB,EACnB,WAA0B;IAE1B,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;QACzB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;QACtC,GAAG,CAAC,GAAG,EAAE,CAAC;QACV,OAAO;IACT,CAAC;IAED,MAAM,EAAE,GACL,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAY,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE;QACjE,GAAG,CAAC,MAAM,CAAC,aAAa;QACxB,SAAS,CAAC;IAEZ,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC;QACxB,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;QACpD,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,0CAA0C,CAAC,CAAC,CAAC;QACtE,OAAO;IACT,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;IACjC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACtD,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,GAAG,CAAC;IAChD,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IAE9C,IAAI,UAAU,KAAK,WAAW,EAAE,CAAC;QAC/B,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;QACpD,GAAG,CAAC,GAAG,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAClD,OAAO;IACT,CAAC;IAED,gBAAgB,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;IAClD,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IACtC,GAAG,CAAC,GAAG,EAAE,CAAC;AACZ,CAAC;AAED,KAAK,UAAU,eAAe,CAC5B,GAAoB,EACpB,GAAmB,EACnB,YAA0B;IAE1B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,QAAQ,GAAG,IAAI,CAAC,QAA8B,CAAC;QACrD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QACD,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,UAAgC,CAAC,CAAC,CAAC;IACrF,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,KAAK,CAAC,CAAC;QAC7C,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC;IACpF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,mBAAmB,CAChC,GAAoB,EACpB,GAAmB,EACnB,YAA0B;IAE1B,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1B,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,oBAAoB,CAAC,CAAC;QAC1C,OAAO;IACT,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,GAAG,CAAC,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAiC,CAAC;QAC3D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,yBAAyB,CAAC,CAAC;YAC/C,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC;QACpC,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,4CAA4C,CAAC,CAAC;YAClE,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,EAAE,MAAM,YAAY,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,EAAE,KAAK,CAAC,CAAC;QACjD,SAAS,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;IACxF,CAAC;AACH,CAAC;AAED,KAAK,UAAU,iBAAiB,CAC9B,GAAoB,EACpB,GAAmB,EACnB,WAA0B;IAE1B,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,OAAO,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC;IAC5D,MAAM,SAAS,GAAG,GAAG,QAAQ,MAAM,IAAI,EAAE,CAAC;IAC1C,MAAM,KAAK,GAAG,WAAW,IAAI,EAAE,CAAC;IAEhC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;IAC5D,IAAI,SAAiB,CAAC;IACtB,IAAI,CAAC;QACH,SAAS,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;QACrD,GAAG,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACtC,OAAO;IACT,CAAC;IAED,MAAM,YAAY,GAAG,WAAW;QAC9B,CAAC,CAAC,gEAAgE,WAAW,eAAe;QAC5F,CAAC,CAAC,6EAA6E,CAAC;IAElF,MAAM,IAAI,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;gCAyBiB,SAAS;;kEAEyB,SAAS;MACrE,YAAY;;;QAGV,CAAC;IAEP,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;IACpD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,GAAmB,EAAE,IAAY,EAAE,SAAiB;IAC7E,IAAI,QAAQ,GAAG,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC;IAEnD,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC7C,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnB,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QACrB,OAAO;IACT,CAAC;IAED,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;QACxB,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,0BAA0B,CAAC;QAC3D,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7C,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACnB,CAAC;IAAC,MAAM,CAAC;QACP,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,CAAC;QACrD,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACvB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clappstore/connect",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "clapps-connect": "./dist/index.js"