funolio-agent 1.0.4 → 1.0.6

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 (50) hide show
  1. package/dist/auth/anthropic-subscription.d.ts +29 -9
  2. package/dist/auth/anthropic-subscription.d.ts.map +1 -1
  3. package/dist/auth/anthropic-subscription.js +133 -12
  4. package/dist/auth/anthropic-subscription.js.map +1 -1
  5. package/dist/auth/auto-detect.d.ts +6 -28
  6. package/dist/auth/auto-detect.d.ts.map +1 -1
  7. package/dist/auth/auto-detect.js +200 -57
  8. package/dist/auth/auto-detect.js.map +1 -1
  9. package/dist/auth/credential-reader.d.ts +4 -24
  10. package/dist/auth/credential-reader.d.ts.map +1 -1
  11. package/dist/auth/credential-reader.js +256 -31
  12. package/dist/auth/credential-reader.js.map +1 -1
  13. package/dist/auth/credential-status.d.ts +27 -7
  14. package/dist/auth/credential-status.d.ts.map +1 -1
  15. package/dist/auth/credential-status.js +95 -7
  16. package/dist/auth/credential-status.js.map +1 -1
  17. package/dist/auth/index.d.ts +2 -9
  18. package/dist/auth/index.d.ts.map +1 -1
  19. package/dist/auth/index.js +10 -10
  20. package/dist/auth/index.js.map +1 -1
  21. package/dist/auth/subscription-runtime.d.ts +23 -19
  22. package/dist/auth/subscription-runtime.d.ts.map +1 -1
  23. package/dist/auth/subscription-runtime.js +292 -24
  24. package/dist/auth/subscription-runtime.js.map +1 -1
  25. package/dist/auth/token-refresh.d.ts +28 -19
  26. package/dist/auth/token-refresh.d.ts.map +1 -1
  27. package/dist/auth/token-refresh.js +464 -26
  28. package/dist/auth/token-refresh.js.map +1 -1
  29. package/dist/bot-manager.d.ts +6 -6
  30. package/dist/bot-manager.d.ts.map +1 -1
  31. package/dist/bot-manager.js +61 -26
  32. package/dist/bot-manager.js.map +1 -1
  33. package/dist/commands/start.d.ts.map +1 -1
  34. package/dist/commands/start.js +223 -49
  35. package/dist/commands/start.js.map +1 -1
  36. package/dist/message-loop.d.ts +10 -2
  37. package/dist/message-loop.d.ts.map +1 -1
  38. package/dist/message-loop.js +249 -184
  39. package/dist/message-loop.js.map +1 -1
  40. package/dist/providers/anthropic.d.ts +5 -0
  41. package/dist/providers/anthropic.d.ts.map +1 -1
  42. package/dist/providers/anthropic.js +48 -13
  43. package/dist/providers/anthropic.js.map +1 -1
  44. package/dist/providers/index.d.ts +2 -2
  45. package/dist/providers/index.d.ts.map +1 -1
  46. package/dist/wizard-support.d.ts +2 -2
  47. package/dist/wizard-support.d.ts.map +1 -1
  48. package/dist/wizard-support.js +93 -80
  49. package/dist/wizard-support.js.map +1 -1
  50. package/package.json +1 -1
@@ -1,36 +1,304 @@
1
1
  "use strict";
2
- /**
3
- * REMOVED: Subscription API runtime has been removed.
4
- *
5
- * Connection to LLM providers is now exclusively via:
6
- * 1. CLI providers (claude-cli, codex-cli) spawns the CLI binary
7
- * 2. API key (BYOK) — standard x-api-key authentication
8
- */
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
9
35
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.resolveClaudeSubscriptionRuntime = resolveClaudeSubscriptionRuntime;
11
- exports.resolveCodexSubscriptionRuntime = resolveCodexSubscriptionRuntime;
12
36
  exports.claudeSubscriptionRuntimeLabel = claudeSubscriptionRuntimeLabel;
13
37
  exports.resolveClaudeSubscriptionRequestShape = resolveClaudeSubscriptionRequestShape;
14
38
  exports.resolveSubscriptionApiModel = resolveSubscriptionApiModel;
15
- /** @deprecated Always returns null. */
16
- async function resolveClaudeSubscriptionRuntime(_options) {
17
- return null;
39
+ exports.resolveClaudeSubscriptionRuntime = resolveClaudeSubscriptionRuntime;
40
+ exports.resolveCodexSubscriptionRuntime = resolveCodexSubscriptionRuntime;
41
+ const data = __importStar(require("../local-data"));
42
+ const credential_reader_1 = require("./credential-reader");
43
+ const token_refresh_1 = require("./token-refresh");
44
+ const anthropic_subscription_1 = require("./anthropic-subscription");
45
+ function claudeSubscriptionRuntimeLabel(source) {
46
+ const normalized = String(source || '').trim().toLowerCase();
47
+ if (normalized.includes('openclaw'))
48
+ return 'OpenClaw Connection';
49
+ return 'Subscription API';
50
+ }
51
+ /**
52
+ * Anthropic/OpenClaw request shape should stay on native structured messages by default.
53
+ * Source selection tells us where credentials came from, not how to flatten prompts.
54
+ */
55
+ function resolveClaudeSubscriptionRequestShape(_source) {
56
+ return 'default';
18
57
  }
19
- /** @deprecated Always returns null. */
20
- async function resolveCodexSubscriptionRuntime(_options) {
58
+ function resolveSubscriptionApiModel(profileModel, configuredDefaultModel) {
59
+ const isPlaceholder = (value) => {
60
+ const normalized = value.trim().toLowerCase();
61
+ return normalized === ''
62
+ || normalized === 'default'
63
+ || normalized === 'claude-code'
64
+ || normalized === 'codex-cli';
65
+ };
66
+ const resolvedProfileModel = (profileModel || '').trim();
67
+ if (!isPlaceholder(resolvedProfileModel)) {
68
+ return resolvedProfileModel;
69
+ }
70
+ const resolvedDefaultModel = (configuredDefaultModel || '').trim();
71
+ if (!isPlaceholder(resolvedDefaultModel)) {
72
+ return resolvedDefaultModel;
73
+ }
21
74
  return null;
22
75
  }
23
- /** @deprecated Subscription API removed. Returns a display label. */
24
- function claudeSubscriptionRuntimeLabel(_source) {
25
- return 'Subscription (removed)';
76
+ function readDbOauthCredential(providerId) {
77
+ const connection = data.findProviderConnection(providerId, 'oauth') || data.findProviderConnection(providerId);
78
+ if (!connection?.oauth_token) {
79
+ return null;
80
+ }
81
+ return {
82
+ source: `db:${providerId}`,
83
+ credential: {
84
+ provider: providerId === 'anthropic' || providerId === 'claude-cli' ? 'anthropic' : 'openai',
85
+ accessToken: connection.oauth_token,
86
+ refreshToken: connection.oauth_refresh_token || '',
87
+ expiresAt: connection.oauth_expires_at ?? 0,
88
+ },
89
+ };
26
90
  }
27
- /** @deprecated Subscription API removed. Always returns undefined. */
28
- function resolveClaudeSubscriptionRequestShape(_source) {
29
- return undefined;
91
+ function shouldImportCandidate(current, incoming) {
92
+ if (!incoming?.accessToken)
93
+ return false;
94
+ if (!current?.accessToken)
95
+ return true;
96
+ if (incoming.accessToken === current.accessToken) {
97
+ return (incoming.expiresAt || 0) > (current.expiresAt || 0)
98
+ || (!!incoming.refreshToken && !current.refreshToken);
99
+ }
100
+ return (incoming.expiresAt || 0) > (current.expiresAt || 0)
101
+ || (!!incoming.refreshToken && !current.refreshToken);
102
+ }
103
+ function syncProviderOauthCredential(providerId, credential, defaultModel) {
104
+ if (!credential.accessToken)
105
+ return;
106
+ data.upsertOauthProviderConnection({
107
+ providerId,
108
+ oauthToken: credential.accessToken,
109
+ oauthRefreshToken: credential.refreshToken || null,
110
+ oauthExpiresAt: credential.expiresAt ?? null,
111
+ defaultModel: defaultModel ?? null,
112
+ });
113
+ }
114
+ async function ensureFreshCredential(credential, providerForLog, onRefresh) {
115
+ if (!credential)
116
+ return null;
117
+ const needsCodexIdTokenRepair = providerForLog === 'openai' && !credential.idToken;
118
+ const expired = (0, credential_reader_1.isExpired)(credential);
119
+ if (!expired && !needsCodexIdTokenRepair) {
120
+ return credential;
121
+ }
122
+ if (!credential.refreshToken) {
123
+ return expired ? null : (credential.accessToken ? credential : null);
124
+ }
125
+ try {
126
+ const refreshed = await (0, token_refresh_1.refreshToken)(credential);
127
+ onRefresh?.(refreshed.credential);
128
+ return refreshed.credential;
129
+ }
130
+ catch (err) {
131
+ console.warn(`[subscription-runtime] ${providerForLog} OAuth token refresh failed: ${err?.message || err}`);
132
+ return expired ? null : (credential.accessToken ? credential : null);
133
+ }
134
+ }
135
+ async function resolveDbPrimaryClaudeCredentialCandidates(preferredModel, inputCredential, inputToken, inputAccessMode, inputSource = 'request:anthropic', persistInputCredential = false) {
136
+ const candidates = [];
137
+ const seen = new Set();
138
+ const pushCandidate = (candidate) => {
139
+ if (!candidate?.credential?.accessToken)
140
+ return;
141
+ const key = `${candidate.source}:${candidate.credential.accessToken}`;
142
+ if (seen.has(key))
143
+ return;
144
+ seen.add(key);
145
+ candidates.push(candidate);
146
+ };
147
+ const openClawConnection = data.findProviderConnection('anthropic', 'openclaw');
148
+ if (inputAccessMode === 'openclaw' && inputToken?.trim()) {
149
+ pushCandidate({
150
+ source: 'request:anthropic:openclaw',
151
+ credential: {
152
+ provider: 'anthropic',
153
+ accessToken: inputToken.trim(),
154
+ refreshToken: '',
155
+ expiresAt: 0,
156
+ },
157
+ });
158
+ }
159
+ if (openClawConnection?.api_key_enc) {
160
+ pushCandidate({
161
+ source: 'db:anthropic:openclaw',
162
+ credential: {
163
+ provider: 'anthropic',
164
+ accessToken: openClawConnection.api_key_enc,
165
+ refreshToken: '',
166
+ expiresAt: 0,
167
+ },
168
+ });
169
+ }
170
+ const dbCandidate = readDbOauthCredential('anthropic');
171
+ const legacyCandidate = readDbOauthCredential('claude-cli');
172
+ const fileCredential = (0, credential_reader_1.readClaudeCredentials)();
173
+ let selected = dbCandidate;
174
+ if (legacyCandidate && shouldImportCandidate(dbCandidate?.credential || null, legacyCandidate.credential)) {
175
+ syncProviderOauthCredential('anthropic', legacyCandidate.credential, preferredModel);
176
+ selected = { source: 'db:anthropic', credential: legacyCandidate.credential };
177
+ }
178
+ if (fileCredential && shouldImportCandidate(selected?.credential || null, fileCredential)) {
179
+ syncProviderOauthCredential('anthropic', fileCredential, preferredModel);
180
+ selected = { source: 'db:anthropic', credential: fileCredential };
181
+ }
182
+ if (inputCredential?.accessToken && shouldImportCandidate(selected?.credential || null, inputCredential)) {
183
+ if (persistInputCredential) {
184
+ syncProviderOauthCredential('anthropic', inputCredential, preferredModel);
185
+ selected = { source: 'db:anthropic', credential: inputCredential };
186
+ }
187
+ else {
188
+ selected = { source: inputSource, credential: inputCredential };
189
+ }
190
+ }
191
+ if (!selected?.credential?.accessToken) {
192
+ return candidates;
193
+ }
194
+ const refreshed = await ensureFreshCredential(selected.credential, 'anthropic', selected.source === 'db:anthropic' || selected.source === inputSource
195
+ ? (credential) => syncProviderOauthCredential('anthropic', credential, preferredModel)
196
+ : (credential) => syncProviderOauthCredential('anthropic', credential, preferredModel));
197
+ if (!refreshed?.accessToken) {
198
+ return candidates;
199
+ }
200
+ if (selected.source !== inputSource || persistInputCredential) {
201
+ syncProviderOauthCredential('anthropic', refreshed, preferredModel);
202
+ pushCandidate({ source: 'db:anthropic', credential: refreshed });
203
+ return candidates;
204
+ }
205
+ pushCandidate({ source: selected.source, credential: refreshed });
206
+ return candidates;
207
+ }
208
+ async function resolveDbPrimaryCodexCredential(preferredModel, inputCredential, inputSource = 'request:openai', persistInputCredential = false) {
209
+ const dbCandidate = readDbOauthCredential('openai');
210
+ const legacyCandidate = readDbOauthCredential('codex-cli');
211
+ const fileCredential = (0, credential_reader_1.readCodexCredentials)();
212
+ let selected = dbCandidate;
213
+ if (legacyCandidate && shouldImportCandidate(dbCandidate?.credential || null, legacyCandidate.credential)) {
214
+ syncProviderOauthCredential('openai', legacyCandidate.credential, preferredModel);
215
+ selected = { source: 'db:openai', credential: legacyCandidate.credential };
216
+ }
217
+ if (fileCredential && shouldImportCandidate(selected?.credential || null, fileCredential)) {
218
+ syncProviderOauthCredential('openai', fileCredential, preferredModel);
219
+ selected = { source: 'db:openai', credential: fileCredential };
220
+ }
221
+ if (inputCredential?.accessToken && shouldImportCandidate(selected?.credential || null, inputCredential)) {
222
+ if (persistInputCredential) {
223
+ syncProviderOauthCredential('openai', inputCredential, preferredModel);
224
+ selected = { source: 'db:openai', credential: inputCredential };
225
+ }
226
+ else {
227
+ selected = { source: inputSource, credential: inputCredential };
228
+ }
229
+ }
230
+ if (!selected?.credential?.accessToken) {
231
+ return null;
232
+ }
233
+ const refreshed = await ensureFreshCredential(selected.credential, 'openai', selected.source === 'db:openai' || persistInputCredential
234
+ ? (credential) => syncProviderOauthCredential('openai', credential, preferredModel)
235
+ : null);
236
+ if (!refreshed?.accessToken) {
237
+ return null;
238
+ }
239
+ if (selected.source !== inputSource || persistInputCredential) {
240
+ syncProviderOauthCredential('openai', refreshed, preferredModel);
241
+ return { source: 'db:openai', credential: refreshed };
242
+ }
243
+ return { source: selected.source, credential: refreshed };
244
+ }
245
+ async function resolveClaudeSubscriptionRuntime(options = {}) {
246
+ const model = resolveSubscriptionApiModel(options.preferredModel, data.findProviderConnection('anthropic')?.default_model
247
+ || data.findProviderConnection('claude-cli')?.default_model
248
+ || null);
249
+ if (!model)
250
+ return null;
251
+ const candidates = await resolveDbPrimaryClaudeCredentialCandidates(model, options.inputCredential, options.inputToken, options.inputAccessMode, options.inputSource || 'request:anthropic', options.persistInputCredential === true);
252
+ if (candidates.length === 0) {
253
+ return null;
254
+ }
255
+ let lastError = null;
256
+ for (const selected of candidates) {
257
+ try {
258
+ const requestConfig = (0, anthropic_subscription_1.getClaudeSubscriptionRequestConfig)(selected.source);
259
+ const resolved = await (0, anthropic_subscription_1.resolveAnthropicSubscriptionAuth)({
260
+ accessToken: selected.credential.accessToken,
261
+ refreshToken: selected.credential.refreshToken || null,
262
+ expiresAt: selected.credential.expiresAt ?? null,
263
+ onRefresh: (credential) => syncProviderOauthCredential('anthropic', credential, model),
264
+ });
265
+ return {
266
+ providerName: 'anthropic',
267
+ apiKey: resolved.token,
268
+ model,
269
+ source: selected.source,
270
+ authMode: resolved.authMode,
271
+ baseUrl: requestConfig.baseUrl,
272
+ apiQuery: requestConfig.apiQuery,
273
+ extraHeaders: requestConfig.extraHeaders,
274
+ };
275
+ }
276
+ catch (err) {
277
+ lastError = err;
278
+ console.warn(`[subscription-runtime] Claude credential candidate failed (${selected.source}); trying next candidate if available: ${err?.message || err}`);
279
+ }
280
+ }
281
+ if (lastError)
282
+ throw lastError;
283
+ return null;
30
284
  }
31
- /** @deprecated Subscription API removed. Returns the preferred model or fallback. */
32
- function resolveSubscriptionApiModel(preferred, fallback) {
33
- const model = (preferred || '').trim() || (fallback || '').trim();
34
- return model || undefined;
285
+ async function resolveCodexSubscriptionRuntime(options = {}) {
286
+ const model = resolveSubscriptionApiModel(options.preferredModel, data.findProviderConnection('openai')?.default_model
287
+ || data.findProviderConnection('codex-cli')?.default_model
288
+ || null);
289
+ if (!model)
290
+ return null;
291
+ const selected = await resolveDbPrimaryCodexCredential(model, options.inputCredential, options.inputSource || 'request:openai', options.persistInputCredential === true);
292
+ if (!selected?.credential?.accessToken) {
293
+ return null;
294
+ }
295
+ return {
296
+ providerName: 'openai',
297
+ apiKey: selected.credential.accessToken,
298
+ model,
299
+ source: selected.source,
300
+ baseUrl: 'https://chatgpt.com/backend-api/codex',
301
+ apiStyle: 'codex-chatgpt-responses',
302
+ };
35
303
  }
36
304
  //# sourceMappingURL=subscription-runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subscription-runtime.js","sourceRoot":"","sources":["../../src/auth/subscription-runtime.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;AAmBH,4EAEC;AAGD,0EAEC;AAGD,wEAEC;AAGD,sFAEC;AAGD,kEAGC;AAxBD,uCAAuC;AAChC,KAAK,UAAU,gCAAgC,CAAC,QAAc;IACnE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,uCAAuC;AAChC,KAAK,UAAU,+BAA+B,CAAC,QAAc;IAClE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,qEAAqE;AACrE,SAAgB,8BAA8B,CAAC,OAAuB;IACpE,OAAO,wBAAwB,CAAC;AAClC,CAAC;AAED,sEAAsE;AACtE,SAAgB,qCAAqC,CAAC,OAAuB;IAC3E,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,qFAAqF;AACrF,SAAgB,2BAA2B,CAAC,SAAyB,EAAE,QAAwB;IAC7F,MAAM,KAAK,GAAG,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAClE,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC"}
1
+ {"version":3,"file":"subscription-runtime.js","sourceRoot":"","sources":["../../src/auth/subscription-runtime.ts"],"names":[],"mappings":"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"}
@@ -1,17 +1,15 @@
1
1
  /**
2
- * REMOVED: OAuth token refresh has been removed.
2
+ * Token Refresh Module Funolio Agent OAuth System
3
3
  *
4
- * Connection to LLM providers is now exclusively via:
5
- * 1. CLI providers (claude-cli, codex-cli) handle their own auth/refresh
6
- * 2. API key (BYOK) API keys don't expire
4
+ * For Anthropic tokens: delegates refresh to the Funolio server (cloud mode)
5
+ * to prevent race conditions with single-use refresh tokens.
6
+ * The server is the sole authority for refreshing with Anthropic.
7
7
  *
8
- * The token-refresh module previously handled:
9
- * - Anthropic OAuth token refresh (single-use rotation)
10
- * - OpenAI OAuth token refresh
11
- * - Google/Gemini OAuth token refresh
12
- * - Server-delegated token refresh (cloud mode)
8
+ * For OpenAI/Gemini: refreshes directly (their tokens aren't single-use).
13
9
  *
14
- * CLI providers now handle all token lifecycle internally.
10
+ * Config: `tokenRefreshAuthority` in ~/.funolio/config.json
11
+ * - "cloud" (default): Server refreshes Anthropic tokens
12
+ * - "local": Legacy direct refresh (for self-hosted without a server)
15
13
  */
16
14
  import { OAuthCredential } from './credential-reader';
17
15
  export declare class TokenRefreshError extends Error {
@@ -23,13 +21,24 @@ export interface RefreshResult {
23
21
  credential: OAuthCredential;
24
22
  written: boolean;
25
23
  }
26
- /** @deprecated Always returns false. API keys don't expire. */
27
- export declare function needsRefresh(_credential: OAuthCredential): boolean;
28
- /** @deprecated Always throws. Use CLI providers or API keys instead. */
29
- export declare function refreshToken(_credential: OAuthCredential): Promise<RefreshResult>;
30
- export declare function refreshOpenAIToken(_credential: OAuthCredential): Promise<OAuthCredential>;
31
- export declare function refreshGeminiToken(_credential: OAuthCredential): Promise<OAuthCredential>;
32
- export declare function writeClaudeCredentials(_credential: OAuthCredential): boolean;
33
- export declare function writeCodexCredentials(_credential: OAuthCredential): boolean;
34
- export declare function seedServerWithToken(_credential: OAuthCredential): Promise<boolean>;
24
+ export declare function refreshOpenAIToken(credential: OAuthCredential): Promise<OAuthCredential>;
25
+ export declare function refreshGeminiToken(credential: OAuthCredential): Promise<OAuthCredential>;
26
+ export declare function writeClaudeCredentials(credential: OAuthCredential): boolean;
27
+ export declare function writeCodexCredentials(credential: OAuthCredential): boolean;
28
+ /**
29
+ * Push a fresh credential to the Funolio server so it can perform
30
+ * server-side refresh later. Fire-and-forget after local refresh.
31
+ */
32
+ export declare function seedServerWithToken(credential: OAuthCredential): Promise<boolean>;
33
+ /**
34
+ * Check if a credential needs refresh (expired or within 5-minute buffer).
35
+ */
36
+ export declare function needsRefresh(credential: OAuthCredential): boolean;
37
+ /**
38
+ * Refresh a single credential. For Anthropic in cloud mode, delegates to the
39
+ * Funolio server. For other providers (or local mode), refreshes directly.
40
+ *
41
+ * After refresh, writes updated tokens back to the source files.
42
+ */
43
+ export declare function refreshToken(credential: OAuthCredential): Promise<RefreshResult>;
35
44
  //# sourceMappingURL=token-refresh.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"token-refresh.d.ts","sourceRoot":"","sources":["../../src/auth/token-refresh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,eAAe,EAAc,MAAM,qBAAqB,CAAC;AAElE,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEnC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAMnE;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAElE;AAED,wEAAwE;AACxE,wBAAsB,YAAY,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CAKvF;AAGD,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAE/F;AAED,wBAAsB,kBAAkB,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,eAAe,CAAC,CAE/F;AAED,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAkB;AAC/F,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAkB;AAC9F,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CAAkB"}
1
+ {"version":3,"file":"token-refresh.d.ts","sourceRoot":"","sources":["../../src/auth/token-refresh.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH,OAAO,EAAE,eAAe,EAAc,MAAM,qBAAqB,CAAC;AAyBlE,qBAAa,iBAAkB,SAAQ,KAAK;IAC1C,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,SAAgB,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEnC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CAMnE;AAED,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,eAAe,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB;AAuMD,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,eAAe,CAAC,CAoC1B;AAED,wBAAsB,kBAAkB,CACtC,UAAU,EAAE,eAAe,GAC1B,OAAO,CAAC,eAAe,CAAC,CAmC1B;AAID,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CA0C3E;AAED,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CA4C1E;AA6BD;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,CA4BvF;AAID;;GAEG;AACH,wBAAgB,YAAY,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAEjE;AAED;;;;;GAKG;AACH,wBAAsB,YAAY,CAAC,UAAU,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,CAAC,CA4DtF"}