geminimock 0.1.2 → 0.1.3
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/README.md +77 -8
- package/dist/auth/account-store.d.ts +36 -0
- package/dist/auth/account-store.js +366 -0
- package/dist/auth/account-store.js.map +1 -0
- package/dist/auth/credential-store.d.ts +2 -0
- package/dist/auth/credential-store.js +33 -1
- package/dist/auth/credential-store.js.map +1 -1
- package/dist/auth/oauth-flow.d.ts +0 -2
- package/dist/auth/oauth-flow.js +122 -15
- package/dist/auth/oauth-flow.js.map +1 -1
- package/dist/auth/oauth-service.d.ts +12 -3
- package/dist/auth/oauth-service.js +90 -29
- package/dist/auth/oauth-service.js.map +1 -1
- package/dist/cli.js +336 -14
- package/dist/cli.js.map +1 -1
- package/dist/commands/auth-login.d.ts +16 -0
- package/dist/commands/auth-login.js +114 -0
- package/dist/commands/auth-login.js.map +1 -0
- package/dist/commands/auth-logout.d.ts +19 -0
- package/dist/commands/auth-logout.js +178 -0
- package/dist/commands/auth-logout.js.map +1 -0
- package/dist/config/env.d.ts +1 -0
- package/dist/config/env.js +3 -1
- package/dist/config/env.js.map +1 -1
- package/dist/gemini/code-assist-client.d.ts +15 -1
- package/dist/gemini/code-assist-client.js +101 -37
- package/dist/gemini/code-assist-client.js.map +1 -1
- package/dist/gemini/errors.d.ts +8 -0
- package/dist/gemini/errors.js +29 -0
- package/dist/gemini/errors.js.map +1 -0
- package/dist/server/app.js +8 -3
- package/dist/server/app.js.map +1 -1
- package/dist/server/background-service.d.ts +46 -0
- package/dist/server/background-service.js +332 -0
- package/dist/server/background-service.js.map +1 -0
- package/package.json +6 -1
package/dist/auth/oauth-flow.js
CHANGED
|
@@ -1,29 +1,136 @@
|
|
|
1
|
+
import { execFileSync } from "node:child_process";
|
|
1
2
|
import { randomBytes } from "node:crypto";
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { existsSync, readFileSync, realpathSync } from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { OAuth2Client, CodeChallengeMethod } from "google-auth-library";
|
|
6
|
+
const GEMINI_OAUTH_SOURCE_RELATIVE_PATHS = [
|
|
7
|
+
"node_modules/@google/gemini-cli/node_modules/@google/gemini-cli-core/dist/src/code_assist/oauth2.js",
|
|
8
|
+
"lib/node_modules/@google/gemini-cli/node_modules/@google/gemini-cli-core/dist/src/code_assist/oauth2.js",
|
|
9
|
+
"@google/gemini-cli/node_modules/@google/gemini-cli-core/dist/src/code_assist/oauth2.js",
|
|
10
|
+
"@google/gemini-cli-core/dist/src/code_assist/oauth2.js"
|
|
11
|
+
];
|
|
5
12
|
export const GEMINI_CLI_OAUTH_REDIRECT_URI = "https://codeassist.google.com/authcode";
|
|
6
13
|
export const GEMINI_CLI_OAUTH_SCOPE = [
|
|
7
14
|
"https://www.googleapis.com/auth/cloud-platform",
|
|
8
15
|
"https://www.googleapis.com/auth/userinfo.email",
|
|
9
16
|
"https://www.googleapis.com/auth/userinfo.profile"
|
|
10
17
|
];
|
|
11
|
-
|
|
12
|
-
|
|
18
|
+
const GEMINI_CLI_OAUTH_PROMPT = "consent select_account";
|
|
19
|
+
let discoveredClientConfig;
|
|
20
|
+
function readConfigFromSourceFile(filePath) {
|
|
21
|
+
if (!existsSync(filePath)) {
|
|
22
|
+
return null;
|
|
23
|
+
}
|
|
24
|
+
let source = "";
|
|
25
|
+
try {
|
|
26
|
+
source = readFileSync(filePath, "utf8");
|
|
27
|
+
}
|
|
28
|
+
catch {
|
|
29
|
+
return null;
|
|
30
|
+
}
|
|
31
|
+
const idMatch = source.match(/const OAUTH_CLIENT_ID = ['"]([^'"]+)['"]/);
|
|
32
|
+
if (!idMatch?.[1]) {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
const secretMatch = source.match(/const OAUTH_CLIENT_SECRET = ['"]([^'"]+)['"]/);
|
|
36
|
+
return {
|
|
37
|
+
clientId: idMatch[1],
|
|
38
|
+
clientSecret: secretMatch?.[1]
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function findConfigInDirectory(baseDir) {
|
|
42
|
+
for (const relativePath of GEMINI_OAUTH_SOURCE_RELATIVE_PATHS) {
|
|
43
|
+
const config = readConfigFromSourceFile(path.join(baseDir, relativePath));
|
|
44
|
+
if (config) {
|
|
45
|
+
return config;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
function discoverFromGeminiBinary() {
|
|
51
|
+
let binaryPath = process.env.GEMINI_CLI_BIN_PATH?.trim();
|
|
52
|
+
if (!binaryPath) {
|
|
53
|
+
try {
|
|
54
|
+
binaryPath = execFileSync("which", ["gemini"], { encoding: "utf8" }).trim();
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
if (!binaryPath) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
let resolved = binaryPath;
|
|
64
|
+
try {
|
|
65
|
+
resolved = realpathSync(binaryPath);
|
|
66
|
+
}
|
|
67
|
+
catch { }
|
|
68
|
+
let current = path.dirname(resolved);
|
|
69
|
+
for (let i = 0; i < 10; i += 1) {
|
|
70
|
+
const config = findConfigInDirectory(current);
|
|
71
|
+
if (config) {
|
|
72
|
+
return config;
|
|
73
|
+
}
|
|
74
|
+
const parent = path.dirname(current);
|
|
75
|
+
if (parent === current) {
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
current = parent;
|
|
79
|
+
}
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
function discoverFromGlobalNpmRoot() {
|
|
83
|
+
try {
|
|
84
|
+
const root = execFileSync("npm", ["root", "-g"], { encoding: "utf8" }).trim();
|
|
85
|
+
if (!root) {
|
|
86
|
+
return null;
|
|
87
|
+
}
|
|
88
|
+
return findConfigInDirectory(root);
|
|
89
|
+
}
|
|
90
|
+
catch {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
function discoverDefaultClientConfig() {
|
|
95
|
+
if (process.env.GEMINI_CLI_OAUTH_AUTO_DISCOVERY === "0") {
|
|
96
|
+
return null;
|
|
97
|
+
}
|
|
98
|
+
if (discoveredClientConfig !== undefined) {
|
|
99
|
+
return discoveredClientConfig;
|
|
100
|
+
}
|
|
101
|
+
const sourcePath = process.env.GEMINI_CLI_OAUTH_SOURCE_PATH?.trim();
|
|
102
|
+
if (sourcePath) {
|
|
103
|
+
discoveredClientConfig = readConfigFromSourceFile(sourcePath);
|
|
104
|
+
return discoveredClientConfig;
|
|
105
|
+
}
|
|
106
|
+
discoveredClientConfig = discoverFromGeminiBinary() ?? discoverFromGlobalNpmRoot() ?? null;
|
|
107
|
+
return discoveredClientConfig;
|
|
108
|
+
}
|
|
109
|
+
function resolveClientId() {
|
|
110
|
+
const envClientId = process.env.GEMINI_CLI_OAUTH_CLIENT_ID?.trim();
|
|
111
|
+
if (envClientId) {
|
|
112
|
+
return envClientId;
|
|
113
|
+
}
|
|
114
|
+
return discoverDefaultClientConfig()?.clientId;
|
|
115
|
+
}
|
|
116
|
+
function resolveClientSecret() {
|
|
117
|
+
const envClientSecret = process.env.GEMINI_CLI_OAUTH_CLIENT_SECRET?.trim();
|
|
118
|
+
if (envClientSecret) {
|
|
119
|
+
return envClientSecret;
|
|
120
|
+
}
|
|
121
|
+
return discoverDefaultClientConfig()?.clientSecret;
|
|
13
122
|
}
|
|
14
123
|
export function hasConfiguredOAuthClient() {
|
|
15
|
-
return
|
|
16
|
-
&& GEMINI_CLI_OAUTH_CLIENT_SECRET.length > 0
|
|
17
|
-
&& !isPlaceholder(GEMINI_CLI_OAUTH_CLIENT_ID)
|
|
18
|
-
&& !isPlaceholder(GEMINI_CLI_OAUTH_CLIENT_SECRET);
|
|
124
|
+
return Boolean(resolveClientId());
|
|
19
125
|
}
|
|
20
126
|
export function createOAuthClient() {
|
|
21
|
-
|
|
22
|
-
|
|
127
|
+
const clientId = resolveClientId();
|
|
128
|
+
if (!clientId) {
|
|
129
|
+
throw new Error("OAuth client is not configured. Set GEMINI_CLI_OAUTH_CLIENT_ID or install Gemini CLI.");
|
|
23
130
|
}
|
|
24
131
|
return new OAuth2Client({
|
|
25
|
-
clientId
|
|
26
|
-
clientSecret:
|
|
132
|
+
clientId,
|
|
133
|
+
clientSecret: resolveClientSecret()
|
|
27
134
|
});
|
|
28
135
|
}
|
|
29
136
|
export async function buildManualOAuthRequest() {
|
|
@@ -33,7 +140,7 @@ export async function buildManualOAuthRequest() {
|
|
|
33
140
|
const authUrl = client.generateAuthUrl({
|
|
34
141
|
redirect_uri: GEMINI_CLI_OAUTH_REDIRECT_URI,
|
|
35
142
|
access_type: "offline",
|
|
36
|
-
prompt:
|
|
143
|
+
prompt: GEMINI_CLI_OAUTH_PROMPT,
|
|
37
144
|
scope: [...GEMINI_CLI_OAUTH_SCOPE],
|
|
38
145
|
code_challenge_method: CodeChallengeMethod.S256,
|
|
39
146
|
code_challenge: verifier.codeChallenge,
|
|
@@ -53,7 +160,7 @@ export function buildWebOAuthRequest(port) {
|
|
|
53
160
|
const authUrl = client.generateAuthUrl({
|
|
54
161
|
redirect_uri: redirectUri,
|
|
55
162
|
access_type: "offline",
|
|
56
|
-
prompt:
|
|
163
|
+
prompt: GEMINI_CLI_OAUTH_PROMPT,
|
|
57
164
|
scope: [...GEMINI_CLI_OAUTH_SCOPE],
|
|
58
165
|
state
|
|
59
166
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-flow.js","sourceRoot":"","sources":["../../src/auth/oauth-flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oauth-flow.js","sourceRoot":"","sources":["../../src/auth/oauth-flow.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +1,27 @@
|
|
|
1
1
|
import type { OAuth2Client } from "google-auth-library";
|
|
2
|
-
import type {
|
|
2
|
+
import type { AccountStore, StoredAccount } from "./account-store.js";
|
|
3
|
+
import type { CodeAssistApiError } from "../gemini/errors.js";
|
|
3
4
|
export type OAuthServiceIO = {
|
|
4
5
|
write(message: string): void;
|
|
5
6
|
readCode(prompt: string): Promise<string>;
|
|
6
7
|
};
|
|
7
8
|
export declare class OAuthService {
|
|
8
9
|
private readonly store;
|
|
9
|
-
constructor(store:
|
|
10
|
+
constructor(store: AccountStore);
|
|
11
|
+
listAccounts(): Promise<StoredAccount[]>;
|
|
12
|
+
useAccount(idOrEmail: string): Promise<StoredAccount>;
|
|
13
|
+
removeAccount(idOrEmail: string): Promise<boolean>;
|
|
10
14
|
login(io?: OAuthServiceIO): Promise<{
|
|
11
15
|
email?: string;
|
|
12
16
|
}>;
|
|
13
17
|
private loginWithWebCallback;
|
|
14
18
|
private loginManual;
|
|
15
|
-
logout(): Promise<
|
|
19
|
+
logout(): Promise<StoredAccount | null>;
|
|
20
|
+
logoutAll(): Promise<void>;
|
|
16
21
|
getClient(): Promise<OAuth2Client>;
|
|
17
22
|
getAccessToken(): Promise<string>;
|
|
23
|
+
getApiAttemptLimit(): Promise<number>;
|
|
24
|
+
getActiveAccountId(): Promise<string | undefined>;
|
|
25
|
+
handleCodeAssistSuccess(): Promise<void>;
|
|
26
|
+
handleCodeAssistError(error: CodeAssistApiError): Promise<boolean>;
|
|
18
27
|
}
|
|
@@ -46,6 +46,49 @@ async function fetchUserEmailFromAccessToken(accessToken) {
|
|
|
46
46
|
const data = (await response.json());
|
|
47
47
|
return data.email;
|
|
48
48
|
}
|
|
49
|
+
function shouldRotateForError(error) {
|
|
50
|
+
const body = error.body.toLowerCase();
|
|
51
|
+
if (error.status === 429 || error.status === 503 || error.status === 401 || error.status === 403) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
if (error.status === 500 && body.includes("resource_exhausted")) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
if (body.includes("model_capacity_exhausted")
|
|
58
|
+
|| body.includes("no capacity available")
|
|
59
|
+
|| body.includes("ratelimitexceeded")
|
|
60
|
+
|| body.includes("rate limit")
|
|
61
|
+
|| body.includes("quota")
|
|
62
|
+
|| body.includes("resource_exhausted")) {
|
|
63
|
+
return true;
|
|
64
|
+
}
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
function cooldownForError(error) {
|
|
68
|
+
if (typeof error.retryAfterMs === "number" && error.retryAfterMs > 0) {
|
|
69
|
+
return error.retryAfterMs;
|
|
70
|
+
}
|
|
71
|
+
const body = error.body.toLowerCase();
|
|
72
|
+
if (error.status === 401 || error.status === 403) {
|
|
73
|
+
return 15 * 60 * 1000;
|
|
74
|
+
}
|
|
75
|
+
if (body.includes("model_capacity_exhausted") || body.includes("no capacity available")) {
|
|
76
|
+
return 45_000;
|
|
77
|
+
}
|
|
78
|
+
if (body.includes("quota")) {
|
|
79
|
+
return 30 * 60 * 1000;
|
|
80
|
+
}
|
|
81
|
+
if (error.status === 429) {
|
|
82
|
+
return 60_000;
|
|
83
|
+
}
|
|
84
|
+
if (error.status === 503) {
|
|
85
|
+
return 60_000;
|
|
86
|
+
}
|
|
87
|
+
if (error.status === 500 && body.includes("resource_exhausted")) {
|
|
88
|
+
return 60_000;
|
|
89
|
+
}
|
|
90
|
+
return 30_000;
|
|
91
|
+
}
|
|
49
92
|
async function getAvailablePort() {
|
|
50
93
|
return new Promise((resolve, reject) => {
|
|
51
94
|
const server = net.createServer();
|
|
@@ -165,35 +208,23 @@ async function startCallbackListener(port, timeoutMs) {
|
|
|
165
208
|
})
|
|
166
209
|
};
|
|
167
210
|
}
|
|
168
|
-
async function persistCredentials(store, tokens) {
|
|
169
|
-
const existing = await store.load();
|
|
170
|
-
const normalized = normalizeCredentials({
|
|
171
|
-
access_token: tokens.access_token,
|
|
172
|
-
refresh_token: tokens.refresh_token ?? existing?.refresh_token,
|
|
173
|
-
expiry_date: tokens.expiry_date ?? existing?.expiry_date,
|
|
174
|
-
token_type: tokens.token_type,
|
|
175
|
-
scope: tokens.scope
|
|
176
|
-
});
|
|
177
|
-
await store.save(normalized);
|
|
178
|
-
return normalized;
|
|
179
|
-
}
|
|
180
211
|
export class OAuthService {
|
|
181
212
|
store;
|
|
182
213
|
constructor(store) {
|
|
183
214
|
this.store = store;
|
|
184
215
|
}
|
|
216
|
+
async listAccounts() {
|
|
217
|
+
return this.store.listAccounts();
|
|
218
|
+
}
|
|
219
|
+
async useAccount(idOrEmail) {
|
|
220
|
+
return this.store.setActiveAccount(idOrEmail);
|
|
221
|
+
}
|
|
222
|
+
async removeAccount(idOrEmail) {
|
|
223
|
+
return this.store.removeAccount(idOrEmail);
|
|
224
|
+
}
|
|
185
225
|
async login(io = defaultIO()) {
|
|
186
226
|
if (!hasConfiguredOAuthClient()) {
|
|
187
|
-
|
|
188
|
-
if (existing?.access_token) {
|
|
189
|
-
const normalized = normalizeCredentials(existing);
|
|
190
|
-
await this.store.save(normalized);
|
|
191
|
-
const email = await fetchUserEmailFromAccessToken(existing.access_token);
|
|
192
|
-
io.write("OAuth client env is not configured. Reusing existing stored credentials.\n");
|
|
193
|
-
io.write("Set GEMINI_CLI_OAUTH_CLIENT_ID and GEMINI_CLI_OAUTH_CLIENT_SECRET for fresh OAuth login.\n");
|
|
194
|
-
return { email };
|
|
195
|
-
}
|
|
196
|
-
throw new Error("OAuth client is not configured. Set GEMINI_CLI_OAUTH_CLIENT_ID and GEMINI_CLI_OAUTH_CLIENT_SECRET.");
|
|
227
|
+
throw new Error("OAuth client is not configured.");
|
|
197
228
|
}
|
|
198
229
|
try {
|
|
199
230
|
const result = await this.loginWithWebCallback(io);
|
|
@@ -225,16 +256,18 @@ export class OAuthService {
|
|
|
225
256
|
if (!tokens.access_token) {
|
|
226
257
|
throw new Error("OAuth login did not return access_token");
|
|
227
258
|
}
|
|
228
|
-
const stored =
|
|
259
|
+
const stored = normalizeCredentials({
|
|
229
260
|
access_token: tokens.access_token,
|
|
230
261
|
refresh_token: tokens.refresh_token ?? undefined,
|
|
231
262
|
expiry_date: tokens.expiry_date ?? undefined,
|
|
232
263
|
token_type: tokens.token_type ?? undefined,
|
|
233
264
|
scope: tokens.scope ?? undefined
|
|
234
265
|
});
|
|
266
|
+
await this.store.addOrUpdateAccount(stored);
|
|
235
267
|
const client = createOAuthClient();
|
|
236
268
|
client.setCredentials(stored);
|
|
237
269
|
const email = await fetchUserEmail(client);
|
|
270
|
+
await this.store.updateActiveCredentials(stored, email);
|
|
238
271
|
return { email };
|
|
239
272
|
}
|
|
240
273
|
finally {
|
|
@@ -253,26 +286,32 @@ export class OAuthService {
|
|
|
253
286
|
if (!tokens.access_token) {
|
|
254
287
|
throw new Error("OAuth login did not return access_token");
|
|
255
288
|
}
|
|
256
|
-
const stored =
|
|
289
|
+
const stored = normalizeCredentials({
|
|
257
290
|
access_token: tokens.access_token,
|
|
258
291
|
refresh_token: tokens.refresh_token ?? undefined,
|
|
259
292
|
expiry_date: tokens.expiry_date ?? undefined,
|
|
260
293
|
token_type: tokens.token_type ?? undefined,
|
|
261
294
|
scope: tokens.scope ?? undefined
|
|
262
295
|
});
|
|
296
|
+
await this.store.addOrUpdateAccount(stored);
|
|
263
297
|
const client = createOAuthClient();
|
|
264
298
|
client.setCredentials(stored);
|
|
265
299
|
const email = await fetchUserEmail(client);
|
|
300
|
+
await this.store.updateActiveCredentials(stored, email);
|
|
266
301
|
return { email };
|
|
267
302
|
}
|
|
268
303
|
async logout() {
|
|
269
|
-
|
|
304
|
+
return this.store.logoutActive();
|
|
305
|
+
}
|
|
306
|
+
async logoutAll() {
|
|
307
|
+
await this.store.clearAll();
|
|
270
308
|
}
|
|
271
309
|
async getClient() {
|
|
272
|
-
const
|
|
273
|
-
if (!
|
|
310
|
+
const active = await this.store.getActiveAccount();
|
|
311
|
+
if (!active) {
|
|
274
312
|
throw new Error("OAuth credentials not found. Run auth login first.");
|
|
275
313
|
}
|
|
314
|
+
const credentials = active.credentials;
|
|
276
315
|
const client = createOAuthClient();
|
|
277
316
|
client.setCredentials(normalizeCredentials(credentials));
|
|
278
317
|
const token = await client.getAccessToken();
|
|
@@ -286,12 +325,13 @@ export class OAuthService {
|
|
|
286
325
|
token_type: client.credentials.token_type ?? undefined,
|
|
287
326
|
scope: client.credentials.scope ?? undefined
|
|
288
327
|
});
|
|
289
|
-
await this.store.
|
|
328
|
+
await this.store.updateActiveCredentials(merged, active.email);
|
|
290
329
|
client.setCredentials(merged);
|
|
291
330
|
return client;
|
|
292
331
|
}
|
|
293
332
|
async getAccessToken() {
|
|
294
|
-
const
|
|
333
|
+
const active = await this.store.getActiveAccount();
|
|
334
|
+
const credentials = active?.credentials;
|
|
295
335
|
if (credentials?.access_token) {
|
|
296
336
|
const expiresAt = credentials.expiry_date ?? Number.MAX_SAFE_INTEGER;
|
|
297
337
|
if (expiresAt > Date.now() + 60_000) {
|
|
@@ -305,5 +345,26 @@ export class OAuthService {
|
|
|
305
345
|
}
|
|
306
346
|
return token.token;
|
|
307
347
|
}
|
|
348
|
+
async getApiAttemptLimit() {
|
|
349
|
+
const count = await this.store.getAccountCount();
|
|
350
|
+
const attempts = Math.max(1, count);
|
|
351
|
+
return attempts > 6 ? 6 : attempts;
|
|
352
|
+
}
|
|
353
|
+
async getActiveAccountId() {
|
|
354
|
+
const active = await this.store.getActiveAccount();
|
|
355
|
+
return active?.id;
|
|
356
|
+
}
|
|
357
|
+
async handleCodeAssistSuccess() {
|
|
358
|
+
await this.store.markActiveUsed();
|
|
359
|
+
}
|
|
360
|
+
async handleCodeAssistError(error) {
|
|
361
|
+
if (!shouldRotateForError(error)) {
|
|
362
|
+
return false;
|
|
363
|
+
}
|
|
364
|
+
const cooldownMs = cooldownForError(error);
|
|
365
|
+
const reason = `${error.status}:${error.method}`;
|
|
366
|
+
const rotated = await this.store.rotateActiveAccount(reason, cooldownMs);
|
|
367
|
+
return Boolean(rotated);
|
|
368
|
+
}
|
|
308
369
|
}
|
|
309
370
|
//# sourceMappingURL=oauth-service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-service.js","sourceRoot":"","sources":["../../src/auth/oauth-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth-service.js","sourceRoot":"","sources":["../../src/auth/oauth-service.ts"],"names":[],"mappings":"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"}
|