onlymcp 0.9.1 → 0.11.0

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 (76) hide show
  1. package/README.md +14 -11
  2. package/dist/apiClient.d.ts +129 -7
  3. package/dist/apiClient.js +98 -4
  4. package/dist/apiClient.js.map +1 -1
  5. package/dist/auth/deviceLogin.js +5 -1
  6. package/dist/auth/deviceLogin.js.map +1 -1
  7. package/dist/bin/cli.js +349 -131
  8. package/dist/bin/cli.js.map +1 -1
  9. package/dist/bin/mcp.js +16 -2
  10. package/dist/bin/mcp.js.map +1 -1
  11. package/dist/export/unpack.d.ts +33 -0
  12. package/dist/export/unpack.js +54 -0
  13. package/dist/export/unpack.js.map +1 -0
  14. package/dist/identity.d.ts +25 -0
  15. package/dist/identity.js +106 -0
  16. package/dist/identity.js.map +1 -0
  17. package/dist/import/collect.d.ts +14 -1
  18. package/dist/import/collect.js +25 -3
  19. package/dist/import/collect.js.map +1 -1
  20. package/dist/import/frontmatter.d.ts +31 -5
  21. package/dist/import/frontmatter.js +64 -22
  22. package/dist/import/frontmatter.js.map +1 -1
  23. package/dist/import/plan.d.ts +22 -1
  24. package/dist/import/plan.js +66 -19
  25. package/dist/import/plan.js.map +1 -1
  26. package/dist/import/prune.d.ts +46 -0
  27. package/dist/import/prune.js +61 -0
  28. package/dist/import/prune.js.map +1 -0
  29. package/dist/import/secrets.js +1 -1
  30. package/dist/import/secrets.js.map +1 -1
  31. package/dist/import/upload.js +17 -2
  32. package/dist/import/upload.js.map +1 -1
  33. package/dist/install.d.ts +67 -6
  34. package/dist/install.js +137 -59
  35. package/dist/install.js.map +1 -1
  36. package/dist/instructions.d.ts +3 -1
  37. package/dist/instructions.js +19 -2
  38. package/dist/instructions.js.map +1 -1
  39. package/dist/memorySync.d.ts +28 -0
  40. package/dist/memorySync.js +56 -0
  41. package/dist/memorySync.js.map +1 -0
  42. package/dist/paths.d.ts +12 -0
  43. package/dist/paths.js +34 -8
  44. package/dist/paths.js.map +1 -1
  45. package/dist/registry/caveats.d.ts +17 -0
  46. package/dist/registry/caveats.js +50 -0
  47. package/dist/registry/caveats.js.map +1 -0
  48. package/dist/registry/clients.d.ts +11 -0
  49. package/dist/registry/clients.js +327 -0
  50. package/dist/registry/clients.js.map +1 -0
  51. package/dist/registry/index.d.ts +4 -0
  52. package/dist/registry/index.js +5 -0
  53. package/dist/registry/index.js.map +1 -0
  54. package/dist/registry/servers.d.ts +50 -0
  55. package/dist/registry/servers.js +225 -0
  56. package/dist/registry/servers.js.map +1 -0
  57. package/dist/registry/types.d.ts +54 -0
  58. package/dist/registry/types.js +6 -0
  59. package/dist/registry/types.js.map +1 -0
  60. package/dist/stubs.d.ts +1 -0
  61. package/dist/stubs.js +85 -13
  62. package/dist/stubs.js.map +1 -1
  63. package/dist/tools/getAgentDefinition.js +5 -2
  64. package/dist/tools/getAgentDefinition.js.map +1 -1
  65. package/dist/tools/getSkill.js +1 -1
  66. package/dist/tools/getSkill.js.map +1 -1
  67. package/dist/tools/getSkillFile.js +3 -3
  68. package/dist/tools/getSkillFile.js.map +1 -1
  69. package/dist/tools/memoryGraph.d.ts +69 -0
  70. package/dist/tools/memoryGraph.js +128 -0
  71. package/dist/tools/memoryGraph.js.map +1 -0
  72. package/dist/tools/memoryRead.js +1 -1
  73. package/dist/tools/memoryRead.js.map +1 -1
  74. package/dist/tools/memoryWrite.js +1 -1
  75. package/dist/tools/memoryWrite.js.map +1 -1
  76. package/package.json +5 -4
package/README.md CHANGED
@@ -7,10 +7,10 @@ in every MCP client you use. This package ships two binaries: the stdio MCP serv
7
7
  **There is a second way in, and for most people it is the better one.** The hosted
8
8
  server at `https://only-mcp.com/api/mcp` needs nothing installed, works from any
9
9
  machine, and is the only way to reach the tools of the MCP servers you connect to
10
- your account (GitHub, Google Drive, your own — see "The gateway" below):
10
+ your account (GitHub, Linear, Notion, your own — see "The gateway" below):
11
11
 
12
12
  ```bash
13
- claude mcp add --transport http onlymcp https://only-mcp.com/api/mcp \
13
+ claude mcp add --transport http --scope user onlymcp https://only-mcp.com/api/mcp \
14
14
  --header "Authorization: Bearer omk_…"
15
15
  ```
16
16
 
@@ -23,7 +23,7 @@ Requires a free account at [only-mcp.com](https://only-mcp.com) and Node.js 22 o
23
23
  ## Set up a client
24
24
 
25
25
  ```bash
26
- npx onlymcp install --client claude # or: codex, gemini
26
+ npx onlymcp install --client claude-code # or: codex, gemini-cli
27
27
  npx onlymcp login
28
28
  ```
29
29
 
@@ -36,8 +36,10 @@ merges into what is already there rather than replacing it:
36
36
  | Codex | `~/.codex/config.toml` |
37
37
  | Gemini CLI | `~/.gemini/settings.json` |
38
38
 
39
- Any other MCP client works too. `npx onlymcp install --print --client claude` prints
40
- the JSON snippet to paste in by hand.
39
+ `npx onlymcp install --all` writes into every one of these whose config file already
40
+ exists on this machine, and skips the rest. Any other MCP client works too:
41
+ `npx onlymcp install --print --client claude-code` prints the JSON snippet to paste in
42
+ by hand.
41
43
 
42
44
  `login` connects the device over an OAuth device code (a code plus a QR in the
43
45
  terminal) and stores the token in the operating system keyring, never in a file.
@@ -46,12 +48,13 @@ terminal) and stores the token in the operating system keyring, never in a file.
46
48
 
47
49
  | Command | What it does |
48
50
  | --- | --- |
49
- | `onlymcp install --client <id>` | Add OnlyMCP to a client's config |
50
- | `onlymcp install --print --client <id>` | Print the snippet, write nothing |
51
- | `onlymcp login` | Connect this device |
52
- | `onlymcp status` | Show whether this device is connected |
53
- | `onlymcp sync` | Rewrite the local stub files |
54
- | `onlymcp logout` | Remove the token and the local cache |
51
+ | `npx onlymcp install --client <id>` | Add OnlyMCP to a client's config |
52
+ | `npx onlymcp install --all` | Add OnlyMCP to every client already set up on this machine |
53
+ | `npx onlymcp install --print --client <id>` | Print the snippet, write nothing |
54
+ | `npx onlymcp login` | Connect this device |
55
+ | `npx onlymcp status` | Show whether this device is connected |
56
+ | `npx onlymcp sync` | Rewrite the local stub files |
57
+ | `npx onlymcp logout` | End this device's session on the server, then remove the token and the local cache |
55
58
 
56
59
  ## What the agent gets
57
60
 
@@ -4,11 +4,40 @@ export declare class ApiError extends Error {
4
4
  readonly status: number;
5
5
  constructor(code: string, params?: Record<string, unknown>, status?: number);
6
6
  }
7
- export type SkillListItem = {
7
+ /**
8
+ * Herkunft und Bearbeitbarkeit, wie jede Liste des Servers sie mitschickt
9
+ * (teams/scope.ts). Der Client braucht sie fuer `--prune`: geloescht wird nur,
10
+ * was diesem Konto allein gehoert.
11
+ */
12
+ export type Scoped = {
13
+ scope: 'personal' | 'team';
14
+ teamName: string | null;
15
+ isOwn: boolean;
16
+ canEdit: boolean;
17
+ archivedAt: string | null;
18
+ };
19
+ /** Die Sammlung, aus der ein Skill stammt (Paket 03 Aufgabe 11). */
20
+ export type SkillCollection = {
21
+ key: string;
22
+ kind: string;
23
+ label: string;
24
+ };
25
+ export type SkillProvenance = {
26
+ description?: string;
27
+ sourcePath?: string;
28
+ collection?: {
29
+ key: string;
30
+ kind: string;
31
+ label?: string;
32
+ } | null;
33
+ };
34
+ export type SkillListItem = Scoped & {
8
35
  name: string;
36
+ description: string;
37
+ collection: SkillCollection | null;
9
38
  updatedAt: string;
10
39
  };
11
- export type AgentListItem = {
40
+ export type AgentListItem = Scoped & {
12
41
  name: string;
13
42
  description: string;
14
43
  model: string | null;
@@ -29,17 +58,37 @@ export type MemoryFile = {
29
58
  path: string;
30
59
  content: string;
31
60
  frontmatter: Record<string, unknown>;
32
- links: string[];
61
+ links: {
62
+ resolved: string[];
63
+ unresolved: string[];
64
+ };
33
65
  updatedAt: string;
34
66
  updatedByDevice: string | null;
67
+ updatedByName?: string | null;
35
68
  };
36
- export type MemoryListItem = {
69
+ export type SearchHit = {
70
+ kind: 'memory' | 'skill' | 'agent';
71
+ id: string;
72
+ name: string;
73
+ path: string | null;
74
+ snippet: string;
75
+ scope: 'personal' | 'team';
76
+ teamId: string | null;
77
+ };
78
+ export type TreeEntry = {
79
+ kind: 'folder' | 'file';
37
80
  path: string;
38
- updatedAt: string;
81
+ name: string;
82
+ type: string | null;
83
+ updatedAt: string | null;
39
84
  scope: 'personal' | 'team';
40
85
  teamName: string | null;
41
86
  canEdit: boolean;
42
87
  };
88
+ export type MemoryListItem = Scoped & {
89
+ path: string;
90
+ updatedAt: string;
91
+ };
43
92
  export type Connection = {
44
93
  id: string;
45
94
  name: string;
@@ -97,6 +146,24 @@ export declare class ApiClient {
97
146
  plan: {
98
147
  name: string;
99
148
  };
149
+ /** Optional, weil eine aeltere API sie nicht schickt. Fehlt sie, gilt an. */
150
+ brainvaultMode?: boolean;
151
+ }>;
152
+ /**
153
+ * Tells the server this device just finished an import or a sync (POST
154
+ * /api/devices/current/run), so the devices page can show when and how many files. The caller
155
+ * treats a failure as nothing: an older server answers 404, and a report is never worth a
156
+ * failed command. Five seconds at most, so a slow server cannot hold the command up.
157
+ */
158
+ reportRun(kind: 'import' | 'sync', files: number): Promise<void>;
159
+ /**
160
+ * Ends this device's session on the server (POST /api/auth/sign-out, Better Auth's own sign-out:
161
+ * the API's bearer plugin turns the token into the session cookie that endpoint reads). For
162
+ * `onlymcp logout`, which forgets the login on this machine whatever this answers. Five seconds
163
+ * at most, so an unreachable server cannot hold the logout up.
164
+ */
165
+ signOut(): Promise<{
166
+ success: boolean;
100
167
  }>;
101
168
  listSkills(): Promise<{
102
169
  skills: SkillListItem[];
@@ -104,10 +171,19 @@ export declare class ApiClient {
104
171
  getSkill(name: string): Promise<{
105
172
  name: string;
106
173
  body: string;
174
+ description: string;
175
+ collection: SkillCollection | null;
176
+ sourcePath: string | null;
107
177
  updatedAt: string;
108
178
  files: SkillFileMeta[];
109
179
  }>;
110
- putSkill(name: string, body: string): Promise<{
180
+ /**
181
+ * Die Herkunft ist optional und wird WEGGELASSEN, nicht auf leer gesetzt,
182
+ * wenn es keine gibt: ein fehlendes Feld heisst serverseitig "nicht
183
+ * anfassen" (Spec 5, Regel 1). Ein `description: ''` mitzuschicken loeschte
184
+ * die Beschreibung, die ein frueherer Import geschrieben hat.
185
+ */
186
+ putSkill(name: string, body: string, provenance?: SkillProvenance): Promise<{
111
187
  name: string;
112
188
  updatedAt: string;
113
189
  }>;
@@ -130,7 +206,21 @@ export declare class ApiClient {
130
206
  name: string;
131
207
  updatedAt: string;
132
208
  }>;
133
- getAgent(name: string): Promise<AgentListItem & {
209
+ /**
210
+ * `use` says "I am loading this definition to run it", and the server counts
211
+ * a load for the agent's "Used" line. Only `get_agent_definition` asks. Any
212
+ * other read of the same route (the write tool looking at the previous state)
213
+ * is not a use and must not send it.
214
+ */
215
+ getAgent(name: string, { use }?: {
216
+ use?: boolean;
217
+ }): Promise<Scoped & {
218
+ name: string;
219
+ description: string;
220
+ model: string | null;
221
+ tools: string[];
222
+ updatedAt: string;
223
+ } & {
134
224
  body: string;
135
225
  }>;
136
226
  readMemory(path: string): Promise<MemoryFile>;
@@ -139,6 +229,38 @@ export declare class ApiClient {
139
229
  listMemory(): Promise<{
140
230
  files: MemoryListItem[];
141
231
  }>;
232
+ searchContent(q: string, opts?: {
233
+ types?: string[];
234
+ limit?: number;
235
+ }): Promise<{
236
+ hits: SearchHit[];
237
+ }>;
238
+ memoryTree(scope?: string): Promise<{
239
+ nodes: TreeEntry[];
240
+ }>;
241
+ /**
242
+ * A move is a write of the moved file and of every file whose links it rewrites, and the
243
+ * server records the device each write came from. This machine's host name, as the
244
+ * memory_write tool and the import name it, so a write and a move from here are one device.
245
+ */
246
+ moveMemory(from: string, to: string, updateLinks?: boolean, deviceLabel?: string): Promise<{
247
+ from: string;
248
+ to: string;
249
+ rewritten: number;
250
+ skipped: number;
251
+ }>;
252
+ /**
253
+ * Das Export-Archiv, als ROHE Antwort.
254
+ *
255
+ * Geht bewusst nicht durch `call`: das dort ist ein JSON-Client, und ein
256
+ * Archiv von zwei Gigabyte durch `res.json()` zu schicken waere genau der
257
+ * Fehler, den die Route auf ihrer Seite vermeidet. Der Aufrufer bekommt den
258
+ * Strom und entscheidet, ob er ihn in eine Datei giesst oder auspackt.
259
+ */
260
+ exportArchive(opts?: {
261
+ scope?: string;
262
+ types?: string[];
263
+ }): Promise<Response>;
142
264
  deleteMemory(path: string): Promise<void>;
143
265
  deleteSkill(name: string): Promise<void>;
144
266
  deleteSkillFile(name: string, path: string): Promise<void>;
package/dist/apiClient.js CHANGED
@@ -1,3 +1,5 @@
1
+ import { hostname } from 'node:os';
2
+ import { identityHeaders } from './identity.js';
1
3
  export class ApiError extends Error {
2
4
  code;
3
5
  params;
@@ -21,9 +23,12 @@ export class ApiClient {
21
23
  const tok = this.token();
22
24
  if (!tok)
23
25
  throw new ApiError('errors.NOT_LOGGED_IN');
26
+ // Wer anruft, steht in den Koepfen - sonst schickt Node 'node' und das
27
+ // Geraet heisst in der Liste genau so. Siehe identity.ts.
24
28
  const res = await fetch(`${this.baseUrl}${path}`, {
25
29
  ...init,
26
30
  headers: {
31
+ ...(await identityHeaders()),
27
32
  ...(init.headers ?? {}),
28
33
  authorization: `Bearer ${tok}`,
29
34
  'content-type': 'application/json',
@@ -40,14 +45,46 @@ export class ApiClient {
40
45
  getMe() {
41
46
  return this.call('/api/me');
42
47
  }
48
+ /**
49
+ * Tells the server this device just finished an import or a sync (POST
50
+ * /api/devices/current/run), so the devices page can show when and how many files. The caller
51
+ * treats a failure as nothing: an older server answers 404, and a report is never worth a
52
+ * failed command. Five seconds at most, so a slow server cannot hold the command up.
53
+ */
54
+ reportRun(kind, files) {
55
+ return this.call('/api/devices/current/run', {
56
+ method: 'POST',
57
+ body: JSON.stringify({ kind, files }),
58
+ signal: AbortSignal.timeout(5000),
59
+ });
60
+ }
61
+ /**
62
+ * Ends this device's session on the server (POST /api/auth/sign-out, Better Auth's own sign-out:
63
+ * the API's bearer plugin turns the token into the session cookie that endpoint reads). For
64
+ * `onlymcp logout`, which forgets the login on this machine whatever this answers. Five seconds
65
+ * at most, so an unreachable server cannot hold the logout up.
66
+ */
67
+ signOut() {
68
+ return this.call('/api/auth/sign-out', {
69
+ method: 'POST',
70
+ body: '{}',
71
+ signal: AbortSignal.timeout(5000),
72
+ });
73
+ }
43
74
  listSkills() {
44
75
  return this.call('/api/skills');
45
76
  }
46
77
  getSkill(name) {
47
78
  return this.call(`/api/skills/${encodeURIComponent(name)}`);
48
79
  }
49
- putSkill(name, body) {
50
- return this.call(`/api/skills/${encodeURIComponent(name)}`, { method: 'PUT', body: JSON.stringify({ body }) });
80
+ /**
81
+ * Die Herkunft ist optional und wird WEGGELASSEN, nicht auf leer gesetzt,
82
+ * wenn es keine gibt: ein fehlendes Feld heisst serverseitig "nicht
83
+ * anfassen" (Spec 5, Regel 1). Ein `description: ''` mitzuschicken loeschte
84
+ * die Beschreibung, die ein frueherer Import geschrieben hat.
85
+ */
86
+ putSkill(name, body, provenance = {}) {
87
+ return this.call(`/api/skills/${encodeURIComponent(name)}`, { method: 'PUT', body: JSON.stringify({ body, ...provenance }) });
51
88
  }
52
89
  // Der Pfad wird Segment fuer Segment kodiert, genau wie bei readMemory:
53
90
  // encodeURIComponent ueber die ganze Zeichenkette machte aus jedem
@@ -69,8 +106,14 @@ export class ApiClient {
69
106
  putAgent(name, a) {
70
107
  return this.call(`/api/agents/${encodeURIComponent(name)}`, { method: 'PUT', body: JSON.stringify(a) });
71
108
  }
72
- getAgent(name) {
73
- return this.call(`/api/agents/${encodeURIComponent(name)}`);
109
+ /**
110
+ * `use` says "I am loading this definition to run it", and the server counts
111
+ * a load for the agent's "Used" line. Only `get_agent_definition` asks. Any
112
+ * other read of the same route (the write tool looking at the previous state)
113
+ * is not a use and must not send it.
114
+ */
115
+ getAgent(name, { use = false } = {}) {
116
+ return this.call(`/api/agents/${encodeURIComponent(name)}${use ? '?use=1' : ''}`);
74
117
  }
75
118
  readMemory(path) {
76
119
  return this.call(this.memoryUrl(path));
@@ -89,6 +132,57 @@ export class ApiClient {
89
132
  listMemory() {
90
133
  return this.call('/api/memory');
91
134
  }
135
+ // --- Suchen, Baum und Verschieben (Paket 03 Aufgabe 14) -----------------
136
+ searchContent(q, opts = {}) {
137
+ const query = new URLSearchParams({ q });
138
+ if (opts.types?.length)
139
+ query.set('types', opts.types.join(','));
140
+ if (opts.limit)
141
+ query.set('limit', String(opts.limit));
142
+ return this.call(`/api/search?${query.toString()}`);
143
+ }
144
+ memoryTree(scope = 'all') {
145
+ return this.call(`/api/memory/tree?scope=${encodeURIComponent(scope)}`);
146
+ }
147
+ /**
148
+ * A move is a write of the moved file and of every file whose links it rewrites, and the
149
+ * server records the device each write came from. This machine's host name, as the
150
+ * memory_write tool and the import name it, so a write and a move from here are one device.
151
+ */
152
+ moveMemory(from, to, updateLinks = true, deviceLabel = hostname()) {
153
+ return this.call('/api/memory/move', {
154
+ method: 'POST',
155
+ body: JSON.stringify({ from, to, updateLinks, deviceLabel }),
156
+ });
157
+ }
158
+ // --- Der Weg nach draussen ---------------------------------------------
159
+ /**
160
+ * Das Export-Archiv, als ROHE Antwort.
161
+ *
162
+ * Geht bewusst nicht durch `call`: das dort ist ein JSON-Client, und ein
163
+ * Archiv von zwei Gigabyte durch `res.json()` zu schicken waere genau der
164
+ * Fehler, den die Route auf ihrer Seite vermeidet. Der Aufrufer bekommt den
165
+ * Strom und entscheidet, ob er ihn in eine Datei giesst oder auspackt.
166
+ */
167
+ async exportArchive(opts = {}) {
168
+ const tok = this.token();
169
+ if (!tok)
170
+ throw new ApiError('errors.NOT_LOGGED_IN');
171
+ const query = new URLSearchParams();
172
+ if (opts.scope)
173
+ query.set('scope', opts.scope);
174
+ if (opts.types?.length)
175
+ query.set('types', opts.types.join(','));
176
+ const tail = query.size > 0 ? `?${query.toString()}` : '';
177
+ const res = await fetch(`${this.baseUrl}/api/export${tail}`, {
178
+ headers: { ...(await identityHeaders()), authorization: `Bearer ${tok}` },
179
+ });
180
+ if (!res.ok) {
181
+ const body = (await res.json().catch(() => ({})));
182
+ throw new ApiError(body.code ?? 'errors.UNKNOWN', body.params ?? {}, res.status);
183
+ }
184
+ return res;
185
+ }
92
186
  deleteMemory(path) {
93
187
  return this.call(this.memoryUrl(path), { method: 'DELETE' });
94
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../src/apiClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apiClient.js","sourceRoot":"","sources":["../src/apiClient.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { ApiError } from '../apiClient.js';
2
+ import { identityHeaders } from '../identity.js';
2
3
  const defaultDeps = {
3
4
  sleep: (ms) => new Promise((r) => setTimeout(r, ms)),
4
5
  };
@@ -6,9 +7,12 @@ export async function pollForToken(baseUrl, deviceCode, intervalSeconds, deps =
6
7
  let interval = intervalSeconds;
7
8
  for (;;) {
8
9
  await deps.sleep(interval * 1000);
10
+ // Diese Anfrage ist die, die die Sitzung erzeugt - hier entscheidet sich,
11
+ // wie das Geraet in der Liste heissen wird. Ohne die Koepfe schickt Node
12
+ // 'node', und genau das stand vorher dort.
9
13
  const res = await fetch(`${baseUrl}/api/auth/device/token`, {
10
14
  method: 'POST',
11
- headers: { 'content-type': 'application/json' },
15
+ headers: { ...(await identityHeaders()), 'content-type': 'application/json' },
12
16
  body: JSON.stringify({
13
17
  grant_type: 'urn:ietf:params:oauth:grant-type:device_code',
14
18
  device_code: deviceCode,
@@ -1 +1 @@
1
- {"version":3,"file":"deviceLogin.js","sourceRoot":"","sources":["../../src/auth/deviceLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,MAAM,WAAW,GAAS;IACxB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,UAAkB,EAClB,eAAuB,EACvB,OAAa,WAAW;IAExB,IAAI,QAAQ,GAAG,eAAe,CAAC;IAC/B,SAAS,CAAC;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,wBAAwB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,UAAU,EAAE,8CAA8C;gBAC1D,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,aAAa;aACzB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAsB,CAAC;QAC1D,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,uBAAuB;gBAC1B,MAAM;YACR,KAAK,WAAW;gBACd,QAAQ,IAAI,CAAC,CAAC;gBACd,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,IAAI,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YACpD,KAAK,eAAe;gBAClB,MAAM,IAAI,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACnD;gBACE,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"deviceLogin.js","sourceRoot":"","sources":["../../src/auth/deviceLogin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIjD,MAAM,WAAW,GAAS;IACxB,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;CACrD,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,OAAe,EACf,UAAkB,EAClB,eAAuB,EACvB,OAAa,WAAW;IAExB,IAAI,QAAQ,GAAG,eAAe,CAAC;IAC/B,SAAS,CAAC;QACR,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;QAClC,0EAA0E;QAC1E,yEAAyE;QACzE,2CAA2C;QAC3C,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,wBAAwB,EAAE;YAC1D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,GAAG,CAAC,MAAM,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE;YAC7E,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,UAAU,EAAE,8CAA8C;gBAC1D,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,aAAa;aACzB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAChD,IAAI,IAAI,CAAC,YAAY;YAAE,OAAO,IAAI,CAAC,YAAsB,CAAC;QAC1D,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;YACnB,KAAK,uBAAuB;gBAC1B,MAAM;YACR,KAAK,WAAW;gBACd,QAAQ,IAAI,CAAC,CAAC;gBACd,MAAM;YACR,KAAK,eAAe;gBAClB,MAAM,IAAI,QAAQ,CAAC,6BAA6B,CAAC,CAAC;YACpD,KAAK,eAAe;gBAClB,MAAM,IAAI,QAAQ,CAAC,4BAA4B,CAAC,CAAC;YACnD;gBACE,MAAM,IAAI,QAAQ,CAAC,4BAA4B,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;AACH,CAAC"}