@itphx/synth-core 0.3.0 → 0.4.4

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 (187) hide show
  1. package/dist/auth/local.d.ts +14 -0
  2. package/dist/auth/local.d.ts.map +1 -1
  3. package/dist/auth/local.js +63 -11
  4. package/dist/auth/local.js.map +1 -1
  5. package/dist/auth/local.test.js +59 -0
  6. package/dist/auth/local.test.js.map +1 -1
  7. package/dist/events/bus.d.ts +7 -0
  8. package/dist/events/bus.d.ts.map +1 -1
  9. package/dist/events/bus.js +26 -3
  10. package/dist/events/bus.js.map +1 -1
  11. package/dist/events/bus.test.js +46 -0
  12. package/dist/events/bus.test.js.map +1 -1
  13. package/dist/index.d.ts +3 -1
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +2 -1
  16. package/dist/index.js.map +1 -1
  17. package/dist/main.js +247 -8
  18. package/dist/main.js.map +1 -1
  19. package/dist/providers/index.d.ts +1 -0
  20. package/dist/providers/index.d.ts.map +1 -1
  21. package/dist/providers/index.js +4 -0
  22. package/dist/providers/index.js.map +1 -1
  23. package/dist/providers/remote.d.ts +60 -0
  24. package/dist/providers/remote.d.ts.map +1 -0
  25. package/dist/providers/remote.js +394 -0
  26. package/dist/providers/remote.js.map +1 -0
  27. package/dist/providers/remote.test.d.ts +2 -0
  28. package/dist/providers/remote.test.d.ts.map +1 -0
  29. package/dist/providers/remote.test.js +258 -0
  30. package/dist/providers/remote.test.js.map +1 -0
  31. package/dist/remote/aggregate.d.ts +43 -0
  32. package/dist/remote/aggregate.d.ts.map +1 -0
  33. package/dist/remote/aggregate.js +84 -0
  34. package/dist/remote/aggregate.js.map +1 -0
  35. package/dist/remote/aggregate.test.d.ts +2 -0
  36. package/dist/remote/aggregate.test.d.ts.map +1 -0
  37. package/dist/remote/aggregate.test.js +120 -0
  38. package/dist/remote/aggregate.test.js.map +1 -0
  39. package/dist/remote/client.d.ts +142 -0
  40. package/dist/remote/client.d.ts.map +1 -0
  41. package/dist/remote/client.js +290 -0
  42. package/dist/remote/client.js.map +1 -0
  43. package/dist/remote/client.test.d.ts +2 -0
  44. package/dist/remote/client.test.d.ts.map +1 -0
  45. package/dist/remote/client.test.js +176 -0
  46. package/dist/remote/client.test.js.map +1 -0
  47. package/dist/remote/connection.d.ts +66 -0
  48. package/dist/remote/connection.d.ts.map +1 -0
  49. package/dist/remote/connection.js +298 -0
  50. package/dist/remote/connection.js.map +1 -0
  51. package/dist/remote/connection.test.d.ts +2 -0
  52. package/dist/remote/connection.test.d.ts.map +1 -0
  53. package/dist/remote/connection.test.js +323 -0
  54. package/dist/remote/connection.test.js.map +1 -0
  55. package/dist/remote/credentials.d.ts +13 -0
  56. package/dist/remote/credentials.d.ts.map +1 -0
  57. package/dist/remote/credentials.js +81 -0
  58. package/dist/remote/credentials.js.map +1 -0
  59. package/dist/remote/credentials.test.d.ts +2 -0
  60. package/dist/remote/credentials.test.d.ts.map +1 -0
  61. package/dist/remote/credentials.test.js +69 -0
  62. package/dist/remote/credentials.test.js.map +1 -0
  63. package/dist/remote/device-flow.d.ts +72 -0
  64. package/dist/remote/device-flow.d.ts.map +1 -0
  65. package/dist/remote/device-flow.js +229 -0
  66. package/dist/remote/device-flow.js.map +1 -0
  67. package/dist/remote/device-flow.test.d.ts +2 -0
  68. package/dist/remote/device-flow.test.d.ts.map +1 -0
  69. package/dist/remote/device-flow.test.js +103 -0
  70. package/dist/remote/device-flow.test.js.map +1 -0
  71. package/dist/remote/event-bridge.d.ts +46 -0
  72. package/dist/remote/event-bridge.d.ts.map +1 -0
  73. package/dist/remote/event-bridge.js +218 -0
  74. package/dist/remote/event-bridge.js.map +1 -0
  75. package/dist/remote/event-bridge.test.d.ts +2 -0
  76. package/dist/remote/event-bridge.test.d.ts.map +1 -0
  77. package/dist/remote/event-bridge.test.js +240 -0
  78. package/dist/remote/event-bridge.test.js.map +1 -0
  79. package/dist/remote/index.d.ts +19 -0
  80. package/dist/remote/index.d.ts.map +1 -0
  81. package/dist/remote/index.js +11 -0
  82. package/dist/remote/index.js.map +1 -0
  83. package/dist/remote/session.d.ts +72 -0
  84. package/dist/remote/session.d.ts.map +1 -0
  85. package/dist/remote/session.js +248 -0
  86. package/dist/remote/session.js.map +1 -0
  87. package/dist/remote/session.test.d.ts +2 -0
  88. package/dist/remote/session.test.d.ts.map +1 -0
  89. package/dist/remote/session.test.js +482 -0
  90. package/dist/remote/session.test.js.map +1 -0
  91. package/dist/remote/transfer.d.ts +75 -0
  92. package/dist/remote/transfer.d.ts.map +1 -0
  93. package/dist/remote/transfer.js +491 -0
  94. package/dist/remote/transfer.js.map +1 -0
  95. package/dist/remote/transfer.test.d.ts +2 -0
  96. package/dist/remote/transfer.test.d.ts.map +1 -0
  97. package/dist/remote/transfer.test.js +416 -0
  98. package/dist/remote/transfer.test.js.map +1 -0
  99. package/dist/remote/types.d.ts +28 -0
  100. package/dist/remote/types.d.ts.map +1 -0
  101. package/dist/remote/types.js +10 -0
  102. package/dist/remote/types.js.map +1 -0
  103. package/dist/server/app.d.ts +62 -1
  104. package/dist/server/app.d.ts.map +1 -1
  105. package/dist/server/app.js +364 -20
  106. package/dist/server/app.js.map +1 -1
  107. package/dist/server/app.proxy.test.d.ts +2 -0
  108. package/dist/server/app.proxy.test.d.ts.map +1 -0
  109. package/dist/server/app.proxy.test.js +193 -0
  110. package/dist/server/app.proxy.test.js.map +1 -0
  111. package/dist/server/app.remote.test.d.ts +2 -0
  112. package/dist/server/app.remote.test.d.ts.map +1 -0
  113. package/dist/server/app.remote.test.js +674 -0
  114. package/dist/server/app.remote.test.js.map +1 -0
  115. package/dist/server/proxy.d.ts +14 -0
  116. package/dist/server/proxy.d.ts.map +1 -0
  117. package/dist/server/proxy.js +93 -0
  118. package/dist/server/proxy.js.map +1 -0
  119. package/dist/server/routes/auth.d.ts +26 -2
  120. package/dist/server/routes/auth.d.ts.map +1 -1
  121. package/dist/server/routes/auth.js +269 -36
  122. package/dist/server/routes/auth.js.map +1 -1
  123. package/dist/server/routes/auth.test.d.ts +2 -0
  124. package/dist/server/routes/auth.test.d.ts.map +1 -0
  125. package/dist/server/routes/auth.test.js +466 -0
  126. package/dist/server/routes/auth.test.js.map +1 -0
  127. package/dist/server/routes/fs.d.ts +2 -1
  128. package/dist/server/routes/fs.d.ts.map +1 -1
  129. package/dist/server/routes/fs.js +159 -5
  130. package/dist/server/routes/fs.js.map +1 -1
  131. package/dist/server/routes/hybrid.d.ts +32 -0
  132. package/dist/server/routes/hybrid.d.ts.map +1 -0
  133. package/dist/server/routes/hybrid.js +21 -0
  134. package/dist/server/routes/hybrid.js.map +1 -0
  135. package/dist/server/routes/hybrid.test.d.ts +2 -0
  136. package/dist/server/routes/hybrid.test.d.ts.map +1 -0
  137. package/dist/server/routes/hybrid.test.js +454 -0
  138. package/dist/server/routes/hybrid.test.js.map +1 -0
  139. package/dist/server/routes/messages.d.ts +2 -1
  140. package/dist/server/routes/messages.d.ts.map +1 -1
  141. package/dist/server/routes/messages.js +104 -1
  142. package/dist/server/routes/messages.js.map +1 -1
  143. package/dist/server/routes/models.cache.test.d.ts +2 -0
  144. package/dist/server/routes/models.cache.test.d.ts.map +1 -0
  145. package/dist/server/routes/models.cache.test.js +59 -0
  146. package/dist/server/routes/models.cache.test.js.map +1 -0
  147. package/dist/server/routes/models.d.ts +9 -1
  148. package/dist/server/routes/models.d.ts.map +1 -1
  149. package/dist/server/routes/models.js +35 -2
  150. package/dist/server/routes/models.js.map +1 -1
  151. package/dist/server/routes/models.remote.test.d.ts +2 -0
  152. package/dist/server/routes/models.remote.test.d.ts.map +1 -0
  153. package/dist/server/routes/models.remote.test.js +101 -0
  154. package/dist/server/routes/models.remote.test.js.map +1 -0
  155. package/dist/server/routes/project-transfer.d.ts +16 -0
  156. package/dist/server/routes/project-transfer.d.ts.map +1 -0
  157. package/dist/server/routes/project-transfer.js +141 -0
  158. package/dist/server/routes/project-transfer.js.map +1 -0
  159. package/dist/server/routes/project-transfer.test.d.ts +2 -0
  160. package/dist/server/routes/project-transfer.test.d.ts.map +1 -0
  161. package/dist/server/routes/project-transfer.test.js +199 -0
  162. package/dist/server/routes/project-transfer.test.js.map +1 -0
  163. package/dist/server/routes/projects.d.ts +2 -1
  164. package/dist/server/routes/projects.d.ts.map +1 -1
  165. package/dist/server/routes/projects.js +101 -5
  166. package/dist/server/routes/projects.js.map +1 -1
  167. package/dist/server/routes/providers.d.ts +1 -1
  168. package/dist/server/routes/providers.d.ts.map +1 -1
  169. package/dist/server/routes/providers.js +3 -1
  170. package/dist/server/routes/providers.js.map +1 -1
  171. package/dist/server/routes/providers.test.d.ts +2 -0
  172. package/dist/server/routes/providers.test.d.ts.map +1 -0
  173. package/dist/server/routes/providers.test.js +58 -0
  174. package/dist/server/routes/providers.test.js.map +1 -0
  175. package/dist/server/routes/queue.d.ts +2 -1
  176. package/dist/server/routes/queue.d.ts.map +1 -1
  177. package/dist/server/routes/queue.js +89 -1
  178. package/dist/server/routes/queue.js.map +1 -1
  179. package/dist/server/routes/sessions.d.ts +8 -1
  180. package/dist/server/routes/sessions.d.ts.map +1 -1
  181. package/dist/server/routes/sessions.js +202 -9
  182. package/dist/server/routes/sessions.js.map +1 -1
  183. package/dist/server/serialize.d.ts +2 -0
  184. package/dist/server/serialize.d.ts.map +1 -1
  185. package/dist/server/serialize.js +2 -0
  186. package/dist/server/serialize.js.map +1 -1
  187. package/package.json +6 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.test.js","sourceRoot":"","sources":["../../src/remote/client.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import { RemoteBackendClient } from './client.js';
2
+ import type { RemoteUser } from './types.js';
3
+ export interface RemoteConnectionDeps {
4
+ credentialsPath?: string;
5
+ timeoutMs?: number;
6
+ /** Fallback-параметры IdP, если дискавери с сервера недоступен/выключен. */
7
+ defaultIssuer?: string;
8
+ defaultClientId?: string;
9
+ }
10
+ export declare class RemoteConnection {
11
+ readonly deps: RemoteConnectionDeps;
12
+ private _backendUrl;
13
+ private _session;
14
+ private _user;
15
+ /** Последний использованный issuer (для UI/логов). */
16
+ private _issuer;
17
+ constructor(deps: RemoteConnectionDeps);
18
+ /** true когда есть валидная сессия (токен получен). */
19
+ get connected(): boolean;
20
+ get backendUrl(): string | null;
21
+ get client(): RemoteBackendClient | null;
22
+ get getToken(): (() => Promise<string | null>) | null;
23
+ get user(): RemoteUser | null;
24
+ get issuer(): string | null;
25
+ /**
26
+ * Спросить у сервера его OIDC issuer + public client_id (GET {server}/auth/oidc-meta).
27
+ * - enabled:false → RemoteError('AUTH') — сервер не принимает вход по логину/паролю;
28
+ * - эндпоинт отсутствует (404/5xx) → fallback на deps.defaultIssuer/defaultClientId,
29
+ * при их отсутствии — RemoteError('AUTH');
30
+ * - сеть недоступна → fallback на deps.defaultIssuer/defaultClientId,
31
+ * при их отсутствии — RemoteError('OFFLINE').
32
+ */
33
+ discoverOidc(serverUrl: string): Promise<{
34
+ issuer: string;
35
+ clientId: string;
36
+ }>;
37
+ /**
38
+ * Полное подключение: serverUrl → discoverOidc → RemoteSession.loginWithPassword.
39
+ * Обновляет _backendUrl/_session/_user/_issuer только после успешного входа,
40
+ * так что наружу не уходят частичные состояния. Ошибки пароля приходят из
41
+ * loginWithPassword как RemoteError('AUTH') и пробрасываются с русским сообщением.
42
+ */
43
+ connectByPassword(serverUrl: string, username: string, password: string): Promise<RemoteUser>;
44
+ /**
45
+ * Подключение по API-ключу (authType='api_key', без дискавери OIDC).
46
+ * Используется для машинного входа (`serve --token` / CLI-автоматизация):
47
+ * никакого device flow, issuer не нужен. Сессия строится сразу, после чего
48
+ * best-effort запрашивается серверный пользователь (GET /auth/status).
49
+ * Если профиль не получить — подключение не фиксируется.
50
+ */
51
+ connectWithApiKey(serverUrl: string, apiKey: string): Promise<RemoteUser>;
52
+ /**
53
+ * Неинтерактивное подключение по сохранённым credentials (старт/авто-логин).
54
+ * Не запускает device flow! Если credentials нет или протухли без refresh —
55
+ * возвращает null (не бросает). Если backendUrl не передан — ищет по всем
56
+ * сохранённым credentials (порядок файла).
57
+ */
58
+ connectFromSaved(backendUrl?: string): Promise<RemoteUser | null>;
59
+ /** Полный сброс runtime-состояния (провайдер/event bridge чистит вызывающий). */
60
+ disconnect(): void;
61
+ /** Попытка подключиться к одному backendUrl по сохранённым credentials. */
62
+ private _tryConnectFromSaved;
63
+ /** Единичная best-effort попытка получить серверного пользователя. */
64
+ private _fetchUserBestEffort;
65
+ }
66
+ //# sourceMappingURL=connection.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/remote/connection.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAqB,UAAU,EAAE,MAAM,YAAY,CAAC;AAuBhE,MAAM,WAAW,oBAAoB;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4EAA4E;IAC5E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,gBAAgB;IAC3B,QAAQ,CAAC,IAAI,EAAE,oBAAoB,CAAC;IAEpC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,QAAQ,CAA8B;IAC9C,OAAO,CAAC,KAAK,CAA2B;IACxC,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAuB;gBAE1B,IAAI,EAAE,oBAAoB;IAMtC,uDAAuD;IACvD,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,IAAI,UAAU,IAAI,MAAM,GAAG,IAAI,CAE9B;IAED,IAAI,MAAM,IAAI,mBAAmB,GAAG,IAAI,CAEvC;IAED,IAAI,QAAQ,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAEpD;IAED,IAAI,IAAI,IAAI,UAAU,GAAG,IAAI,CAE5B;IAED,IAAI,MAAM,IAAI,MAAM,GAAG,IAAI,CAE1B;IAID;;;;;;;OAOG;IACG,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IA2CpF;;;;;OAKG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA+BnG;;;;;;OAMG;IACG,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA0B/E;;;;;OAKG;IACG,gBAAgB,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAiBvE,iFAAiF;IACjF,UAAU,IAAI,IAAI;IASlB,2EAA2E;YAC7D,oBAAoB;IAmFlC,sEAAsE;YACxD,oBAAoB;CAWnC"}
@@ -0,0 +1,298 @@
1
+ // RemoteConnection — менеджер runtime-подключения к удалённому backend для гибридного режима.
2
+ //
3
+ // Отличие от RemoteSession (который при отсутствии credentials уходит в интерактивный
4
+ // device flow): сервер стартует «холодным», без подключения, а пользователь логинится
5
+ // в UI (connectByPassword, ROPC). OIDC-параметры локальный core узнаёт с самого сервера
6
+ // (GET {server}/auth/oidc-meta); для старых серверов без эндпоинта есть fallback на
7
+ // deps.defaultIssuer/defaultClientId.
8
+ //
9
+ // Никакого device flow в этом модуле нет: только логин/пароль и сохранённые credentials.
10
+ import { RemoteError } from './types.js';
11
+ import { loadCredentials, saveCredentials, listCredentials } from './credentials.js';
12
+ import { refreshAccessToken } from './device-flow.js';
13
+ import { RemoteSession } from './session.js';
14
+ /** Таймаут GET {server}/auth/oidc-meta по умолчанию. */
15
+ const DEFAULT_OIDC_META_TIMEOUT_MS = 15_000;
16
+ /** Обрезать завершающие слэши у адреса сервера. */
17
+ function normalizeBaseUrl(url) {
18
+ return url.trim().replace(/\/+$/, '');
19
+ }
20
+ /** Токен протух, если expiresAt задан и не позже текущего момента. */
21
+ function isTokenExpired(expiresAt) {
22
+ if (!expiresAt)
23
+ return false;
24
+ const ts = Date.parse(expiresAt);
25
+ if (Number.isNaN(ts))
26
+ return false;
27
+ return ts <= Date.now();
28
+ }
29
+ export class RemoteConnection {
30
+ deps;
31
+ _backendUrl = null;
32
+ _session = null;
33
+ _user = null;
34
+ /** Последний использованный issuer (для UI/логов). */
35
+ _issuer = null;
36
+ constructor(deps) {
37
+ this.deps = deps;
38
+ }
39
+ // ── Состояние ──
40
+ /** true когда есть валидная сессия (токен получен). */
41
+ get connected() {
42
+ return this._session !== null;
43
+ }
44
+ get backendUrl() {
45
+ return this._backendUrl;
46
+ }
47
+ get client() {
48
+ return this._session?.getClient() ?? null;
49
+ }
50
+ get getToken() {
51
+ return this._session ? () => this._session.getToken() : null;
52
+ }
53
+ get user() {
54
+ return this._user;
55
+ }
56
+ get issuer() {
57
+ return this._issuer;
58
+ }
59
+ // ── Дискавери ──
60
+ /**
61
+ * Спросить у сервера его OIDC issuer + public client_id (GET {server}/auth/oidc-meta).
62
+ * - enabled:false → RemoteError('AUTH') — сервер не принимает вход по логину/паролю;
63
+ * - эндпоинт отсутствует (404/5xx) → fallback на deps.defaultIssuer/defaultClientId,
64
+ * при их отсутствии — RemoteError('AUTH');
65
+ * - сеть недоступна → fallback на deps.defaultIssuer/defaultClientId,
66
+ * при их отсутствии — RemoteError('OFFLINE').
67
+ */
68
+ async discoverOidc(serverUrl) {
69
+ const base = normalizeBaseUrl(serverUrl);
70
+ const fallback = this.deps.defaultIssuer && this.deps.defaultClientId
71
+ ? { issuer: this.deps.defaultIssuer, clientId: this.deps.defaultClientId }
72
+ : null;
73
+ let res;
74
+ try {
75
+ res = await fetch(`${base}/auth/oidc-meta`, {
76
+ signal: AbortSignal.timeout(this.deps.timeoutMs ?? DEFAULT_OIDC_META_TIMEOUT_MS),
77
+ });
78
+ }
79
+ catch {
80
+ if (fallback)
81
+ return { ...fallback };
82
+ throw new RemoteError(`Сервер недоступен: не удалось получить OIDC-параметры (${base})`, 'OFFLINE');
83
+ }
84
+ let body = {};
85
+ try {
86
+ body = (await res.json());
87
+ }
88
+ catch {
89
+ // не-JSON тело — ошибку сформируем по статусу ниже
90
+ }
91
+ if (body.enabled === false) {
92
+ throw new RemoteError('Сервер не поддерживает вход по логину/паролю', 'AUTH');
93
+ }
94
+ if (!res.ok) {
95
+ // Старый сервер без эндпоинта (404) или ошибка сервера — fallback на дефолты.
96
+ if (fallback)
97
+ return { ...fallback };
98
+ throw new RemoteError(`Сервер не отдал OIDC-параметры (HTTP ${res.status})`, 'AUTH');
99
+ }
100
+ const issuer = typeof body.issuer === 'string' ? body.issuer : undefined;
101
+ const clientId = typeof body.clientId === 'string' ? body.clientId : undefined;
102
+ if (!issuer || !clientId) {
103
+ throw new RemoteError('Сервер вернул некорректные OIDC-параметры', 'AUTH');
104
+ }
105
+ return { issuer, clientId };
106
+ }
107
+ // ── Подключение ──
108
+ /**
109
+ * Полное подключение: serverUrl → discoverOidc → RemoteSession.loginWithPassword.
110
+ * Обновляет _backendUrl/_session/_user/_issuer только после успешного входа,
111
+ * так что наружу не уходят частичные состояния. Ошибки пароля приходят из
112
+ * loginWithPassword как RemoteError('AUTH') и пробрасываются с русским сообщением.
113
+ */
114
+ async connectByPassword(serverUrl, username, password) {
115
+ const backendUrl = normalizeBaseUrl(serverUrl);
116
+ const { issuer, clientId } = await this.discoverOidc(backendUrl);
117
+ const session = await RemoteSession.loginWithPassword({
118
+ backendUrl,
119
+ issuer,
120
+ clientId,
121
+ credentialsPath: this.deps.credentialsPath,
122
+ timeoutMs: this.deps.timeoutMs,
123
+ }, username, password);
124
+ // loginWithPassword уже пробовал получить user из /auth/status; если сервер не
125
+ // ответил — делаем ещё одну попытку. Без профиля (id/roles) RemoteUser не собрать,
126
+ // поэтому соединение не фиксируем.
127
+ const user = session.user ?? (await this._fetchUserBestEffort(session));
128
+ if (!user) {
129
+ throw new RemoteError('Удалённый сервер не ответил профилем пользователя после входа', 'AUTH');
130
+ }
131
+ this._backendUrl = backendUrl;
132
+ this._session = session;
133
+ this._user = user;
134
+ this._issuer = issuer;
135
+ return user;
136
+ }
137
+ /**
138
+ * Подключение по API-ключу (authType='api_key', без дискавери OIDC).
139
+ * Используется для машинного входа (`serve --token` / CLI-автоматизация):
140
+ * никакого device flow, issuer не нужен. Сессия строится сразу, после чего
141
+ * best-effort запрашивается серверный пользователь (GET /auth/status).
142
+ * Если профиль не получить — подключение не фиксируется.
143
+ */
144
+ async connectWithApiKey(serverUrl, apiKey) {
145
+ const backendUrl = normalizeBaseUrl(serverUrl);
146
+ if (!apiKey) {
147
+ throw new RemoteError('Для подключения по API-ключу укажите ключ (--token)', 'AUTH');
148
+ }
149
+ const session = await RemoteSession.ensureAuthenticated({
150
+ backendUrl,
151
+ authType: 'api_key',
152
+ apiKey,
153
+ credentialsPath: this.deps.credentialsPath,
154
+ timeoutMs: this.deps.timeoutMs,
155
+ });
156
+ const user = session.user ?? (await this._fetchUserBestEffort(session));
157
+ if (!user) {
158
+ throw new RemoteError('Удалённый сервер не ответил профилем пользователя после подключения', 'AUTH');
159
+ }
160
+ this._backendUrl = backendUrl;
161
+ this._session = session;
162
+ this._user = user;
163
+ this._issuer = null;
164
+ return user;
165
+ }
166
+ /**
167
+ * Неинтерактивное подключение по сохранённым credentials (старт/авто-логин).
168
+ * Не запускает device flow! Если credentials нет или протухли без refresh —
169
+ * возвращает null (не бросает). Если backendUrl не передан — ищет по всем
170
+ * сохранённым credentials (порядок файла).
171
+ */
172
+ async connectFromSaved(backendUrl) {
173
+ const candidates = [];
174
+ if (backendUrl) {
175
+ candidates.push(normalizeBaseUrl(backendUrl));
176
+ }
177
+ else if (this._backendUrl) {
178
+ candidates.push(this._backendUrl);
179
+ }
180
+ else {
181
+ candidates.push(...(await listCredentials(this.deps.credentialsPath)));
182
+ }
183
+ for (const url of candidates) {
184
+ const user = await this._tryConnectFromSaved(url);
185
+ if (user)
186
+ return user;
187
+ }
188
+ return null;
189
+ }
190
+ /** Полный сброс runtime-состояния (провайдер/event bridge чистит вызывающий). */
191
+ disconnect() {
192
+ this._session = null;
193
+ this._user = null;
194
+ this._backendUrl = null;
195
+ this._issuer = null;
196
+ }
197
+ // ── Приватные помощники ──
198
+ /** Попытка подключиться к одному backendUrl по сохранённым credentials. */
199
+ async _tryConnectFromSaved(backendUrl) {
200
+ let creds = null;
201
+ try {
202
+ creds = await loadCredentials(backendUrl, this.deps.credentialsPath);
203
+ }
204
+ catch {
205
+ return null;
206
+ }
207
+ if (!creds?.accessToken)
208
+ return null;
209
+ const expired = isTokenExpired(creds.expiresAt);
210
+ let issuer;
211
+ let clientId;
212
+ if (expired) {
213
+ // Протух + есть refreshToken → дискавери (или deps.default*) и refresh.
214
+ if (!creds.refreshToken)
215
+ return null;
216
+ try {
217
+ const meta = await this.discoverOidc(backendUrl);
218
+ issuer = meta.issuer;
219
+ clientId = meta.clientId;
220
+ const refreshed = await refreshAccessToken(issuer, clientId, creds.refreshToken);
221
+ const updated = {
222
+ backendUrl,
223
+ accessToken: refreshed.accessToken,
224
+ refreshToken: refreshed.refreshToken ?? creds.refreshToken,
225
+ expiresAt: refreshed.expiresIn
226
+ ? new Date(Date.now() + refreshed.expiresIn * 1000).toISOString()
227
+ : undefined,
228
+ user: creds.user,
229
+ };
230
+ await saveCredentials(updated, this.deps.credentialsPath);
231
+ }
232
+ catch {
233
+ // дискавери/refresh не удались (сеть, OIDC выключен, invalid_grant) — не авто-логинимся
234
+ return null;
235
+ }
236
+ }
237
+ else {
238
+ // Валидный accessToken: issuer/clientId нужны для runtime-refresh (getToken).
239
+ // Дискавери best-effort (внутри — fallback на deps.default*); при неудаче сессия
240
+ // всё равно строится, но авто-refresh в рантайме будет недоступен.
241
+ try {
242
+ const meta = await this.discoverOidc(backendUrl);
243
+ issuer = meta.issuer;
244
+ clientId = meta.clientId;
245
+ }
246
+ catch {
247
+ issuer = this.deps.defaultIssuer;
248
+ clientId = this.deps.defaultClientId;
249
+ }
250
+ }
251
+ // На диске теперь валидные credentials → ensureAuthenticated выйдет на ветке
252
+ // «сохранённый accessToken действителен» и НЕ запустит device flow.
253
+ let session;
254
+ try {
255
+ session = await RemoteSession.ensureAuthenticated({
256
+ backendUrl,
257
+ issuer,
258
+ clientId,
259
+ credentialsPath: this.deps.credentialsPath,
260
+ timeoutMs: this.deps.timeoutMs,
261
+ });
262
+ }
263
+ catch {
264
+ return null;
265
+ }
266
+ // Обновить _user из /auth/status (best-effort; при недоступности сервера
267
+ // getAuthStatus сам возвращает connected:false).
268
+ let user = session.user ?? null;
269
+ try {
270
+ const status = await session.getAuthStatus();
271
+ if (status.connected && status.user) {
272
+ user = { id: status.user.id, username: status.user.username, roles: status.user.roles };
273
+ }
274
+ }
275
+ catch {
276
+ // оставляем user из credentials
277
+ }
278
+ this._backendUrl = backendUrl;
279
+ this._session = session;
280
+ this._user = user;
281
+ this._issuer = issuer ?? null;
282
+ return user;
283
+ }
284
+ /** Единичная best-effort попытка получить серверного пользователя. */
285
+ async _fetchUserBestEffort(session) {
286
+ try {
287
+ const status = await session.getClient().getAuthStatus();
288
+ if (status.user) {
289
+ return { id: status.user.id, username: status.user.username, roles: status.user.roles };
290
+ }
291
+ }
292
+ catch {
293
+ // best-effort
294
+ }
295
+ return null;
296
+ }
297
+ }
298
+ //# sourceMappingURL=connection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/remote/connection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=connection.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connection.test.d.ts","sourceRoot":"","sources":["../../src/remote/connection.test.ts"],"names":[],"mappings":""}