@keycardai/oauth 0.1.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/cjs/base64url.d.ts +6 -0
- package/dist/cjs/base64url.d.ts.map +1 -0
- package/dist/cjs/base64url.js +50 -0
- package/dist/cjs/base64url.js.map +1 -0
- package/dist/cjs/discovery.d.ts +27 -0
- package/dist/cjs/discovery.d.ts.map +1 -0
- package/dist/cjs/discovery.js +31 -0
- package/dist/cjs/discovery.js.map +1 -0
- package/dist/cjs/errors.d.ts +19 -0
- package/dist/cjs/errors.d.ts.map +1 -0
- package/dist/cjs/errors.js +36 -0
- package/dist/cjs/errors.js.map +1 -0
- package/dist/cjs/index.d.ts +12 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +26 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/jwt/signer.d.ts +19 -0
- package/dist/cjs/jwt/signer.d.ts.map +1 -0
- package/dist/cjs/jwt/signer.js +55 -0
- package/dist/cjs/jwt/signer.js.map +1 -0
- package/dist/cjs/jwt/verifier.d.ts +8 -0
- package/dist/cjs/jwt/verifier.d.ts.map +1 -0
- package/dist/cjs/jwt/verifier.js +49 -0
- package/dist/cjs/jwt/verifier.js.map +1 -0
- package/dist/cjs/keyring.d.ts +15 -0
- package/dist/cjs/keyring.d.ts.map +1 -0
- package/dist/cjs/keyring.js +49 -0
- package/dist/cjs/keyring.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/tokenExchange.d.ts +31 -0
- package/dist/cjs/tokenExchange.d.ts.map +1 -0
- package/dist/cjs/tokenExchange.js +130 -0
- package/dist/cjs/tokenExchange.js.map +1 -0
- package/dist/esm/base64url.d.ts +6 -0
- package/dist/esm/base64url.d.ts.map +1 -0
- package/dist/esm/base64url.js +48 -0
- package/dist/esm/base64url.js.map +1 -0
- package/dist/esm/discovery.d.ts +27 -0
- package/dist/esm/discovery.d.ts.map +1 -0
- package/dist/esm/discovery.js +28 -0
- package/dist/esm/discovery.js.map +1 -0
- package/dist/esm/errors.d.ts +19 -0
- package/dist/esm/errors.d.ts.map +1 -0
- package/dist/esm/errors.js +27 -0
- package/dist/esm/errors.js.map +1 -0
- package/dist/esm/index.d.ts +12 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +8 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/jwt/signer.d.ts +19 -0
- package/dist/esm/jwt/signer.d.ts.map +1 -0
- package/dist/esm/jwt/signer.js +48 -0
- package/dist/esm/jwt/signer.js.map +1 -0
- package/dist/esm/jwt/verifier.d.ts +8 -0
- package/dist/esm/jwt/verifier.d.ts.map +1 -0
- package/dist/esm/jwt/verifier.js +42 -0
- package/dist/esm/jwt/verifier.js.map +1 -0
- package/dist/esm/keyring.d.ts +15 -0
- package/dist/esm/keyring.d.ts.map +1 -0
- package/dist/esm/keyring.js +45 -0
- package/dist/esm/keyring.js.map +1 -0
- package/dist/esm/package.json +1 -0
- package/dist/esm/tokenExchange.d.ts +31 -0
- package/dist/esm/tokenExchange.d.ts.map +1 -0
- package/dist/esm/tokenExchange.js +126 -0
- package/dist/esm/tokenExchange.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
+
};
|
|
7
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
+
};
|
|
12
|
+
var _TokenExchangeClient_instances, _TokenExchangeClient_issuerUrl, _TokenExchangeClient_clientId, _TokenExchangeClient_clientSecret, _TokenExchangeClient_tokenEndpoint, _TokenExchangeClient_discoveryPromise, _TokenExchangeClient_getTokenEndpoint;
|
|
13
|
+
import { fetchAuthorizationServerMetadata } from "./discovery.js";
|
|
14
|
+
// =============================================================================
|
|
15
|
+
// Wire format helpers (camelCase <-> snake_case at the boundary)
|
|
16
|
+
// =============================================================================
|
|
17
|
+
function serializeRequest(request) {
|
|
18
|
+
const params = new URLSearchParams();
|
|
19
|
+
params.set("grant_type", request.grantType ?? "urn:ietf:params:oauth:grant-type:token-exchange");
|
|
20
|
+
params.set("subject_token", request.subjectToken);
|
|
21
|
+
params.set("subject_token_type", request.subjectTokenType ?? "urn:ietf:params:oauth:token-type:access_token");
|
|
22
|
+
if (request.resource)
|
|
23
|
+
params.set("resource", request.resource);
|
|
24
|
+
if (request.audience)
|
|
25
|
+
params.set("audience", request.audience);
|
|
26
|
+
if (request.scope)
|
|
27
|
+
params.set("scope", request.scope);
|
|
28
|
+
if (request.requestedTokenType)
|
|
29
|
+
params.set("requested_token_type", request.requestedTokenType);
|
|
30
|
+
if (request.actorToken)
|
|
31
|
+
params.set("actor_token", request.actorToken);
|
|
32
|
+
if (request.actorTokenType)
|
|
33
|
+
params.set("actor_token_type", request.actorTokenType);
|
|
34
|
+
if (request.clientAssertion)
|
|
35
|
+
params.set("client_assertion", request.clientAssertion);
|
|
36
|
+
if (request.clientAssertionType)
|
|
37
|
+
params.set("client_assertion_type", request.clientAssertionType);
|
|
38
|
+
return params;
|
|
39
|
+
}
|
|
40
|
+
function deserializeResponse(json) {
|
|
41
|
+
const accessToken = json.access_token;
|
|
42
|
+
if (typeof accessToken !== "string" || !accessToken) {
|
|
43
|
+
throw new Error("Token exchange response missing access_token");
|
|
44
|
+
}
|
|
45
|
+
const response = {
|
|
46
|
+
accessToken,
|
|
47
|
+
tokenType: typeof json.token_type === "string" ? json.token_type : "bearer",
|
|
48
|
+
};
|
|
49
|
+
if (typeof json.expires_in === "number")
|
|
50
|
+
response.expiresIn = json.expires_in;
|
|
51
|
+
if (typeof json.refresh_token === "string")
|
|
52
|
+
response.refreshToken = json.refresh_token;
|
|
53
|
+
if (typeof json.issued_token_type === "string")
|
|
54
|
+
response.issuedTokenType = json.issued_token_type;
|
|
55
|
+
if (typeof json.scope === "string") {
|
|
56
|
+
response.scope = json.scope.split(" ").filter(Boolean);
|
|
57
|
+
}
|
|
58
|
+
return response;
|
|
59
|
+
}
|
|
60
|
+
// =============================================================================
|
|
61
|
+
// Token Exchange Client
|
|
62
|
+
// =============================================================================
|
|
63
|
+
export class TokenExchangeClient {
|
|
64
|
+
constructor(issuerUrl, options) {
|
|
65
|
+
_TokenExchangeClient_instances.add(this);
|
|
66
|
+
_TokenExchangeClient_issuerUrl.set(this, void 0);
|
|
67
|
+
_TokenExchangeClient_clientId.set(this, void 0);
|
|
68
|
+
_TokenExchangeClient_clientSecret.set(this, void 0);
|
|
69
|
+
_TokenExchangeClient_tokenEndpoint.set(this, void 0);
|
|
70
|
+
_TokenExchangeClient_discoveryPromise.set(this, void 0);
|
|
71
|
+
__classPrivateFieldSet(this, _TokenExchangeClient_issuerUrl, issuerUrl, "f");
|
|
72
|
+
__classPrivateFieldSet(this, _TokenExchangeClient_clientId, options?.clientId, "f");
|
|
73
|
+
__classPrivateFieldSet(this, _TokenExchangeClient_clientSecret, options?.clientSecret, "f");
|
|
74
|
+
}
|
|
75
|
+
async exchangeToken(request) {
|
|
76
|
+
const tokenEndpoint = await __classPrivateFieldGet(this, _TokenExchangeClient_instances, "m", _TokenExchangeClient_getTokenEndpoint).call(this);
|
|
77
|
+
const body = serializeRequest(request);
|
|
78
|
+
const headers = {
|
|
79
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
80
|
+
};
|
|
81
|
+
if (__classPrivateFieldGet(this, _TokenExchangeClient_clientId, "f") && __classPrivateFieldGet(this, _TokenExchangeClient_clientSecret, "f")) {
|
|
82
|
+
const credentials = btoa(`${__classPrivateFieldGet(this, _TokenExchangeClient_clientId, "f")}:${__classPrivateFieldGet(this, _TokenExchangeClient_clientSecret, "f")}`);
|
|
83
|
+
headers["Authorization"] = `Basic ${credentials}`;
|
|
84
|
+
}
|
|
85
|
+
const response = await fetch(tokenEndpoint, {
|
|
86
|
+
method: "POST",
|
|
87
|
+
headers,
|
|
88
|
+
body: body.toString(),
|
|
89
|
+
});
|
|
90
|
+
if (!response.ok) {
|
|
91
|
+
let errorDetail = "";
|
|
92
|
+
try {
|
|
93
|
+
const errorBody = await response.json();
|
|
94
|
+
errorDetail = typeof errorBody.error_description === "string"
|
|
95
|
+
? errorBody.error_description
|
|
96
|
+
: typeof errorBody.error === "string"
|
|
97
|
+
? errorBody.error
|
|
98
|
+
: "";
|
|
99
|
+
}
|
|
100
|
+
catch {
|
|
101
|
+
// ignore parse errors
|
|
102
|
+
}
|
|
103
|
+
throw new Error(`Token exchange failed (HTTP ${response.status})${errorDetail ? `: ${errorDetail}` : ""}`);
|
|
104
|
+
}
|
|
105
|
+
const json = await response.json();
|
|
106
|
+
return deserializeResponse(json);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
_TokenExchangeClient_issuerUrl = new WeakMap(), _TokenExchangeClient_clientId = new WeakMap(), _TokenExchangeClient_clientSecret = new WeakMap(), _TokenExchangeClient_tokenEndpoint = new WeakMap(), _TokenExchangeClient_discoveryPromise = new WeakMap(), _TokenExchangeClient_instances = new WeakSet(), _TokenExchangeClient_getTokenEndpoint = async function _TokenExchangeClient_getTokenEndpoint() {
|
|
110
|
+
if (__classPrivateFieldGet(this, _TokenExchangeClient_tokenEndpoint, "f")) {
|
|
111
|
+
return __classPrivateFieldGet(this, _TokenExchangeClient_tokenEndpoint, "f");
|
|
112
|
+
}
|
|
113
|
+
// Promise-based lock: only one concurrent discovery
|
|
114
|
+
if (!__classPrivateFieldGet(this, _TokenExchangeClient_discoveryPromise, "f")) {
|
|
115
|
+
__classPrivateFieldSet(this, _TokenExchangeClient_discoveryPromise, (async () => {
|
|
116
|
+
const metadata = await fetchAuthorizationServerMetadata(__classPrivateFieldGet(this, _TokenExchangeClient_issuerUrl, "f"));
|
|
117
|
+
if (!metadata.token_endpoint) {
|
|
118
|
+
throw new Error(`Authorization server "${__classPrivateFieldGet(this, _TokenExchangeClient_issuerUrl, "f")}" does not advertise a token_endpoint`);
|
|
119
|
+
}
|
|
120
|
+
__classPrivateFieldSet(this, _TokenExchangeClient_tokenEndpoint, metadata.token_endpoint, "f");
|
|
121
|
+
return __classPrivateFieldGet(this, _TokenExchangeClient_tokenEndpoint, "f");
|
|
122
|
+
})(), "f");
|
|
123
|
+
}
|
|
124
|
+
return __classPrivateFieldGet(this, _TokenExchangeClient_discoveryPromise, "f");
|
|
125
|
+
};
|
|
126
|
+
//# sourceMappingURL=tokenExchange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tokenExchange.js","sourceRoot":"","sources":["../../src/tokenExchange.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@keycardai/oauth",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Pure OAuth 2.0 primitives for Keycard — JWKS key management, JWT signing/verification, and authorization server discovery",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/esm/index.js",
|
|
10
|
+
"require": "./dist/cjs/index.js",
|
|
11
|
+
"types": "./dist/esm/index.d.ts"
|
|
12
|
+
},
|
|
13
|
+
"./keyring": {
|
|
14
|
+
"import": "./dist/esm/keyring.js",
|
|
15
|
+
"require": "./dist/cjs/keyring.js",
|
|
16
|
+
"types": "./dist/esm/keyring.d.ts"
|
|
17
|
+
},
|
|
18
|
+
"./base64url": {
|
|
19
|
+
"import": "./dist/esm/base64url.js",
|
|
20
|
+
"require": "./dist/cjs/base64url.js",
|
|
21
|
+
"types": "./dist/esm/base64url.d.ts"
|
|
22
|
+
},
|
|
23
|
+
"./discovery": {
|
|
24
|
+
"import": "./dist/esm/discovery.js",
|
|
25
|
+
"require": "./dist/cjs/discovery.js",
|
|
26
|
+
"types": "./dist/esm/discovery.d.ts"
|
|
27
|
+
},
|
|
28
|
+
"./errors": {
|
|
29
|
+
"import": "./dist/esm/errors.js",
|
|
30
|
+
"require": "./dist/cjs/errors.js",
|
|
31
|
+
"types": "./dist/esm/errors.d.ts"
|
|
32
|
+
},
|
|
33
|
+
"./jwt/signer": {
|
|
34
|
+
"import": "./dist/esm/jwt/signer.js",
|
|
35
|
+
"require": "./dist/cjs/jwt/signer.js",
|
|
36
|
+
"types": "./dist/esm/jwt/signer.d.ts"
|
|
37
|
+
},
|
|
38
|
+
"./jwt/verifier": {
|
|
39
|
+
"import": "./dist/esm/jwt/verifier.js",
|
|
40
|
+
"require": "./dist/cjs/jwt/verifier.js",
|
|
41
|
+
"types": "./dist/esm/jwt/verifier.d.ts"
|
|
42
|
+
},
|
|
43
|
+
"./tokenExchange": {
|
|
44
|
+
"import": "./dist/esm/tokenExchange.js",
|
|
45
|
+
"require": "./dist/cjs/tokenExchange.js",
|
|
46
|
+
"types": "./dist/esm/tokenExchange.d.ts"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"files": [
|
|
50
|
+
"dist"
|
|
51
|
+
],
|
|
52
|
+
"typesVersions": {
|
|
53
|
+
"*": {
|
|
54
|
+
"*": ["./dist/esm/*"]
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
"scripts": {
|
|
58
|
+
"build": "pnpm run build:esm && pnpm run build:cjs",
|
|
59
|
+
"build:esm": "tsc -p tsconfig.prod.json && echo '{\"type\": \"module\"}' > dist/esm/package.json",
|
|
60
|
+
"build:cjs": "tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > dist/cjs/package.json",
|
|
61
|
+
"typecheck": "tsc --noEmit",
|
|
62
|
+
"clean": "rm -rf dist"
|
|
63
|
+
},
|
|
64
|
+
"dependencies": {
|
|
65
|
+
"zod": "^3.25.74"
|
|
66
|
+
},
|
|
67
|
+
"devDependencies": {
|
|
68
|
+
"typescript": "^5.8.3"
|
|
69
|
+
}
|
|
70
|
+
}
|