offrouter-core 0.2.2 → 0.3.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.
- package/dist/auth/index.d.ts +2 -2
- package/dist/auth/index.d.ts.map +1 -1
- package/dist/auth/index.js +1 -1
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/oauth-pkce.d.ts +52 -5
- package/dist/auth/oauth-pkce.d.ts.map +1 -1
- package/dist/auth/oauth-pkce.js +246 -63
- package/dist/auth/oauth-pkce.js.map +1 -1
- package/dist/auth/oauth-server.d.ts +3 -1
- package/dist/auth/oauth-server.d.ts.map +1 -1
- package/dist/auth/oauth-server.js +122 -37
- package/dist/auth/oauth-server.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/auth/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ export { Redacted, resolveCredential, } from "./credential-chain.js";
|
|
|
5
5
|
export type { CredentialResult, CredentialSource, ResolveCredentialOptions, } from "./credential-chain.js";
|
|
6
6
|
export { deleteOAuthTokens, getOAuthTokens, getProviderToken, isOAuthTokenExpired, setOAuthTokens, setProviderToken, } from "./keychain.js";
|
|
7
7
|
export type { OAuthStoredTokens } from "./keychain.js";
|
|
8
|
-
export { defaultCallbackPort, exchangeCodeForTokens, generateCodeChallenge, generateCodeVerifier, isOAuthProvider, PKCE_CONFIGS, refreshTokens, resolveClientId, runOAuthLogin, startOAuthFlow, } from "./oauth-pkce.js";
|
|
9
|
-
export type { OAuthFlowResult, OAuthFlowState, OAuthProviderConfig, OAuthStartOptions, OAuthTokenOptions, OAuthTokenResponse, RunOAuthLoginOptions, RunOAuthLoginResult, } from "./oauth-pkce.js";
|
|
8
|
+
export { defaultCallbackPort, exchangeCodeForTokens, generateCodeChallenge, generateCodeVerifier, isDeviceCodeProvider, isOAuthProvider, PKCE_CONFIGS, refreshTokens, resolveClientId, runOAuthLogin, startDeviceCodeFlow, startOAuthFlow, } from "./oauth-pkce.js";
|
|
9
|
+
export type { DeviceCodeFlowOptions, DeviceCodeResult, DeviceCodeResponse, OAuthFlowResult, OAuthFlowState, OAuthProviderConfig, OAuthStartOptions, OAuthTokenOptions, OAuthTokenResponse, RunOAuthLoginOptions, RunOAuthLoginResult, } from "./oauth-pkce.js";
|
|
10
10
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/auth/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,QAAQ,EACR,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,QAAQ,EACR,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,GACjB,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,cAAc,GACf,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,iBAAiB,CAAC"}
|
package/dist/auth/index.js
CHANGED
|
@@ -3,5 +3,5 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export { Redacted, resolveCredential, } from "./credential-chain.js";
|
|
5
5
|
export { deleteOAuthTokens, getOAuthTokens, getProviderToken, isOAuthTokenExpired, setOAuthTokens, setProviderToken, } from "./keychain.js";
|
|
6
|
-
export { defaultCallbackPort, exchangeCodeForTokens, generateCodeChallenge, generateCodeVerifier, isOAuthProvider, PKCE_CONFIGS, refreshTokens, resolveClientId, runOAuthLogin, startOAuthFlow, } from "./oauth-pkce.js";
|
|
6
|
+
export { defaultCallbackPort, exchangeCodeForTokens, generateCodeChallenge, generateCodeVerifier, isDeviceCodeProvider, isOAuthProvider, PKCE_CONFIGS, refreshTokens, resolveClientId, runOAuthLogin, startDeviceCodeFlow, startOAuthFlow, } from "./oauth-pkce.js";
|
|
7
7
|
//# sourceMappingURL=index.js.map
|
package/dist/auth/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,QAAQ,EACR,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,QAAQ,EACR,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAO/B,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,cAAc,GACf,MAAM,iBAAiB,CAAC"}
|
|
@@ -2,7 +2,7 @@ import type { SecretStore } from "../secrets.js";
|
|
|
2
2
|
import { Redacted } from "./credential-chain.js";
|
|
3
3
|
/**
|
|
4
4
|
* Generate a random code verifier for PKCE (RFC 7636).
|
|
5
|
-
*
|
|
5
|
+
* Uses base64url encoding of 32 random bytes (43 chars).
|
|
6
6
|
*/
|
|
7
7
|
export declare function generateCodeVerifier(): string;
|
|
8
8
|
/**
|
|
@@ -11,22 +11,30 @@ export declare function generateCodeVerifier(): string;
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function generateCodeChallenge(verifier: string): Promise<string>;
|
|
13
13
|
export interface OAuthProviderConfig {
|
|
14
|
-
authorizeUrl
|
|
14
|
+
authorizeUrl?: string;
|
|
15
15
|
tokenUrl: string;
|
|
16
16
|
scopes: string[];
|
|
17
17
|
defaultClientId?: string;
|
|
18
18
|
clientIdEnvVar?: string;
|
|
19
|
+
callbackPort?: number;
|
|
20
|
+
callbackPath?: string;
|
|
21
|
+
/** Device code URL for device-code flow (xAI, GitHub Copilot). */
|
|
22
|
+
deviceCodeUrl?: string;
|
|
19
23
|
}
|
|
20
24
|
/**
|
|
21
25
|
* OAuth PKCE configurations for supported providers.
|
|
22
|
-
*
|
|
23
|
-
*
|
|
26
|
+
* Anthropic and OpenAI use PKCE browser callback flow.
|
|
27
|
+
* xAI (Grok) and GitHub Copilot use device code flow.
|
|
24
28
|
*/
|
|
25
29
|
export declare const PKCE_CONFIGS: Record<string, OAuthProviderConfig>;
|
|
26
30
|
/**
|
|
27
31
|
* Returns true if the provider supports OAuth (opt-in).
|
|
28
32
|
*/
|
|
29
33
|
export declare function isOAuthProvider(providerId: string): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Returns true if the provider uses device code flow instead of PKCE browser callback.
|
|
36
|
+
*/
|
|
37
|
+
export declare function isDeviceCodeProvider(providerId: string): boolean;
|
|
30
38
|
/**
|
|
31
39
|
* In-memory session data associated with a PKCE nonce.
|
|
32
40
|
* Never serialised into the caller-visible state string.
|
|
@@ -34,6 +42,7 @@ export declare function isOAuthProvider(providerId: string): boolean;
|
|
|
34
42
|
export interface OAuthSession {
|
|
35
43
|
codeVerifier: string;
|
|
36
44
|
redirectUri: string;
|
|
45
|
+
nonce: string;
|
|
37
46
|
createdAt: number;
|
|
38
47
|
}
|
|
39
48
|
/**
|
|
@@ -66,13 +75,41 @@ export interface OAuthStartOptions {
|
|
|
66
75
|
}
|
|
67
76
|
export interface OAuthTokenOptions {
|
|
68
77
|
store: SecretStore;
|
|
78
|
+
/** Override client ID (default from env or PKCE_CONFIGS). */
|
|
79
|
+
clientId?: string;
|
|
69
80
|
fetch?: typeof globalThis.fetch;
|
|
70
81
|
}
|
|
82
|
+
export interface DeviceCodeFlowOptions {
|
|
83
|
+
store: SecretStore;
|
|
84
|
+
/** Override client ID (default from env or PKCE_CONFIGS). */
|
|
85
|
+
clientId?: string;
|
|
86
|
+
/** Injectable fetch (tests). */
|
|
87
|
+
fetch?: typeof globalThis.fetch;
|
|
88
|
+
/** Called with the device code data once received. */
|
|
89
|
+
onDeviceCode?: (data: DeviceCodeResponse) => void;
|
|
90
|
+
/** Best-effort browser open (non-throwing). */
|
|
91
|
+
openBrowser?: (url: string) => Promise<boolean> | boolean;
|
|
92
|
+
/** Optional abort signal. */
|
|
93
|
+
signal?: AbortSignal;
|
|
94
|
+
}
|
|
95
|
+
export interface DeviceCodeResponse {
|
|
96
|
+
device_code: string;
|
|
97
|
+
user_code: string;
|
|
98
|
+
verification_uri: string;
|
|
99
|
+
verification_uri_complete?: string;
|
|
100
|
+
interval?: number;
|
|
101
|
+
expires_in: number;
|
|
102
|
+
}
|
|
103
|
+
export interface DeviceCodeResult {
|
|
104
|
+
provider: string;
|
|
105
|
+
expiresAt?: number;
|
|
106
|
+
scope?: string;
|
|
107
|
+
}
|
|
71
108
|
/**
|
|
72
109
|
* Create an OAuth state string that encodes provider metadata.
|
|
73
110
|
* Used to validate the callback matches the initiated flow.
|
|
74
111
|
*/
|
|
75
|
-
export declare function createOAuthState(
|
|
112
|
+
export declare function createOAuthState(_provider: string): string;
|
|
76
113
|
/**
|
|
77
114
|
* Start an OAuth PKCE flow for the given provider.
|
|
78
115
|
* Returns the authorization URL and state for redirect.
|
|
@@ -128,6 +165,16 @@ export interface RunOAuthLoginResult {
|
|
|
128
165
|
* 7. Clean up the server
|
|
129
166
|
*/
|
|
130
167
|
export declare function runOAuthLogin(opts: RunOAuthLoginOptions): Promise<RunOAuthLoginResult>;
|
|
168
|
+
/**
|
|
169
|
+
* Run the device code flow for providers that don't support PKCE browser callback.
|
|
170
|
+
*
|
|
171
|
+
* 1. Requests a device code from the provider
|
|
172
|
+
* 2. Prints the user code and verification URL
|
|
173
|
+
* 3. Attempts to open the browser to the verification URL
|
|
174
|
+
* 4. Polls the token endpoint until the user authorizes
|
|
175
|
+
* 5. Stores tokens in the secret store
|
|
176
|
+
*/
|
|
177
|
+
export declare function startDeviceCodeFlow(provider: string, options: DeviceCodeFlowOptions): Promise<DeviceCodeResult>;
|
|
131
178
|
/**
|
|
132
179
|
* Refresh an OAuth token using a refresh token.
|
|
133
180
|
* Updates the stored tokens on success.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-pkce.d.ts","sourceRoot":"","sources":["../../src/auth/oauth-pkce.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"oauth-pkce.d.ts","sourceRoot":"","sources":["../../src/auth/oauth-pkce.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAQjD;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAO7C;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,MAAM,CAAC,CAWjB;AAMD,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAwC5D,CAAC;AAEF;;GAEG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAGhE;AASD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI,CAQtE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEtD;AAMD,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC9B,YAAY,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,iBAAiB;IAChC,WAAW,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,WAAW,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,WAAW,CAAC;IACnB,6DAA6D;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,sDAAsD;IACtD,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAClD,+CAA+C;IAC/C,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1D,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAI1D;AAED;;;;GAIG;AACH,wBAAsB,cAAc,CAClC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,CAAC,CAsD1B;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC,CAsG7B;AAYD;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,GAAG,GAAE,MAAM,CAAC,UAAwB,GACnC,MAAM,GAAG,SAAS,CAIpB;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,WAAW,CAAC;IACnB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,+CAA+C;IAC/C,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;IAC1D,gCAAgC;IAChC,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;IAChC,6BAA6B;IAC7B,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;GASG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,oBAAoB,GACzB,OAAO,CAAC,mBAAmB,CAAC,CA0E9B;AAMD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,gBAAgB,CAAC,CAqK3B;AAED;;;GAGG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,MAAM,EAChB,YAAY,EAAE,MAAM,EACpB,KAAK,EAAE,WAAW,EAClB,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAA;CAAE,GAC5C,OAAO,CAAC,kBAAkB,CAAC,CAqF7B"}
|
package/dist/auth/oauth-pkce.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* OAuth PKCE flow for OffRouter.
|
|
2
|
+
* OAuth PKCE and device code flow for OffRouter.
|
|
3
3
|
*
|
|
4
|
-
* Supports
|
|
5
|
-
*
|
|
4
|
+
* Supports PKCE browser callback flow (Anthropic, OpenAI) and
|
|
5
|
+
* device code flow (xAI/Grok, GitHub Copilot).
|
|
6
|
+
* Gemini/Z.ai are API-key only and do NOT implement OAuth.
|
|
6
7
|
*
|
|
7
8
|
* Never auto-triggers OAuth. Requires explicit user configuration.
|
|
8
9
|
* Tokens are stored in the SecretStore (keychain or file fallback).
|
|
@@ -14,19 +15,17 @@ import { startCallbackServer } from "./oauth-server.js";
|
|
|
14
15
|
// ---------------------------------------------------------------------------
|
|
15
16
|
// PKCE code generation
|
|
16
17
|
// ---------------------------------------------------------------------------
|
|
17
|
-
const VERIFIER_CHARS = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";
|
|
18
18
|
/**
|
|
19
19
|
* Generate a random code verifier for PKCE (RFC 7636).
|
|
20
|
-
*
|
|
20
|
+
* Uses base64url encoding of 32 random bytes (43 chars).
|
|
21
21
|
*/
|
|
22
22
|
export function generateCodeVerifier() {
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
verifier += VERIFIER_CHARS[bytes[i] % VERIFIER_CHARS.length];
|
|
23
|
+
const bytes = randomBytes(32);
|
|
24
|
+
let binary = "";
|
|
25
|
+
for (const byte of bytes) {
|
|
26
|
+
binary += String.fromCharCode(byte);
|
|
28
27
|
}
|
|
29
|
-
return
|
|
28
|
+
return btoa(binary).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
30
29
|
}
|
|
31
30
|
/**
|
|
32
31
|
* Generate a S256 code challenge from a verifier (RFC 7636).
|
|
@@ -44,23 +43,48 @@ export async function generateCodeChallenge(verifier) {
|
|
|
44
43
|
}
|
|
45
44
|
/**
|
|
46
45
|
* OAuth PKCE configurations for supported providers.
|
|
47
|
-
*
|
|
48
|
-
*
|
|
46
|
+
* Anthropic and OpenAI use PKCE browser callback flow.
|
|
47
|
+
* xAI (Grok) and GitHub Copilot use device code flow.
|
|
49
48
|
*/
|
|
50
49
|
export const PKCE_CONFIGS = {
|
|
51
50
|
anthropic: {
|
|
52
|
-
authorizeUrl: "https://
|
|
53
|
-
tokenUrl: "https://
|
|
54
|
-
scopes: [
|
|
51
|
+
authorizeUrl: "https://claude.ai/oauth/authorize",
|
|
52
|
+
tokenUrl: "https://platform.claude.com/v1/oauth/token",
|
|
53
|
+
scopes: [
|
|
54
|
+
"org:create_api_key",
|
|
55
|
+
"user:profile",
|
|
56
|
+
"user:inference",
|
|
57
|
+
"user:sessions:claude_code",
|
|
58
|
+
"user:mcp_servers",
|
|
59
|
+
"user:file_upload",
|
|
60
|
+
],
|
|
55
61
|
clientIdEnvVar: "OFFROUTER_ANTHROPIC_CLIENT_ID",
|
|
56
|
-
|
|
62
|
+
defaultClientId: "9d1c250a-e61b-44d9-88ed-5944d1962f5e",
|
|
63
|
+
callbackPort: 53692,
|
|
64
|
+
callbackPath: "/callback",
|
|
57
65
|
},
|
|
58
66
|
openai: {
|
|
59
67
|
authorizeUrl: "https://auth.openai.com/oauth/authorize",
|
|
60
68
|
tokenUrl: "https://auth.openai.com/oauth/token",
|
|
61
|
-
scopes: ["offline_access"],
|
|
69
|
+
scopes: ["openid", "profile", "email", "offline_access"],
|
|
62
70
|
clientIdEnvVar: "OFFROUTER_OPENAI_CLIENT_ID",
|
|
63
|
-
|
|
71
|
+
defaultClientId: "app_EMoamEEZ73f0CkXaXp7hrann",
|
|
72
|
+
callbackPort: 1455,
|
|
73
|
+
callbackPath: "/auth/callback",
|
|
74
|
+
},
|
|
75
|
+
xai: {
|
|
76
|
+
tokenUrl: "https://auth.x.ai/oauth2/token",
|
|
77
|
+
scopes: ["openid", "profile", "email", "offline_access", "grok-cli:access", "api:access"],
|
|
78
|
+
clientIdEnvVar: "OFFROUTER_XAI_CLIENT_ID",
|
|
79
|
+
defaultClientId: "b1a00492-073a-47ea-816f-4c329264a828",
|
|
80
|
+
deviceCodeUrl: "https://auth.x.ai/oauth2/device/code",
|
|
81
|
+
},
|
|
82
|
+
"github-copilot": {
|
|
83
|
+
tokenUrl: "https://github.com/login/oauth/access_token",
|
|
84
|
+
scopes: [],
|
|
85
|
+
clientIdEnvVar: "OFFROUTER_GITHUB_COPILOT_CLIENT_ID",
|
|
86
|
+
defaultClientId: "Iv1.b507a08c87ecfe98",
|
|
87
|
+
deviceCodeUrl: "https://github.com/login/device/code",
|
|
64
88
|
},
|
|
65
89
|
};
|
|
66
90
|
/**
|
|
@@ -69,6 +93,13 @@ export const PKCE_CONFIGS = {
|
|
|
69
93
|
export function isOAuthProvider(providerId) {
|
|
70
94
|
return providerId in PKCE_CONFIGS;
|
|
71
95
|
}
|
|
96
|
+
/**
|
|
97
|
+
* Returns true if the provider uses device code flow instead of PKCE browser callback.
|
|
98
|
+
*/
|
|
99
|
+
export function isDeviceCodeProvider(providerId) {
|
|
100
|
+
const config = PKCE_CONFIGS[providerId];
|
|
101
|
+
return !!config?.deviceCodeUrl;
|
|
102
|
+
}
|
|
72
103
|
// ---------------------------------------------------------------------------
|
|
73
104
|
// OAuth session store (in-memory, out-of-band — NOT embedded in state)
|
|
74
105
|
// ---------------------------------------------------------------------------
|
|
@@ -100,9 +131,10 @@ export function cancelOAuthSession(nonce) {
|
|
|
100
131
|
* Create an OAuth state string that encodes provider metadata.
|
|
101
132
|
* Used to validate the callback matches the initiated flow.
|
|
102
133
|
*/
|
|
103
|
-
export function createOAuthState(
|
|
104
|
-
|
|
105
|
-
|
|
134
|
+
export function createOAuthState(_provider) {
|
|
135
|
+
// Simple nonce string (not JSON) - some providers reject complex state values.
|
|
136
|
+
void _provider;
|
|
137
|
+
return randomBytes(16).toString("hex");
|
|
106
138
|
}
|
|
107
139
|
/**
|
|
108
140
|
* Start an OAuth PKCE flow for the given provider.
|
|
@@ -111,12 +143,13 @@ export function createOAuthState(provider) {
|
|
|
111
143
|
*/
|
|
112
144
|
export async function startOAuthFlow(provider, options) {
|
|
113
145
|
const config = PKCE_CONFIGS[provider];
|
|
114
|
-
if (!config) {
|
|
146
|
+
if (!config || !config.authorizeUrl) {
|
|
115
147
|
throw new Error(`OAuth not supported for provider: ${provider}. ` +
|
|
116
148
|
`OAuth is only available for anthropic and openai providers.`);
|
|
117
149
|
}
|
|
118
150
|
const clientId = options.clientId ??
|
|
119
|
-
(config.clientIdEnvVar ? process.env[config.clientIdEnvVar] : undefined)
|
|
151
|
+
(config.clientIdEnvVar ? process.env[config.clientIdEnvVar] : undefined) ??
|
|
152
|
+
config.defaultClientId;
|
|
120
153
|
if (!clientId) {
|
|
121
154
|
throw new Error(`Client ID required for ${provider} OAuth. ` +
|
|
122
155
|
`Set the ${config.clientIdEnvVar ?? "client id"} environment variable ` +
|
|
@@ -124,8 +157,11 @@ export async function startOAuthFlow(provider, options) {
|
|
|
124
157
|
}
|
|
125
158
|
const codeVerifier = generateCodeVerifier();
|
|
126
159
|
const codeChallenge = await generateCodeChallenge(codeVerifier);
|
|
127
|
-
|
|
160
|
+
// Use the verifier as the state (same pattern as pi/other CLIs).
|
|
161
|
+
// The callback server validates state === verifier.
|
|
162
|
+
const state = codeVerifier;
|
|
128
163
|
const params = new URLSearchParams({
|
|
164
|
+
code: "true",
|
|
129
165
|
response_type: "code",
|
|
130
166
|
client_id: clientId,
|
|
131
167
|
redirect_uri: options.redirectUri,
|
|
@@ -135,16 +171,17 @@ export async function startOAuthFlow(provider, options) {
|
|
|
135
171
|
scope: config.scopes.join(" "),
|
|
136
172
|
});
|
|
137
173
|
const authorizeUrl = `${config.authorizeUrl}?${params.toString()}`;
|
|
138
|
-
// Store the verifier
|
|
139
|
-
|
|
140
|
-
sessions.set(
|
|
174
|
+
// Store the verifier in the session, keyed by the state (= verifier).
|
|
175
|
+
// The callback validates state === verifier, then we consume the session.
|
|
176
|
+
sessions.set(state, {
|
|
141
177
|
codeVerifier,
|
|
142
178
|
redirectUri: options.redirectUri,
|
|
179
|
+
nonce: state,
|
|
143
180
|
createdAt: Date.now(),
|
|
144
181
|
});
|
|
145
182
|
return {
|
|
146
183
|
authorizeUrl,
|
|
147
|
-
state, //
|
|
184
|
+
state, // simple nonce string, no secrets
|
|
148
185
|
};
|
|
149
186
|
}
|
|
150
187
|
/**
|
|
@@ -156,40 +193,47 @@ export async function exchangeCodeForTokens(provider, code, statePayload, option
|
|
|
156
193
|
if (!config) {
|
|
157
194
|
throw new Error(`OAuth not supported for provider: ${provider}`);
|
|
158
195
|
}
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
stateData = JSON.parse(statePayload);
|
|
162
|
-
}
|
|
163
|
-
catch {
|
|
164
|
-
throw new Error("Invalid OAuth state payload");
|
|
165
|
-
}
|
|
166
|
-
if (!stateData.nonce) {
|
|
167
|
-
throw new Error("Missing nonce in OAuth state");
|
|
168
|
-
}
|
|
169
|
-
const session = consumeOAuthSession(stateData.nonce);
|
|
196
|
+
// statePayload is now a simple nonce string (not JSON).
|
|
197
|
+
const session = consumeOAuthSession(statePayload);
|
|
170
198
|
if (!session) {
|
|
171
199
|
throw new Error("OAuth session expired, already consumed, or not found. Please restart the OAuth flow.");
|
|
172
200
|
}
|
|
173
201
|
if (!session.codeVerifier) {
|
|
174
202
|
throw new Error("Missing code verifier in OAuth session");
|
|
175
203
|
}
|
|
176
|
-
const clientId =
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
204
|
+
const clientId = options.clientId ??
|
|
205
|
+
resolveClientId(provider) ??
|
|
206
|
+
"";
|
|
207
|
+
// Anthropic uses JSON body; all others use form-encoded.
|
|
208
|
+
// Anthropic requires the state field in the token exchange to match the
|
|
209
|
+
// state sent in the authorize URL.
|
|
210
|
+
const useJson = provider === "anthropic";
|
|
211
|
+
const tokenBody = useJson
|
|
212
|
+
? JSON.stringify({
|
|
213
|
+
grant_type: "authorization_code",
|
|
214
|
+
client_id: clientId,
|
|
215
|
+
code,
|
|
216
|
+
state: statePayload,
|
|
217
|
+
redirect_uri: session.redirectUri,
|
|
218
|
+
code_verifier: session.codeVerifier,
|
|
219
|
+
})
|
|
220
|
+
: new URLSearchParams({
|
|
221
|
+
grant_type: "authorization_code",
|
|
222
|
+
code,
|
|
223
|
+
redirect_uri: session.redirectUri,
|
|
224
|
+
client_id: clientId,
|
|
225
|
+
code_verifier: session.codeVerifier,
|
|
226
|
+
}).toString();
|
|
186
227
|
const fetchImpl = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
187
228
|
const response = await fetchImpl(config.tokenUrl, {
|
|
188
229
|
method: "POST",
|
|
189
230
|
headers: {
|
|
190
|
-
"content-type":
|
|
231
|
+
"content-type": useJson
|
|
232
|
+
? "application/json"
|
|
233
|
+
: "application/x-www-form-urlencoded",
|
|
234
|
+
accept: "application/json",
|
|
191
235
|
},
|
|
192
|
-
body:
|
|
236
|
+
body: tokenBody,
|
|
193
237
|
});
|
|
194
238
|
if (!response.ok) {
|
|
195
239
|
const body = await response.text().catch(() => "");
|
|
@@ -226,7 +270,7 @@ export async function exchangeCodeForTokens(provider, code, statePayload, option
|
|
|
226
270
|
// ---------------------------------------------------------------------------
|
|
227
271
|
/** Default loopback ports for supported providers. */
|
|
228
272
|
const DEFAULT_CALLBACK_PORTS = {
|
|
229
|
-
anthropic:
|
|
273
|
+
anthropic: 53692,
|
|
230
274
|
openai: 1455,
|
|
231
275
|
};
|
|
232
276
|
/**
|
|
@@ -241,9 +285,9 @@ export function defaultCallbackPort(provider) {
|
|
|
241
285
|
*/
|
|
242
286
|
export function resolveClientId(provider, env = process.env) {
|
|
243
287
|
const config = PKCE_CONFIGS[provider];
|
|
244
|
-
if (!config
|
|
288
|
+
if (!config)
|
|
245
289
|
return undefined;
|
|
246
|
-
return env[config.clientIdEnvVar] ??
|
|
290
|
+
return env[config.clientIdEnvVar ?? ""] ?? config.defaultClientId;
|
|
247
291
|
}
|
|
248
292
|
/**
|
|
249
293
|
* Run the full OAuth PKCE login flow:
|
|
@@ -270,7 +314,8 @@ export async function runOAuthLogin(opts) {
|
|
|
270
314
|
}
|
|
271
315
|
// 1. Start callback server
|
|
272
316
|
const port = opts.port ?? defaultCallbackPort(opts.provider);
|
|
273
|
-
const
|
|
317
|
+
const callbackPath = config.callbackPath ?? "/callback";
|
|
318
|
+
const server = await startCallbackServer(port, { callbackPath });
|
|
274
319
|
try {
|
|
275
320
|
const redirectUri = server.url;
|
|
276
321
|
// 2. Build the authorize URL with PKCE
|
|
@@ -316,6 +361,133 @@ export async function runOAuthLogin(opts) {
|
|
|
316
361
|
await server.close();
|
|
317
362
|
}
|
|
318
363
|
}
|
|
364
|
+
// ---------------------------------------------------------------------------
|
|
365
|
+
// Device code flow (xAI, GitHub Copilot)
|
|
366
|
+
// ---------------------------------------------------------------------------
|
|
367
|
+
/**
|
|
368
|
+
* Run the device code flow for providers that don't support PKCE browser callback.
|
|
369
|
+
*
|
|
370
|
+
* 1. Requests a device code from the provider
|
|
371
|
+
* 2. Prints the user code and verification URL
|
|
372
|
+
* 3. Attempts to open the browser to the verification URL
|
|
373
|
+
* 4. Polls the token endpoint until the user authorizes
|
|
374
|
+
* 5. Stores tokens in the secret store
|
|
375
|
+
*/
|
|
376
|
+
export async function startDeviceCodeFlow(provider, options) {
|
|
377
|
+
const config = PKCE_CONFIGS[provider];
|
|
378
|
+
if (!config || !config.deviceCodeUrl) {
|
|
379
|
+
throw new Error(`Device code flow not supported for provider: ${provider}`);
|
|
380
|
+
}
|
|
381
|
+
const clientId = options.clientId ??
|
|
382
|
+
(config.clientIdEnvVar ? process.env[config.clientIdEnvVar] : undefined) ??
|
|
383
|
+
config.defaultClientId;
|
|
384
|
+
if (!clientId) {
|
|
385
|
+
throw new Error(`Client ID required for ${provider} device code flow. ` +
|
|
386
|
+
`Set the ${config.clientIdEnvVar ?? "client id"} environment variable ` +
|
|
387
|
+
`or pass it explicitly.`);
|
|
388
|
+
}
|
|
389
|
+
const fetchImpl = options.fetch ?? globalThis.fetch.bind(globalThis);
|
|
390
|
+
// 1. Request device code
|
|
391
|
+
const deviceCodeParams = new URLSearchParams({
|
|
392
|
+
client_id: clientId,
|
|
393
|
+
scope: config.scopes.join(" "),
|
|
394
|
+
});
|
|
395
|
+
const deviceResponse = await fetchImpl(config.deviceCodeUrl, {
|
|
396
|
+
method: "POST",
|
|
397
|
+
headers: {
|
|
398
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
399
|
+
accept: "application/json",
|
|
400
|
+
},
|
|
401
|
+
body: deviceCodeParams.toString(),
|
|
402
|
+
});
|
|
403
|
+
if (!deviceResponse.ok) {
|
|
404
|
+
const body = await deviceResponse.text().catch(() => "");
|
|
405
|
+
throw new Error(`Device code request failed for ${provider}: HTTP ${deviceResponse.status} ${body}`);
|
|
406
|
+
}
|
|
407
|
+
const deviceData = (await deviceResponse.json());
|
|
408
|
+
if (!deviceData.device_code || !deviceData.user_code) {
|
|
409
|
+
throw new Error(`Device code request for ${provider} returned incomplete data`);
|
|
410
|
+
}
|
|
411
|
+
// 2. Notify caller with device code data
|
|
412
|
+
options.onDeviceCode?.(deviceData);
|
|
413
|
+
// 3. Attempt to open browser to verification URL
|
|
414
|
+
const verificationUrl = deviceData.verification_uri_complete ?? deviceData.verification_uri;
|
|
415
|
+
if (options.openBrowser) {
|
|
416
|
+
try {
|
|
417
|
+
await options.openBrowser(verificationUrl);
|
|
418
|
+
}
|
|
419
|
+
catch {
|
|
420
|
+
// Best-effort only.
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
// 4. Poll for token
|
|
424
|
+
const pollInterval = (deviceData.interval ?? 5) * 1000;
|
|
425
|
+
const maxWaitMs = 5 * 60 * 1000; // 5 minutes
|
|
426
|
+
const startTime = Date.now();
|
|
427
|
+
while (true) {
|
|
428
|
+
if (options.signal?.aborted) {
|
|
429
|
+
throw new Error("Device code flow was aborted.");
|
|
430
|
+
}
|
|
431
|
+
if (Date.now() - startTime > maxWaitMs) {
|
|
432
|
+
throw new Error(`Device code flow timed out for ${provider} after ${maxWaitMs / 1000}s`);
|
|
433
|
+
}
|
|
434
|
+
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
435
|
+
const tokenParams = new URLSearchParams({
|
|
436
|
+
grant_type: "urn:ietf:params:oauth:grant-type:device_code",
|
|
437
|
+
device_code: deviceData.device_code,
|
|
438
|
+
client_id: clientId,
|
|
439
|
+
});
|
|
440
|
+
const tokenResponse = await fetchImpl(config.tokenUrl, {
|
|
441
|
+
method: "POST",
|
|
442
|
+
headers: {
|
|
443
|
+
"content-type": "application/x-www-form-urlencoded",
|
|
444
|
+
accept: "application/json",
|
|
445
|
+
},
|
|
446
|
+
body: tokenParams.toString(),
|
|
447
|
+
});
|
|
448
|
+
if (!tokenResponse.ok) {
|
|
449
|
+
const body = await tokenResponse.text().catch(() => "");
|
|
450
|
+
// Handle expected polling errors
|
|
451
|
+
if (body.includes("authorization_pending")) {
|
|
452
|
+
continue; // Keep polling
|
|
453
|
+
}
|
|
454
|
+
if (body.includes("slow_down")) {
|
|
455
|
+
// Increase interval by 5 seconds as per RFC
|
|
456
|
+
await new Promise((resolve) => setTimeout(resolve, 5000));
|
|
457
|
+
continue;
|
|
458
|
+
}
|
|
459
|
+
if (body.includes("expired_token")) {
|
|
460
|
+
throw new Error(`Device code expired for ${provider}. Please restart the login flow.`);
|
|
461
|
+
}
|
|
462
|
+
if (body.includes("access_denied")) {
|
|
463
|
+
throw new Error(`Device code flow denied for ${provider}.`);
|
|
464
|
+
}
|
|
465
|
+
throw new Error(`Token polling failed for ${provider}: HTTP ${tokenResponse.status} ${body}`);
|
|
466
|
+
}
|
|
467
|
+
const json = (await tokenResponse.json());
|
|
468
|
+
if (!json.access_token) {
|
|
469
|
+
throw new Error(`Token polling for ${provider} returned no access_token`);
|
|
470
|
+
}
|
|
471
|
+
// 5. Store tokens in secret store
|
|
472
|
+
const obtainedAt = Date.now();
|
|
473
|
+
await setOAuthTokens(provider, {
|
|
474
|
+
accessToken: json.access_token,
|
|
475
|
+
refreshToken: json.refresh_token,
|
|
476
|
+
expiresAt: json.expires_in
|
|
477
|
+
? obtainedAt + json.expires_in * 1000
|
|
478
|
+
: undefined,
|
|
479
|
+
scope: json.scope,
|
|
480
|
+
obtainedAt,
|
|
481
|
+
}, options.store);
|
|
482
|
+
return {
|
|
483
|
+
provider,
|
|
484
|
+
expiresAt: json.expires_in
|
|
485
|
+
? obtainedAt + json.expires_in * 1000
|
|
486
|
+
: undefined,
|
|
487
|
+
scope: json.scope,
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
}
|
|
319
491
|
/**
|
|
320
492
|
* Refresh an OAuth token using a refresh token.
|
|
321
493
|
* Updates the stored tokens on success.
|
|
@@ -331,18 +503,29 @@ export async function refreshTokens(provider, refreshToken, store, options) {
|
|
|
331
503
|
const clientId = config.clientIdEnvVar
|
|
332
504
|
? (process.env[config.clientIdEnvVar] ?? "")
|
|
333
505
|
: "";
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
506
|
+
// Anthropic uses JSON body; OpenAI uses form-encoded.
|
|
507
|
+
const useJson = provider === "anthropic";
|
|
508
|
+
const refreshBody = useJson
|
|
509
|
+
? JSON.stringify({
|
|
510
|
+
grant_type: "refresh_token",
|
|
511
|
+
refresh_token: refreshToken,
|
|
512
|
+
client_id: clientId,
|
|
513
|
+
})
|
|
514
|
+
: new URLSearchParams({
|
|
515
|
+
grant_type: "refresh_token",
|
|
516
|
+
refresh_token: refreshToken,
|
|
517
|
+
client_id: clientId,
|
|
518
|
+
}).toString();
|
|
339
519
|
const fetchImpl = options?.fetch ?? globalThis.fetch.bind(globalThis);
|
|
340
520
|
const response = await fetchImpl(config.tokenUrl, {
|
|
341
521
|
method: "POST",
|
|
342
522
|
headers: {
|
|
343
|
-
"content-type":
|
|
523
|
+
"content-type": useJson
|
|
524
|
+
? "application/json"
|
|
525
|
+
: "application/x-www-form-urlencoded",
|
|
526
|
+
accept: "application/json",
|
|
344
527
|
},
|
|
345
|
-
body:
|
|
528
|
+
body: refreshBody,
|
|
346
529
|
});
|
|
347
530
|
if (!response.ok) {
|
|
348
531
|
const body = await response.text().catch(() => "");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-pkce.js","sourceRoot":"","sources":["../../src/auth/oauth-pkce.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth-pkce.js","sourceRoot":"","sources":["../../src/auth/oauth-pkce.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,8 @@ export interface CallbackServerOptions {
|
|
|
5
5
|
* May also be supplied per-call to waitForCode.
|
|
6
6
|
*/
|
|
7
7
|
expectedState?: string;
|
|
8
|
+
/** Callback path (default: /callback). OpenAI uses /auth/callback. */
|
|
9
|
+
callbackPath?: string;
|
|
8
10
|
}
|
|
9
11
|
export interface WaitForCodeOptions {
|
|
10
12
|
/** Overrides the server-level expectedState for this call. */
|
|
@@ -19,7 +21,7 @@ export interface CallbackCode {
|
|
|
19
21
|
state: string;
|
|
20
22
|
}
|
|
21
23
|
export interface CallbackServerHandle {
|
|
22
|
-
/** Full redirect_uri to register with the provider (http://
|
|
24
|
+
/** Full redirect_uri to register with the provider (http://localhost:PORT/callback). */
|
|
23
25
|
url: string;
|
|
24
26
|
/** Actual bound port (useful when 0 was requested). */
|
|
25
27
|
port: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-server.d.ts","sourceRoot":"","sources":["../../src/auth/oauth-server.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth-server.d.ts","sourceRoot":"","sources":["../../src/auth/oauth-server.ts"],"names":[],"mappings":"AAkBA,MAAM,WAAW,qBAAqB;IACpC;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,oBAAoB;IACnC,wFAAwF;IACxF,GAAG,EAAE,MAAM,CAAC;IACZ,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,wFAAwF;IACxF,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IACjE,oDAAoD;IACpD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,qBAA0B,GAClC,OAAO,CAAC,oBAAoB,CAAC,CA8K/B"}
|
|
@@ -11,7 +11,7 @@ import { createServer } from "node:http";
|
|
|
11
11
|
import { URL } from "node:url";
|
|
12
12
|
/** Loopback-only hostname. Hardcoded to prevent accidental 0.0.0.0 binds. */
|
|
13
13
|
const LOOPBACK_HOST = "127.0.0.1";
|
|
14
|
-
/** Path the provider redirects to (http://
|
|
14
|
+
/** Path the provider redirects to (http://localhost:PORT/callback). */
|
|
15
15
|
const CALLBACK_PATH = "/callback";
|
|
16
16
|
/**
|
|
17
17
|
* Start a loopback HTTP server that captures an OAuth authorization code.
|
|
@@ -20,6 +20,7 @@ const CALLBACK_PATH = "/callback";
|
|
|
20
20
|
export function startCallbackServer(port, options = {}) {
|
|
21
21
|
return new Promise((resolve, reject) => {
|
|
22
22
|
const serverLevelState = options.expectedState;
|
|
23
|
+
const effectiveCallbackPath = options.callbackPath ?? CALLBACK_PATH;
|
|
23
24
|
// Deferred for the first valid callback (has a `code` param).
|
|
24
25
|
let captured = null;
|
|
25
26
|
const waiters = [];
|
|
@@ -52,7 +53,7 @@ export function startCallbackServer(port, options = {}) {
|
|
|
52
53
|
res.end(authorizationDeniedPage(error));
|
|
53
54
|
return;
|
|
54
55
|
}
|
|
55
|
-
if (pathname !==
|
|
56
|
+
if (pathname !== effectiveCallbackPath) {
|
|
56
57
|
res.writeHead(404, { "content-type": "text/plain; charset=utf-8" });
|
|
57
58
|
res.end("Not Found");
|
|
58
59
|
return;
|
|
@@ -84,7 +85,7 @@ export function startCallbackServer(port, options = {}) {
|
|
|
84
85
|
httpServer.listen(port, LOOPBACK_HOST, () => {
|
|
85
86
|
const address = httpServer.address();
|
|
86
87
|
const boundPort = address && typeof address === "object" ? address.port : port;
|
|
87
|
-
const redirectUrl = `http
|
|
88
|
+
const redirectUrl = `http://localhost:${boundPort}${effectiveCallbackPath}`;
|
|
88
89
|
const handle = {
|
|
89
90
|
url: redirectUrl,
|
|
90
91
|
port: boundPort,
|
|
@@ -152,46 +153,130 @@ export function startCallbackServer(port, options = {}) {
|
|
|
152
153
|
// ---------------------------------------------------------------------------
|
|
153
154
|
// Static HTML pages (ASCII-only, no secret material)
|
|
154
155
|
// ---------------------------------------------------------------------------
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
156
|
+
// ---------------------------------------------------------------------------
|
|
157
|
+
// Styled HTML pages (dark theme, OffRouter branding)
|
|
158
|
+
// ---------------------------------------------------------------------------
|
|
159
|
+
const STYLED_HTML_TEMPLATE = `
|
|
160
|
+
<!doctype html>
|
|
161
|
+
<html lang="en">
|
|
162
|
+
<head>
|
|
163
|
+
<meta charset="utf-8">
|
|
164
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
165
|
+
<title>OffRouter — $$TITLE</title>
|
|
166
|
+
<style>
|
|
167
|
+
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
|
|
168
|
+
body {
|
|
169
|
+
background: #09090b;
|
|
170
|
+
color: #fafafa;
|
|
171
|
+
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
|
|
172
|
+
display: flex;
|
|
173
|
+
justify-content: center;
|
|
174
|
+
align-items: center;
|
|
175
|
+
min-height: 100vh;
|
|
176
|
+
padding: 1rem;
|
|
177
|
+
}
|
|
178
|
+
.card {
|
|
179
|
+
background: #18181b;
|
|
180
|
+
border: 1px solid #27272a;
|
|
181
|
+
border-radius: 12px;
|
|
182
|
+
padding: 2.5rem;
|
|
183
|
+
max-width: 560px;
|
|
184
|
+
width: 100%;
|
|
185
|
+
text-align: center;
|
|
186
|
+
}
|
|
187
|
+
.logo {
|
|
188
|
+
margin-bottom: 1.5rem;
|
|
189
|
+
}
|
|
190
|
+
.logo svg {
|
|
191
|
+
width: 48px;
|
|
192
|
+
height: 48px;
|
|
193
|
+
}
|
|
194
|
+
.icon {
|
|
195
|
+
margin-bottom: 1rem;
|
|
196
|
+
}
|
|
197
|
+
.icon-success {
|
|
198
|
+
color: #22c55e;
|
|
199
|
+
}
|
|
200
|
+
.icon-error {
|
|
201
|
+
color: #ef4444;
|
|
202
|
+
}
|
|
203
|
+
h1 {
|
|
204
|
+
font-size: 1.5rem;
|
|
205
|
+
font-weight: 600;
|
|
206
|
+
margin-bottom: 0.75rem;
|
|
207
|
+
}
|
|
208
|
+
p {
|
|
209
|
+
color: #a1a1aa;
|
|
210
|
+
line-height: 1.6;
|
|
211
|
+
margin-bottom: 1.5rem;
|
|
212
|
+
}
|
|
213
|
+
.details {
|
|
214
|
+
background: #27272a;
|
|
215
|
+
border-radius: 8px;
|
|
216
|
+
padding: 1rem;
|
|
217
|
+
font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
|
|
218
|
+
font-size: 0.875rem;
|
|
219
|
+
color: #fafafa;
|
|
220
|
+
word-break: break-word;
|
|
221
|
+
text-align: left;
|
|
222
|
+
margin-bottom: 1.5rem;
|
|
223
|
+
}
|
|
224
|
+
.link {
|
|
225
|
+
color: #a1a1aa;
|
|
226
|
+
font-size: 0.875rem;
|
|
227
|
+
}
|
|
228
|
+
.link a {
|
|
229
|
+
color: #fafafa;
|
|
230
|
+
text-decoration: underline;
|
|
231
|
+
}
|
|
232
|
+
.link a:hover {
|
|
233
|
+
color: #ffffff;
|
|
234
|
+
}
|
|
235
|
+
</style>
|
|
236
|
+
</head>
|
|
237
|
+
<body>
|
|
238
|
+
<div class="card">
|
|
239
|
+
<div class="logo">
|
|
240
|
+
<svg viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
241
|
+
<circle cx="24" cy="24" r="20" stroke="#fafafa" stroke-width="2"/>
|
|
242
|
+
<circle cx="24" cy="24" r="9" stroke="#fafafa" stroke-width="2"/>
|
|
243
|
+
<circle cx="24" cy="24" r="3" fill="#fafafa"/>
|
|
244
|
+
<line x1="24" y1="4" x2="24" y2="14" stroke="#fafafa" stroke-width="2" stroke-linecap="round"/>
|
|
245
|
+
<line x1="24" y1="34" x2="24" y2="44" stroke="#fafafa" stroke-width="2" stroke-linecap="round"/>
|
|
246
|
+
<line x1="4" y1="24" x2="14" y2="24" stroke="#fafafa" stroke-width="2" stroke-linecap="round"/>
|
|
247
|
+
<line x1="34" y1="24" x2="44" y2="24" stroke="#fafafa" stroke-width="2" stroke-linecap="round"/>
|
|
248
|
+
<line x1="8.2" y1="8.2" x2="15.5" y2="15.5" stroke="#fafafa" stroke-width="2" stroke-linecap="round"/>
|
|
249
|
+
<line x1="32.5" y1="32.5" x2="39.8" y2="39.8" stroke="#fafafa" stroke-width="2" stroke-linecap="round"/>
|
|
250
|
+
<line x1="39.8" y1="8.2" x2="32.5" y2="15.5" stroke="#fafafa" stroke-width="2" stroke-linecap="round"/>
|
|
251
|
+
<line x1="15.5" y1="32.5" x2="8.2" y2="39.8" stroke="#fafafa" stroke-width="2" stroke-linecap="round"/>
|
|
252
|
+
</svg>
|
|
253
|
+
</div>
|
|
254
|
+
$$CONTENT
|
|
255
|
+
<div class="link">
|
|
256
|
+
<a href="https://offrouter.com" target="_blank" rel="noopener noreferrer">Visit offrouter.com</a>
|
|
257
|
+
</div>
|
|
258
|
+
</div>
|
|
259
|
+
</body>
|
|
260
|
+
</html>`;
|
|
261
|
+
function styledPage(title, icon, heading, details) {
|
|
262
|
+
const content = [
|
|
263
|
+
`<div class="icon ${icon === "✓" ? "icon-success" : "icon-error"}" style="font-size: 2.5rem;">${icon}</div>`,
|
|
264
|
+
`<h1>${heading}</h1>`,
|
|
265
|
+
details ? `<p>${details}</p>` : "",
|
|
166
266
|
].join("\n");
|
|
267
|
+
return STYLED_HTML_TEMPLATE
|
|
268
|
+
.replace("$$TITLE", title)
|
|
269
|
+
.replace("$$CONTENT", content);
|
|
270
|
+
}
|
|
271
|
+
function successPage() {
|
|
272
|
+
return styledPage("Authentication successful", "✓", "Authentication successful", "You can close this tab and return to your terminal.");
|
|
167
273
|
}
|
|
168
274
|
function authorizationDeniedPage(error) {
|
|
169
275
|
const safe = escapeHtml(error);
|
|
170
|
-
return
|
|
171
|
-
"<!doctype html>",
|
|
172
|
-
"<html lang=\"en\">",
|
|
173
|
-
"<head><meta charset=\"utf-8\"><title>OffRouter login</title></head>",
|
|
174
|
-
"<body>",
|
|
175
|
-
"<h1>OffRouter login not completed</h1>",
|
|
176
|
-
`<p>The provider reported: ${safe}</p>`,
|
|
177
|
-
"<p>You can close this tab and try again from your terminal.</p>",
|
|
178
|
-
"</body>",
|
|
179
|
-
"</html>",
|
|
180
|
-
"",
|
|
181
|
-
].join("\n");
|
|
276
|
+
return styledPage("Authentication failed", "✗", "Authentication failed", `The provider reported: <strong>${safe}</strong>. You can close this tab and try again from your terminal.`);
|
|
182
277
|
}
|
|
183
278
|
function missingCodePage() {
|
|
184
|
-
return
|
|
185
|
-
"<!doctype html>",
|
|
186
|
-
"<html lang=\"en\">",
|
|
187
|
-
"<head><meta charset=\"utf-8\"><title>OffRouter login</title></head>",
|
|
188
|
-
"<body>",
|
|
189
|
-
"<h1>OffRouter login incomplete</h1>",
|
|
190
|
-
"<p>The callback did not include an authorization code.</p>",
|
|
191
|
-
"</body>",
|
|
192
|
-
"</html>",
|
|
193
|
-
"",
|
|
194
|
-
].join("\n");
|
|
279
|
+
return styledPage("Authentication incomplete", "✗", "Authentication incomplete", "The callback did not include an authorization code. Please try again from your terminal.");
|
|
195
280
|
}
|
|
196
281
|
function escapeHtml(value) {
|
|
197
282
|
return value
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-server.js","sourceRoot":"","sources":["../../src/auth/oauth-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,YAAY,EAA0D,MAAM,WAAW,CAAC;AACjG,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,6EAA6E;AAC7E,MAAM,aAAa,GAAG,WAAW,CAAC;AAElC,uEAAuE;AACvE,MAAM,aAAa,GAAG,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"oauth-server.js","sourceRoot":"","sources":["../../src/auth/oauth-server.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -32,8 +32,8 @@ export { FakeProviderAdapter, createFakeProvider } from "./providers/fake.js";
|
|
|
32
32
|
export type { FakeModelConfig, FakeProviderOptions } from "./providers/fake.js";
|
|
33
33
|
export { OLLAMA_DUMMY_BEARER, OpenAiCompatibleAdapter, createOpenAiCompatibleAdapter, } from "./providers/openai-compatible.js";
|
|
34
34
|
export type { OpenAiCompatibleFlavor, OpenAiCompatibleOptions, } from "./providers/openai-compatible.js";
|
|
35
|
-
export { Redacted, defaultCallbackPort, deleteOAuthTokens, exchangeCodeForTokens, generateCodeChallenge, generateCodeVerifier, getOAuthTokens, getProviderToken, isOAuthProvider, isOAuthTokenExpired, PKCE_CONFIGS, refreshTokens, resolveClientId, resolveCredential, runOAuthLogin, setOAuthTokens, setProviderToken, startOAuthFlow, } from "./auth/index.js";
|
|
36
|
-
export type { CredentialResult, CredentialSource, OAuthFlowResult, OAuthFlowState, OAuthProviderConfig, OAuthStoredTokens, OAuthStartOptions, OAuthTokenOptions, OAuthTokenResponse, ResolveCredentialOptions, RunOAuthLoginOptions, RunOAuthLoginResult, } from "./auth/index.js";
|
|
35
|
+
export { Redacted, defaultCallbackPort, deleteOAuthTokens, exchangeCodeForTokens, generateCodeChallenge, generateCodeVerifier, getOAuthTokens, getProviderToken, isDeviceCodeProvider, isOAuthProvider, isOAuthTokenExpired, PKCE_CONFIGS, refreshTokens, resolveClientId, resolveCredential, runOAuthLogin, setOAuthTokens, setProviderToken, startDeviceCodeFlow, startOAuthFlow, } from "./auth/index.js";
|
|
36
|
+
export type { CredentialResult, CredentialSource, DeviceCodeFlowOptions, DeviceCodeResult, DeviceCodeResponse, OAuthFlowResult, OAuthFlowState, OAuthProviderConfig, OAuthStoredTokens, OAuthStartOptions, OAuthTokenOptions, OAuthTokenResponse, ResolveCredentialOptions, RunOAuthLoginOptions, RunOAuthLoginResult, } from "./auth/index.js";
|
|
37
37
|
export { CHAT_COMPLETIONS_DONE, ChatCompletionsRequestSchema, ChatCompletionsSseBuilder, RESPONSES_PROMPT_PREVIEW_CHARS, ResponsesRequestSchema, ResponsesSseBuilder, InvalidProxyRequestError, buildDelegationRequest, buildRouteRequest, createResponsesProxyContext, extractPromptFromChatCompletions, extractPromptFromResponsesInput, openAiErrorPayload, policyDecisionToHttpStatus, promptDigest, promptPreview, providerErrorCodeToHttpStatus, responsesSseData, } from "./proxy/responses-mapper.js";
|
|
38
38
|
export { startResponsesProxy } from "./proxy/responses-server.js";
|
|
39
39
|
export type { BuildDelegationInput, BuildRouteInput, ChatCompletionDeltaEvent, ChatCompletionObject, ChatUsageInput, OpenAiErrorPayload, ParsedResponsesInput, ResponsesMessageItem, ResponsesObject, ResponsesOutputTextPart, ResponsesProxyContext, ResponsesUsageInput, } from "./proxy/responses-mapper.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -19,7 +19,7 @@ export { BUILTIN_PROVIDERS, BUILTIN_PROVIDER_IDS, getBuiltinProvider, selectBuil
|
|
|
19
19
|
export { FakeProviderAdapter, createFakeProvider } from "./providers/fake.js";
|
|
20
20
|
export { OLLAMA_DUMMY_BEARER, OpenAiCompatibleAdapter, createOpenAiCompatibleAdapter, } from "./providers/openai-compatible.js";
|
|
21
21
|
// Auth module (credential chain, OAuth PKCE, keychain helpers)
|
|
22
|
-
export { Redacted, defaultCallbackPort, deleteOAuthTokens, exchangeCodeForTokens, generateCodeChallenge, generateCodeVerifier, getOAuthTokens, getProviderToken, isOAuthProvider, isOAuthTokenExpired, PKCE_CONFIGS, refreshTokens, resolveClientId, resolveCredential, runOAuthLogin, setOAuthTokens, setProviderToken, startOAuthFlow, } from "./auth/index.js";
|
|
22
|
+
export { Redacted, defaultCallbackPort, deleteOAuthTokens, exchangeCodeForTokens, generateCodeChallenge, generateCodeVerifier, getOAuthTokens, getProviderToken, isDeviceCodeProvider, isOAuthProvider, isOAuthTokenExpired, PKCE_CONFIGS, refreshTokens, resolveClientId, resolveCredential, runOAuthLogin, setOAuthTokens, setProviderToken, startDeviceCodeFlow, startOAuthFlow, } from "./auth/index.js";
|
|
23
23
|
// OpenAI Responses-compatible local proxy
|
|
24
24
|
export { CHAT_COMPLETIONS_DONE, ChatCompletionsRequestSchema, ChatCompletionsSseBuilder, RESPONSES_PROMPT_PREVIEW_CHARS, ResponsesRequestSchema, ResponsesSseBuilder, InvalidProxyRequestError, buildDelegationRequest, buildRouteRequest, createResponsesProxyContext, extractPromptFromChatCompletions, extractPromptFromResponsesInput, openAiErrorPayload, policyDecisionToHttpStatus, promptDigest, promptPreview, providerErrorCodeToHttpStatus, responsesSseData, } from "./proxy/responses-mapper.js";
|
|
25
25
|
export { startResponsesProxy } from "./proxy/responses-server.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AA2BvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAY3E,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAYrB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,QAAQ,EACR,MAAM,GACP,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAY3E,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EACL,cAAc,GACf,MAAM,iBAAiB,CAAC;AAkBzB,gCAAgC;AAChC,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAchC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AASrC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,+DAA+D;AAC/D,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,cAAc,GACf,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AA2BvD,OAAO,EACL,eAAe,EACf,cAAc,EACd,wBAAwB,EACxB,oBAAoB,EACpB,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,cAAc,EACd,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,cAAc,EACd,6BAA6B,EAC7B,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAY3E,OAAO,EACL,WAAW,EACX,aAAa,EACb,UAAU,EACV,oBAAoB,GACrB,MAAM,aAAa,CAAC;AAYrB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,wBAAwB,EACxB,QAAQ,EACR,MAAM,GACP,MAAM,cAAc,CAAC;AAOtB,OAAO,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAY3E,OAAO,EAAE,4BAA4B,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EACL,cAAc,GACf,MAAM,iBAAiB,CAAC;AAkBzB,gCAAgC;AAChC,OAAO,EACL,wBAAwB,EACxB,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,sBAAsB,GACvB,MAAM,wBAAwB,CAAC;AAchC,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,wBAAwB,CAAC;AAQhC,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,6BAA6B,CAAC;AASrC,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG9E,OAAO,EACL,mBAAmB,EACnB,uBAAuB,EACvB,6BAA6B,GAC9B,MAAM,kCAAkC,CAAC;AAM1C,+DAA+D;AAC/D,OAAO,EACL,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,GACf,MAAM,iBAAiB,CAAC;AAmBzB,0CAA0C;AAC1C,OAAO,EACL,qBAAqB,EACrB,4BAA4B,EAC5B,yBAAyB,EACzB,8BAA8B,EAC9B,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,sBAAsB,EACtB,iBAAiB,EACjB,2BAA2B,EAC3B,gCAAgC,EAChC,+BAA+B,EAC/B,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,aAAa,EACb,6BAA6B,EAC7B,gBAAgB,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
|