@iam-brain/opencode-codex-auth 1.7.0 → 1.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/lib/cache-lock.d.ts +36 -0
- package/dist/lib/cache-lock.d.ts.map +1 -1
- package/dist/lib/cache-lock.js +149 -3
- package/dist/lib/cache-lock.js.map +1 -1
- package/dist/lib/codex-native/oauth-auth-methods.d.ts.map +1 -1
- package/dist/lib/codex-native/oauth-auth-methods.js +3 -2
- package/dist/lib/codex-native/oauth-auth-methods.js.map +1 -1
- package/package.json +1 -1
package/dist/lib/cache-lock.d.ts
CHANGED
|
@@ -1,8 +1,44 @@
|
|
|
1
|
+
type LockFunction = (file: string, options?: Record<string, unknown>) => Promise<() => Promise<void>>;
|
|
2
|
+
type RetryOptions = {
|
|
3
|
+
retries: number;
|
|
4
|
+
minTimeout: number;
|
|
5
|
+
maxTimeout: number;
|
|
6
|
+
};
|
|
7
|
+
declare function resolveLockFunction(value: unknown, visited?: Set<unknown>): LockFunction | undefined;
|
|
8
|
+
declare function toRetryOptions(value: unknown): RetryOptions;
|
|
9
|
+
declare function ownerFilePathForLockDirectory(lockDir: string): string;
|
|
10
|
+
declare function writeDirectoryLockOwner(lockDir: string, ownerToken: string): Promise<void>;
|
|
11
|
+
declare function hasDirectoryLockOwner(lockDir: string, ownerToken: string): Promise<boolean>;
|
|
12
|
+
declare function lockWithDirectoryFallback(targetPath: string, options?: Record<string, unknown>): Promise<() => Promise<void>>;
|
|
13
|
+
declare function resolveImportedLockFunction(specifier: string): Promise<LockFunction | undefined>;
|
|
14
|
+
declare function getLockFunction(): Promise<LockFunction>;
|
|
15
|
+
declare const LOCK_RETRIES: {
|
|
16
|
+
retries: number;
|
|
17
|
+
minTimeout: number;
|
|
18
|
+
maxTimeout: number;
|
|
19
|
+
};
|
|
1
20
|
type LockTargetOptions = {
|
|
2
21
|
staleMs?: number;
|
|
3
22
|
};
|
|
23
|
+
declare function resolveLockOptions(options?: LockTargetOptions): {
|
|
24
|
+
realpath: true;
|
|
25
|
+
retries: typeof LOCK_RETRIES;
|
|
26
|
+
stale?: number;
|
|
27
|
+
};
|
|
4
28
|
export declare function lockTargetPathForFile(filePath: string): string;
|
|
5
29
|
export declare function withLockedDirectory<T>(directoryPath: string, fn: () => Promise<T>, options?: LockTargetOptions): Promise<T>;
|
|
6
30
|
export declare function withLockedFile<T>(filePath: string, fn: () => Promise<T>, options?: LockTargetOptions): Promise<T>;
|
|
31
|
+
export declare const __cacheLockTest: {
|
|
32
|
+
DIRECTORY_LOCK_OWNER_FILE: string;
|
|
33
|
+
getLockFunction: typeof getLockFunction;
|
|
34
|
+
hasDirectoryLockOwner: typeof hasDirectoryLockOwner;
|
|
35
|
+
lockWithDirectoryFallback: typeof lockWithDirectoryFallback;
|
|
36
|
+
ownerFilePathForLockDirectory: typeof ownerFilePathForLockDirectory;
|
|
37
|
+
resolveImportedLockFunction: typeof resolveImportedLockFunction;
|
|
38
|
+
resolveLockFunction: typeof resolveLockFunction;
|
|
39
|
+
resolveLockOptions: typeof resolveLockOptions;
|
|
40
|
+
toRetryOptions: typeof toRetryOptions;
|
|
41
|
+
writeDirectoryLockOwner: typeof writeDirectoryLockOwner;
|
|
42
|
+
};
|
|
7
43
|
export {};
|
|
8
44
|
//# sourceMappingURL=cache-lock.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-lock.d.ts","sourceRoot":"","sources":["../../lib/cache-lock.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cache-lock.d.ts","sourceRoot":"","sources":["../../lib/cache-lock.ts"],"names":[],"mappings":"AAIA,KAAK,YAAY,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;AAErG,KAAK,YAAY,GAAG;IAClB,OAAO,EAAE,MAAM,CAAA;IACf,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAKD,iBAAS,mBAAmB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,eAAqB,GAAG,YAAY,GAAG,SAAS,CA0BnG;AAMD,iBAAS,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,YAAY,CA6BpD;AAMD,iBAAS,6BAA6B,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE9D;AAED,iBAAe,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEzF;AAED,iBAAe,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAU1F;AAED,iBAAe,yBAAyB,CACtC,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAuC9B;AAED,iBAAe,2BAA2B,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,SAAS,CAAC,CAM/F;AAED,iBAAe,eAAe,IAAI,OAAO,CAAC,YAAY,CAAC,CAMtD;AAED,QAAA,MAAM,YAAY;;;;CAIjB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;CACjB,CAAA;AAGD,iBAAS,kBAAkB,CAAC,OAAO,GAAE,iBAAsB,GAAG;IAC5D,QAAQ,EAAE,IAAI,CAAA;IACd,OAAO,EAAE,OAAO,YAAY,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAOA;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE9D;AAOD,wBAAsB,mBAAmB,CAAC,CAAC,EACzC,aAAa,EAAE,MAAM,EACrB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,CAAC,CAAC,CASZ;AAED,wBAAsB,cAAc,CAAC,CAAC,EACpC,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,OAAO,GAAE,iBAAsB,GAC9B,OAAO,CAAC,CAAC,CAAC,CAWZ;AAGD,eAAO,MAAM,eAAe;;;;;;;;;;;CAW3B,CAAA"}
|
package/dist/lib/cache-lock.js
CHANGED
|
@@ -1,6 +1,137 @@
|
|
|
1
|
+
import { randomUUID } from "node:crypto";
|
|
1
2
|
import fs from "node:fs/promises";
|
|
2
3
|
import path from "node:path";
|
|
3
|
-
|
|
4
|
+
let cachedLockFunction;
|
|
5
|
+
const DIRECTORY_LOCK_OWNER_FILE = ".owner";
|
|
6
|
+
function resolveLockFunction(value, visited = new Set()) {
|
|
7
|
+
if (typeof value === "function") {
|
|
8
|
+
return value;
|
|
9
|
+
}
|
|
10
|
+
if (!value || typeof value !== "object") {
|
|
11
|
+
return undefined;
|
|
12
|
+
}
|
|
13
|
+
if (visited.has(value)) {
|
|
14
|
+
return undefined;
|
|
15
|
+
}
|
|
16
|
+
visited.add(value);
|
|
17
|
+
const record = value;
|
|
18
|
+
const direct = resolveLockFunction(record.lock, visited);
|
|
19
|
+
if (direct)
|
|
20
|
+
return direct;
|
|
21
|
+
const viaDefault = resolveLockFunction(record.default, visited);
|
|
22
|
+
if (viaDefault)
|
|
23
|
+
return viaDefault;
|
|
24
|
+
const viaModule = resolveLockFunction(record.module, visited);
|
|
25
|
+
if (viaModule)
|
|
26
|
+
return viaModule;
|
|
27
|
+
const viaExports = resolveLockFunction(record.exports, visited);
|
|
28
|
+
if (viaExports)
|
|
29
|
+
return viaExports;
|
|
30
|
+
return undefined;
|
|
31
|
+
}
|
|
32
|
+
function isFsErrorCode(error, code) {
|
|
33
|
+
return typeof error === "object" && error !== null && "code" in error && error.code === code;
|
|
34
|
+
}
|
|
35
|
+
function toRetryOptions(value) {
|
|
36
|
+
const defaultOptions = {
|
|
37
|
+
retries: 0,
|
|
38
|
+
minTimeout: 50,
|
|
39
|
+
maxTimeout: 200
|
|
40
|
+
};
|
|
41
|
+
if (!value || typeof value !== "object") {
|
|
42
|
+
return defaultOptions;
|
|
43
|
+
}
|
|
44
|
+
const record = value;
|
|
45
|
+
const retries = typeof record.retries === "number" && Number.isFinite(record.retries)
|
|
46
|
+
? Math.max(0, Math.floor(record.retries))
|
|
47
|
+
: defaultOptions.retries;
|
|
48
|
+
const minTimeout = typeof record.minTimeout === "number" && Number.isFinite(record.minTimeout)
|
|
49
|
+
? Math.max(1, Math.floor(record.minTimeout))
|
|
50
|
+
: defaultOptions.minTimeout;
|
|
51
|
+
const maxTimeout = typeof record.maxTimeout === "number" && Number.isFinite(record.maxTimeout)
|
|
52
|
+
? Math.max(minTimeout, Math.floor(record.maxTimeout))
|
|
53
|
+
: defaultOptions.maxTimeout;
|
|
54
|
+
return {
|
|
55
|
+
retries,
|
|
56
|
+
minTimeout,
|
|
57
|
+
maxTimeout
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
async function sleep(ms) {
|
|
61
|
+
await new Promise((resolve) => setTimeout(resolve, ms));
|
|
62
|
+
}
|
|
63
|
+
function ownerFilePathForLockDirectory(lockDir) {
|
|
64
|
+
return path.join(lockDir, DIRECTORY_LOCK_OWNER_FILE);
|
|
65
|
+
}
|
|
66
|
+
async function writeDirectoryLockOwner(lockDir, ownerToken) {
|
|
67
|
+
await fs.writeFile(ownerFilePathForLockDirectory(lockDir), ownerToken, { mode: 0o600 });
|
|
68
|
+
}
|
|
69
|
+
async function hasDirectoryLockOwner(lockDir, ownerToken) {
|
|
70
|
+
try {
|
|
71
|
+
const value = await fs.readFile(ownerFilePathForLockDirectory(lockDir), "utf8");
|
|
72
|
+
return value === ownerToken;
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
if (isFsErrorCode(error, "ENOENT")) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
throw error;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
async function lockWithDirectoryFallback(targetPath, options) {
|
|
82
|
+
const lockDir = `${targetPath}.lock`;
|
|
83
|
+
const retry = toRetryOptions(options?.retries);
|
|
84
|
+
for (let attempt = 0;; attempt += 1) {
|
|
85
|
+
try {
|
|
86
|
+
await fs.mkdir(lockDir);
|
|
87
|
+
const ownerToken = randomUUID();
|
|
88
|
+
try {
|
|
89
|
+
await writeDirectoryLockOwner(lockDir, ownerToken);
|
|
90
|
+
}
|
|
91
|
+
catch (error) {
|
|
92
|
+
await fs.rm(lockDir, { recursive: true, force: true });
|
|
93
|
+
throw error;
|
|
94
|
+
}
|
|
95
|
+
return async () => {
|
|
96
|
+
if (!(await hasDirectoryLockOwner(lockDir, ownerToken))) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
try {
|
|
100
|
+
await fs.rm(lockDir, { recursive: true, force: true });
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
if (!isFsErrorCode(error, "ENOENT")) {
|
|
104
|
+
throw error;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
catch (error) {
|
|
110
|
+
if (!isFsErrorCode(error, "EEXIST")) {
|
|
111
|
+
throw error;
|
|
112
|
+
}
|
|
113
|
+
if (attempt >= retry.retries) {
|
|
114
|
+
throw error;
|
|
115
|
+
}
|
|
116
|
+
const timeout = Math.min(retry.maxTimeout, retry.minTimeout * 2 ** attempt);
|
|
117
|
+
await sleep(timeout);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
async function resolveImportedLockFunction(specifier) {
|
|
122
|
+
try {
|
|
123
|
+
return resolveLockFunction(await import(specifier));
|
|
124
|
+
}
|
|
125
|
+
catch {
|
|
126
|
+
return undefined;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async function getLockFunction() {
|
|
130
|
+
if (cachedLockFunction)
|
|
131
|
+
return cachedLockFunction;
|
|
132
|
+
cachedLockFunction = (await resolveImportedLockFunction("proper-lockfile")) ?? lockWithDirectoryFallback;
|
|
133
|
+
return cachedLockFunction;
|
|
134
|
+
}
|
|
4
135
|
const LOCK_RETRIES = {
|
|
5
136
|
retries: 20,
|
|
6
137
|
minTimeout: 10,
|
|
@@ -24,7 +155,8 @@ async function ensureLockTargetFile(lockTargetPath) {
|
|
|
24
155
|
}
|
|
25
156
|
export async function withLockedDirectory(directoryPath, fn, options = {}) {
|
|
26
157
|
await fs.mkdir(directoryPath, { recursive: true });
|
|
27
|
-
const
|
|
158
|
+
const lock = await getLockFunction();
|
|
159
|
+
const release = await lock(directoryPath, resolveLockOptions(options));
|
|
28
160
|
try {
|
|
29
161
|
return await fn();
|
|
30
162
|
}
|
|
@@ -36,7 +168,8 @@ export async function withLockedFile(filePath, fn, options = {}) {
|
|
|
36
168
|
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
37
169
|
const lockTargetPath = lockTargetPathForFile(filePath);
|
|
38
170
|
await ensureLockTargetFile(lockTargetPath);
|
|
39
|
-
const
|
|
171
|
+
const lock = await getLockFunction();
|
|
172
|
+
const release = await lock(lockTargetPath, resolveLockOptions(options));
|
|
40
173
|
try {
|
|
41
174
|
return await fn();
|
|
42
175
|
}
|
|
@@ -44,4 +177,17 @@ export async function withLockedFile(filePath, fn, options = {}) {
|
|
|
44
177
|
await release();
|
|
45
178
|
}
|
|
46
179
|
}
|
|
180
|
+
// Test-only hooks for focused fallback coverage without widening the runtime behavior surface.
|
|
181
|
+
export const __cacheLockTest = {
|
|
182
|
+
DIRECTORY_LOCK_OWNER_FILE,
|
|
183
|
+
getLockFunction,
|
|
184
|
+
hasDirectoryLockOwner,
|
|
185
|
+
lockWithDirectoryFallback,
|
|
186
|
+
ownerFilePathForLockDirectory,
|
|
187
|
+
resolveImportedLockFunction,
|
|
188
|
+
resolveLockFunction,
|
|
189
|
+
resolveLockOptions,
|
|
190
|
+
toRetryOptions,
|
|
191
|
+
writeDirectoryLockOwner
|
|
192
|
+
};
|
|
47
193
|
//# sourceMappingURL=cache-lock.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-lock.js","sourceRoot":"","sources":["../../lib/cache-lock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAA;AACjC,OAAO,IAAI,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"cache-lock.js","sourceRoot":"","sources":["../../lib/cache-lock.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-auth-methods.d.ts","sourceRoot":"","sources":["../../../lib/codex-native/oauth-auth-methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"oauth-auth-methods.d.ts","sourceRoot":"","sources":["../../../lib/codex-native/oauth-auth-methods.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAEjD,OAAO,EAWL,KAAK,SAAS,EAEd,KAAK,aAAa,EACnB,MAAM,kBAAkB,CAAA;AAGzB,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,SAAS,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,QAAQ,CAAA;CACf,CAAA;AAED,KAAK,mBAAmB,GAAG,YAAY,GAAG,YAAY,CAAA;AAEtD,KAAK,qBAAqB,GAAG;IAC3B,GAAG,EAAE,MAAM,CAAA;IACX,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAA;CAC7C,CAAA;AAuBD,KAAK,cAAc,GAAG,KAAK,GAAG,MAAM,CAAA;AAEpC,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,EAAE,cAAc,CAAA;IACzB,sBAAsB,EAAE,CAAC,OAAO,EAAE;QAAE,SAAS,EAAE,OAAO,CAAA;KAAE,KAAK,OAAO,CAAC,cAAc,CAAC,CAAA;IACpF,gBAAgB,EAAE,MAAM,OAAO,CAAC;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACxD,oBAAoB,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,KAAK,OAAO,CAAC,aAAa,CAAC,CAAA;IAC1G,uBAAuB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,OAAO,KAAK,IAAI,CAAA;IACzF,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5D,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,eAAe,EAAE,MAAM,CAAA;IACvB,oBAAoB,EAAE,MAAM,CAAA;CAC7B,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,cAAc,CAAA;IACzB,kBAAkB,EAAE,CAAC,MAAM,EAAE,aAAa,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7D,CAAA;AAoBD,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,oBAAoB,IACtD,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,qBAAqB,CAAC,CAqI/E;AAED,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,qBAAqB,SACrD,OAAO,CAAC,qBAAqB,CAAC,CAkHhD"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { resolveRequestUserAgent } from "./client-identity.js";
|
|
2
|
-
import { resolveCodexOriginator } from "./originator.js";
|
|
3
2
|
import { buildAuthorizeUrl, CLIENT_ID, extractAccountId, fetchWithTimeout, generatePKCE, generateState, ISSUER, OAUTH_DEVICE_AUTH_TIMEOUT_MS, OAUTH_HTTP_TIMEOUT_MS, OAUTH_POLLING_SAFETY_MARGIN_MS, sleep } from "./oauth-utils.js";
|
|
3
|
+
import { resolveCodexOriginator } from "./originator.js";
|
|
4
4
|
function oauthStartupFailurePayload(reason) {
|
|
5
5
|
return {
|
|
6
6
|
url: "",
|
|
@@ -40,6 +40,7 @@ function toOAuthSuccess(tokens) {
|
|
|
40
40
|
}
|
|
41
41
|
export function createBrowserOAuthAuthorize(deps) {
|
|
42
42
|
return async (inputs) => {
|
|
43
|
+
const shouldUseInteractiveMenu = process.env.OPENCODE_NO_BROWSER !== "1" && process.stdin.isTTY && process.stdout.isTTY;
|
|
43
44
|
const runSingleBrowserOAuthInline = async () => {
|
|
44
45
|
let redirectUri;
|
|
45
46
|
try {
|
|
@@ -113,7 +114,7 @@ export function createBrowserOAuthAuthorize(deps) {
|
|
|
113
114
|
};
|
|
114
115
|
}
|
|
115
116
|
};
|
|
116
|
-
if (
|
|
117
|
+
if (shouldUseInteractiveMenu) {
|
|
117
118
|
return runInteractiveBrowserAuthLoop();
|
|
118
119
|
}
|
|
119
120
|
let redirectUri;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-auth-methods.js","sourceRoot":"","sources":["../../../lib/codex-native/oauth-auth-methods.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,
|
|
1
|
+
{"version":3,"file":"oauth-auth-methods.js","sourceRoot":"","sources":["../../../lib/codex-native/oauth-auth-methods.ts"],"names":[],"mappings":"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"}
|